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/nxp,tda998x.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP TDA998x HDMI transmitter
8
9maintainers:
10  - Russell King <linux@armlinux.org.uk>
11
12properties:
13  compatible:
14    const: nxp,tda998x
15
16  reg:
17    maxItems: 1
18
19  interrupts:
20    maxItems: 1
21
22  video-ports:
23    $ref: /schemas/types.yaml#/definitions/uint32
24    default: 0x230145
25    maximum: 0xffffff
26    description:
27      24 bits value which defines how the video controller output is wired to
28      the TDA998x input.
29
30  audio-ports:
31    description:
32      Array of 2 values per DAI (Documentation/sound/soc/dai.rst).
33      The implementation allows one or two DAIs.
34      If two DAIs are defined, they must be of different type.
35    $ref: /schemas/types.yaml#/definitions/uint32-matrix
36    minItems: 1
37    maxItems: 2
38    items:
39      items:
40        - description: |
41            The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S
42            (see include/dt-bindings/display/tda998x.h).
43          enum: [ 1, 2 ]
44        - description:
45            The second value defines the tda998x AP_ENA reg content when the
46            DAI in question is used.
47          maximum: 0xff
48
49  '#sound-dai-cells':
50    enum: [ 0, 1 ]
51
52  nxp,calib-gpios:
53    maxItems: 1
54    description:
55      Calibration GPIO, which must correspond with the gpio used for the
56      TDA998x interrupt pin.
57
58  port:
59    $ref: /schemas/graph.yaml#/properties/port
60    description: Parallel input port
61
62  ports:
63    $ref: /schemas/graph.yaml#/properties/ports
64
65    properties:
66      port@0:
67        type: object
68        description: Parallel input port
69
70      port@1:
71        type: object
72        description: HDMI output port
73
74required:
75  - compatible
76  - reg
77
78oneOf:
79  - required:
80      - port
81  - required:
82      - ports
83
84additionalProperties: false
85
86examples:
87  - |
88    #include <dt-bindings/display/tda998x.h>
89    #include <dt-bindings/interrupt-controller/irq.h>
90
91    i2c {
92        #address-cells = <1>;
93        #size-cells = <0>;
94
95        tda998x: hdmi-encoder@70 {
96            compatible = "nxp,tda998x";
97            reg = <0x70>;
98            interrupt-parent = <&gpio0>;
99            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
100            video-ports = <0x230145>;
101
102            #sound-dai-cells = <1>;
103                         /* DAI-format / AP_ENA reg value */
104            audio-ports = <TDA998x_SPDIF 0x04>,
105                          <TDA998x_I2S 0x03>;
106
107            port {
108                tda998x_in: endpoint {
109                    remote-endpoint = <&lcdc_0>;
110                };
111            };
112        };
113    };
114