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