162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/i2c/ti,ds90ub960.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Texas Instruments DS90UB9XX Family FPD-Link Deserializer Hubs 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci The TI DS90UB9XX devices are FPD-Link video deserializers with I2C and GPIO 1462306a36Sopenharmony_ci forwarding. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciallOf: 1762306a36Sopenharmony_ci - $ref: /schemas/i2c/i2c-atr.yaml# 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciproperties: 2062306a36Sopenharmony_ci compatible: 2162306a36Sopenharmony_ci enum: 2262306a36Sopenharmony_ci - ti,ds90ub960-q1 2362306a36Sopenharmony_ci - ti,ds90ub9702-q1 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci reg: 2662306a36Sopenharmony_ci maxItems: 1 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci clocks: 2962306a36Sopenharmony_ci maxItems: 1 3062306a36Sopenharmony_ci description: 3162306a36Sopenharmony_ci Reference clock connected to the REFCLK pin. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci clock-names: 3462306a36Sopenharmony_ci items: 3562306a36Sopenharmony_ci - const: refclk 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci powerdown-gpios: 3862306a36Sopenharmony_ci maxItems: 1 3962306a36Sopenharmony_ci description: 4062306a36Sopenharmony_ci Specifier for the GPIO connected to the PDB pin. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci i2c-alias-pool: 4362306a36Sopenharmony_ci minItems: 1 4462306a36Sopenharmony_ci maxItems: 32 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci links: 4762306a36Sopenharmony_ci type: object 4862306a36Sopenharmony_ci additionalProperties: false 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci properties: 5162306a36Sopenharmony_ci '#address-cells': 5262306a36Sopenharmony_ci const: 1 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci '#size-cells': 5562306a36Sopenharmony_ci const: 0 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci ti,manual-strobe: 5862306a36Sopenharmony_ci type: boolean 5962306a36Sopenharmony_ci description: 6062306a36Sopenharmony_ci Enable manual strobe position and EQ level 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci patternProperties: 6362306a36Sopenharmony_ci '^link@[0-3]$': 6462306a36Sopenharmony_ci type: object 6562306a36Sopenharmony_ci additionalProperties: false 6662306a36Sopenharmony_ci properties: 6762306a36Sopenharmony_ci reg: 6862306a36Sopenharmony_ci description: The link number 6962306a36Sopenharmony_ci maxItems: 1 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci i2c-alias: 7262306a36Sopenharmony_ci description: 7362306a36Sopenharmony_ci The I2C address used for the serializer. Transactions to this 7462306a36Sopenharmony_ci address on the I2C bus where the deserializer resides are 7562306a36Sopenharmony_ci forwarded to the serializer. 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci ti,rx-mode: 7862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7962306a36Sopenharmony_ci enum: 8062306a36Sopenharmony_ci - 0 # RAW10 8162306a36Sopenharmony_ci - 1 # RAW12 HF 8262306a36Sopenharmony_ci - 2 # RAW12 LF 8362306a36Sopenharmony_ci - 3 # CSI2 SYNC 8462306a36Sopenharmony_ci - 4 # CSI2 NON-SYNC 8562306a36Sopenharmony_ci description: 8662306a36Sopenharmony_ci FPD-Link Input Mode. This should reflect the hardware and the 8762306a36Sopenharmony_ci default mode of the connected device. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci ti,cdr-mode: 9062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9162306a36Sopenharmony_ci enum: 9262306a36Sopenharmony_ci - 0 # FPD-Link III 9362306a36Sopenharmony_ci - 1 # FPD-Link IV 9462306a36Sopenharmony_ci description: 9562306a36Sopenharmony_ci FPD-Link CDR Mode. This should reflect the hardware and the 9662306a36Sopenharmony_ci default mode of the connected device. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci ti,strobe-pos: 9962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/int32 10062306a36Sopenharmony_ci minimum: -13 10162306a36Sopenharmony_ci maximum: 13 10262306a36Sopenharmony_ci description: Manual strobe position 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci ti,eq-level: 10562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10662306a36Sopenharmony_ci maximum: 14 10762306a36Sopenharmony_ci description: Manual EQ level 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci serializer: 11062306a36Sopenharmony_ci type: object 11162306a36Sopenharmony_ci description: FPD-Link Serializer node 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci required: 11462306a36Sopenharmony_ci - reg 11562306a36Sopenharmony_ci - i2c-alias 11662306a36Sopenharmony_ci - ti,rx-mode 11762306a36Sopenharmony_ci - serializer 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci ports: 12062306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/properties/ports 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci properties: 12362306a36Sopenharmony_ci port@0: 12462306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 12562306a36Sopenharmony_ci unevaluatedProperties: false 12662306a36Sopenharmony_ci description: FPD-Link input 0 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci properties: 12962306a36Sopenharmony_ci endpoint: 13062306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 13162306a36Sopenharmony_ci unevaluatedProperties: false 13262306a36Sopenharmony_ci description: 13362306a36Sopenharmony_ci Endpoint for FPD-Link port. If the RX mode for this port is RAW, 13462306a36Sopenharmony_ci hsync-active and vsync-active must be defined. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci port@1: 13762306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 13862306a36Sopenharmony_ci unevaluatedProperties: false 13962306a36Sopenharmony_ci description: FPD-Link input 1 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci properties: 14262306a36Sopenharmony_ci endpoint: 14362306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 14462306a36Sopenharmony_ci unevaluatedProperties: false 14562306a36Sopenharmony_ci description: 14662306a36Sopenharmony_ci Endpoint for FPD-Link port. If the RX mode for this port is RAW, 14762306a36Sopenharmony_ci hsync-active and vsync-active must be defined. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci port@2: 15062306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 15162306a36Sopenharmony_ci unevaluatedProperties: false 15262306a36Sopenharmony_ci description: FPD-Link input 2 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci properties: 15562306a36Sopenharmony_ci endpoint: 15662306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 15762306a36Sopenharmony_ci unevaluatedProperties: false 15862306a36Sopenharmony_ci description: 15962306a36Sopenharmony_ci Endpoint for FPD-Link port. If the RX mode for this port is RAW, 16062306a36Sopenharmony_ci hsync-active and vsync-active must be defined. 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci port@3: 16362306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 16462306a36Sopenharmony_ci unevaluatedProperties: false 16562306a36Sopenharmony_ci description: FPD-Link input 3 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci properties: 16862306a36Sopenharmony_ci endpoint: 16962306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 17062306a36Sopenharmony_ci unevaluatedProperties: false 17162306a36Sopenharmony_ci description: 17262306a36Sopenharmony_ci Endpoint for FPD-Link port. If the RX mode for this port is RAW, 17362306a36Sopenharmony_ci hsync-active and vsync-active must be defined. 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci port@4: 17662306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 17762306a36Sopenharmony_ci unevaluatedProperties: false 17862306a36Sopenharmony_ci description: CSI-2 Output 0 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci properties: 18162306a36Sopenharmony_ci endpoint: 18262306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 18362306a36Sopenharmony_ci unevaluatedProperties: false 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci properties: 18662306a36Sopenharmony_ci data-lanes: 18762306a36Sopenharmony_ci minItems: 1 18862306a36Sopenharmony_ci maxItems: 4 18962306a36Sopenharmony_ci link-frequencies: 19062306a36Sopenharmony_ci maxItems: 1 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci required: 19362306a36Sopenharmony_ci - data-lanes 19462306a36Sopenharmony_ci - link-frequencies 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci port@5: 19762306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 19862306a36Sopenharmony_ci unevaluatedProperties: false 19962306a36Sopenharmony_ci description: CSI-2 Output 1 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci properties: 20262306a36Sopenharmony_ci endpoint: 20362306a36Sopenharmony_ci $ref: /schemas/media/video-interfaces.yaml# 20462306a36Sopenharmony_ci unevaluatedProperties: false 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci properties: 20762306a36Sopenharmony_ci data-lanes: 20862306a36Sopenharmony_ci minItems: 1 20962306a36Sopenharmony_ci maxItems: 4 21062306a36Sopenharmony_ci link-frequencies: 21162306a36Sopenharmony_ci maxItems: 1 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci required: 21462306a36Sopenharmony_ci - data-lanes 21562306a36Sopenharmony_ci - link-frequencies 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci required: 21862306a36Sopenharmony_ci - port@0 21962306a36Sopenharmony_ci - port@1 22062306a36Sopenharmony_ci - port@2 22162306a36Sopenharmony_ci - port@3 22262306a36Sopenharmony_ci - port@4 22362306a36Sopenharmony_ci - port@5 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_cirequired: 22662306a36Sopenharmony_ci - compatible 22762306a36Sopenharmony_ci - reg 22862306a36Sopenharmony_ci - clocks 22962306a36Sopenharmony_ci - clock-names 23062306a36Sopenharmony_ci - ports 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ciunevaluatedProperties: false 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ciexamples: 23562306a36Sopenharmony_ci - | 23662306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci i2c { 23962306a36Sopenharmony_ci clock-frequency = <400000>; 24062306a36Sopenharmony_ci #address-cells = <1>; 24162306a36Sopenharmony_ci #size-cells = <0>; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci deser@3d { 24462306a36Sopenharmony_ci compatible = "ti,ds90ub960-q1"; 24562306a36Sopenharmony_ci reg = <0x3d>; 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci clock-names = "refclk"; 24862306a36Sopenharmony_ci clocks = <&fixed_clock>; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci powerdown-gpios = <&pca9555 7 GPIO_ACTIVE_LOW>; 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci i2c-alias-pool = <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>; 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci ports { 25562306a36Sopenharmony_ci #address-cells = <1>; 25662306a36Sopenharmony_ci #size-cells = <0>; 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci /* Port 0, Camera 0 */ 25962306a36Sopenharmony_ci port@0 { 26062306a36Sopenharmony_ci reg = <0>; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci ub960_fpd3_1_in: endpoint { 26362306a36Sopenharmony_ci remote-endpoint = <&ub953_1_out>; 26462306a36Sopenharmony_ci }; 26562306a36Sopenharmony_ci }; 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci /* Port 1, Camera 1 */ 26862306a36Sopenharmony_ci port@1 { 26962306a36Sopenharmony_ci reg = <1>; 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci ub960_fpd3_2_in: endpoint { 27262306a36Sopenharmony_ci remote-endpoint = <&ub913_2_out>; 27362306a36Sopenharmony_ci hsync-active = <0>; 27462306a36Sopenharmony_ci vsync-active = <1>; 27562306a36Sopenharmony_ci }; 27662306a36Sopenharmony_ci }; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci /* Port 2, unconnected */ 27962306a36Sopenharmony_ci port@2 { 28062306a36Sopenharmony_ci reg = <2>; 28162306a36Sopenharmony_ci }; 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ci /* Port 3, unconnected */ 28462306a36Sopenharmony_ci port@3 { 28562306a36Sopenharmony_ci reg = <3>; 28662306a36Sopenharmony_ci }; 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci /* Port 4, CSI-2 TX */ 28962306a36Sopenharmony_ci port@4 { 29062306a36Sopenharmony_ci reg = <4>; 29162306a36Sopenharmony_ci ds90ub960_0_csi_out: endpoint { 29262306a36Sopenharmony_ci data-lanes = <1 2 3 4>; 29362306a36Sopenharmony_ci link-frequencies = /bits/ 64 <800000000>; 29462306a36Sopenharmony_ci remote-endpoint = <&csi2_phy0>; 29562306a36Sopenharmony_ci }; 29662306a36Sopenharmony_ci }; 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ci /* Port 5, unconnected */ 29962306a36Sopenharmony_ci port@5 { 30062306a36Sopenharmony_ci reg = <5>; 30162306a36Sopenharmony_ci }; 30262306a36Sopenharmony_ci }; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci links { 30562306a36Sopenharmony_ci #address-cells = <1>; 30662306a36Sopenharmony_ci #size-cells = <0>; 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci /* Link 0 has DS90UB953 serializer and IMX274 sensor */ 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ci link@0 { 31162306a36Sopenharmony_ci reg = <0>; 31262306a36Sopenharmony_ci i2c-alias = <0x44>; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci ti,rx-mode = <3>; 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ci serializer1: serializer { 31762306a36Sopenharmony_ci compatible = "ti,ds90ub953-q1"; 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci gpio-controller; 32062306a36Sopenharmony_ci #gpio-cells = <2>; 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci #clock-cells = <0>; 32362306a36Sopenharmony_ci 32462306a36Sopenharmony_ci ports { 32562306a36Sopenharmony_ci #address-cells = <1>; 32662306a36Sopenharmony_ci #size-cells = <0>; 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci port@0 { 32962306a36Sopenharmony_ci reg = <0>; 33062306a36Sopenharmony_ci ub953_1_in: endpoint { 33162306a36Sopenharmony_ci data-lanes = <1 2 3 4>; 33262306a36Sopenharmony_ci remote-endpoint = <&sensor_1_out>; 33362306a36Sopenharmony_ci }; 33462306a36Sopenharmony_ci }; 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci port@1 { 33762306a36Sopenharmony_ci reg = <1>; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci ub953_1_out: endpoint { 34062306a36Sopenharmony_ci remote-endpoint = <&ub960_fpd3_1_in>; 34162306a36Sopenharmony_ci }; 34262306a36Sopenharmony_ci }; 34362306a36Sopenharmony_ci }; 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci i2c { 34662306a36Sopenharmony_ci #address-cells = <1>; 34762306a36Sopenharmony_ci #size-cells = <0>; 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci sensor@1a { 35062306a36Sopenharmony_ci compatible = "sony,imx274"; 35162306a36Sopenharmony_ci reg = <0x1a>; 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci reset-gpios = <&serializer1 0 GPIO_ACTIVE_LOW>; 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_ci port { 35662306a36Sopenharmony_ci sensor_1_out: endpoint { 35762306a36Sopenharmony_ci remote-endpoint = <&ub953_1_in>; 35862306a36Sopenharmony_ci }; 35962306a36Sopenharmony_ci }; 36062306a36Sopenharmony_ci }; 36162306a36Sopenharmony_ci }; 36262306a36Sopenharmony_ci }; 36362306a36Sopenharmony_ci }; /* End of link@0 */ 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_ci /* Link 1 has DS90UB913 serializer and MT9V111 sensor */ 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ci link@1 { 36862306a36Sopenharmony_ci reg = <1>; 36962306a36Sopenharmony_ci i2c-alias = <0x45>; 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci ti,rx-mode = <0>; 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci serializer2: serializer { 37462306a36Sopenharmony_ci compatible = "ti,ds90ub913a-q1"; 37562306a36Sopenharmony_ci 37662306a36Sopenharmony_ci gpio-controller; 37762306a36Sopenharmony_ci #gpio-cells = <2>; 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ci clocks = <&clk_cam_48M>; 38062306a36Sopenharmony_ci clock-names = "clkin"; 38162306a36Sopenharmony_ci 38262306a36Sopenharmony_ci #clock-cells = <0>; 38362306a36Sopenharmony_ci 38462306a36Sopenharmony_ci ports { 38562306a36Sopenharmony_ci #address-cells = <1>; 38662306a36Sopenharmony_ci #size-cells = <0>; 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci port@0 { 38962306a36Sopenharmony_ci reg = <0>; 39062306a36Sopenharmony_ci ub913_2_in: endpoint { 39162306a36Sopenharmony_ci remote-endpoint = <&sensor_2_out>; 39262306a36Sopenharmony_ci pclk-sample = <1>; 39362306a36Sopenharmony_ci }; 39462306a36Sopenharmony_ci }; 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ci port@1 { 39762306a36Sopenharmony_ci reg = <1>; 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ci ub913_2_out: endpoint { 40062306a36Sopenharmony_ci remote-endpoint = <&ub960_fpd3_2_in>; 40162306a36Sopenharmony_ci }; 40262306a36Sopenharmony_ci }; 40362306a36Sopenharmony_ci }; 40462306a36Sopenharmony_ci 40562306a36Sopenharmony_ci i2c { 40662306a36Sopenharmony_ci #address-cells = <1>; 40762306a36Sopenharmony_ci #size-cells = <0>; 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci sensor@48 { 41062306a36Sopenharmony_ci compatible = "aptina,mt9v111"; 41162306a36Sopenharmony_ci reg = <0x48>; 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci clocks = <&serializer2>; 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci port { 41662306a36Sopenharmony_ci sensor_2_out: endpoint { 41762306a36Sopenharmony_ci remote-endpoint = <&ub913_2_in>; 41862306a36Sopenharmony_ci }; 41962306a36Sopenharmony_ci }; 42062306a36Sopenharmony_ci }; 42162306a36Sopenharmony_ci }; 42262306a36Sopenharmony_ci }; 42362306a36Sopenharmony_ci }; /* End of link@1 */ 42462306a36Sopenharmony_ci }; 42562306a36Sopenharmony_ci }; 42662306a36Sopenharmony_ci }; 42762306a36Sopenharmony_ci... 428