forked from mirrors/linux
		
	 07f08d9cee
			
		
	
	
		07f08d9cee
		
	
	
	
	
		
			
			Rockchip SoCs use 2 different numbering schemes. Where the gpio- controllers just count 0-31 for their 32 gpios, the underlying iomux controller splits these into 4 separate entities A-D. Device-schematics always use these iomux-values to identify pins, so to make mapping schematics to devicetree easier Andy Yan introduced named constants for the pins but so far we only used them on new additions. Using a sed-script created by Emil Renner Berthing bulk-convert the remaining raw gpio numbers into their descriptive counterparts and also gets rid of the unhelpful RK_FUNC_x -> x and RK_GPIOx -> x mappings: /rockchip,pins *=/bcheck b # to end of script :append-next-line N :check /^[^;]*$/bappend-next-line s/<RK_GPIO\([0-9]\) /<\1 /g s/<\([^ ][^ ]* *\)0 /<\1RK_PA0 /g s/<\([^ ][^ ]* *\)1 /<\1RK_PA1 /g s/<\([^ ][^ ]* *\)2 /<\1RK_PA2 /g s/<\([^ ][^ ]* *\)3 /<\1RK_PA3 /g s/<\([^ ][^ ]* *\)4 /<\1RK_PA4 /g s/<\([^ ][^ ]* *\)5 /<\1RK_PA5 /g s/<\([^ ][^ ]* *\)6 /<\1RK_PA6 /g s/<\([^ ][^ ]* *\)7 /<\1RK_PA7 /g s/<\([^ ][^ ]* *\)8 /<\1RK_PB0 /g s/<\([^ ][^ ]* *\)9 /<\1RK_PB1 /g s/<\([^ ][^ ]* *\)10 /<\1RK_PB2 /g s/<\([^ ][^ ]* *\)11 /<\1RK_PB3 /g s/<\([^ ][^ ]* *\)12 /<\1RK_PB4 /g s/<\([^ ][^ ]* *\)13 /<\1RK_PB5 /g s/<\([^ ][^ ]* *\)14 /<\1RK_PB6 /g s/<\([^ ][^ ]* *\)15 /<\1RK_PB7 /g s/<\([^ ][^ ]* *\)16 /<\1RK_PC0 /g s/<\([^ ][^ ]* *\)17 /<\1RK_PC1 /g s/<\([^ ][^ ]* *\)18 /<\1RK_PC2 /g s/<\([^ ][^ ]* *\)19 /<\1RK_PC3 /g s/<\([^ ][^ ]* *\)20 /<\1RK_PC4 /g s/<\([^ ][^ ]* *\)21 /<\1RK_PC5 /g s/<\([^ ][^ ]* *\)22 /<\1RK_PC6 /g s/<\([^ ][^ ]* *\)23 /<\1RK_PC7 /g s/<\([^ ][^ ]* *\)24 /<\1RK_PD0 /g s/<\([^ ][^ ]* *\)25 /<\1RK_PD1 /g s/<\([^ ][^ ]* *\)26 /<\1RK_PD2 /g s/<\([^ ][^ ]* *\)27 /<\1RK_PD3 /g s/<\([^ ][^ ]* *\)28 /<\1RK_PD4 /g s/<\([^ ][^ ]* *\)29 /<\1RK_PD5 /g s/<\([^ ][^ ]* *\)30 /<\1RK_PD6 /g s/<\([^ ][^ ]* *\)31 /<\1RK_PD7 /g s/<\([^ ][^ ]* *[^ ][^ ]* *\)0 /<\1RK_FUNC_GPIO /g s/<\([^ ][^ ]* *[^ ][^ ]* *\)RK_FUNC_\([1-9]\) /<\1\2 /g Suggested-by: Emil Renner Berthing <esmil@mailme.dk> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
		
			
				
	
	
		
			398 lines
		
	
	
	
		
			7.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			398 lines
		
	
	
	
		
			7.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 | |
| 
 | |
| /dts-v1/;
 | |
| 
 | |
| #include "rk3036.dtsi"
 | |
| 
 | |
