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 8-bit values, 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    items:
37      minItems: 1
38      items:
39        - description: |
40            The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S
41            (see include/dt-bindings/display/tda998x.h).
42        - description:
43            The second value defines the tda998x AP_ENA reg content when the
44            DAI in question is used.
45
46  '#sound-dai-cells':
47    enum: [ 0, 1 ]
48
49  nxp,calib-gpios:
50    maxItems: 1
51    description:
52      Calibration GPIO, which must correspond with the gpio used for the
53      TDA998x interrupt pin.
54
55  port:
56    $ref: /schemas/graph.yaml#/properties/port
57    description: Parallel input port
58
59  ports:
60    $ref: /schemas/graph.yaml#/properties/ports
61
62    properties:
63      port@0:
64        type: object
65        description: Parallel input port
66
67      port@1:
68        type: object
69        description: HDMI output port
70
71required:
72  - compatible
73  - reg
74
75oneOf:
76  - required:
77      - port
78  - required:
79      - ports
80
81additionalProperties: false
82
83examples:
84  - |
85    #include <dt-bindings/display/tda998x.h>
86    #include <dt-bindings/interrupt-controller/irq.h>
87
88    i2c {
89        #address-cells = <1>;
90        #size-cells = <0>;
91
92        tda998x: hdmi-encoder@70 {
93            compatible = "nxp,tda998x";
94            reg = <0x70>;
95            interrupt-parent = <&gpio0>;
96            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
97            video-ports = <0x230145>;
98
99            #sound-dai-cells = <1>;
100                         /* DAI-format / AP_ENA reg value */
101            audio-ports = <TDA998x_SPDIF 0x04>,
102                          <TDA998x_I2S 0x03>;
103
104            port {
105                tda998x_in: endpoint {
106                    remote-endpoint = <&lcdc_0>;
107                };
108            };
109        };
110    };
111