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