| / {
 | |
| 	model = "Rockchip RK3036 KylinBoard";
 | |
| 	compatible = "rockchip,rk3036-kylin", "rockchip,rk3036";
 | |
| 
 | |
| 	memory@60000000 {
 | |
| 		device_type = "memory";
 | |
| 		reg = <0x60000000 0x20000000>;
 | |
| 	};
 | |
| 
 | |
| 	leds: gpio-leds {
 | |
| 		compatible = "gpio-leds";
 | |
| 
 | |
| 		work {
 | |
| 			gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
 | |
| 			label = "kylin:red:led";
 | |
| 			pinctrl-names = "default";
 | |
| 			pinctrl-0 = <&led_ctl>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	sdio_pwrseq: sdio-pwrseq {
 | |
| 		compatible = "mmc-pwrseq-simple";
 | |
| 		pinctrl-names = "default";
 | |
| 		pinctrl-0 = <&bt_wake_h>;
 | |
| 
 | |
| 		/*
 | |
| 		 * On the module itself this is one of these (depending
 | |
| 		 * on the actual card populated):
 | |
| 		 * - SDIO_RESET_L_WL_REG_ON
 | |
| 		 * - SDIO_RESET_L_WL_RST
 | |
| 		 * - SDIO_RESET_L_BT_EN
 | |
| 		 */
 | |
| 		reset-gpios = <&gpio0 RK_PD2 GPIO_ACTIVE_LOW>, /* WL_REG_ON */
 | |
| 			      <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>, /* WL_RST */
 | |
| 			      <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; /* BT_EN */
 | |
| 	};
 | |
| 
 | |
| 	sound {
 | |
| 		compatible = "simple-audio-card";
 | |
| 		simple-audio-card,format = "i2s";
 | |
| 		simple-audio-card,name = "rockchip,rt5616-codec";
 | |
| 		simple-audio-card,mclk-fs = <512>;
 | |
| 		simple-audio-card,widgets =
 | |
| 			"Microphone", "Microphone Jack",
 | |
| 			"Headphone", "Headphone Jack";
 | |
| 		simple-audio-card,routing =
 | |
| 			"MIC1", "Microphone Jack",
 | |
| 			"MIC2", "Microphone Jack",
 | |
| 			"Microphone Jack", "micbias1",
 | |
| 			"Headphone Jack", "HPOL",
 | |
| 			"Headphone Jack", "HPOR";
 | |
| 
 | |
| 		simple-audio-card,cpu {
 | |
| 			sound-dai = <&i2s>;
 | |
| 		};
 | |
| 
 | |
| 		simple-audio-card,codec {
 | |
| 			sound-dai = <&rt5616>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	vcc_sys: vsys-regulator {
 | |
| 		compatible = "regulator-fixed";
 | |
| 		regulator-name = "vcc_sys";
 | |
| 		regulator-min-microvolt = <5000000>;
 | |
| 		regulator-max-microvolt = <5000000>;
 | |
| 		regulator-always-on;
 | |
| 		regulator-boot-on;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &acodec {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &emac {
 | |
| 	pinctrl-names = "default";
 | |
| 	pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
 | |
| 	phy = <&phy0>;
 | |
| 	phy-reset-gpios = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>; /* PHY_RST */
 | |
| 	phy-reset-duration = <10>; /* millisecond */
 | |
| 
 | |
| 	status = "okay";
 | |
| 
 | |
| 	phy0: ethernet-phy@0 {
 | |
| 		reg = <0>;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &emmc {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &gpu {
 | |
| 	mali-supply = <&vdd_gpu>;
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &hdmi {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &i2c1 {
 | |
| 	clock-frequency = <400000>;
 | |
| 
 | |
| 	status = "okay";
 | |
| 
 | |
| 	rk808: pmic@1b {
 | |
| 		compatible = "rockchip,rk808";
 | |
| 		reg = <0x1b>;
 | |
| 		interrupt-parent = <&gpio2>;
 | |
| 		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
 | |
| 		pinctrl-names = "default";
 | |
| 		pinctrl-0 = <&pmic_int &global_pwroff>;
 | |
| 		rockchip,system-power-controller;
 | |
| 		wakeup-source;
 | |
| 		#clock-cells = <1>;
 | |
| 		clock-output-names = "xin32k", "rk808-clkout2";
 | |
| 
 | |
| 		vcc1-supply = <&vcc_sys>;
 | |
| 		vcc2-supply = <&vcc_sys>;
 | |
| 		vcc3-supply = <&vcc_sys>;
 | |
| 		vcc4-supply = <&vcc_sys>;
 | |
| 		vcc6-supply = <&vcc_sys>;
 | |
| 		vcc7-supply = <&vcc_sys>;
 | |
| 		vcc8-supply = <&vcc_18>;
 | |
| 		vcc9-supply = <&vcc_io>;
 | |
| 		vcc10-supply = <&vcc_io>;
 | |
| 		vcc11-supply = <&vcc_sys>;
 | |
| 		vcc12-supply = <&vcc_io>;
 | |
| 		vddio-supply = <&vccio_pmu>;
 | |
| 
 | |
| 		regulators {
 | |
| 			vdd_cpu: DCDC_REG1 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <750000>;
 | |
| 				regulator-max-microvolt = <1350000>;
 | |
| 				regulator-name = "vdd_arm";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-off-in-suspend;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vdd_gpu: DCDC_REG2 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <850000>;
 | |
| 				regulator-max-microvolt = <1250000>;
 | |
| 				regulator-name = "vdd_gpu";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <1000000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc_ddr: DCDC_REG3 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-name = "vcc_ddr";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc_io: DCDC_REG4 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <3300000>;
 | |
| 				regulator-max-microvolt = <3300000>;
 | |
| 				regulator-name = "vcc_io";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <3300000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vccio_pmu: LDO_REG1 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <3300000>;
 | |
| 				regulator-max-microvolt = <3300000>;
 | |
| 				regulator-name = "vccio_pmu";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <3300000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc_tp: LDO_REG2 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <3300000>;
 | |
| 				regulator-max-microvolt = <3300000>;
 | |
| 				regulator-name = "vcc_tp";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-off-in-suspend;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vdd_10: LDO_REG3 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <1000000>;
 | |
| 				regulator-max-microvolt = <1000000>;
 | |
| 				regulator-name = "vdd_10";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <1000000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc18_lcd: LDO_REG4 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <1800000>;
 | |
| 				regulator-max-microvolt = <1800000>;
 | |
| 				regulator-name = "vcc18_lcd";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <1800000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			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-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <3300000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vout5: LDO_REG6 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <1800000>;
 | |
| 				regulator-max-microvolt = <2500000>;
 | |
| 				regulator-name = "vout5";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <1800000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc_18: LDO_REG7 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <1800000>;
 | |
| 				regulator-max-microvolt = <1800000>;
 | |
| 				regulator-name = "vcc_18";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <1800000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcca_codec: LDO_REG8 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-min-microvolt = <1800000>;
 | |
| 				regulator-max-microvolt = <1800000>;
 | |
| 				regulator-name = "vcca_codec";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 					regulator-suspend-microvolt = <1800000>;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc_wl: SWITCH_REG1 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-name = "vcc_wl";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 				};
 | |
| 			};
 | |
| 
 | |
| 			vcc_lcd: SWITCH_REG2 {
 | |
| 				regulator-always-on;
 | |
| 				regulator-boot-on;
 | |
| 				regulator-name = "vcc_lcd";
 | |
| 				regulator-state-mem {
 | |
| 					regulator-on-in-suspend;
 | |
| 				};
 | |
| 			};
 | |
| 		};
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &i2c2 {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	rt5616: rt5616@1b {
 | |
| 		compatible = "rt5616";
 | |
| 		reg = <0x1b>;
 | |
| 		clocks = <&cru SCLK_I2S_OUT>;
 | |
| 		clock-names = "mclk";
 | |
| 		#sound-dai-cells = <0>;
 | |
| 	};
 | |
| };
 | |
| 
 | |
| &i2s {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &sdio {
 | |
| 	status = "okay";
 | |
| 
 | |
| 	bus-width = <4>;
 | |
| 	cap-sd-highspeed;
 | |
| 	cap-sdio-irq;
 | |
| 	default-sample-phase = <90>;
 | |
| 	keep-power-in-suspend;
 | |
| 	mmc-pwrseq = <&sdio_pwrseq>;
 | |
| 	non-removable;
 | |
| 	pinctrl-names = "default";
 | |
| 	pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
 | |
| 	sd-uhs-sdr12;
 | |
| 	sd-uhs-sdr25;
 | |
| 	sd-uhs-sdr50;
 | |
| 	sd-uhs-sdr104;
 | |
| };
 | |
| 
 | |
| &sdmmc {
 | |
| 	bus-width = <4>;
 | |
| 	cap-mmc-highspeed;
 | |
| 	cap-sd-highspeed;
 | |
| 	card-detect-delay = <200>;
 | |
| 	disable-wp;
 | |
| 	pinctrl-names = "default";
 | |
| 	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
 | |
| };
 | |
| 
 | |
| &uart0 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &uart2 {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &usb_host {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &usb_otg {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &vop {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &vop_mmu {
 | |
| 	status = "okay";
 | |
| };
 | |
| 
 | |
| &pinctrl {
 | |
| 	leds {
 | |
| 		led_ctl: led-ctl {
 | |
| 			rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	pmic {
 | |
| 		pmic_int: pmic-int {
 | |
| 			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	sdio {
 | |
| 		bt_wake_h: bt-wake-h {
 | |
| 			rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	sdmmc {
 | |
| 		sdmmc_pwr: sdmmc-pwr {
 | |
| 			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
 | |
| 		};
 | |
| 	};
 | |
| 
 | |
| 	sleep {
 | |
| 		global_pwroff: global-pwroff {
 | |
| 			rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>;
 | |
| 		};
 | |
| 	};
 | |
| };
 |