Merge tag 'for-5.11/dm-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / rk3288-vmarc-som.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
4  * Copyright (c) 2019 Vamrs Limited
5  * Copyright (c) 2019 Amarula Solutions(India)
6  */
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/pinctrl/rockchip.h>
10
11 / {
12         compatible = "vamrs,rk3288-vmarc-som", "rockchip,rk3288";
13
14         vccio_flash: vccio-flash-regulator {
15                 compatible = "regulator-fixed";
16                 regulator-name = "vccio_flash";
17                 regulator-min-microvolt = <1800000>;
18                 regulator-max-microvolt = <1800000>;
19                 vin-supply = <&vcc_io>;
20         };
21 };
22
23 &emmc {
24         bus-width = <8>;
25         cap-mmc-highspeed;
26         disable-wp;
27         non-removable;
28         pinctrl-names = "default";
29         pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
30         vmmc-supply = <&vcc_io>;
31         vqmmc-supply = <&vccio_flash>;
32         status = "okay";
33 };
34
35 &gmac {
36         assigned-clocks = <&cru SCLK_MAC>;
37         phy-supply = <&vcc_io>;
38         snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
39 };
40
41 &hdmi {
42         ddc-i2c-bus = <&i2c5>;
43         pinctrl-names = "default";
44         pinctrl-0 = <&hdmi_cec_c0>;
45 };
46
47 &i2c0 {
48         clock-frequency = <400000>;
49         status = "okay";
50
51         rk808: pmic@1b {
52                 compatible = "rockchip,rk808";
53                 reg = <0x1b>;
54                 interrupt-parent = <&gpio0>;
55                 interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
56                 pinctrl-names = "default";
57                 pinctrl-0 = <&pmic_int &global_pwroff>;
58                 rockchip,system-power-controller;
59                 wakeup-source;
60                 #clock-cells = <1>;
61                 clock-output-names = "rk808-clkout1", "rk808-clkout2";
62
63                 vcc1-supply = <&vcc5v0_sys>;
64                 vcc2-supply = <&vcc5v0_sys>;
65                 vcc3-supply = <&vcc5v0_sys>;
66                 vcc4-supply = <&vcc5v0_sys>;
67                 vcc6-supply = <&vcc5v0_sys>;
68                 vcc7-supply = <&vcc5v0_sys>;
69                 vcc8-supply = <&vcc_io>;
70                 vcc9-supply = <&vcc_io>;
71                 vcc10-supply = <&vcc5v0_sys>;
72                 vcc11-supply = <&vcc5v0_sys>;
73                 vcc12-supply = <&vcc_io>;
74                 vddio-supply = <&vcc_io>;
75
76                 regulators {
77                         vdd_cpu: DCDC_REG1 {
78                                 regulator-name = "vdd_arm";
79                                 regulator-always-on;
80                                 regulator-boot-on;
81                                 regulator-min-microvolt = <750000>;
82                                 regulator-max-microvolt = <1400000>;
83                                 regulator-state-mem {
84                                         regulator-off-in-suspend;
85                                 };
86                         };
87
88                         vdd_gpu: DCDC_REG2 {
89                                 regulator-name = "vdd_gpu";
90                                 regulator-always-on;
91                                 regulator-boot-on;
92                                 regulator-min-microvolt = <850000>;
93                                 regulator-max-microvolt = <1250000>;
94                                 regulator-ramp-delay = <6000>;
95                                 regulator-state-mem {
96                                         regulator-off-in-suspend;
97                                 };
98                         };
99
100                         vcc_ddr: DCDC_REG3 {
101                                 regulator-name = "vcc_ddr";
102                                 regulator-always-on;
103                                 regulator-boot-on;
104                                 regulator-state-mem {
105                                         regulator-on-in-suspend;
106                                 };
107                         };
108
109                         vcc_io: DCDC_REG4 {
110                                 regulator-name = "vcc_io";
111                                 regulator-always-on;
112                                 regulator-boot-on;
113                                 regulator-min-microvolt = <3300000>;
114                                 regulator-max-microvolt = <3300000>;
115                                 regulator-state-mem {
116                                         regulator-on-in-suspend;
117                                         regulator-suspend-microvolt = <3300000>;
118                                 };
119                         };
120
121                         vcc_tp: LDO_REG1 {
122                                 regulator-name = "vcc_tp";
123                                 regulator-always-on;
124                                 regulator-boot-on;
125                                 regulator-min-microvolt = <3300000>;
126                                 regulator-max-microvolt = <3300000>;
127                                 regulator-state-mem {
128                                         regulator-off-in-suspend;
129                                 };
130                         };
131
132                         vcca_codec: LDO_REG2 {
133                                 regulator-name = "vcca_codec";
134                                 regulator-always-on;
135                                 regulator-boot-on;
136                                 regulator-min-microvolt = <3300000>;
137                                 regulator-max-microvolt = <3300000>;
138                                 regulator-state-mem {
139                                         regulator-on-in-suspend;
140                                         regulator-suspend-microvolt = <3300000>;
141                                 };
142                         };
143
144                         vdd_10: LDO_REG3 {
145                                 regulator-name = "vdd_10";
146                                 regulator-always-on;
147                                 regulator-boot-on;
148                                 regulator-min-microvolt = <1000000>;
149                                 regulator-max-microvolt = <1000000>;
150                                 regulator-state-mem {
151                                         regulator-on-in-suspend;
152                                         regulator-suspend-microvolt = <1000000>;
153                                 };
154                         };
155
156                         vcc_wl: LDO_REG4 {
157                                 regulator-name = "vcc_wl";
158                                 regulator-always-on;
159                                 regulator-boot-on;
160                                 regulator-min-microvolt = <1800000>;
161                                 regulator-max-microvolt = <1800000>;
162                                 regulator-state-mem {
163                                         regulator-on-in-suspend;
164                                 };
165                         };
166
167                         vccio_sd: LDO_REG5 {
168                                 regulator-name = "vccio_sd";
169                                 regulator-always-on;
170                                 regulator-boot-on;
171                                 regulator-min-microvolt = <1800000>;
172                                 regulator-max-microvolt = <3300000>;
173                                 regulator-state-mem {
174                                         regulator-on-in-suspend;
175                                         regulator-suspend-microvolt = <3300000>;
176                                 };
177                         };
178
179                         vdd10_lcd: LDO_REG6 {
180                                 regulator-name = "vdd10_lcd";
181                                 regulator-always-on;
182                                 regulator-boot-on;
183                                 regulator-min-microvolt = <1000000>;
184                                 regulator-max-microvolt = <1000000>;
185                                 regulator-state-mem {
186                                         regulator-off-in-suspend;
187                                 };
188                         };
189
190                         vcc_18: LDO_REG7 {
191                                 regulator-name = "vcc_18";
192                                 regulator-always-on;
193                                 regulator-boot-on;
194                                 regulator-min-microvolt = <1800000>;
195                                 regulator-max-microvolt = <1800000>;
196                                 regulator-state-mem {
197                                         regulator-on-in-suspend;
198                                         regulator-suspend-microvolt = <1800000>;
199                                 };
200                         };
201
202                         vcc18_lcd: LDO_REG8 {
203                                 regulator-name = "vcc18_lcd";
204                                 regulator-always-on;
205                                 regulator-boot-on;
206                                 regulator-min-microvolt = <1800000>;
207                                 regulator-max-microvolt = <1800000>;
208                                 regulator-state-mem {
209                                         regulator-off-in-suspend;
210                                 };
211                         };
212
213                         vcc_sd: SWITCH_REG1 {
214                                 regulator-name = "vcc_sd";
215                                 regulator-always-on;
216                                 regulator-boot-on;
217                                 regulator-state-mem {
218                                         regulator-off-in-suspend;
219                                 };
220                         };
221
222                         vcc_lcd: SWITCH_REG2 {
223                                 regulator-name = "vcc_lcd";
224                                 regulator-always-on;
225                                 regulator-boot-on;
226                                 regulator-state-mem {
227                                         regulator-off-in-suspend;
228                                 };
229                         };
230                 };
231         };
232 };
233
234 &i2c1 {
235         clock-frequency = <400000>;
236         status = "okay";
237
238         hym8563: rtc@51 {
239                 compatible = "haoyu,hym8563";
240                 reg = <0x51>;
241                 interrupt-parent = <&gpio5>;
242                 interrupts = <RK_PC3 IRQ_TYPE_LEVEL_LOW>;
243                 #clock-cells = <0>;
244                 clock-frequency = <32768>;
245                 clock-output-names = "hym8563";
246                 pinctrl-names = "default";
247                 pinctrl-0 = <&hym8563_int>;
248         };
249 };
250
251 &i2c5 {
252         status = "okay";
253 };
254
255 &io_domains {
256         bb-supply = <&vcc_io>;
257         flash0-supply = <&vccio_flash>;
258         gpio1830-supply = <&vcc_18>;
259         gpio30-supply = <&vcc_io>;
260         sdcard-supply = <&vccio_sd>;
261         wifi-supply = <&vcc_wl>;
262         status = "okay";
263 };
264
265 &pinctrl {
266         hym8563 {
267                 hym8563_int: hym8563-int {
268                         rockchip,pins = <5 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
269                 };
270         };
271
272         pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
273                 drive-strength = <8>;
274         };
275
276         pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
277                 bias-pull-up;
278                 drive-strength = <8>;
279         };
280
281         pmic {
282                 pmic_int: pmic-int {
283                         rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
284                 };
285         };
286
287         sdio-pwrseq {
288                 wifi_enable_h: wifi-enable-h {
289                         rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
290                 };
291         };
292
293         sdmmc {
294                 sdmmc_bus4: sdmmc-bus4 {
295                         rockchip,pins =
296                                 <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>,
297                                 <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>,
298                                 <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>,
299                                 <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>;
300                 };
301
302                 sdmmc_clk: sdmmc-clk {
303                         rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>;
304                 };
305
306                 sdmmc_cmd: sdmmc-cmd {
307                         rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>;
308                 };
309         };
310
311         vbus_host {
312                 usb1_en_oc: usb1-en-oc {
313                         rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
314                 };
315         };
316
317         vbus_typec {
318                 usb0_en_oc: usb0-en-oc {
319                         rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
320                 };
321         };
322 };
323
324 &sdio_pwrseq {
325         /*
326          * On the module itself this is one of these (depending
327          * on the actual card populated):
328          * - SDIO_RESET_L_WL_REG_ON
329          * - PDN (power down when low)
330          */
331         reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;  /* WIFI_REG_ON */
332 };
333
334 &usbphy {
335         status = "okay";
336 };
337
338 &usb_host0_ehci {
339         status = "okay";
340 };
341
342 &usb_host0_ohci {
343         status = "okay";
344 };
345
346 &usb_host1 {
347         status = "okay";
348 };
349
350 &usb_otg {
351         status = "okay";
352 };
353
354 &vbus_host {
355         enable-active-high;
356         gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; /* USB1_EN_OC# */
357 };
358
359 &vbus_typec {
360         enable-active-high;
361         gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; /* USB0_EN_OC# */
362 };