148853353SJagan Teki// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
248853353SJagan Teki/*
348853353SJagan Teki * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
448853353SJagan Teki * Copyright (c) 2019 Vamrs Limited
548853353SJagan Teki * Copyright (c) 2019 Amarula Solutions(India)
648853353SJagan Teki */
748853353SJagan Teki
848853353SJagan Teki#include <dt-bindings/gpio/gpio.h>
948853353SJagan Teki#include <dt-bindings/pinctrl/rockchip.h>
1048853353SJagan Teki#include <dt-bindings/pwm/pwm.h>
1148853353SJagan Teki
1248853353SJagan Teki/ {
1348853353SJagan Teki	compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro";
1448853353SJagan Teki
1548853353SJagan Teki	clkin_gmac: external-gmac-clock {
1648853353SJagan Teki		compatible = "fixed-clock";
1748853353SJagan Teki		clock-frequency = <125000000>;
1848853353SJagan Teki		clock-output-names = "clkin_gmac";
1948853353SJagan Teki		#clock-cells = <0>;
2048853353SJagan Teki	};
2148853353SJagan Teki
2248853353SJagan Teki	vcc12v_dcin: vcc12v-dcin-regulator {
2348853353SJagan Teki		compatible = "regulator-fixed";
2448853353SJagan Teki		regulator-name = "vcc12v_dcin";
2548853353SJagan Teki		regulator-always-on;
2648853353SJagan Teki		regulator-boot-on;
2748853353SJagan Teki		regulator-min-microvolt = <12000000>;
2848853353SJagan Teki		regulator-max-microvolt = <12000000>;
2948853353SJagan Teki	};
3048853353SJagan Teki
3148853353SJagan Teki	vcc5v0_sys: vcc5v0-sys-regulator {
3248853353SJagan Teki		compatible = "regulator-fixed";
3348853353SJagan Teki		regulator-name = "vcc5v0_sys";
3448853353SJagan Teki		regulator-always-on;
3548853353SJagan Teki		regulator-boot-on;
3648853353SJagan Teki		regulator-min-microvolt = <5000000>;
3748853353SJagan Teki		regulator-max-microvolt = <5000000>;
3848853353SJagan Teki		vin-supply = <&vcc12v_dcin>;
3948853353SJagan Teki	};
4048853353SJagan Teki};
4148853353SJagan Teki
4248853353SJagan Teki&cpu_l0 {
4348853353SJagan Teki	cpu-supply = <&vdd_cpu_l>;
4448853353SJagan Teki};
4548853353SJagan Teki
4648853353SJagan Teki&cpu_l1 {
4748853353SJagan Teki	cpu-supply = <&vdd_cpu_l>;
4848853353SJagan Teki};
4948853353SJagan Teki
5048853353SJagan Teki&cpu_l2 {
5148853353SJagan Teki	cpu-supply = <&vdd_cpu_l>;
5248853353SJagan Teki};
5348853353SJagan Teki
5448853353SJagan Teki&cpu_l3 {
5548853353SJagan Teki	cpu-supply = <&vdd_cpu_l>;
5648853353SJagan Teki};
5748853353SJagan Teki
5848853353SJagan Teki&emmc_phy {
5948853353SJagan Teki	status = "okay";
6048853353SJagan Teki};
6148853353SJagan Teki
6248853353SJagan Teki&gmac {
6348853353SJagan Teki	assigned-clocks = <&cru SCLK_RMII_SRC>;
6448853353SJagan Teki	assigned-clock-parents = <&clkin_gmac>;
6548853353SJagan Teki	clock_in_out = "input";
6648853353SJagan Teki	phy-supply = <&vcc_lan>;
6748853353SJagan Teki	phy-mode = "rgmii";
6848853353SJagan Teki	pinctrl-names = "default";
6948853353SJagan Teki	pinctrl-0 = <&rgmii_pins>;
7048853353SJagan Teki	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
7148853353SJagan Teki	snps,reset-active-low;
7248853353SJagan Teki	snps,reset-delays-us = <0 10000 50000>;
7348853353SJagan Teki	tx_delay = <0x28>;
7448853353SJagan Teki	rx_delay = <0x11>;
7548853353SJagan Teki};
7648853353SJagan Teki
7748853353SJagan Teki&i2c0 {
7848853353SJagan Teki	clock-frequency = <400000>;
7948853353SJagan Teki	i2c-scl-falling-time-ns = <30>;
803047b384SJagan Teki	i2c-scl-rising-time-ns = <180>;
8148853353SJagan Teki	status = "okay";
8248853353SJagan Teki
8348853353SJagan Teki	rk809: pmic@20 {
8448853353SJagan Teki		compatible = "rockchip,rk809";
8548853353SJagan Teki		reg = <0x20>;
8648853353SJagan Teki		interrupt-parent = <&gpio1>;
8748853353SJagan Teki		interrupts = <RK_PC2 IRQ_TYPE_LEVEL_LOW>;
8848853353SJagan Teki		#clock-cells = <1>;
8948853353SJagan Teki		clock-output-names = "rk808-clkout1", "rk808-clkout2";
9048853353SJagan Teki		pinctrl-names = "default";
9148853353SJagan Teki		pinctrl-0 = <&pmic_int_l>;
9248853353SJagan Teki		rockchip,system-power-controller;
9348853353SJagan Teki		wakeup-source;
9448853353SJagan Teki
9548853353SJagan Teki		vcc1-supply = <&vcc5v0_sys>;
9648853353SJagan Teki		vcc2-supply = <&vcc5v0_sys>;
9748853353SJagan Teki		vcc3-supply = <&vcc5v0_sys>;
9848853353SJagan Teki		vcc4-supply = <&vcc5v0_sys>;
9948853353SJagan Teki		vcc5-supply = <&vcc_buck5>;
10048853353SJagan Teki		vcc6-supply = <&vcc_buck5>;
10148853353SJagan Teki		vcc7-supply = <&vcc5v0_sys>;
10248853353SJagan Teki		vcc8-supply = <&vcc3v3_sys>;
10348853353SJagan Teki		vcc9-supply = <&vcc5v0_sys>;
10448853353SJagan Teki
10548853353SJagan Teki		regulators {
10648853353SJagan Teki			vdd_log: DCDC_REG1 {
10748853353SJagan Teki				regulator-name = "vdd_log";
10848853353SJagan Teki				regulator-always-on;
10948853353SJagan Teki				regulator-boot-on;
11048853353SJagan Teki				regulator-min-microvolt = <750000>;
11148853353SJagan Teki				regulator-max-microvolt = <1350000>;
11248853353SJagan Teki				regulator-initial-mode = <0x2>;
11348853353SJagan Teki				regulator-state-mem {
11448853353SJagan Teki					regulator-off-in-suspend;
11548853353SJagan Teki					regulator-suspend-microvolt = <900000>;
11648853353SJagan Teki				};
11748853353SJagan Teki			};
11848853353SJagan Teki
11948853353SJagan Teki			vdd_cpu_l: DCDC_REG2 {
12048853353SJagan Teki				regulator-name = "vdd_cpu_l";
12148853353SJagan Teki				regulator-always-on;
12248853353SJagan Teki				regulator-boot-on;
12348853353SJagan Teki				regulator-min-microvolt = <750000>;
12448853353SJagan Teki				regulator-max-microvolt = <1350000>;
12548853353SJagan Teki				regulator-ramp-delay = <6001>;
12648853353SJagan Teki				regulator-initial-mode = <0x2>;
12748853353SJagan Teki				regulator-state-mem {
12848853353SJagan Teki					regulator-off-in-suspend;
12948853353SJagan Teki				};
13048853353SJagan Teki			};
13148853353SJagan Teki
13248853353SJagan Teki			vcc_ddr: DCDC_REG3 {
13348853353SJagan Teki				regulator-name = "vcc_ddr";
13448853353SJagan Teki				regulator-always-on;
13548853353SJagan Teki				regulator-boot-on;
13648853353SJagan Teki				regulator-initial-mode = <0x2>;
13748853353SJagan Teki				regulator-state-mem {
13848853353SJagan Teki					regulator-on-in-suspend;
13948853353SJagan Teki				};
14048853353SJagan Teki			};
14148853353SJagan Teki
14248853353SJagan Teki			vcc3v3_sys: DCDC_REG4 {
14348853353SJagan Teki				regulator-name = "vcc3v3_sys";
14448853353SJagan Teki				regulator-always-on;
14548853353SJagan Teki				regulator-boot-on;
14648853353SJagan Teki				regulator-min-microvolt = <3300000>;
14748853353SJagan Teki				regulator-max-microvolt = <3300000>;
14848853353SJagan Teki				regulator-initial-mode = <0x2>;
14948853353SJagan Teki				regulator-state-mem {
15048853353SJagan Teki					regulator-on-in-suspend;
15148853353SJagan Teki					regulator-suspend-microvolt = <3300000>;
15248853353SJagan Teki				};
15348853353SJagan Teki			};
15448853353SJagan Teki
15548853353SJagan Teki			vcc_buck5: DCDC_REG5 {
15648853353SJagan Teki				regulator-name = "vcc_buck5";
15748853353SJagan Teki				regulator-always-on;
15848853353SJagan Teki				regulator-boot-on;
15948853353SJagan Teki				regulator-min-microvolt = <2200000>;
16048853353SJagan Teki				regulator-max-microvolt = <2200000>;
16148853353SJagan Teki				regulator-state-mem {
16248853353SJagan Teki					regulator-on-in-suspend;
16348853353SJagan Teki					regulator-suspend-microvolt = <2200000>;
16448853353SJagan Teki				};
16548853353SJagan Teki			};
16648853353SJagan Teki
16748853353SJagan Teki			vcca_0v9: LDO_REG1 {
16848853353SJagan Teki				regulator-name = "vcca_0v9";
16948853353SJagan Teki				regulator-always-on;
17048853353SJagan Teki				regulator-boot-on;
17148853353SJagan Teki				regulator-min-microvolt = <900000>;
17248853353SJagan Teki				regulator-max-microvolt = <900000>;
17348853353SJagan Teki				regulator-state-mem {
17448853353SJagan Teki					regulator-off-in-suspend;
17548853353SJagan Teki				};
17648853353SJagan Teki			};
17748853353SJagan Teki
17848853353SJagan Teki			vcc_1v8: LDO_REG2 {
17948853353SJagan Teki				regulator-name = "vcc_1v8";
18048853353SJagan Teki				regulator-always-on;
18148853353SJagan Teki				regulator-boot-on;
18248853353SJagan Teki				regulator-min-microvolt = <1800000>;
18348853353SJagan Teki				regulator-max-microvolt = <1800000>;
18448853353SJagan Teki				regulator-state-mem {
18548853353SJagan Teki					regulator-on-in-suspend;
18648853353SJagan Teki					regulator-suspend-microvolt = <1800000>;
18748853353SJagan Teki				};
18848853353SJagan Teki			};
18948853353SJagan Teki
19048853353SJagan Teki			vcc_0v9: LDO_REG3 {
19148853353SJagan Teki				regulator-name = "vcc_0v9";
19248853353SJagan Teki				regulator-always-on;
19348853353SJagan Teki				regulator-boot-on;
19448853353SJagan Teki				regulator-min-microvolt = <900000>;
19548853353SJagan Teki				regulator-max-microvolt = <900000>;
19648853353SJagan Teki				regulator-state-mem {
19748853353SJagan Teki					regulator-on-in-suspend;
19848853353SJagan Teki					regulator-suspend-microvolt = <900000>;
19948853353SJagan Teki				};
20048853353SJagan Teki			};
20148853353SJagan Teki
20248853353SJagan Teki			vcca_1v8: LDO_REG4 {
20348853353SJagan Teki				regulator-name = "vcca_1v8";
20448853353SJagan Teki				regulator-always-on;
20548853353SJagan Teki				regulator-boot-on;
20648853353SJagan Teki				regulator-min-microvolt = <1850000>;
20748853353SJagan Teki				regulator-max-microvolt = <1850000>;
20848853353SJagan Teki				regulator-state-mem {
20948853353SJagan Teki					regulator-off-in-suspend;
21048853353SJagan Teki				};
21148853353SJagan Teki			};
21248853353SJagan Teki
21348853353SJagan Teki			/*
21448853353SJagan Teki			 * As per BSP, but schematic not showing any regulator
21548853353SJagan Teki			 * pin for LD05.
21648853353SJagan Teki			 */
21748853353SJagan Teki			vdd1v5_dvp: LDO_REG5 {
21848853353SJagan Teki				regulator-name = "vdd1v5_dvp";
21948853353SJagan Teki				regulator-always-on;
22048853353SJagan Teki				regulator-boot-on;
22148853353SJagan Teki				regulator-min-microvolt = <1500000>;
22248853353SJagan Teki				regulator-max-microvolt = <1500000>;
22348853353SJagan Teki				regulator-state-mem {
22448853353SJagan Teki					regulator-off-in-suspend;
22548853353SJagan Teki				};
22648853353SJagan Teki			};
22748853353SJagan Teki
22848853353SJagan Teki			vcc_1v5: LDO_REG6 {
22948853353SJagan Teki				regulator-name = "vcc_1v5";
23048853353SJagan Teki				regulator-always-on;
23148853353SJagan Teki				regulator-boot-on;
23248853353SJagan Teki				regulator-min-microvolt = <1500000>;
23348853353SJagan Teki				regulator-max-microvolt = <1500000>;
23448853353SJagan Teki				regulator-state-mem {
23548853353SJagan Teki					regulator-off-in-suspend;
23648853353SJagan Teki				};
23748853353SJagan Teki			};
23848853353SJagan Teki
23948853353SJagan Teki			vccio_3v0: LDO_REG7 {
24048853353SJagan Teki				regulator-name = "vccio_3v0";
24148853353SJagan Teki				regulator-always-on;
24248853353SJagan Teki				regulator-boot-on;
24348853353SJagan Teki				regulator-min-microvolt = <3000000>;
24448853353SJagan Teki				regulator-max-microvolt = <3000000>;
24548853353SJagan Teki				regulator-state-mem {
24648853353SJagan Teki					regulator-off-in-suspend;
24748853353SJagan Teki				};
24848853353SJagan Teki			};
24948853353SJagan Teki
25048853353SJagan Teki			vccio_sd: LDO_REG8 {
25148853353SJagan Teki				regulator-name = "vccio_sd";
25248853353SJagan Teki				regulator-always-on;
25348853353SJagan Teki				regulator-boot-on;
25448853353SJagan Teki				regulator-min-microvolt = <1800000>;
25548853353SJagan Teki				regulator-max-microvolt = <3300000>;
25648853353SJagan Teki				regulator-state-mem {
25748853353SJagan Teki					regulator-off-in-suspend;
25848853353SJagan Teki				};
25948853353SJagan Teki			};
26048853353SJagan Teki
26148853353SJagan Teki			/*
26248853353SJagan Teki			 * As per BSP, but schematic not showing any regulator
26348853353SJagan Teki			 * pin for LD09.
26448853353SJagan Teki			 */
26548853353SJagan Teki			vcc_sd: LDO_REG9 {
26648853353SJagan Teki				regulator-name = "vcc_sd";
26748853353SJagan Teki				regulator-always-on;
26848853353SJagan Teki				regulator-boot-on;
26948853353SJagan Teki				regulator-min-microvolt = <3300000>;
27048853353SJagan Teki				regulator-max-microvolt = <3300000>;
27148853353SJagan Teki				regulator-state-mem {
27248853353SJagan Teki					regulator-off-in-suspend;
27348853353SJagan Teki				};
27448853353SJagan Teki			};
27548853353SJagan Teki
27648853353SJagan Teki			vcc5v0_usb2: SWITCH_REG1 {
27748853353SJagan Teki				regulator-name = "vcc5v0_usb2";
27848853353SJagan Teki				regulator-min-microvolt = <5000000>;
27948853353SJagan Teki				regulator-max-microvolt = <5000000>;
28048853353SJagan Teki				regulator-state-mem {
28148853353SJagan Teki					regulator-on-in-suspend;
28248853353SJagan Teki					regulator-suspend-microvolt = <5000000>;
28348853353SJagan Teki				};
28448853353SJagan Teki			};
28548853353SJagan Teki
28648853353SJagan Teki			vccio_3v3: vcc_lan: SWITCH_REG2 {
28748853353SJagan Teki				regulator-name = "vccio_3v3";
28848853353SJagan Teki				regulator-always-on;
28948853353SJagan Teki				regulator-boot-on;
29048853353SJagan Teki				regulator-min-microvolt = <3300000>;
29148853353SJagan Teki				regulator-max-microvolt = <3300000>;
29248853353SJagan Teki				regulator-state-mem {
29348853353SJagan Teki					regulator-off-in-suspend;
29448853353SJagan Teki				};
29548853353SJagan Teki			};
29648853353SJagan Teki		};
29748853353SJagan Teki	};
29848853353SJagan Teki};
29948853353SJagan Teki
300c2f34351SJagan Teki&i2c1 {
301c2f34351SJagan Teki	i2c-scl-falling-time-ns = <30>;
302c2f34351SJagan Teki	i2c-scl-rising-time-ns = <140>;
303c2f34351SJagan Teki	status = "okay";
304c2f34351SJagan Teki};
305c2f34351SJagan Teki
306c2f34351SJagan Teki&i2c2 {
307c2f34351SJagan Teki	clock-frequency = <400000>;
308c2f34351SJagan Teki	status = "okay";
309c2f34351SJagan Teki
310c2f34351SJagan Teki	hym8563: hym8563@51 {
311c2f34351SJagan Teki		compatible = "haoyu,hym8563";
312c2f34351SJagan Teki		reg = <0x51>;
313c2f34351SJagan Teki		#clock-cells = <0>;
314c2f34351SJagan Teki		clock-frequency = <32768>;
315c2f34351SJagan Teki		clock-output-names = "hym8563";
316c2f34351SJagan Teki		pinctrl-names = "default";
317c2f34351SJagan Teki		pinctrl-0 = <&hym8563_int>;
318c2f34351SJagan Teki		interrupt-parent = <&gpio4>;
319c2f34351SJagan Teki		interrupts = <RK_PD6 IRQ_TYPE_LEVEL_LOW>;
320c2f34351SJagan Teki	};
321c2f34351SJagan Teki};
322c2f34351SJagan Teki
32348853353SJagan Teki&io_domains {
32448853353SJagan Teki	status = "okay";
32548853353SJagan Teki	bt656-supply = <&vcca_1v8>;
32648853353SJagan Teki	gpio1830-supply = <&vccio_3v0>;
3273047b384SJagan Teki	sdmmc-supply = <&vccio_sd>;
3283047b384SJagan Teki};
3293047b384SJagan Teki
3303047b384SJagan Teki&pinctrl {
3313047b384SJagan Teki	hym8563 {
3323047b384SJagan Teki		hym8563_int: hym8563-int {
3333047b384SJagan Teki			rockchip,pins = <4 RK_PD6 0 &pcfg_pull_up>;
3343047b384SJagan Teki		};
3353047b384SJagan Teki	};
3363047b384SJagan Teki
3373047b384SJagan Teki	pmic {
3383047b384SJagan Teki		pmic_int_l: pmic-int-l {
3393047b384SJagan Teki			rockchip,pins = <1 RK_PC2 0 &pcfg_pull_up>;
3403047b384SJagan Teki		};
3413047b384SJagan Teki	};
34248853353SJagan Teki};
34348853353SJagan Teki
34448853353SJagan Teki&pmu_io_domains {
34548853353SJagan Teki	status = "okay";
34648853353SJagan Teki	pmu1830-supply = <&vcc_1v8>;
34748853353SJagan Teki};
34848853353SJagan Teki
34948853353SJagan Teki&sdhci {
35048853353SJagan Teki	bus-width = <8>;
35148853353SJagan Teki	mmc-hs400-1_8v;
35248853353SJagan Teki	mmc-hs400-enhanced-strobe;
35348853353SJagan Teki	non-removable;
35448853353SJagan Teki	status = "okay";
35548853353SJagan Teki};
35648853353SJagan Teki
35748853353SJagan Teki&tsadc {
35848853353SJagan Teki	rockchip,hw-tshut-mode = <1>;
35948853353SJagan Teki	rockchip,hw-tshut-polarity = <1>;
3603047b384SJagan Teki	status = "okay";
36148853353SJagan Teki};
362