hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
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
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
 *
 */
 
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rockchip.h>
 
&i2c0 {
   status = "okay";
 
   rk809: pmic@20 {
       compatible = "rockchip,rk809";
       reg = <0x20>;
       interrupt-parent = <&gpio0>;
       interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
 
       pinctrl-names = "default", "pmic-sleep",
           "pmic-power-off", "pmic-reset";
       pinctrl-0 = <&pmic_int>;
       pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>;
       pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>;
       pinctrl-3 = <&soc_slppin_gpio>, <&rk817_slppin_rst>;
       rockchip,system-power-controller;
       wakeup-source;
       #clock-cells = <1>;
       clock-output-names = "rk808-clkout1", "rk808-clkout2";
       /* 1: rst regs (default in codes), 0: rst the pmic */
       pmic-reset-func = <0>;
       /* not save the PMIC_POWER_EN register in uboot */
       not-save-power-en = <1>;
 
       vcc1-supply = <&vcc3v3_sys>;
       vcc2-supply = <&vcc3v3_sys>;
       vcc3-supply = <&vcc3v3_sys>;
       vcc4-supply = <&vcc3v3_sys>;
       vcc5-supply = <&vcc3v3_sys>;
       vcc6-supply = <&vcc3v3_sys>;
       vcc7-supply = <&vcc3v3_sys>;
       vcc8-supply = <&vcc3v3_sys>;
       vcc9-supply = <&vcc3v3_sys>;
 
       pwrkey {
           status = "okay";
       };
 
       pinctrl_rk8xx: pinctrl_rk8xx {
           gpio-controller;
           #gpio-cells = <2>;
 
           rk817_slppin_null: rk817_slppin_null {
               pins = "gpio_slp";
               function = "pin_fun0";
           };
 
           rk817_slppin_slp: rk817_slppin_slp {
               pins = "gpio_slp";
               function = "pin_fun1";
           };
 
           rk817_slppin_pwrdn: rk817_slppin_pwrdn {
               pins = "gpio_slp";
               function = "pin_fun2";
           };
 
           rk817_slppin_rst: rk817_slppin_rst {
               pins = "gpio_slp";
               function = "pin_fun3";
           };
       };
 
       regulators {
           vdd_logic: DCDC_REG1 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <500000>;
               regulator-max-microvolt = <1350000>;
               regulator-init-microvolt = <900000>;
               regulator-ramp-delay = <6001>;
               regulator-initial-mode = <0x2>;
               regulator-name = "vdd_logic";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vdd_cpu: DCDC_REG2 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <500000>;
               regulator-max-microvolt = <1350000>;
               regulator-init-microvolt = <900000>;
               regulator-ramp-delay = <6001>;
               regulator-initial-mode = <0x2>;
               regulator-name = "vdd_cpu";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcc_ddr: DCDC_REG3 {
               regulator-always-on;
               regulator-boot-on;
               regulator-initial-mode = <0x2>;
               regulator-name = "vcc_ddr";
               regulator-state-mem {
                   regulator-on-in-suspend;
               };
           };
 
           vdd_gpu: DCDC_REG4 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <500000>;
               regulator-max-microvolt = <1350000>;
               regulator-init-microvolt = <900000>;
               regulator-ramp-delay = <6001>;
               regulator-initial-mode = <0x2>;
               regulator-name = "vdd_gpu";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcc2v8_dvp: LDO_REG1 {
               regulator-min-microvolt = <2800000>;
               regulator-max-microvolt = <2800000>;
               regulator-name = "vcc2v8_dvp";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vdda_0v9: LDO_REG2 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <900000>;
               regulator-max-microvolt = <900000>;
               regulator-name = "vdda_0v9";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vdda0v9_pmu: LDO_REG3 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <900000>;
               regulator-max-microvolt = <900000>;
               regulator-name = "vdda0v9_pmu";
               regulator-state-mem {
               regulator-on-in-suspend;
                   regulator-suspend-microvolt = <900000>;
               };
           };
 
           vccio_acodec: LDO_REG4 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <3000000>;
               regulator-max-microvolt = <3000000>;
               regulator-name = "vccio_acodec";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vccio_sd: LDO_REG5 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <3300000>;
               regulator-name = "vccio_sd";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcc3v3_pmu: LDO_REG6 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <3300000>;
               regulator-max-microvolt = <3300000>;
               regulator-name = "vcc3v3_pmu";
               regulator-state-mem {
                   regulator-on-in-suspend;
                   regulator-suspend-microvolt = <3300000>;
               };
           };
 
           vcca_1v8: LDO_REG7 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <1800000>;
               regulator-name = "vcca_1v8";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcca1v8_pmu: LDO_REG8 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <1800000>;
               regulator-name = "vcca1v8_pmu";
               regulator-state-mem {
               regulator-on-in-suspend;
                   regulator-suspend-microvolt = <1800000>;
               };
           };
 
           vcc1v8_dvp: LDO_REG9 {
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <1800000>;
               regulator-name = "vcc1v8_dvp";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcc_1v8: DCDC_REG5 {
               regulator-always-on;
               regulator-boot-on;
               regulator-min-microvolt = <1800000>;
               regulator-max-microvolt = <1800000>;
               regulator-name = "vcc_1v8";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcc_3v3: SWITCH_REG1 {
               regulator-always-on;
               regulator-boot-on;
               regulator-name = "vcc_3v3";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
 
           vcc3v3_sd: SWITCH_REG2 {
               regulator-always-on;
               regulator-boot-on;
               regulator-name = "vcc3v3_sd";
               regulator-state-mem {
                   regulator-off-in-suspend;
               };
           };
       };
 
       rk809_codec: codec {
           #sound-dai-cells = <1>;
           compatible = "rockchip,rk809-codec", "rockchip,rk817-codec";
           clocks = <&mclkout_sai0>;
           clock-names = "mclk";
           assigned-clocks = <&mclkout_sai0>;
           assigned-clock-rates = <12288000>;
           pinctrl-names = "default";
           pinctrl-0 = <&i2s0m0_mclk>;
           hp-volume = <20>;
           spk-volume = <3>;
           mic-in-differential;
           status = "okay";
       };
   };
};