xref: /linux/Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml (revision e77a8005748547fb1f10645097f13ccdd804d7e5)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/bridge/sil,sii9022.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Silicon Image sii902x HDMI bridge
8
9maintainers:
10  - Boris Brezillon <bbrezillon@kernel.org>
11
12properties:
13  compatible:
14    oneOf:
15      - items:
16          - enum:
17              - sil,sii9022-cpi # CEC Programming Interface
18              - sil,sii9022-tpi # Transmitter Programming Interface
19          - const: sil,sii9022
20      - const: sil,sii9022
21
22  reg:
23    maxItems: 1
24
25  interrupts:
26    maxItems: 1
27    description: Interrupt line used to inform the host about hotplug events.
28
29  reset-gpios:
30    maxItems: 1
31
32  iovcc-supply:
33    description: I/O Supply Voltage (1.8V or 3.3V)
34
35  cvcc12-supply:
36    description: Digital Core Supply Voltage (1.2V)
37
38  '#sound-dai-cells':
39    enum: [ 0, 1 ]
40    description: |
41      <0> if only I2S or S/PDIF pin is wired,
42      <1> if both are wired.
43      HDMI audio is configured only if this property is found.
44      If HDMI audio is configured, the sii902x device becomes an I2S and/or
45      S/PDIF audio codec component (e.g. a digital audio sink), that can be
46      used in configuring full audio devices with simple-card or
47      audio-graph-card bindings. See their binding documents on how to describe
48      the way the
49      sii902x device is connected to the rest of the audio system:
50      Documentation/devicetree/bindings/sound/simple-card.yaml
51      Documentation/devicetree/bindings/sound/audio-graph-card.yaml
52      Note: In case of the audio-graph-card binding the used port index should
53      be 3.
54
55  sil,i2s-data-lanes:
56    $ref: /schemas/types.yaml#/definitions/uint32-array
57    minItems: 1
58    maxItems: 4
59    uniqueItems: true
60    items:
61      enum: [ 0, 1, 2, 3 ]
62    description:
63      Each integer indicates which I2S pin is connected to which audio FIFO.
64      The first integer selects the I2S audio pin for the first audio FIFO#0
65      (HDMI channels 1&2), the second for FIFO#1 (HDMI channels 3&4), and so
66      on. There are 4 FIFOs and 4 I2S pins (SD0 - SD3). Any I2S pin can be
67      connected to any FIFO, but there can be no gaps. E.g. an I2S pin must be
68      mapped to FIFO#0 and FIFO#1 before mapping a channel to FIFO#2. The
69      default value is <0>, describing SD0 pin being routed to HDMI audio
70      FIFO#0.
71
72  clocks:
73    maxItems: 1
74    description: MCLK input. MCLK can be used to produce HDMI audio CTS values.
75
76  clock-names:
77    const: mclk
78
79  ports:
80    $ref: /schemas/graph.yaml#/properties/ports
81
82    properties:
83      port@0:
84        unevaluatedProperties: false
85        $ref: /schemas/graph.yaml#/$defs/port-base
86        description: Parallel RGB input port
87
88        properties:
89          endpoint:
90            $ref: /schemas/graph.yaml#/$defs/endpoint-base
91            unevaluatedProperties: false
92
93            properties:
94              bus-width:
95                description:
96                  Endpoint bus width.
97                enum: [ 16, 18, 24 ]
98                default: 24
99
100      port@1:
101        $ref: /schemas/graph.yaml#/properties/port
102        description: HDMI output port
103
104      port@3:
105        $ref: /schemas/graph.yaml#/properties/port
106        description: Sound input port
107
108required:
109  - compatible
110  - reg
111
112additionalProperties: false
113
114examples:
115  - |
116    i2c {
117        #address-cells = <1>;
118        #size-cells = <0>;
119
120        hdmi-bridge@39 {
121            compatible = "sil,sii9022";
122            reg = <0x39>;
123            reset-gpios = <&pioA 1 0>;
124            iovcc-supply = <&v3v3_hdmi>;
125            cvcc12-supply = <&v1v2_hdmi>;
126
127            #sound-dai-cells = <0>;
128            sil,i2s-data-lanes = < 0 1 2 >;
129            clocks = <&mclk>;
130            clock-names = "mclk";
131
132            ports {
133                #address-cells = <1>;
134                #size-cells = <0>;
135
136                port@0 {
137                    reg = <0>;
138                    bridge_in: endpoint {
139                        remote-endpoint = <&dc_out>;
140                    };
141                };
142            };
143        };
144    };
145