| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/media/i2c/ti,ds90ub960.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Texas Instruments DS90UB9XX Family FPD-Link Deserializer Hubs |
| |
| maintainers: |
| - Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> |
| |
| description: |
| The TI DS90UB9XX devices are FPD-Link video deserializers with I2C and GPIO |
| forwarding. |
| |
| allOf: |
| - $ref: /schemas/i2c/i2c-atr.yaml# |
| |
| properties: |
| compatible: |
| enum: |
| - ti,ds90ub960-q1 |
| - ti,ds90ub9702-q1 |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| maxItems: 1 |
| description: |
| Reference clock connected to the REFCLK pin. |
| |
| clock-names: |
| items: |
| - const: refclk |
| |
| powerdown-gpios: |
| maxItems: 1 |
| description: |
| Specifier for the GPIO connected to the PDB pin. |
| |
| i2c-alias-pool: |
| minItems: 1 |
| maxItems: 32 |
| |
| links: |
| type: object |
| additionalProperties: false |
| |
| properties: |
| '#address-cells': |
| const: 1 |
| |
| '#size-cells': |
| const: 0 |
| |
| ti,manual-strobe: |
| type: boolean |
| description: |
| Enable manual strobe position and EQ level |
| |
| patternProperties: |
| '^link@[0-3]$': |
| type: object |
| additionalProperties: false |
| properties: |
| reg: |
| description: The link number |
| maxItems: 1 |
| |
| i2c-alias: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| The I2C address used for the serializer. Transactions to this |
| address on the I2C bus where the deserializer resides are |
| forwarded to the serializer. |
| |
| ti,rx-mode: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: |
| - 0 # RAW10 |
| - 1 # RAW12 HF |
| - 2 # RAW12 LF |
| - 3 # CSI2 SYNC |
| - 4 # CSI2 NON-SYNC |
| description: |
| FPD-Link Input Mode. This should reflect the hardware and the |
| default mode of the connected device. |
| |
| ti,cdr-mode: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: |
| - 0 # FPD-Link III |
| - 1 # FPD-Link IV |
| description: |
| FPD-Link CDR Mode. This should reflect the hardware and the |
| default mode of the connected device. |
| |
| ti,strobe-pos: |
| $ref: /schemas/types.yaml#/definitions/int32 |
| minimum: -13 |
| maximum: 13 |
| description: Manual strobe position |
| |
| ti,eq-level: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 14 |
| description: Manual EQ level |
| |
| serializer: |
| type: object |
| description: FPD-Link Serializer node |
| |
| required: |
| - reg |
| - i2c-alias |
| - ti,rx-mode |
| - serializer |
| |
| ports: |
| $ref: /schemas/graph.yaml#/properties/ports |
| |
| properties: |
| port@0: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: FPD-Link input 0 |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| description: |
| Endpoint for FPD-Link port. If the RX mode for this port is RAW, |
| hsync-active and vsync-active must be defined. |
| |
| port@1: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: FPD-Link input 1 |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| description: |
| Endpoint for FPD-Link port. If the RX mode for this port is RAW, |
| hsync-active and vsync-active must be defined. |
| |
| port@2: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: FPD-Link input 2 |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| description: |
| Endpoint for FPD-Link port. If the RX mode for this port is RAW, |
| hsync-active and vsync-active must be defined. |
| |
| port@3: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: FPD-Link input 3 |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| description: |
| Endpoint for FPD-Link port. If the RX mode for this port is RAW, |
| hsync-active and vsync-active must be defined. |
| |
| port@4: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: CSI-2 Output 0 |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| |
| properties: |
| data-lanes: |
| minItems: 1 |
| maxItems: 4 |
| link-frequencies: |
| maxItems: 1 |
| |
| required: |
| - data-lanes |
| - link-frequencies |
| |
| port@5: |
| $ref: /schemas/graph.yaml#/$defs/port-base |
| unevaluatedProperties: false |
| description: CSI-2 Output 1 |
| |
| properties: |
| endpoint: |
| $ref: /schemas/media/video-interfaces.yaml# |
| unevaluatedProperties: false |
| |
| properties: |
| data-lanes: |
| minItems: 1 |
| maxItems: 4 |
| link-frequencies: |
| maxItems: 1 |
| |
| required: |
| - data-lanes |
| - link-frequencies |
| |
| required: |
| - port@0 |
| - port@1 |
| - port@2 |
| - port@3 |
| - port@4 |
| - port@5 |
| |
| required: |
| - compatible |
| - reg |
| - clocks |
| - clock-names |
| - ports |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| |
| i2c { |
| clock-frequency = <400000>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| deser@3d { |
| compatible = "ti,ds90ub960-q1"; |
| reg = <0x3d>; |
| |
| clock-names = "refclk"; |
| clocks = <&fixed_clock>; |
| |
| powerdown-gpios = <&pca9555 7 GPIO_ACTIVE_LOW>; |
| |
| i2c-alias-pool = <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| /* Port 0, Camera 0 */ |
| port@0 { |
| reg = <0>; |
| |
| ub960_fpd3_1_in: endpoint { |
| remote-endpoint = <&ub953_1_out>; |
| }; |
| }; |
| |
| /* Port 1, Camera 1 */ |
| port@1 { |
| reg = <1>; |
| |
| ub960_fpd3_2_in: endpoint { |
| remote-endpoint = <&ub913_2_out>; |
| hsync-active = <0>; |
| vsync-active = <1>; |
| }; |
| }; |
| |
| /* Port 2, unconnected */ |
| port@2 { |
| reg = <2>; |
| }; |
| |
| /* Port 3, unconnected */ |
| port@3 { |
| reg = <3>; |
| }; |
| |
| /* Port 4, CSI-2 TX */ |
| port@4 { |
| reg = <4>; |
| ds90ub960_0_csi_out: endpoint { |
| data-lanes = <1 2 3 4>; |
| link-frequencies = /bits/ 64 <800000000>; |
| remote-endpoint = <&csi2_phy0>; |
| }; |
| }; |
| |
| /* Port 5, unconnected */ |
| port@5 { |
| reg = <5>; |
| }; |
| }; |
| |
| links { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| /* Link 0 has DS90UB953 serializer and IMX274 sensor */ |
| |
| link@0 { |
| reg = <0>; |
| i2c-alias = <0x44>; |
| |
| ti,rx-mode = <3>; |
| |
| serializer1: serializer { |
| compatible = "ti,ds90ub953-q1"; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| |
| #clock-cells = <0>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| ub953_1_in: endpoint { |
| data-lanes = <1 2 3 4>; |
| remote-endpoint = <&sensor_1_out>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| ub953_1_out: endpoint { |
| remote-endpoint = <&ub960_fpd3_1_in>; |
| }; |
| }; |
| }; |
| |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| sensor@1a { |
| compatible = "sony,imx274"; |
| reg = <0x1a>; |
| |
| reset-gpios = <&serializer1 0 GPIO_ACTIVE_LOW>; |
| |
| port { |
| sensor_1_out: endpoint { |
| remote-endpoint = <&ub953_1_in>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| }; /* End of link@0 */ |
| |
| /* Link 1 has DS90UB913 serializer and MT9V111 sensor */ |
| |
| link@1 { |
| reg = <1>; |
| i2c-alias = <0x45>; |
| |
| ti,rx-mode = <0>; |
| |
| serializer2: serializer { |
| compatible = "ti,ds90ub913a-q1"; |
| |
| gpio-controller; |
| #gpio-cells = <2>; |
| |
| clocks = <&clk_cam_48M>; |
| clock-names = "clkin"; |
| |
| #clock-cells = <0>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| ub913_2_in: endpoint { |
| remote-endpoint = <&sensor_2_out>; |
| pclk-sample = <1>; |
| }; |
| }; |
| |
| port@1 { |
| reg = <1>; |
| |
| ub913_2_out: endpoint { |
| remote-endpoint = <&ub960_fpd3_2_in>; |
| }; |
| }; |
| }; |
| |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| sensor@48 { |
| compatible = "aptina,mt9v111"; |
| reg = <0x48>; |
| |
| clocks = <&serializer2>; |
| |
| port { |
| sensor_2_out: endpoint { |
| remote-endpoint = <&ub913_2_in>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| }; /* End of link@1 */ |
| }; |
| }; |
| }; |
| ... |