1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/tegra/nvidia,tegra20-dsi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NVIDIA Tegra Display Serial Interface
8
9maintainers:
10  - Thierry Reding <thierry.reding@gmail.com>
11  - Jon Hunter <jonathanh@nvidia.com>
12
13properties:
14  compatible:
15    oneOf:
16      - enum:
17          - nvidia,tegra20-dsi
18          - nvidia,tegra30-dsi
19          - nvidia,tegra114-dsi
20          - nvidia,tegra124-dsi
21          - nvidia,tegra210-dsi
22          - nvidia,tegra186-dsi
23
24      - items:
25          - const: nvidia,tegra132-dsi
26          - const: nvidia,tegra124-dsi
27
28  reg:
29    maxItems: 1
30
31  interrupts:
32    maxItems: 1
33
34  clocks:
35    minItems: 2
36    maxItems: 3
37
38  clock-names:
39    minItems: 2
40    maxItems: 3
41
42  resets:
43    items:
44      - description: module reset
45
46  reset-names:
47    items:
48      - const: dsi
49
50  operating-points-v2:
51    $ref: "/schemas/types.yaml#/definitions/phandle"
52
53  power-domains:
54    maxItems: 1
55
56  avdd-dsi-csi-supply:
57    description: phandle of a supply that powers the DSI controller
58
59  nvidia,mipi-calibrate:
60    description: Should contain a phandle and a specifier specifying
61      which pads are used by this DSI output and need to be
62      calibrated. See nvidia,tegra114-mipi.yaml for details.
63    $ref: "/schemas/types.yaml#/definitions/phandle-array"
64
65  nvidia,ddc-i2c-bus:
66    description: phandle of an I2C controller used for DDC EDID
67      probing
68    $ref: "/schemas/types.yaml#/definitions/phandle"
69
70  nvidia,hpd-gpio:
71    description: specifies a GPIO used for hotplug detection
72    maxItems: 1
73
74  nvidia,edid:
75    description: supplies a binary EDID blob
76    $ref: "/schemas/types.yaml#/definitions/uint8-array"
77
78  nvidia,panel:
79    description: phandle of a display panel
80    $ref: "/schemas/types.yaml#/definitions/phandle"
81
82  nvidia,ganged-mode:
83    description: contains a phandle to a second DSI controller to
84      gang up with in order to support up to 8 data lanes
85    $ref: "/schemas/types.yaml#/definitions/phandle"
86
87allOf:
88  - $ref: "../dsi-controller.yaml#"
89  - if:
90      properties:
91        compatible:
92          contains:
93            enum:
94              - nvidia,tegra20-dsi
95              - nvidia,tegra30-dsi
96    then:
97      properties:
98        clocks:
99          items:
100            - description: DSI module clock
101            - description: input for the pixel clock
102
103        clock-names:
104          items:
105            - const: dsi
106            - const: parent
107    else:
108      properties:
109        clocks:
110          items:
111            - description: DSI module clock
112            - description: low-power module clock
113            - description: input for the pixel clock
114
115        clock-names:
116          items:
117            - const: dsi
118            - const: lp
119            - const: parent
120
121  - if:
122      properties:
123        compatible:
124          contains:
125            const: nvidia,tegra186-dsi
126    then:
127      required:
128        - interrupts
129
130unevaluatedProperties: false
131
132required:
133  - compatible
134  - reg
135  - clocks
136  - clock-names
137  - resets
138  - reset-names
139
140examples:
141  - |
142    #include <dt-bindings/clock/tegra186-clock.h>
143    #include <dt-bindings/interrupt-controller/arm-gic.h>
144    #include <dt-bindings/power/tegra186-powergate.h>
145    #include <dt-bindings/reset/tegra186-reset.h>
146
147    dsi@15300000 {
148        compatible = "nvidia,tegra186-dsi";
149        reg = <0x15300000 0x10000>;
150        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
151        clocks = <&bpmp TEGRA186_CLK_DSI>,
152                 <&bpmp TEGRA186_CLK_DSIA_LP>,
153                 <&bpmp TEGRA186_CLK_PLLD>;
154        clock-names = "dsi", "lp", "parent";
155        resets = <&bpmp TEGRA186_RESET_DSI>;
156        reset-names = "dsi";
157
158        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
159    };
160