xref: /freebsd/sys/contrib/device-tree/Bindings/display/tegra/nvidia,tegra20-dsi.yaml (revision fe75646a0234a261c0013bf1840fdac4acaf0cec)
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: true
51
52  power-domains:
53    maxItems: 1
54
55  avdd-dsi-csi-supply:
56    description: phandle of a supply that powers the DSI controller
57
58  nvidia,mipi-calibrate:
59    description: Should contain a phandle and a specifier specifying
60      which pads are used by this DSI output and need to be
61      calibrated. See nvidia,tegra114-mipi.yaml for details.
62    $ref: /schemas/types.yaml#/definitions/phandle-array
63
64  nvidia,ddc-i2c-bus:
65    description: phandle of an I2C controller used for DDC EDID
66      probing
67    $ref: /schemas/types.yaml#/definitions/phandle
68
69  nvidia,hpd-gpio:
70    description: specifies a GPIO used for hotplug detection
71    maxItems: 1
72
73  nvidia,edid:
74    description: supplies a binary EDID blob
75    $ref: /schemas/types.yaml#/definitions/uint8-array
76
77  nvidia,panel:
78    description: phandle of a display panel
79    $ref: /schemas/types.yaml#/definitions/phandle
80
81  nvidia,ganged-mode:
82    description: contains a phandle to a second DSI controller to
83      gang up with in order to support up to 8 data lanes
84    $ref: /schemas/types.yaml#/definitions/phandle
85
86allOf:
87  - $ref: ../dsi-controller.yaml#
88  - if:
89      properties:
90        compatible:
91          contains:
92            enum:
93              - nvidia,tegra20-dsi
94              - nvidia,tegra30-dsi
95    then:
96      properties:
97        clocks:
98          items:
99            - description: DSI module clock
100            - description: input for the pixel clock
101
102        clock-names:
103          items:
104            - const: dsi
105            - const: parent
106    else:
107      properties:
108        clocks:
109          items:
110            - description: DSI module clock
111            - description: low-power module clock
112            - description: input for the pixel clock
113
114        clock-names:
115          items:
116            - const: dsi
117            - const: lp
118            - const: parent
119
120  - if:
121      properties:
122        compatible:
123          contains:
124            const: nvidia,tegra186-dsi
125    then:
126      required:
127        - interrupts
128
129unevaluatedProperties: false
130
131required:
132  - compatible
133  - reg
134  - clocks
135  - clock-names
136  - resets
137  - reset-names
138
139examples:
140  - |
141    #include <dt-bindings/clock/tegra186-clock.h>
142    #include <dt-bindings/interrupt-controller/arm-gic.h>
143    #include <dt-bindings/power/tegra186-powergate.h>
144    #include <dt-bindings/reset/tegra186-reset.h>
145
146    dsi@15300000 {
147        compatible = "nvidia,tegra186-dsi";
148        reg = <0x15300000 0x10000>;
149        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
150        clocks = <&bpmp TEGRA186_CLK_DSI>,
151                 <&bpmp TEGRA186_CLK_DSIA_LP>,
152                 <&bpmp TEGRA186_CLK_PLLD>;
153        clock-names = "dsi", "lp", "parent";
154        resets = <&bpmp TEGRA186_RESET_DSI>;
155        reset-names = "dsi";
156
157        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
158    };
159