Re: [PATCH 3/3] [RFC] dt-bindings: display: bridge: nxp,tda998x: Convert to json-schema

Rob Herring
2021-10-29T01:04:52Z

On Thu, Oct 21, 2021 at 03:18:53PM +0200, Geert Uytterhoeven wrote:
> Convert the NXP TDA998x HDMI transmitter Device Tree binding
> documentation to json-schema.
>
> Add missing "#sound-dai-cells" property.
> Add ports hierarchy, as an alternative to port.
> Drop pinctrl properties, as they do not belong here.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> RFC as I do not know:
> 1. The correct value(s) for '#sound-dai-cells' (the example used 2,
> which was IMHO wrong, while all actual users use 0),
> 2. The meaning of the various ports subnodes.
> ---
> .../bindings/display/bridge/nxp,tda998x.yaml | 108 ++++++++++++++++++
> .../bindings/display/bridge/tda998x.txt | 54 ---------
> 2 files changed, 108 insertions(+), 54 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/bridge/nxp,tda998x.yaml
> delete mode 100644 Documentation/devicetree/bindings/display/bridge/tda998x.txt
>
> diff --git a/Documentation/devicetree/bindings/display/bridge/nxp,tda998x.yaml b/Documentation/devicetree/bindings/display/bridge/nxp,tda998x.yaml
> new file mode 100644
> index 0000000000000000..87c64edcf5d5617d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/bridge/nxp,tda998x.yaml
> @@ -0,0 +1,108 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/bridge/nxp,tda998x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP TDA998x HDMI transmitter
> +
> +maintainers:
> + - Russell King <linux@armlinux.org.uk>
> +
> +properties:
> + compatible:
> + const: nxp,tda998x
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + video-ports:
> + default: 0x230145
> + description:
> + 24 bits value which defines how the video controller output is wired to
> + the TDA998x input.

maximum: 0xffffff

(at least...)

> +
> + audio-ports:
> + description:
> + Array of 8-bit values, 2 values per DAI (Documentation/sound/soc/dai.rst).
> + The implementation allows one or two DAIs.
> + If two DAIs are defined, they must be of different type.
> + $ref: /schemas/types.yaml#/definitions/uint32-matrix
> + items:
> + minItems: 1
> + maxItems: 2
> + items:
> + - description: |
> + The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S
> + (see include/dt-bindings/display/tda998x.h).
> + - description:
> + The second value defines the tda998x AP_ENA reg content when the
> + DAI in question is used.
> +
> + '#sound-dai-cells':
> + enum: [ 0, 1 ]
> +
> + nxp,calib-gpios:
> + maxItems: 1
> + description:
> + Calibration GPIO, which must correspond with the gpio used for the
> + TDA998x interrupt pin.
> +
> + port:
> + $ref: /schemas/graph.yaml#/properties/port
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port@0:
> + type: object
> + description: FIXME

Looks like the input from the example

> +
> + port@1:
> + type: object
> + description: FIXME

Presumably the output to connector or another bridge.

> +
> +required:
> + - compatible
> + - reg
> +
> +oneOf:
> + - required:
> + - port
> + - required:
> + - ports
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/display/tda998x.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + tda998x: hdmi-encoder@70 {
> + compatible = "nxp,tda998x";
> + reg = <0x70>;
> + interrupt-parent = <&gpio0>;
> + interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
> + video-ports = <0x230145>;
> +
> + #sound-dai-cells = <1>;
> + /* DAI-format / AP_ENA reg value */
> + audio-ports = <TDA998x_SPDIF 0x04>,
> + <TDA998x_I2S 0x03>;
> +
> + port {
> + tda998x_in: endpoint {
> + remote-endpoint = <&lcdc_0>;
> + };
> + };
> + };
> + };