GPIO forwarding question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

We're working with some Analog Devices SerDes chips which provide "reliable
transport of high-resolution digital video for camera and display-based
applications" over a GMSL link [1]. But, besides video data, they can also
transport audio data, control (I2C) and GPIO.

We have some drivers downstream that I intend to upstream but there's one
particular issue I don't know how to do it right: GPIO forwarding. Below are 2
examples of how we use this feature. For the sake of not complicating the
diagrams I only show the SoC on the left leaving out the I2C and other data
connections.

A)
     |       +-----+            +-----+
     |  (1) _|Rx   |            |   Tx|_ (1)
     |       |     |            |     |
SoC  |       | Ser |=== GMSL ===| Des |
     |  (2) _|Tx   |            |   Rx|_ (2)
     |       |     |            |     |
     |       +-----+            +-----+

So, in the first, simplified, scenario, any transitions on the Rx pin (1) of
Ser chip will be replicated on the Tx pin (1) of Des chip. And vice versa,
anything happening on Rx pin (2) of Des chip will be replicated on the Tx pin
(2) of Ser chip. To make things more complicated, transitions on one GPIO pin
can even be sent to more pins on the other side...

B)
     |  +-----+            +--------+
     |  |     |=== GMSL ===| Ser1 Tx|- (1)
     |  |     |            +--------+
SoC  |  |     |                .
     |  | Des |                .
     |  |     |            +--------+
     |  |     |=== GMSL ===| Ser4 Tx|- (1)
     |  +-----+            +--------+

In the second scenario, which is used in multi-camera applications where we
need to have all 4 cameras synchronized, a FSYNC signal is generated by the
deserializer chip and sent over to each serializer in-sync. The serializers
will then send the signal to the camera sensors using the GPIO pins.

So, my question is: is there a way to implement these 2 scenarios using the
current GPIO subsystem API? If yes, can you point me to some examples on how to
achieve it? I tried to find anything in the documentation about this, or some
examples, but I couldn't find any... :/

Thanks,
Laurentiu

[1] https://www.analog.com/en/solutions/gigabit-mulitimedia-serial-link.html




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux