Commit f06e4c9e authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Rob Herring
Browse files

dt-bindings: display: bridge: sil,sii9022: Convert to json-schema



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: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/2f8e12b4980a82788c1dd413ceedf8d144fdca91.1652967387.git.geert+renesas@glider.be
parent ef179366
Loading
Loading
Loading
Loading
+0 −78
Original line number Diff line number Diff line
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.

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>;
				};
			};
		};
	};
+131 −0
Original line number Diff line number Diff line
# 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@kernel.org>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - sil,sii9022-cpi # CEC Programming Interface
              - sil,sii9022-tpi # Transmitter Programming Interface
          - 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 S/PDIF 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
      S/PDIF audio codec component (e.g. a digital audio sink), that can be
      used in configuring full audio devices with simple-card or
      audio-graph-card bindings. 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 the I2S audio pin for the first audio FIFO#0
      (HDMI channels 1&2), the 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. The
      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:
        $ref: /schemas/graph.yaml#/properties/port
        description: Parallel RGB input port

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: HDMI output port

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description: Sound input port

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>;
                    };
                };
            };
        };
    };