11.1.1.4Sjmcneill// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
21.1Sjmcneill
31.1Sjmcneill/dts-v1/;
41.1Sjmcneill
51.1Sjmcneill#include "rk3036.dtsi"
61.1Sjmcneill
71.1Sjmcneill/ {
81.1Sjmcneill	model = "Rockchip RK3036 KylinBoard";
91.1Sjmcneill	compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
101.1Sjmcneill
111.1Sjmcneill	memory@60000000 {
121.1Sjmcneill		device_type = "memory";
131.1Sjmcneill		reg = <0x60000000 0x20000000>;
141.1Sjmcneill	};
151.1Sjmcneill
161.1Sjmcneill	leds: gpio-leds {
171.1Sjmcneill		compatible = "gpio-leds";
181.1Sjmcneill
191.1.1.7Sjmcneill		work_led: led-0 {
201.1Sjmcneill			gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
211.1Sjmcneill			label = "kylin:red:led";
221.1Sjmcneill			pinctrl-names = "default";
231.1Sjmcneill			pinctrl-0 = <&led_ctl>;
241.1Sjmcneill		};
251.1Sjmcneill	};
261.1Sjmcneill
271.1Sjmcneill	sdio_pwrseq: sdio-pwrseq {
281.1Sjmcneill		compatible = "mmc-pwrseq-simple";
291.1Sjmcneill		pinctrl-names = "default";
301.1Sjmcneill		pinctrl-0 = <&bt_wake_h>;
311.1Sjmcneill
321.1Sjmcneill		/*
331.1Sjmcneill		 * On the module itself this is one of these (depending
341.1Sjmcneill		 * on the actual card populated):
351.1Sjmcneill		 * - SDIO_RESET_L_WL_REG_ON
361.1Sjmcneill		 * - SDIO_RESET_L_WL_RST
371.1Sjmcneill		 * - SDIO_RESET_L_BT_EN
381.1Sjmcneill		 */
391.1Sjmcneill		reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */
401.1Sjmcneill			      <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */
411.1Sjmcneill			      <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */
421.1Sjmcneill	};
431.1Sjmcneill
441.1Sjmcneill	sound {
451.1Sjmcneill		compatible = "simple-audio-card";
461.1Sjmcneill		simple-audio-card,format = "i2s";
471.1Sjmcneill		simple-audio-card,name = "rockchip,rt5616-codec";
481.1Sjmcneill		simple-audio-card,mclk-fs = <512>;
491.1Sjmcneill		simple-audio-card,widgets =
501.1Sjmcneill			"Microphone", "Microphone Jack",
511.1Sjmcneill			"Headphone", "Headphone Jack";
521.1Sjmcneill		simple-audio-card,routing =
531.1Sjmcneill			"MIC1", "Microphone Jack",
541.1Sjmcneill			"MIC2", "Microphone Jack",
551.1Sjmcneill			"Microphone Jack", "micbias1",
561.1Sjmcneill			"Headphone Jack", "HPOL",
571.1Sjmcneill			"Headphone Jack", "HPOR";
581.1Sjmcneill
591.1Sjmcneill		simple-audio-card,cpu {
601.1Sjmcneill			sound-dai = <&i2s>;
611.1Sjmcneill		};
621.1Sjmcneill
631.1Sjmcneill		simple-audio-card,codec {
641.1Sjmcneill			sound-dai = <&rt5616>;
651.1Sjmcneill		};
661.1Sjmcneill	};
671.1Sjmcneill
681.1Sjmcneill	vcc_sys: vsys-regulator {
691.1Sjmcneill		compatible = "regulator-fixed";
701.1Sjmcneill		regulator-name = "vcc_sys";
711.1Sjmcneill		regulator-min-microvolt = <5000000>;
721.1Sjmcneill		regulator-max-microvolt = <5000000>;
731.1Sjmcneill		regulator-always-on;
741.1Sjmcneill		regulator-boot-on;
751.1Sjmcneill	};
761.1Sjmcneill};
771.1Sjmcneill
781.1Sjmcneill&acodec {
791.1Sjmcneill	status = "okay";
801.1Sjmcneill};
811.1Sjmcneill
821.1Sjmcneill&emac {
831.1Sjmcneill	pinctrl-names = "default";
841.1Sjmcneill	pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
851.1Sjmcneill	phy = <&phy0>;
861.1Sjmcneill	phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
871.1Sjmcneill	phy-reset-duration = <10>; /* millisecond */
881.1Sjmcneill
891.1Sjmcneill	status = "okay";
901.1Sjmcneill
911.1Sjmcneill	phy0: ethernet-phy@0 {
921.1Sjmcneill		reg = <0>;
931.1Sjmcneill	};
941.1Sjmcneill};
951.1Sjmcneill
961.1Sjmcneill&emmc {
971.1Sjmcneill	status = "okay";
981.1Sjmcneill};
991.1Sjmcneill
1001.1.1.3Sjmcneill&gpu {
1011.1.1.3Sjmcneill	mali-supply = <&vdd_gpu>;
1021.1.1.3Sjmcneill	status = "okay";
1031.1.1.3Sjmcneill};
1041.1.1.3Sjmcneill
1051.1Sjmcneill&hdmi {
1061.1Sjmcneill	status = "okay";
1071.1Sjmcneill};
1081.1Sjmcneill
1091.1Sjmcneill&i2c1 {
1101.1Sjmcneill	clock-frequency = <400000>;
1111.1Sjmcneill
1121.1Sjmcneill	status = "okay";
1131.1Sjmcneill
1141.1Sjmcneill	rk808: pmic@1b {
1151.1Sjmcneill		compatible = "rockchip,rk808";
1161.1Sjmcneill		reg = <0x1b>;
1171.1Sjmcneill		interrupt-parent = <&gpio2>;
1181.1Sjmcneill		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
1191.1Sjmcneill		pinctrl-names = "default";
1201.1Sjmcneill		pinctrl-0 = <&pmic_int &global_pwroff>;
1211.1Sjmcneill		rockchip,system-power-controller;
1221.1Sjmcneill		wakeup-source;
1231.1Sjmcneill		#clock-cells = <1>;
1241.1Sjmcneill		clock-output-names = "xin32k", "rk808-clkout2";
1251.1Sjmcneill
1261.1Sjmcneill		vcc1-supply = <&vcc_sys>;
1271.1Sjmcneill		vcc2-supply = <&vcc_sys>;
1281.1Sjmcneill		vcc3-supply = <&vcc_sys>;
1291.1Sjmcneill		vcc4-supply = <&vcc_sys>;
1301.1Sjmcneill		vcc6-supply = <&vcc_sys>;
1311.1Sjmcneill		vcc7-supply = <&vcc_sys>;
1321.1Sjmcneill		vcc8-supply = <&vcc_18>;
1331.1Sjmcneill		vcc9-supply = <&vcc_io>;
1341.1Sjmcneill		vcc10-supply = <&vcc_io>;
1351.1Sjmcneill		vcc11-supply = <&vcc_sys>;
1361.1Sjmcneill		vcc12-supply = <&vcc_io>;
1371.1Sjmcneill		vddio-supply = <&vccio_pmu>;
1381.1Sjmcneill
1391.1Sjmcneill		regulators {
1401.1Sjmcneill			vdd_cpu: DCDC_REG1 {
1411.1Sjmcneill				regulator-always-on;
1421.1Sjmcneill				regulator-boot-on;
1431.1Sjmcneill				regulator-min-microvolt = <750000>;
1441.1Sjmcneill				regulator-max-microvolt = <1350000>;
1451.1Sjmcneill				regulator-name = "vdd_arm";
1461.1Sjmcneill				regulator-state-mem {
1471.1Sjmcneill					regulator-off-in-suspend;
1481.1Sjmcneill				};
1491.1Sjmcneill			};
1501.1Sjmcneill
1511.1Sjmcneill			vdd_gpu: DCDC_REG2 {
1521.1Sjmcneill				regulator-always-on;
1531.1Sjmcneill				regulator-boot-on;
1541.1Sjmcneill				regulator-min-microvolt = <850000>;
1551.1Sjmcneill				regulator-max-microvolt = <1250000>;
1561.1Sjmcneill				regulator-name = "vdd_gpu";
1571.1Sjmcneill				regulator-state-mem {
1581.1Sjmcneill					regulator-on-in-suspend;
1591.1Sjmcneill					regulator-suspend-microvolt = <1000000>;
1601.1Sjmcneill				};
1611.1Sjmcneill			};
1621.1Sjmcneill
1631.1Sjmcneill			vcc_ddr: DCDC_REG3 {
1641.1Sjmcneill				regulator-always-on;
1651.1Sjmcneill				regulator-boot-on;
1661.1Sjmcneill				regulator-name = "vcc_ddr";
1671.1Sjmcneill				regulator-state-mem {
1681.1Sjmcneill					regulator-on-in-suspend;
1691.1Sjmcneill				};
1701.1Sjmcneill			};
1711.1Sjmcneill
1721.1Sjmcneill			vcc_io: DCDC_REG4 {
1731.1Sjmcneill				regulator-always-on;
1741.1Sjmcneill				regulator-boot-on;
1751.1Sjmcneill				regulator-min-microvolt = <3300000>;
1761.1Sjmcneill				regulator-max-microvolt = <3300000>;
1771.1Sjmcneill				regulator-name = "vcc_io";
1781.1Sjmcneill				regulator-state-mem {
1791.1Sjmcneill					regulator-on-in-suspend;
1801.1Sjmcneill					regulator-suspend-microvolt = <3300000>;
1811.1Sjmcneill				};
1821.1Sjmcneill			};
1831.1Sjmcneill
1841.1Sjmcneill			vccio_pmu: LDO_REG1 {
1851.1Sjmcneill				regulator-always-on;
1861.1Sjmcneill				regulator-boot-on;
1871.1Sjmcneill				regulator-min-microvolt = <3300000>;
1881.1Sjmcneill				regulator-max-microvolt = <3300000>;
1891.1Sjmcneill				regulator-name = "vccio_pmu";
1901.1Sjmcneill				regulator-state-mem {
1911.1Sjmcneill					regulator-on-in-suspend;
1921.1Sjmcneill					regulator-suspend-microvolt = <3300000>;
1931.1Sjmcneill				};
1941.1Sjmcneill			};
1951.1Sjmcneill
1961.1Sjmcneill			vcc_tp: LDO_REG2 {
1971.1Sjmcneill				regulator-always-on;
1981.1Sjmcneill				regulator-boot-on;
1991.1Sjmcneill				regulator-min-microvolt = <3300000>;
2001.1Sjmcneill				regulator-max-microvolt = <3300000>;
2011.1Sjmcneill				regulator-name = "vcc_tp";
2021.1Sjmcneill				regulator-state-mem {
2031.1Sjmcneill					regulator-off-in-suspend;
2041.1Sjmcneill				};
2051.1Sjmcneill			};
2061.1Sjmcneill
2071.1Sjmcneill			vdd_10: LDO_REG3 {
2081.1Sjmcneill				regulator-always-on;
2091.1Sjmcneill				regulator-boot-on;
2101.1Sjmcneill				regulator-min-microvolt = <1000000>;
2111.1Sjmcneill				regulator-max-microvolt = <1000000>;
2121.1Sjmcneill				regulator-name = "vdd_10";
2131.1Sjmcneill				regulator-state-mem {
2141.1Sjmcneill					regulator-on-in-suspend;
2151.1Sjmcneill					regulator-suspend-microvolt = <1000000>;
2161.1Sjmcneill				};
2171.1Sjmcneill			};
2181.1Sjmcneill
2191.1Sjmcneill			vcc18_lcd: LDO_REG4 {
2201.1Sjmcneill				regulator-always-on;
2211.1Sjmcneill				regulator-boot-on;
2221.1Sjmcneill				regulator-min-microvolt = <1800000>;
2231.1Sjmcneill				regulator-max-microvolt = <1800000>;
2241.1Sjmcneill				regulator-name = "vcc18_lcd";
2251.1Sjmcneill				regulator-state-mem {
2261.1Sjmcneill					regulator-on-in-suspend;
2271.1Sjmcneill					regulator-suspend-microvolt = <1800000>;
2281.1Sjmcneill				};
2291.1Sjmcneill			};
2301.1Sjmcneill
2311.1Sjmcneill			vccio_sd: LDO_REG5 {
2321.1Sjmcneill				regulator-always-on;
2331.1Sjmcneill				regulator-boot-on;
2341.1Sjmcneill				regulator-min-microvolt = <1800000>;
2351.1Sjmcneill				regulator-max-microvolt = <3300000>;
2361.1Sjmcneill				regulator-name = "vccio_sd";
2371.1Sjmcneill				regulator-state-mem {
2381.1Sjmcneill					regulator-on-in-suspend;
2391.1Sjmcneill					regulator-suspend-microvolt = <3300000>;
2401.1Sjmcneill				};
2411.1Sjmcneill			};
2421.1Sjmcneill
2431.1Sjmcneill			vout5: LDO_REG6 {
2441.1Sjmcneill				regulator-always-on;
2451.1Sjmcneill				regulator-boot-on;
2461.1Sjmcneill				regulator-min-microvolt = <1800000>;
2471.1Sjmcneill				regulator-max-microvolt = <2500000>;
2481.1Sjmcneill				regulator-name = "vout5";
2491.1Sjmcneill				regulator-state-mem {
2501.1Sjmcneill					regulator-on-in-suspend;
2511.1Sjmcneill					regulator-suspend-microvolt = <1800000>;
2521.1Sjmcneill				};
2531.1Sjmcneill			};
2541.1Sjmcneill
2551.1Sjmcneill			vcc_18: LDO_REG7 {
2561.1Sjmcneill				regulator-always-on;
2571.1Sjmcneill				regulator-boot-on;
2581.1Sjmcneill				regulator-min-microvolt = <1800000>;
2591.1Sjmcneill				regulator-max-microvolt = <1800000>;
2601.1Sjmcneill				regulator-name = "vcc_18";
2611.1Sjmcneill				regulator-state-mem {
2621.1Sjmcneill					regulator-on-in-suspend;
2631.1Sjmcneill					regulator-suspend-microvolt = <1800000>;
2641.1Sjmcneill				};
2651.1Sjmcneill			};
2661.1Sjmcneill
2671.1Sjmcneill			vcca_codec: LDO_REG8 {
2681.1Sjmcneill				regulator-always-on;
2691.1Sjmcneill				regulator-boot-on;
2701.1Sjmcneill				regulator-min-microvolt = <1800000>;
2711.1Sjmcneill				regulator-max-microvolt = <1800000>;
2721.1Sjmcneill				regulator-name = "vcca_codec";
2731.1Sjmcneill				regulator-state-mem {
2741.1Sjmcneill					regulator-on-in-suspend;
2751.1Sjmcneill					regulator-suspend-microvolt = <1800000>;
2761.1Sjmcneill				};
2771.1Sjmcneill			};
2781.1Sjmcneill
2791.1Sjmcneill			vcc_wl: SWITCH_REG1 {
2801.1Sjmcneill				regulator-always-on;
2811.1Sjmcneill				regulator-boot-on;
2821.1Sjmcneill				regulator-name = "vcc_wl";
2831.1Sjmcneill				regulator-state-mem {
2841.1Sjmcneill					regulator-on-in-suspend;
2851.1Sjmcneill				};
2861.1Sjmcneill			};
2871.1Sjmcneill
2881.1Sjmcneill			vcc_lcd: SWITCH_REG2 {
2891.1Sjmcneill				regulator-always-on;
2901.1Sjmcneill				regulator-boot-on;
2911.1Sjmcneill				regulator-name = "vcc_lcd";
2921.1Sjmcneill				regulator-state-mem {
2931.1Sjmcneill					regulator-on-in-suspend;
2941.1Sjmcneill				};
2951.1Sjmcneill			};
2961.1Sjmcneill		};
2971.1Sjmcneill	};
2981.1Sjmcneill};
2991.1Sjmcneill
3001.1Sjmcneill&i2c2 {
3011.1Sjmcneill	status = "okay";
3021.1Sjmcneill
3031.1Sjmcneill	rt5616: rt5616@1b {
3041.1Sjmcneill		compatible = "rt5616";
3051.1Sjmcneill		reg = <0x1b>;
3061.1Sjmcneill		clocks = <&cru SCLK_I2S_OUT>;
3071.1Sjmcneill		clock-names = "mclk";
3081.1Sjmcneill		#sound-dai-cells = <0>;
3091.1Sjmcneill	};
3101.1Sjmcneill};
3111.1Sjmcneill
3121.1Sjmcneill&i2s {
3131.1Sjmcneill	status = "okay";
3141.1Sjmcneill};
3151.1Sjmcneill
3161.1Sjmcneill&sdio {
3171.1Sjmcneill	status = "okay";
3181.1Sjmcneill
3191.1Sjmcneill	bus-width = <4>;
3201.1Sjmcneill	cap-sd-highspeed;
3211.1Sjmcneill	cap-sdio-irq;
3221.1.1.7Sjmcneill	rockchip,default-sample-phase = <90>;
3231.1Sjmcneill	keep-power-in-suspend;
3241.1Sjmcneill	mmc-pwrseq = <&sdio_pwrseq>;
3251.1Sjmcneill	non-removable;
3261.1Sjmcneill	pinctrl-names = "default";
3271.1Sjmcneill	pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
3281.1Sjmcneill	sd-uhs-sdr12;
3291.1Sjmcneill	sd-uhs-sdr25;
3301.1Sjmcneill	sd-uhs-sdr50;
3311.1Sjmcneill	sd-uhs-sdr104;
3321.1Sjmcneill};
3331.1Sjmcneill
3341.1Sjmcneill&sdmmc {
3351.1Sjmcneill	bus-width = <4>;
3361.1Sjmcneill	cap-mmc-highspeed;
3371.1Sjmcneill	cap-sd-highspeed;
3381.1Sjmcneill	card-detect-delay = <200>;
3391.1Sjmcneill	disable-wp;
3401.1Sjmcneill	pinctrl-names = "default";
3411.1Sjmcneill	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
3421.1Sjmcneill};
3431.1Sjmcneill
3441.1Sjmcneill&uart0 {
3451.1Sjmcneill	status = "okay";
3461.1Sjmcneill};
3471.1Sjmcneill
3481.1Sjmcneill&uart2 {
3491.1Sjmcneill	status = "okay";
3501.1Sjmcneill};
3511.1Sjmcneill
3521.1Sjmcneill&usb_host {
3531.1Sjmcneill	status = "okay";
3541.1Sjmcneill};
3551.1Sjmcneill
3561.1Sjmcneill&usb_otg {
3571.1Sjmcneill	status = "okay";
3581.1Sjmcneill};
3591.1Sjmcneill
3601.1Sjmcneill&vop {
3611.1Sjmcneill	status = "okay";
3621.1Sjmcneill};
3631.1Sjmcneill
3641.1Sjmcneill&vop_mmu {
3651.1Sjmcneill	status = "okay";
3661.1Sjmcneill};
3671.1Sjmcneill
3681.1Sjmcneill&pinctrl {
3691.1Sjmcneill	leds {
3701.1Sjmcneill		led_ctl: led-ctl {
3711.1.1.6Sskrll			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
3721.1Sjmcneill		};
3731.1Sjmcneill	};
3741.1Sjmcneill
3751.1Sjmcneill	pmic {
3761.1Sjmcneill		pmic_int: pmic-int {
3771.1.1.6Sskrll			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
3781.1Sjmcneill		};
3791.1Sjmcneill	};
3801.1Sjmcneill
3811.1Sjmcneill	sdio {
3821.1Sjmcneill		bt_wake_h: bt-wake-h {
3831.1.1.6Sskrll			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>;
3841.1Sjmcneill		};
3851.1Sjmcneill	};
3861.1Sjmcneill
3871.1Sjmcneill	sdmmc {
3881.1Sjmcneill		sdmmc_pwr: sdmmc-pwr {
3891.1.1.6Sskrll			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
3901.1Sjmcneill		};
3911.1Sjmcneill	};
3921.1Sjmcneill
3931.1.1.7Sjmcneill	suspend {
3941.1Sjmcneill		global_pwroff: global-pwroff {
3951.1.1.6Sskrll			rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
3961.1Sjmcneill		};
3971.1Sjmcneill	};
3981.1Sjmcneill};
399