On Fri, Dec 03, 2021 at 03:14:07PM +0100, Geert Uytterhoeven wrote: > Convert the Silicon Image sii902x HDMI bridge Device Tree binding > documentation to json-schema. > > Add missing sil,sii9022-cpi and sil,sii9022-tpi compatible values. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- > RFC as I do not know the meaning of the various ports subnodes. Is that too hard to figure out? There's no examples in the tree? > > v2: > - Rework sil,i2s-data-lanes, > - Add schema reference to ports. > --- > .../bindings/display/bridge/sii902x.txt | 78 ---------- > .../bindings/display/bridge/sil,sii9022.yaml | 133 ++++++++++++++++++ > 2 files changed, 133 insertions(+), 78 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/bridge/sii902x.txt > create mode 100644 Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml > > diff --git a/Documentation/devicetree/bindings/display/bridge/sii902x.txt b/Documentation/devicetree/bindings/display/bridge/sii902x.txt > deleted file mode 100644 > index 3bc760cc31cbbeee..0000000000000000 > --- a/Documentation/devicetree/bindings/display/bridge/sii902x.txt > +++ /dev/null > @@ -1,78 +0,0 @@ > -sii902x HDMI bridge bindings > - > -Required properties: > - - compatible: "sil,sii9022" > - - reg: i2c address of the bridge > - > -Optional properties: > - - interrupts: describe the interrupt line used to inform the host > - about hotplug events. > - - reset-gpios: OF device-tree gpio specification for RST_N pin. > - - iovcc-supply: I/O Supply Voltage (1.8V or 3.3V) > - - cvcc12-supply: Digital Core Supply Voltage (1.2V) > - > - HDMI audio properties: > - - #sound-dai-cells: <0> or <1>. <0> if only i2s or spdif pin > - is wired, <1> if the both are wired. HDMI audio is > - configured only if this property is found. > - - sil,i2s-data-lanes: Array of up to 4 integers with values of 0-3 > - Each integer indicates which i2s pin is connected to which > - audio fifo. The first integer selects i2s audio pin for the > - first audio fifo#0 (HDMI channels 1&2), second for fifo#1 > - (HDMI channels 3&4), and so on. There is 4 fifos and 4 i2s > - pins (SD0 - SD3). Any i2s pin can be connected to any fifo, > - but there can be no gaps. E.g. an i2s pin must be mapped to > - fifo#0 and fifo#1 before mapping a channel to fifo#2. Default > - value is <0>, describing SD0 pin beiging routed to hdmi audio > - fifo #0. > - - clocks: phandle and clock specifier for each clock listed in > - the clock-names property > - - clock-names: "mclk" > - Describes SII902x MCLK input. MCLK can be used to produce > - HDMI audio CTS values. This property follows > - Documentation/devicetree/bindings/clock/clock-bindings.txt > - consumer binding. > - > - If HDMI audio is configured the sii902x device becomes an I2S > - and/or spdif audio codec component (e.g a digital audio sink), > - that can be used in configuring a full audio devices with > - simple-card or audio-graph-card binding. See their binding > - documents on how to describe the way the sii902x device is > - connected to the rest of the audio system: > - Documentation/devicetree/bindings/sound/simple-card.yaml > - Documentation/devicetree/bindings/sound/audio-graph-card.yaml > - Note: In case of the audio-graph-card binding the used port > - index should be 3. At least the audio port was defined. > - > -Optional subnodes: > - - video input: this subnode can contain a video input port node > - to connect the bridge to a display controller output (See this > - documentation [1]). > - > -[1]: Documentation/devicetree/bindings/media/video-interfaces.txt > - > -Example: > - hdmi-bridge@39 { > - compatible = "sil,sii9022"; > - reg = <0x39>; > - reset-gpios = <&pioA 1 0>; > - iovcc-supply = <&v3v3_hdmi>; > - cvcc12-supply = <&v1v2_hdmi>; > - > - #sound-dai-cells = <0>; > - sil,i2s-data-lanes = < 0 1 2 >; > - clocks = <&mclk>; > - clock-names = "mclk"; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - > - port@0 { > - reg = <0>; > - bridge_in: endpoint { > - remote-endpoint = <&dc_out>; > - }; > - }; > - }; > - }; > diff --git a/Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml b/Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml > new file mode 100644 > index 0000000000000000..b39537f4fe8694ef > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/bridge/sil,sii9022.yaml > @@ -0,0 +1,133 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/bridge/sil,sii9022.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Silicon Image sii902x HDMI bridge > + > +maintainers: > + - Boris Brezillon <bbrezillon@xxxxxxxxxx> > + > +properties: > + compatible: > + oneOf: > + - items: > + - enum: > + - sil,sii9022-cpi > + - sil,sii9022-tpi > + - const: sil,sii9022 > + - const: sil,sii9022 > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + description: Interrupt line used to inform the host about hotplug events. > + > + reset-gpios: > + maxItems: 1 > + > + iovcc-supply: > + description: I/O Supply Voltage (1.8V or 3.3V) > + > + cvcc12-supply: > + description: Digital Core Supply Voltage (1.2V) > + > + '#sound-dai-cells': > + enum: [ 0, 1 ] > + description: | > + <0> if only i2s or spdif pin is wired, > + <1> if both are wired. > + HDMI audio is configured only if this property is found. > + If HDMI audio is configured the sii902x device becomes an I2S and/or > + spdif audio codec component (e.g. a digital audio sink), that can be used > + in configuring a full audio devices with simple-card or audio-graph-card > + binding. See their binding documents on how to describe the way the > + sii902x device is connected to the rest of the audio system: > + Documentation/devicetree/bindings/sound/simple-card.yaml > + Documentation/devicetree/bindings/sound/audio-graph-card.yaml > + Note: In case of the audio-graph-card binding the used port index should > + be 3. > + > + sil,i2s-data-lanes: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 4 > + uniqueItems: true > + items: > + enum: [ 0, 1, 2, 3 ] > + description: > + Each integer indicates which i2s pin is connected to which audio fifo. > + The first integer selects i2s audio pin for the first audio fifo#0 (HDMI > + channels 1&2), second for fifo#1 (HDMI channels 3&4), and so on. There > + are 4 fifos and 4 i2s pins (SD0 - SD3). Any i2s pin can be connected to > + any fifo, but there can be no gaps. E.g. an i2s pin must be mapped to > + fifo#0 and fifo#1 before mapping a channel to fifo#2. Default value is > + <0>, describing SD0 pin being routed to hdmi audio fifo #0. > + > + clocks: > + maxItems: 1 > + description: MCLK input. MCLK can be used to produce HDMI audio CTS values. > + > + clock-names: > + const: mclk > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + type: object $ref: /schemas/graph.yaml#/properties/port > + description: FIXME > + > + port@1: > + type: object $ref: /schemas/graph.yaml#/properties/port > + description: FIXME > + > + port@2: > + type: object > + description: FIXME > + > + port@3: > + type: object > + description: FIXME > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + hdmi-bridge@39 { > + compatible = "sil,sii9022"; > + reg = <0x39>; > + reset-gpios = <&pioA 1 0>; > + iovcc-supply = <&v3v3_hdmi>; > + cvcc12-supply = <&v1v2_hdmi>; > + > + #sound-dai-cells = <0>; > + sil,i2s-data-lanes = < 0 1 2 >; > + clocks = <&mclk>; > + clock-names = "mclk"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + bridge_in: endpoint { > + remote-endpoint = <&dc_out>; > + }; > + }; > + }; > + }; > + }; > -- > 2.25.1 > >