blob: 5cdbc527a56036bae49b21f44cfc1aadbc1591b4 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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,tegra124-dpaux.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NVIDIA Tegra DisplayPort AUX Interface
8
9maintainers:
10 - Thierry Reding <thierry.reding@gmail.com>
11 - Jon Hunter <jonathanh@nvidia.com>
12
13description: |
14 The Tegra Display Port Auxiliary (DPAUX) pad controller manages two
15 pins which can be assigned to either the DPAUX channel or to an I2C
16 controller.
17
18 When configured for DisplayPort AUX operation, the DPAUX controller
19 can also be used to communicate with a DisplayPort device using the
20 AUX channel.
21
22properties:
23 $nodename:
24 pattern: "^dpaux@[0-9a-f]+$"
25
26 compatible:
27 oneOf:
28 - enum:
29 - nvidia,tegra124-dpaux
30 - nvidia,tegra210-dpaux
31 - nvidia,tegra186-dpaux
32 - nvidia,tegra194-dpaux
33
34 - items:
35 - const: nvidia,tegra132-dpaux
36 - const: nvidia,tegra124-dpaux
37
38 reg:
39 maxItems: 1
40
41 interrupts:
42 maxItems: 1
43
44 clocks:
45 items:
46 - description: clock input for the DPAUX hardware
47 - description: reference clock
48
49 clock-names:
50 items:
51 - const: dpaux
52 - const: parent
53
54 resets:
55 items:
56 - description: module reset
57
58 reset-names:
59 items:
60 - const: dpaux
61
62 power-domains:
63 maxItems: 1
64
65 i2c-bus:
66 description: Subnode where I2C slave devices are listed. This
67 subnode must be always present. If there are no I2C slave
68 devices, an empty node should be added. See ../../i2c/i2c.yaml
69 for more information.
70 type: object
71
72 aux-bus:
73 $ref: /schemas/display/dp-aux-bus.yaml#
74
75 vdd-supply:
76 description: phandle of a supply that powers the DisplayPort
77 link
78
79patternProperties:
80 "^pinmux-[a-z0-9]+$":
81 description:
82 Since only three configurations are possible, only three child
83 nodes are needed to describe the pin mux'ing options for the
84 DPAUX pads. Furthermore, given that the pad functions are only
85 applicable to a single set of pads, the child nodes only need
86 to describe the pad group the functions are being applied to
87 rather than the individual pads.
88 type: object
89 properties:
90 groups:
91 const: dpaux-io
92
93 function:
94 enum:
95 - aux
96 - i2c
97 - off
98
99 additionalProperties: false
100
101 required:
102 - groups
103 - function
104
105additionalProperties: false
106
107required:
108 - compatible
109 - reg
110 - interrupts
111 - clocks
112 - clock-names
113 - resets
114 - reset-names
115
116examples:
117 - |
118 #include <dt-bindings/clock/tegra210-car.h>
119 #include <dt-bindings/interrupt-controller/arm-gic.h>
120
121 dpaux: dpaux@545c0000 {
122 compatible = "nvidia,tegra210-dpaux";
123 reg = <0x545c0000 0x00040000>;
124 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
125 clocks = <&tegra_car TEGRA210_CLK_DPAUX>,
126 <&tegra_car TEGRA210_CLK_PLL_DP>;
127 clock-names = "dpaux", "parent";
128 resets = <&tegra_car 181>;
129 reset-names = "dpaux";
130 power-domains = <&pd_sor>;
131
132 state_dpaux_aux: pinmux-aux {
133 groups = "dpaux-io";
134 function = "aux";
135 };
136
137 state_dpaux_i2c: pinmux-i2c {
138 groups = "dpaux-io";
139 function = "i2c";
140 };
141
142 state_dpaux_off: pinmux-off {
143 groups = "dpaux-io";
144 function = "off";
145 };
146
147 i2c-bus {
148 #address-cells = <1>;
149 #size-cells = <0>;
150 };
151 };