1313e8b32STomi Valkeinen# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2313e8b32STomi Valkeinen%YAML 1.2 3313e8b32STomi Valkeinen--- 4313e8b32STomi Valkeinen$id: http://devicetree.org/schemas/media/i2c/ti,ds90ub960.yaml# 5313e8b32STomi Valkeinen$schema: http://devicetree.org/meta-schemas/core.yaml# 6313e8b32STomi Valkeinen 7313e8b32STomi Valkeinentitle: Texas Instruments DS90UB9XX Family FPD-Link Deserializer Hubs 8313e8b32STomi Valkeinen 9313e8b32STomi Valkeinenmaintainers: 10313e8b32STomi Valkeinen - Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> 11313e8b32STomi Valkeinen 12313e8b32STomi Valkeinendescription: 13313e8b32STomi Valkeinen The TI DS90UB9XX devices are FPD-Link video deserializers with I2C and GPIO 14313e8b32STomi Valkeinen forwarding. 15313e8b32STomi Valkeinen 16313e8b32STomi ValkeinenallOf: 17313e8b32STomi Valkeinen - $ref: /schemas/i2c/i2c-atr.yaml# 18313e8b32STomi Valkeinen 19313e8b32STomi Valkeinenproperties: 20313e8b32STomi Valkeinen compatible: 21313e8b32STomi Valkeinen enum: 22313e8b32STomi Valkeinen - ti,ds90ub960-q1 23313e8b32STomi Valkeinen - ti,ds90ub9702-q1 24313e8b32STomi Valkeinen 25313e8b32STomi Valkeinen reg: 26313e8b32STomi Valkeinen maxItems: 1 27313e8b32STomi Valkeinen 28313e8b32STomi Valkeinen clocks: 29313e8b32STomi Valkeinen maxItems: 1 30313e8b32STomi Valkeinen description: 31313e8b32STomi Valkeinen Reference clock connected to the REFCLK pin. 32313e8b32STomi Valkeinen 33313e8b32STomi Valkeinen clock-names: 34313e8b32STomi Valkeinen items: 35313e8b32STomi Valkeinen - const: refclk 36313e8b32STomi Valkeinen 37313e8b32STomi Valkeinen powerdown-gpios: 38313e8b32STomi Valkeinen maxItems: 1 39313e8b32STomi Valkeinen description: 40313e8b32STomi Valkeinen Specifier for the GPIO connected to the PDB pin. 41313e8b32STomi Valkeinen 42313e8b32STomi Valkeinen i2c-alias-pool: 43313e8b32STomi Valkeinen minItems: 1 44313e8b32STomi Valkeinen maxItems: 32 45313e8b32STomi Valkeinen 46313e8b32STomi Valkeinen links: 47313e8b32STomi Valkeinen type: object 48313e8b32STomi Valkeinen additionalProperties: false 49313e8b32STomi Valkeinen 50313e8b32STomi Valkeinen properties: 51313e8b32STomi Valkeinen '#address-cells': 52313e8b32STomi Valkeinen const: 1 53313e8b32STomi Valkeinen 54313e8b32STomi Valkeinen '#size-cells': 55313e8b32STomi Valkeinen const: 0 56313e8b32STomi Valkeinen 57313e8b32STomi Valkeinen ti,manual-strobe: 58313e8b32STomi Valkeinen type: boolean 59313e8b32STomi Valkeinen description: 60313e8b32STomi Valkeinen Enable manual strobe position and EQ level 61313e8b32STomi Valkeinen 62313e8b32STomi Valkeinen patternProperties: 63313e8b32STomi Valkeinen '^link@[0-3]$': 64313e8b32STomi Valkeinen type: object 65313e8b32STomi Valkeinen additionalProperties: false 66313e8b32STomi Valkeinen properties: 67313e8b32STomi Valkeinen reg: 68313e8b32STomi Valkeinen description: The link number 69313e8b32STomi Valkeinen maxItems: 1 70313e8b32STomi Valkeinen 71313e8b32STomi Valkeinen i2c-alias: 72*ba026ac3SRob Herring $ref: /schemas/types.yaml#/definitions/uint32 73313e8b32STomi Valkeinen description: 74313e8b32STomi Valkeinen The I2C address used for the serializer. Transactions to this 75313e8b32STomi Valkeinen address on the I2C bus where the deserializer resides are 76313e8b32STomi Valkeinen forwarded to the serializer. 77313e8b32STomi Valkeinen 78313e8b32STomi Valkeinen ti,rx-mode: 79313e8b32STomi Valkeinen $ref: /schemas/types.yaml#/definitions/uint32 80313e8b32STomi Valkeinen enum: 81313e8b32STomi Valkeinen - 0 # RAW10 82313e8b32STomi Valkeinen - 1 # RAW12 HF 83313e8b32STomi Valkeinen - 2 # RAW12 LF 84313e8b32STomi Valkeinen - 3 # CSI2 SYNC 85313e8b32STomi Valkeinen - 4 # CSI2 NON-SYNC 86313e8b32STomi Valkeinen description: 87313e8b32STomi Valkeinen FPD-Link Input Mode. This should reflect the hardware and the 88313e8b32STomi Valkeinen default mode of the connected device. 89313e8b32STomi Valkeinen 90313e8b32STomi Valkeinen ti,cdr-mode: 91313e8b32STomi Valkeinen $ref: /schemas/types.yaml#/definitions/uint32 92313e8b32STomi Valkeinen enum: 93313e8b32STomi Valkeinen - 0 # FPD-Link III 94313e8b32STomi Valkeinen - 1 # FPD-Link IV 95313e8b32STomi Valkeinen description: 96313e8b32STomi Valkeinen FPD-Link CDR Mode. This should reflect the hardware and the 97313e8b32STomi Valkeinen default mode of the connected device. 98313e8b32STomi Valkeinen 99313e8b32STomi Valkeinen ti,strobe-pos: 100313e8b32STomi Valkeinen $ref: /schemas/types.yaml#/definitions/int32 101313e8b32STomi Valkeinen minimum: -13 102313e8b32STomi Valkeinen maximum: 13 103313e8b32STomi Valkeinen description: Manual strobe position 104313e8b32STomi Valkeinen 105313e8b32STomi Valkeinen ti,eq-level: 106313e8b32STomi Valkeinen $ref: /schemas/types.yaml#/definitions/uint32 107313e8b32STomi Valkeinen maximum: 14 108313e8b32STomi Valkeinen description: Manual EQ level 109313e8b32STomi Valkeinen 110313e8b32STomi Valkeinen serializer: 111313e8b32STomi Valkeinen type: object 112313e8b32STomi Valkeinen description: FPD-Link Serializer node 113313e8b32STomi Valkeinen 114313e8b32STomi Valkeinen required: 115313e8b32STomi Valkeinen - reg 116313e8b32STomi Valkeinen - i2c-alias 117313e8b32STomi Valkeinen - ti,rx-mode 118313e8b32STomi Valkeinen - serializer 119313e8b32STomi Valkeinen 120313e8b32STomi Valkeinen ports: 121313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/properties/ports 122313e8b32STomi Valkeinen 123313e8b32STomi Valkeinen properties: 124313e8b32STomi Valkeinen port@0: 125313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/$defs/port-base 126313e8b32STomi Valkeinen unevaluatedProperties: false 127313e8b32STomi Valkeinen description: FPD-Link input 0 128313e8b32STomi Valkeinen 129313e8b32STomi Valkeinen properties: 130313e8b32STomi Valkeinen endpoint: 131313e8b32STomi Valkeinen $ref: /schemas/media/video-interfaces.yaml# 132313e8b32STomi Valkeinen unevaluatedProperties: false 133313e8b32STomi Valkeinen description: 134313e8b32STomi Valkeinen Endpoint for FPD-Link port. If the RX mode for this port is RAW, 135313e8b32STomi Valkeinen hsync-active and vsync-active must be defined. 136313e8b32STomi Valkeinen 137313e8b32STomi Valkeinen port@1: 138313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/$defs/port-base 139313e8b32STomi Valkeinen unevaluatedProperties: false 140313e8b32STomi Valkeinen description: FPD-Link input 1 141313e8b32STomi Valkeinen 142313e8b32STomi Valkeinen properties: 143313e8b32STomi Valkeinen endpoint: 144313e8b32STomi Valkeinen $ref: /schemas/media/video-interfaces.yaml# 145313e8b32STomi Valkeinen unevaluatedProperties: false 146313e8b32STomi Valkeinen description: 147313e8b32STomi Valkeinen Endpoint for FPD-Link port. If the RX mode for this port is RAW, 148313e8b32STomi Valkeinen hsync-active and vsync-active must be defined. 149313e8b32STomi Valkeinen 150313e8b32STomi Valkeinen port@2: 151313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/$defs/port-base 152313e8b32STomi Valkeinen unevaluatedProperties: false 153313e8b32STomi Valkeinen description: FPD-Link input 2 154313e8b32STomi Valkeinen 155313e8b32STomi Valkeinen properties: 156313e8b32STomi Valkeinen endpoint: 157313e8b32STomi Valkeinen $ref: /schemas/media/video-interfaces.yaml# 158313e8b32STomi Valkeinen unevaluatedProperties: false 159313e8b32STomi Valkeinen description: 160313e8b32STomi Valkeinen Endpoint for FPD-Link port. If the RX mode for this port is RAW, 161313e8b32STomi Valkeinen hsync-active and vsync-active must be defined. 162313e8b32STomi Valkeinen 163313e8b32STomi Valkeinen port@3: 164313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/$defs/port-base 165313e8b32STomi Valkeinen unevaluatedProperties: false 166313e8b32STomi Valkeinen description: FPD-Link input 3 167313e8b32STomi Valkeinen 168313e8b32STomi Valkeinen properties: 169313e8b32STomi Valkeinen endpoint: 170313e8b32STomi Valkeinen $ref: /schemas/media/video-interfaces.yaml# 171313e8b32STomi Valkeinen unevaluatedProperties: false 172313e8b32STomi Valkeinen description: 173313e8b32STomi Valkeinen Endpoint for FPD-Link port. If the RX mode for this port is RAW, 174313e8b32STomi Valkeinen hsync-active and vsync-active must be defined. 175313e8b32STomi Valkeinen 176313e8b32STomi Valkeinen port@4: 177313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/$defs/port-base 178313e8b32STomi Valkeinen unevaluatedProperties: false 179313e8b32STomi Valkeinen description: CSI-2 Output 0 180313e8b32STomi Valkeinen 181313e8b32STomi Valkeinen properties: 182313e8b32STomi Valkeinen endpoint: 183313e8b32STomi Valkeinen $ref: /schemas/media/video-interfaces.yaml# 184313e8b32STomi Valkeinen unevaluatedProperties: false 185313e8b32STomi Valkeinen 186313e8b32STomi Valkeinen properties: 187313e8b32STomi Valkeinen data-lanes: 188313e8b32STomi Valkeinen minItems: 1 189313e8b32STomi Valkeinen maxItems: 4 190313e8b32STomi Valkeinen link-frequencies: 191313e8b32STomi Valkeinen maxItems: 1 192313e8b32STomi Valkeinen 193313e8b32STomi Valkeinen required: 194313e8b32STomi Valkeinen - data-lanes 195313e8b32STomi Valkeinen - link-frequencies 196313e8b32STomi Valkeinen 197313e8b32STomi Valkeinen port@5: 198313e8b32STomi Valkeinen $ref: /schemas/graph.yaml#/$defs/port-base 199313e8b32STomi Valkeinen unevaluatedProperties: false 200313e8b32STomi Valkeinen description: CSI-2 Output 1 201313e8b32STomi Valkeinen 202313e8b32STomi Valkeinen properties: 203313e8b32STomi Valkeinen endpoint: 204313e8b32STomi Valkeinen $ref: /schemas/media/video-interfaces.yaml# 205313e8b32STomi Valkeinen unevaluatedProperties: false 206313e8b32STomi Valkeinen 207313e8b32STomi Valkeinen properties: 208313e8b32STomi Valkeinen data-lanes: 209313e8b32STomi Valkeinen minItems: 1 210313e8b32STomi Valkeinen maxItems: 4 211313e8b32STomi Valkeinen link-frequencies: 212313e8b32STomi Valkeinen maxItems: 1 213313e8b32STomi Valkeinen 214313e8b32STomi Valkeinen required: 215313e8b32STomi Valkeinen - data-lanes 216313e8b32STomi Valkeinen - link-frequencies 217313e8b32STomi Valkeinen 218313e8b32STomi Valkeinen required: 219313e8b32STomi Valkeinen - port@0 220313e8b32STomi Valkeinen - port@1 221313e8b32STomi Valkeinen - port@2 222313e8b32STomi Valkeinen - port@3 223313e8b32STomi Valkeinen - port@4 224313e8b32STomi Valkeinen - port@5 225313e8b32STomi Valkeinen 226313e8b32STomi Valkeinenrequired: 227313e8b32STomi Valkeinen - compatible 228313e8b32STomi Valkeinen - reg 229313e8b32STomi Valkeinen - clocks 230313e8b32STomi Valkeinen - clock-names 231313e8b32STomi Valkeinen - ports 232313e8b32STomi Valkeinen 233313e8b32STomi ValkeinenunevaluatedProperties: false 234313e8b32STomi Valkeinen 235313e8b32STomi Valkeinenexamples: 236313e8b32STomi Valkeinen - | 237313e8b32STomi Valkeinen #include <dt-bindings/gpio/gpio.h> 238313e8b32STomi Valkeinen 239313e8b32STomi Valkeinen i2c { 240313e8b32STomi Valkeinen clock-frequency = <400000>; 241313e8b32STomi Valkeinen #address-cells = <1>; 242313e8b32STomi Valkeinen #size-cells = <0>; 243313e8b32STomi Valkeinen 244313e8b32STomi Valkeinen deser@3d { 245313e8b32STomi Valkeinen compatible = "ti,ds90ub960-q1"; 246313e8b32STomi Valkeinen reg = <0x3d>; 247313e8b32STomi Valkeinen 248313e8b32STomi Valkeinen clock-names = "refclk"; 249313e8b32STomi Valkeinen clocks = <&fixed_clock>; 250313e8b32STomi Valkeinen 251313e8b32STomi Valkeinen powerdown-gpios = <&pca9555 7 GPIO_ACTIVE_LOW>; 252313e8b32STomi Valkeinen 253313e8b32STomi Valkeinen i2c-alias-pool = <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>; 254313e8b32STomi Valkeinen 255313e8b32STomi Valkeinen ports { 256313e8b32STomi Valkeinen #address-cells = <1>; 257313e8b32STomi Valkeinen #size-cells = <0>; 258313e8b32STomi Valkeinen 259313e8b32STomi Valkeinen /* Port 0, Camera 0 */ 260313e8b32STomi Valkeinen port@0 { 261313e8b32STomi Valkeinen reg = <0>; 262313e8b32STomi Valkeinen 263313e8b32STomi Valkeinen ub960_fpd3_1_in: endpoint { 264313e8b32STomi Valkeinen remote-endpoint = <&ub953_1_out>; 265313e8b32STomi Valkeinen }; 266313e8b32STomi Valkeinen }; 267313e8b32STomi Valkeinen 268313e8b32STomi Valkeinen /* Port 1, Camera 1 */ 269313e8b32STomi Valkeinen port@1 { 270313e8b32STomi Valkeinen reg = <1>; 271313e8b32STomi Valkeinen 272313e8b32STomi Valkeinen ub960_fpd3_2_in: endpoint { 273313e8b32STomi Valkeinen remote-endpoint = <&ub913_2_out>; 274313e8b32STomi Valkeinen hsync-active = <0>; 275313e8b32STomi Valkeinen vsync-active = <1>; 276313e8b32STomi Valkeinen }; 277313e8b32STomi Valkeinen }; 278313e8b32STomi Valkeinen 279313e8b32STomi Valkeinen /* Port 2, unconnected */ 280313e8b32STomi Valkeinen port@2 { 281313e8b32STomi Valkeinen reg = <2>; 282313e8b32STomi Valkeinen }; 283313e8b32STomi Valkeinen 284313e8b32STomi Valkeinen /* Port 3, unconnected */ 285313e8b32STomi Valkeinen port@3 { 286313e8b32STomi Valkeinen reg = <3>; 287313e8b32STomi Valkeinen }; 288313e8b32STomi Valkeinen 289313e8b32STomi Valkeinen /* Port 4, CSI-2 TX */ 290313e8b32STomi Valkeinen port@4 { 291313e8b32STomi Valkeinen reg = <4>; 292313e8b32STomi Valkeinen ds90ub960_0_csi_out: endpoint { 293313e8b32STomi Valkeinen data-lanes = <1 2 3 4>; 294313e8b32STomi Valkeinen link-frequencies = /bits/ 64 <800000000>; 295313e8b32STomi Valkeinen remote-endpoint = <&csi2_phy0>; 296313e8b32STomi Valkeinen }; 297313e8b32STomi Valkeinen }; 298313e8b32STomi Valkeinen 299313e8b32STomi Valkeinen /* Port 5, unconnected */ 300313e8b32STomi Valkeinen port@5 { 301313e8b32STomi Valkeinen reg = <5>; 302313e8b32STomi Valkeinen }; 303313e8b32STomi Valkeinen }; 304313e8b32STomi Valkeinen 305313e8b32STomi Valkeinen links { 306313e8b32STomi Valkeinen #address-cells = <1>; 307313e8b32STomi Valkeinen #size-cells = <0>; 308313e8b32STomi Valkeinen 309313e8b32STomi Valkeinen /* Link 0 has DS90UB953 serializer and IMX274 sensor */ 310313e8b32STomi Valkeinen 311313e8b32STomi Valkeinen link@0 { 312313e8b32STomi Valkeinen reg = <0>; 313313e8b32STomi Valkeinen i2c-alias = <0x44>; 314313e8b32STomi Valkeinen 315313e8b32STomi Valkeinen ti,rx-mode = <3>; 316313e8b32STomi Valkeinen 317313e8b32STomi Valkeinen serializer1: serializer { 318313e8b32STomi Valkeinen compatible = "ti,ds90ub953-q1"; 319313e8b32STomi Valkeinen 320313e8b32STomi Valkeinen gpio-controller; 321313e8b32STomi Valkeinen #gpio-cells = <2>; 322313e8b32STomi Valkeinen 323313e8b32STomi Valkeinen #clock-cells = <0>; 324313e8b32STomi Valkeinen 325313e8b32STomi Valkeinen ports { 326313e8b32STomi Valkeinen #address-cells = <1>; 327313e8b32STomi Valkeinen #size-cells = <0>; 328313e8b32STomi Valkeinen 329313e8b32STomi Valkeinen port@0 { 330313e8b32STomi Valkeinen reg = <0>; 331313e8b32STomi Valkeinen ub953_1_in: endpoint { 332313e8b32STomi Valkeinen data-lanes = <1 2 3 4>; 333313e8b32STomi Valkeinen remote-endpoint = <&sensor_1_out>; 334313e8b32STomi Valkeinen }; 335313e8b32STomi Valkeinen }; 336313e8b32STomi Valkeinen 337313e8b32STomi Valkeinen port@1 { 338313e8b32STomi Valkeinen reg = <1>; 339313e8b32STomi Valkeinen 340313e8b32STomi Valkeinen ub953_1_out: endpoint { 341313e8b32STomi Valkeinen remote-endpoint = <&ub960_fpd3_1_in>; 342313e8b32STomi Valkeinen }; 343313e8b32STomi Valkeinen }; 344313e8b32STomi Valkeinen }; 345313e8b32STomi Valkeinen 346313e8b32STomi Valkeinen i2c { 347313e8b32STomi Valkeinen #address-cells = <1>; 348313e8b32STomi Valkeinen #size-cells = <0>; 349313e8b32STomi Valkeinen 350313e8b32STomi Valkeinen sensor@1a { 351313e8b32STomi Valkeinen compatible = "sony,imx274"; 352313e8b32STomi Valkeinen reg = <0x1a>; 353313e8b32STomi Valkeinen 354313e8b32STomi Valkeinen reset-gpios = <&serializer1 0 GPIO_ACTIVE_LOW>; 355313e8b32STomi Valkeinen 356313e8b32STomi Valkeinen port { 357313e8b32STomi Valkeinen sensor_1_out: endpoint { 358313e8b32STomi Valkeinen remote-endpoint = <&ub953_1_in>; 359313e8b32STomi Valkeinen }; 360313e8b32STomi Valkeinen }; 361313e8b32STomi Valkeinen }; 362313e8b32STomi Valkeinen }; 363313e8b32STomi Valkeinen }; 364313e8b32STomi Valkeinen }; /* End of link@0 */ 365313e8b32STomi Valkeinen 366313e8b32STomi Valkeinen /* Link 1 has DS90UB913 serializer and MT9V111 sensor */ 367313e8b32STomi Valkeinen 368313e8b32STomi Valkeinen link@1 { 369313e8b32STomi Valkeinen reg = <1>; 370313e8b32STomi Valkeinen i2c-alias = <0x45>; 371313e8b32STomi Valkeinen 372313e8b32STomi Valkeinen ti,rx-mode = <0>; 373313e8b32STomi Valkeinen 374313e8b32STomi Valkeinen serializer2: serializer { 375313e8b32STomi Valkeinen compatible = "ti,ds90ub913a-q1"; 376313e8b32STomi Valkeinen 377313e8b32STomi Valkeinen gpio-controller; 378313e8b32STomi Valkeinen #gpio-cells = <2>; 379313e8b32STomi Valkeinen 380313e8b32STomi Valkeinen clocks = <&clk_cam_48M>; 381313e8b32STomi Valkeinen clock-names = "clkin"; 382313e8b32STomi Valkeinen 383313e8b32STomi Valkeinen #clock-cells = <0>; 384313e8b32STomi Valkeinen 385313e8b32STomi Valkeinen ports { 386313e8b32STomi Valkeinen #address-cells = <1>; 387313e8b32STomi Valkeinen #size-cells = <0>; 388313e8b32STomi Valkeinen 389313e8b32STomi Valkeinen port@0 { 390313e8b32STomi Valkeinen reg = <0>; 391313e8b32STomi Valkeinen ub913_2_in: endpoint { 392313e8b32STomi Valkeinen remote-endpoint = <&sensor_2_out>; 393313e8b32STomi Valkeinen pclk-sample = <1>; 394313e8b32STomi Valkeinen }; 395313e8b32STomi Valkeinen }; 396313e8b32STomi Valkeinen 397313e8b32STomi Valkeinen port@1 { 398313e8b32STomi Valkeinen reg = <1>; 399313e8b32STomi Valkeinen 400313e8b32STomi Valkeinen ub913_2_out: endpoint { 401313e8b32STomi Valkeinen remote-endpoint = <&ub960_fpd3_2_in>; 402313e8b32STomi Valkeinen }; 403313e8b32STomi Valkeinen }; 404313e8b32STomi Valkeinen }; 405313e8b32STomi Valkeinen 406313e8b32STomi Valkeinen i2c { 407313e8b32STomi Valkeinen #address-cells = <1>; 408313e8b32STomi Valkeinen #size-cells = <0>; 409313e8b32STomi Valkeinen 410313e8b32STomi Valkeinen sensor@48 { 411313e8b32STomi Valkeinen compatible = "aptina,mt9v111"; 412313e8b32STomi Valkeinen reg = <0x48>; 413313e8b32STomi Valkeinen 414313e8b32STomi Valkeinen clocks = <&serializer2>; 415313e8b32STomi Valkeinen 416313e8b32STomi Valkeinen port { 417313e8b32STomi Valkeinen sensor_2_out: endpoint { 418313e8b32STomi Valkeinen remote-endpoint = <&ub913_2_in>; 419313e8b32STomi Valkeinen }; 420313e8b32STomi Valkeinen }; 421313e8b32STomi Valkeinen }; 422313e8b32STomi Valkeinen }; 423313e8b32STomi Valkeinen }; 424313e8b32STomi Valkeinen }; /* End of link@1 */ 425313e8b32STomi Valkeinen }; 426313e8b32STomi Valkeinen }; 427313e8b32STomi Valkeinen }; 428313e8b32STomi Valkeinen... 429