1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/display/bridge/adi,adv7511.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Analog Devices ADV7511/11W/13 HDMI Encoders 8 9maintainers: 10 - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11 12description: | 13 The ADV7511, ADV7511W and ADV7513 are HDMI audio and video 14 transmitters compatible with HDMI 1.4 and DVI 1.0. They support color 15 space conversion, S/PDIF, CEC and HDCP. The transmitter input is 16 parallel RGB or YUV data. 17 18properties: 19 compatible: 20 enum: 21 - adi,adv7511 22 - adi,adv7511w 23 - adi,adv7513 24 25 reg: 26 description: | 27 I2C slave addresses. 28 29 The ADV7511/11W/13 internal registers are split into four pages 30 exposed through different I2C addresses, creating four register 31 maps. Each map has it own I2C address and acts as a standard slave 32 device on the I2C bus. The main address is mandatory, others are 33 optional and revert to defaults if not specified. 34 minItems: 1 35 maxItems: 4 36 37 reg-names: 38 description: 39 Names of maps with programmable addresses. It can contain any map 40 needing a non-default address. 41 minItems: 1 42 items: 43 - const: main 44 - const: edid 45 - const: cec 46 - const: packet 47 48 clocks: 49 description: Reference to the CEC clock. 50 maxItems: 1 51 52 clock-names: 53 const: cec 54 55 interrupts: 56 maxItems: 1 57 58 pd-gpios: 59 description: GPIO connected to the power down signal. 60 maxItems: 1 61 62 avdd-supply: 63 description: A 1.8V supply that powers up the AVDD pin. 64 65 dvdd-supply: 66 description: A 1.8V supply that powers up the DVDD pin. 67 68 pvdd-supply: 69 description: A 1.8V supply that powers up the PVDD pin. 70 71 dvdd-3v-supply: 72 description: A 3.3V supply that powers up the DVDD_3V pin. 73 74 bgvdd-supply: 75 description: A 1.8V supply that powers up the BGVDD pin. 76 77 adi,input-depth: 78 description: Number of bits per color component at the input. 79 $ref: /schemas/types.yaml#/definitions/uint32 80 enum: [ 8, 10, 12 ] 81 82 adi,input-colorspace: 83 description: Input color space. 84 enum: [ rgb, yuv422, yuv444 ] 85 86 adi,input-clock: 87 description: | 88 Input clock type. 89 "1x": one clock cycle per pixel 90 "2x": two clock cycles per pixel 91 "dd": one clock cycle per pixel, data driven on both edges 92 enum: [ 1x, 2x, dd ] 93 94 adi,clock-delay: 95 description: 96 Video data clock delay relative to the pixel clock, in ps 97 (-1200ps .. 1600 ps). 98 $ref: /schemas/types.yaml#/definitions/uint32 99 default: 0 100 101 adi,embedded-sync: 102 description: 103 If defined, the input uses synchronization signals embedded in the 104 data stream (similar to BT.656). 105 type: boolean 106 107 adi,input-style: 108 description: 109 Input components arrangement variant as listed in the input 110 format tables in the datasheet. 111 $ref: /schemas/types.yaml#/definitions/uint32 112 enum: [ 1, 2, 3 ] 113 114 adi,input-justification: 115 description: Input bit justification. 116 enum: [ left, evenly, right ] 117 118 ports: 119 description: 120 The ADV7511(W)/13 has two video ports and one audio port. 121 $ref: /schemas/graph.yaml#/properties/ports 122 123 properties: 124 port@0: 125 description: Video port for the RGB or YUV input. 126 $ref: /schemas/graph.yaml#/properties/port 127 128 port@1: 129 description: Video port for the HDMI output. 130 $ref: /schemas/graph.yaml#/properties/port 131 132 port@2: 133 description: Audio port for the HDMI output. 134 $ref: /schemas/graph.yaml#/properties/port 135 136# adi,input-colorspace and adi,input-clock are required except in 137# "rgb 1x" and "yuv444 1x" modes, in which case they must not be 138# specified. 139if: 140 not: 141 properties: 142 adi,input-colorspace: 143 contains: 144 enum: [ rgb, yuv444 ] 145 adi,input-clock: 146 contains: 147 const: 1x 148 149then: 150 required: 151 - adi,input-style 152 - adi,input-justification 153 154else: 155 properties: 156 adi,input-style: false 157 adi,input-justification: false 158 159 160required: 161 - compatible 162 - reg 163 - ports 164 - adi,input-depth 165 - adi,input-colorspace 166 - adi,input-clock 167 - avdd-supply 168 - dvdd-supply 169 - pvdd-supply 170 - dvdd-3v-supply 171 - bgvdd-supply 172 173additionalProperties: false 174 175examples: 176 - | 177 #include <dt-bindings/interrupt-controller/irq.h> 178 179 i2c@e6500000 { 180 #address-cells = <1>; 181 #size-cells = <0>; 182 183 reg = <0 0xe6500000>; 184 185 adv7511w: hdmi@39 { 186 compatible = "adi,adv7511w"; 187 /* 188 * The EDID page will be accessible on address 0x66 on the I2C 189 * bus. All other maps continue to use their default addresses. 190 */ 191 reg = <0x39>, <0x66>; 192 reg-names = "main", "edid"; 193 interrupt-parent = <&gpio3>; 194 interrupts = <29 IRQ_TYPE_EDGE_FALLING>; 195 clocks = <&cec_clock>; 196 clock-names = "cec"; 197 avdd-supply = <&v1v8>; 198 dvdd-supply = <&v1v8>; 199 pvdd-supply = <&v1v8>; 200 dvdd-3v-supply = <&v3v3>; 201 bgvdd-supply = <&v1v8>; 202 203 adi,input-depth = <8>; 204 adi,input-colorspace = "yuv422"; 205 adi,input-clock = "1x"; 206 207 adi,input-style = <3>; 208 adi,input-justification = "right"; 209 ports { 210 #address-cells = <1>; 211 #size-cells = <0>; 212 213 port@0 { 214 reg = <0>; 215 adv7511w_in: endpoint { 216 remote-endpoint = <&dpi_out>; 217 }; 218 }; 219 220 port@1 { 221 reg = <1>; 222 adv7511_out: endpoint { 223 remote-endpoint = <&hdmi_connector_in>; 224 }; 225 }; 226 227 port@2 { 228 reg = <2>; 229 codec_endpoint: endpoint { 230 remote-endpoint = <&i2s0_cpu_endpoint>; 231 }; 232 }; 233 }; 234 }; 235 }; 236 237... 238