hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/mfd/max77620.h>
 
#include "tegra210.dtsi"
 
/ {
   model = "NVIDIA Jetson TX1";
   compatible = "nvidia,p2180", "nvidia,tegra210";
 
   aliases {
       rtc0 = "/i2c@7000d000/pmic@3c";
       rtc1 = "/rtc@7000e000";
       serial0 = &uarta;
   };
 
   chosen {
       stdout-path = "serial0:115200n8";
   };
 
   memory@80000000 {
       device_type = "memory";
       reg = <0x0 0x80000000 0x1 0x0>;
   };
 
   gpu@57000000 {
       vdd-supply = <&vdd_gpu>;
   };
 
   /* debug port */
   serial@70006000 {
       status = "okay";
   };
 
   i2c@7000d000 {
       status = "okay";
       clock-frequency = <400000>;
 
       pmic: pmic@3c {
           compatible = "maxim,max77620";
           reg = <0x3c>;
           interrupt-parent = <&tegra_pmc>;
           interrupts = <51 IRQ_TYPE_LEVEL_LOW>;
 
           #interrupt-cells = <2>;
           interrupt-controller;
 
           #gpio-cells = <2>;
           gpio-controller;
 
           pinctrl-names = "default";
           pinctrl-0 = <&max77620_default>;
 
           max77620_default: pinmux {
               gpio0 {
                   pins = "gpio0";
                   function = "gpio";
               };
 
               gpio1 {
                   pins = "gpio1";
                   function = "fps-out";
                   drive-push-pull = <1>;
                   maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
                   maxim,active-fps-power-up-slot = <7>;
                   maxim,active-fps-power-down-slot = <0>;
               };
 
               gpio2_3 {
                   pins = "gpio2", "gpio3";
                   function = "fps-out";
                   drive-open-drain = <1>;
                   maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
               };
 
               gpio4 {
                   pins = "gpio4";
                   function = "32k-out1";
               };
 
               gpio5_6_7 {
                   pins = "gpio5", "gpio6", "gpio7";
                   function = "gpio";
                   drive-push-pull = <1>;
               };
           };
 
           fps {
               fps0 {
                   maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
                   maxim,suspend-fps-time-period-us = <1280>;
               };
 
               fps1 {
                   maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
                   maxim,suspend-fps-time-period-us = <1280>;
               };
 
               fps2 {
                   maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
               };
           };
 
           regulators {
               in-ldo0-1-supply = <&vdd_pre>;
               in-ldo7-8-supply = <&vdd_pre>;
               in-sd3-supply = <&vdd_5v0_sys>;
 
               vdd_soc: sd0 {
                   regulator-name = "VDD_SOC";
                   regulator-min-microvolt = <600000>;
                   regulator-max-microvolt = <1400000>;
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <146>;
                   regulator-ramp-delay = <27500>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
               };
 
               vdd_ddr: sd1 {
                   regulator-name = "VDD_DDR_1V1_PMIC";
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <130>;
                   regulator-ramp-delay = <27500>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
               };
 
               vdd_pre: sd2 {
                   regulator-name = "VDD_PRE_REG_1V35";
                   regulator-min-microvolt = <1350000>;
                   regulator-max-microvolt = <1350000>;
 
                   regulator-enable-ramp-delay = <176>;
                   regulator-ramp-delay = <27500>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
               };
 
               vdd_1v8: sd3 {
                   regulator-name = "VDD_1V8";
                   regulator-min-microvolt = <1800000>;
                   regulator-max-microvolt = <1800000>;
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <242>;
                   regulator-ramp-delay = <27500>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
               };
 
               vdd_sys_1v2: ldo0 {
                   regulator-name = "AVDD_SYS_1V2";
                   regulator-min-microvolt = <1200000>;
                   regulator-max-microvolt = <1200000>;
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <26>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
               };
 
               vdd_pex_1v05: ldo1 {
                   regulator-name = "VDD_PEX_1V05";
                   regulator-min-microvolt = <1050000>;
                   regulator-max-microvolt = <1050000>;
 
                   regulator-enable-ramp-delay = <22>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
               };
 
               vddio_sdmmc: ldo2 {
                   regulator-name = "VDDIO_SDMMC";
                   regulator-min-microvolt = <1800000>;
                   regulator-max-microvolt = <3300000>;
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <62>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
               };
 
               vdd_cam_hv: ldo3 {
                   regulator-name = "VDD_CAM_HV";
                   regulator-min-microvolt = <2800000>;
                   regulator-max-microvolt = <2800000>;
 
                   regulator-enable-ramp-delay = <50>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
               };
 
               vdd_rtc: ldo4 {
                   regulator-name = "VDD_RTC";
                   regulator-min-microvolt = <850000>;
                   regulator-max-microvolt = <850000>;
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <22>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
               };
 
               vdd_ts_hv: ldo5 {
                   regulator-name = "VDD_TS_HV";
                   regulator-min-microvolt = <3300000>;
                   regulator-max-microvolt = <3300000>;
 
                   regulator-enable-ramp-delay = <62>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
               };
 
               vdd_ts: ldo6 {
                   regulator-name = "VDD_TS_1V8";
                   regulator-min-microvolt = <1800000>;
                   regulator-max-microvolt = <1800000>;
 
                   regulator-enable-ramp-delay = <36>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
                   maxim,active-fps-power-up-slot = <7>;
                   maxim,active-fps-power-down-slot = <0>;
               };
 
               avdd_1v05_pll: ldo7 {
                   regulator-name = "AVDD_1V05_PLL";
                   regulator-min-microvolt = <1050000>;
                   regulator-max-microvolt = <1050000>;
                   regulator-always-on;
                   regulator-boot-on;
 
                   regulator-enable-ramp-delay = <24>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
               };
 
               avdd_1v05: ldo8 {
                   regulator-name = "AVDD_SATA_HDMI_DP_1V05";
                   regulator-min-microvolt = <1050000>;
                   regulator-max-microvolt = <1050000>;
 
                   regulator-enable-ramp-delay = <22>;
                   regulator-ramp-delay = <100000>;
 
                   maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
               };
           };
       };
   };
 
   i2c@7000c500 {
       status = "okay";
 
       /* module ID EEPROM */
       eeprom@50 {
           compatible = "atmel,24c02";
           reg = <0x50>;
 
           label = "module";
           vcc-supply = <&vdd_1v8>;
           address-width = <8>;
           pagesize = <8>;
           size = <256>;
           read-only;
       };
   };
 
   pmc@7000e400 {
       nvidia,invert-interrupt;
       nvidia,suspend-mode = <0>;
       nvidia,cpu-pwr-good-time = <0>;
       nvidia,cpu-pwr-off-time = <0>;
       nvidia,core-pwr-good-time = <4587 3876>;
       nvidia,core-pwr-off-time = <39065>;
       nvidia,core-power-req-active-high;
       nvidia,sys-clock-req-active-high;
   };
 
   /* eMMC */
   mmc@700b0600 {
       status = "okay";
       bus-width = <8>;
       non-removable;
       vqmmc-supply = <&vdd_1v8>;
   };
 
   clk32k_in: clock@0 {
       compatible = "fixed-clock";
       clock-frequency = <32768>;
       #clock-cells = <0>;
   };
 
   cpus {
       cpu@0 {
           enable-method = "psci";
       };
 
       cpu@1 {
           enable-method = "psci";
       };
 
       cpu@2 {
           enable-method = "psci";
       };
 
       cpu@3 {
           enable-method = "psci";
       };
 
       idle-states {
           cpu-sleep {
               status = "okay";
           };
       };
   };
 
   psci {
       compatible = "arm,psci-0.2";
       method = "smc";
   };
 
   vdd_gpu: regulator@100 {
       compatible = "pwm-regulator";
       pwms = <&pwm 1 8000>;
       regulator-name = "VDD_GPU";
       regulator-min-microvolt = <710000>;
       regulator-max-microvolt = <1320000>;
       enable-gpios = <&pmic 6 GPIO_ACTIVE_HIGH>;
       regulator-ramp-delay = <80>;
       regulator-enable-ramp-delay = <2000>;
       regulator-settling-time-us = <160>;
   };
};