SPRACD8 June   2019 DRA710 , DRA712 , DRA714 , DRA716 , DRA718 , DRA722 , DRA724 , DRA725 , DRA726 , DRA744 , DRA745 , DRA746 , DRA74P , DRA750 , DRA756 , DRA75P , DRA76P , DRA77P , DRA780 , DRA781 , DRA782 , DRA783 , DRA786 , DRA787 , DRA790 , DRA791 , DRA793 , DRA797 , TDA2EG-17 , TDA2HF , TDA2HG , TDA2HV , TDA2LF , TDA2P-ABZ , TDA2P-ACD , TDA2SA , TDA2SG , TDA2SX

 

  1.   Integrating New Cameras With Video Input Port on DRA7xx SoCs
    1.     Trademarks
    2. 1 Introduction
    3. 2 Video Input Port and Possible Video Sources
    4. 3 Kernel Changes to Integrate Camera Devices
      1. 3.1 V4L2 Endpoint Framework
        1. 3.1.1 VIP Device Definition
        2. 3.1.2 Camera Device Definition
      2. 3.2 Interfacing a Multichannel Video Source (TVP5158)
      3. 3.3 Interfacing a Camera Over LVDS Serializer Deserializer
        1. 3.3.1 I2C Address Remapping
        2. 3.3.2 Serializer/Deserializer Configuration
        3. 3.3.3 Serdes Device Definition
      4. 3.4 Setting up Pinmux and IODELAY
        1. 3.4.1 Getting Pinmux and IODELAY Values
      5. 3.5 Setting Up Board Muxes

Serializer/Deserializer Configuration

Each serializer/deserializer device is an I2C slave from the Linux perspective. For cameras, typically the serializers will be on a remote I2C bus and the de-serializers will be on local I2C bus.

Note that along with the job of serialzing/de-serializing video data, most TI FPDLink3 devices have General Purpose Input/Output (GPIO) capabilities to drive few GPIO lines. This is useful when a remotely connected camera needs to toggle few power or Vsync lines through kernel driver

The following explains the device-tree bindings for describing the Serdes devices:

Texas instruments video serializer/de serializer ================================================ Required Properties: - compatible: should be one of the following. - "ti,ds90ub913aq": For TI FPDlink3 12bit video serializer - "ti,ds90ub914aq": For TI FPDlink3 12bit video de serializer - "ti,ds90uh925q": For TI FPDlink3 24bit video serializer - "ti,ds90uh928q": For TI FPDlink3 24bit video de serializer - reg: I2C slave address This would be the alias adress for remote device. The CPU side ser/des would address the remote device using this address. Optional Properties: - gpio-controller: Marks the device node as a gpio controller. - #gpio-cells: Should be 1. The first cell is the GPIO number. - ranges: This is the address translation table for mapping i2c devices on the remote bus to the i2c address(alias) on parent bus. The first entry in the ranges property has to of the corresponding remote ser/des device. For dynamic address mapping, keep the remote slave address as 0x0 The corresponding alias would be used if the remote slave doesn't have an address already mapped. - slave-mode: This property marks the ser/des as remote device. For a device where 'slave-mode' property is absent, it is considered as master device and 'ranges' and 'i2c-bus-num' properties are compulsory.