diff options
| -rw-r--r-- | Documentation/devicetree/bindings/arm/rockchip.txt | 4 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dts | 176 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi | 281 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 6 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi | 112 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3368.dtsi | 97 | 
7 files changed, 677 insertions, 0 deletions
| diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt index 8e985dd2f181..c40c091f6923 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.txt +++ b/Documentation/devicetree/bindings/arm/rockchip.txt @@ -69,6 +69,10 @@ Rockchip platforms device tree bindings  		     "google,veyron-speedy-rev3", "google,veyron-speedy-rev2",  		     "google,veyron-speedy", "google,veyron", "rockchip,rk3288"; +- Rockchip RK3368 evb: +    Required root node properties: +      - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; +  - Rockchip R88 board:      Required root node properties:        - compatible = "rockchip,r88", "rockchip,rk3368"; diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 601e6a236c1d..e3f0b5f4ba4e 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -1,3 +1,4 @@ +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb  always		:= $(dtb-y) diff --git a/arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dts b/arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dts new file mode 100644 index 000000000000..eed6d3c775ce --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3368-evb-act8846.dts @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2015 Caesar Wang <wxt@rock-chips.com> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + *  a) This file is free software; you can redistribute it and/or + *     modify it under the terms of the GNU General Public License as + *     published by the Free Software Foundation; either version 2 of the + *     License, or (at your option) any later version. + * + *     This file is distributed in the hope that it will be useful, + *     but WITHOUT ANY WARRANTY; without even the implied warranty of + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *     GNU General Public License for more details. + * + * Or, alternatively, + * + *  b) Permission is hereby granted, free of charge, to any person + *     obtaining a copy of this software and associated documentation + *     files (the "Software"), to deal in the Software without + *     restriction, including without limitation the rights to use, + *     copy, modify, merge, publish, distribute, sublicense, and/or + *     sell copies of the Software, and to permit persons to whom the + *     Software is furnished to do so, subject to the following + *     conditions: + * + *     The above copyright notice and this permission notice shall be + *     included in all copies or substantial portions of the Software. + * + *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + *     OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "rk3368-evb.dtsi" + +/ { +	model = "Rockchip RK3368 EVB with ACT8846 pmic"; +	compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; +}; + +&i2c0 { +	clock-frequency = <400000>; + +	vdd_cpu: syr827@40 { +		compatible = "silergy,syr827"; +		reg = <0x40>; +		fcs,suspend-voltage-selector = <1>; +		regulator-name = "vdd_cpu"; +		regulator-min-microvolt = <850000>; +		regulator-max-microvolt = <1350000>; +		regulator-always-on; +		regulator-boot-on; +		vin-supply = <&vcc_sys>; +	}; + +	vdd_gpu: syr828@41 { +		compatible = "silergy,syr828"; +		reg = <0x41>; +		fcs,suspend-voltage-selector = <1>; +		regulator-name = "vdd_gpu"; +		regulator-min-microvolt = <850000>; +		regulator-max-microvolt = <1350000>; +		regulator-always-on; +		vin-supply = <&vcc_sys>; +	}; + +	act8846: act8846@5a { +		compatible = "active-semi,act8846"; +		reg = <0x5a>; +		status = "okay"; + +		vp1-supply = <&vcc_sys>; +		vp2-supply = <&vcc_sys>; +		vp3-supply = <&vcc_sys>; +		vp4-supply = <&vcc_sys>; +		inl1-supply = <&vcc_io>; +		inl2-supply = <&vcc_sys>; +		inl3-supply = <&vcc_20>; + +		regulators { +			vcc_ddr: REG1 { +				regulator-name = "VCC_DDR"; +				regulator-min-microvolt = <1200000>; +				regulator-max-microvolt = <1200000>; +				regulator-always-on; +			}; + +			vcc_io: REG2 { +				regulator-name = "VCC_IO"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-always-on; +			}; + +			vdd_log: REG3 { +				regulator-name = "VDD_LOG"; +				regulator-min-microvolt = <1000000>; +				regulator-max-microvolt = <1000000>; +				regulator-always-on; +			}; + +			vcc_20: REG4 { +				regulator-name = "VCC_20"; +				regulator-min-microvolt = <2000000>; +				regulator-max-microvolt = <2000000>; +				regulator-always-on; +			}; + +			vccio_sd: REG5 { +				regulator-name = "VCCIO_SD"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-always-on; +			}; + +			vdd10_lcd: REG6 { +				regulator-name = "VDD10_LCD"; +				regulator-min-microvolt = <1000000>; +				regulator-max-microvolt = <1000000>; +				regulator-always-on; +			}; + +			vcca_codec: REG7 { +				regulator-name = "VCCA_CODEC"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-always-on; +			}; + +			vcca_tp: REG8 { +				regulator-name = "VCCA_TP"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-always-on; +			}; + +			vccio_pmu: REG9 { +				regulator-name = "VCCIO_PMU"; +				regulator-min-microvolt = <3300000>; +				regulator-max-microvolt = <3300000>; +				regulator-always-on; +			}; + +			vdd_10: REG10 { +				regulator-name = "VDD_10"; +				regulator-min-microvolt = <1000000>; +				regulator-max-microvolt = <1000000>; +				regulator-always-on; +			}; + +			vcc_18: REG11 { +				regulator-name = "VCC_18"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <1800000>; +				regulator-always-on; +			}; + +			vcc18_lcd: REG12 { +				regulator-name = "VCC18_LCD"; +				regulator-min-microvolt = <1800000>; +				regulator-max-microvolt = <1800000>; +				regulator-always-on; +			}; +		}; +	}; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi new file mode 100644 index 000000000000..8c219ccf67a3 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2015 Caesar Wang <wxt@rock-chips.com> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + *  a) This file is free software; you can redistribute it and/or + *     modify it under the terms of the GNU General Public License as + *     published by the Free Software Foundation; either version 2 of the + *     License, or (at your option) any later version. + * + *     This file is distributed in the hope that it will be useful, + *     but WITHOUT ANY WARRANTY; without even the implied warranty of + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *     GNU General Public License for more details. + * + * Or, alternatively, + * + *  b) Permission is hereby granted, free of charge, to any person + *     obtaining a copy of this software and associated documentation + *     files (the "Software"), to deal in the Software without + *     restriction, including without limitation the rights to use, + *     copy, modify, merge, publish, distribute, sublicense, and/or + *     sell copies of the Software, and to permit persons to whom the + *     Software is furnished to do so, subject to the following + *     conditions: + * + *     The above copyright notice and this permission notice shall be + *     included in all copies or substantial portions of the Software. + * + *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + *     OTHER DEALINGS IN THE SOFTWARE. + */ + +#include <dt-bindings/pwm/pwm.h> +#include "rk3368.dtsi" + +/ { +	chosen { +		stdout-path = "serial2:115200n8"; +	}; + +	memory { +		device_type = "memory"; +		reg = <0x0 0x0 0x0 0x40000000>; +	}; + +	backlight: backlight { +		compatible = "pwm-backlight"; +		brightness-levels = < +			  0   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>; +		default-brightness-level = <128>; +		enable-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; +		pinctrl-names = "default"; +		pinctrl-0 = <&bl_en>; +		pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>; +		pwm-delay-us = <10000>; +	}; + +	emmc_pwrseq: emmc-pwrseq { +		compatible = "mmc-pwrseq-emmc"; +		pinctrl-0 = <&emmc_reset>; +		pinctrl-names = "default"; +		reset-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; +	}; + +	keys: gpio-keys { +		compatible = "gpio-keys"; +		#address-cells = <1>; +		#size-cells = <0>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pwr_key>; + +		button@0 { +			gpio-key,wakeup = <1>; +			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; +			label = "GPIO Power"; +			linux,code = <116>; +		}; +	}; + +	/* supplies both host and otg */ +	vcc_host: vcc-host-regulator { +		compatible = "regulator-fixed"; +		enable-active-high; +		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; +		pinctrl-names = "default"; +		pinctrl-0 = <&host_vbus_drv>; +		regulator-name = "vcc_host"; +		regulator-always-on; +		regulator-boot-on; +		vin-supply = <&vcc_sys>; +	}; + +	vcc_lan: vcc-lan-regulator { +		compatible = "regulator-fixed"; +		regulator-name = "vcc_lan"; +		regulator-min-microvolt = <3300000>; +		regulator-max-microvolt = <3300000>; +		regulator-always-on; +		regulator-boot-on; +		vin-supply = <&vcc_io>; +	}; + +	vcc_sys: vcc-sys-regulator { +		compatible = "regulator-fixed"; +		regulator-name = "vcc_sys"; +		regulator-min-microvolt = <5000000>; +		regulator-max-microvolt = <5000000>; +		regulator-always-on; +		regulator-boot-on; +	}; +}; + +&emmc { +	broken-cd; +	bus-width = <8>; +	cap-mmc-highspeed; +	disable-wp; +	mmc-pwrseq = <&emmc_pwrseq>; +	non-removable; +	num-slots = <1>; +	pinctrl-names = "default"; +	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; +	status = "okay"; +}; + +&gmac { +	phy-supply = <&vcc_lan>; +	phy-mode = "rmii"; +	clock_in_out = "output"; +	snps,reset-gpio = <&gpio3 12 0>; +	snps,reset-active-low; +	snps,reset-delays-us = <0 10000 1000000>; +	pinctrl-names = "default"; +	pinctrl-0 = <&rmii_pins>; +	tx_delay = <0x30>; +	rx_delay = <0x10>; +	status = "ok"; +}; + +&i2c0 { +	status = "okay"; +}; + +&pinctrl { +	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { +		bias-disable; +		drive-strength = <8>; +	}; + +	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { +		bias-pull-up; +		drive-strength = <8>; +	}; + +	backlight { +		bl_en: bl-en { +			rockchip,pins = <0 20 RK_FUNC_GPIO &pcfg_pull_none>; +		}; +	}; + +	emmc { +		emmc_bus8: emmc-bus8 { +			rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, +					<1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; +		}; + +		emmc-clk { +			rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>; +		}; + +		emmc-cmd { +			rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; +		}; + +		emmc_reset: emmc-reset { +			rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>; +		}; +	}; + +	keys { +		pwr_key: pwr-key { +			rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>; +		}; +	}; + +	pmic { +		pmic_int: pmic-int { +			rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_pull_up>; +		}; +	}; + +	sdio { +		wifi_reg_on: wifi-reg-on { +			rockchip,pins = <3 4 RK_FUNC_GPIO &pcfg_pull_none>; +		}; + +		bt_rst: bt-rst { +			rockchip,pins = <3 5 RK_FUNC_GPIO &pcfg_pull_none>; +		}; +	}; + +	usb { +		host_vbus_drv: host-vbus-drv { +			rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>; +		}; +	}; +}; + +&pwm0 { +	status = "okay"; +}; + +&tsadc { +	rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ +	rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ +	status = "okay"; +}; + +&uart2 { +	status = "okay"; +}; + +&usb_host0_ehci { +	status = "okay"; +}; + +&usb_otg { +	dr_mode = "host"; +	status = "okay"; +}; + +&wdt { +	status = "okay"; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts index 401a81231eb9..104cbee762bb 100644 --- a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts +++ b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts @@ -336,6 +336,12 @@  	status = "okay";  }; +&tsadc { +	rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */ +	rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */ +	status = "okay"; +}; +  &uart2 {  	status = "okay";  }; diff --git a/arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi b/arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi new file mode 100644 index 000000000000..a10010f92f96 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi @@ -0,0 +1,112 @@ +/* + * Device Tree Source for RK3368 SoC thermal + * + * Copyright (c) 2015, Fuzhou Rockchip Electronics Co., Ltd + * Caesar Wang <wxt@rock-chips.com> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + *  a) This file is free software; you can redistribute it and/or + *     modify it under the terms of the GNU General Public License as + *     published by the Free Software Foundation; either version 2 of the + *     License, or (at your option) any later version. + * + *     This file is distributed in the hope that it will be useful, + *     but WITHOUT ANY WARRANTY; without even the implied warranty of + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *     GNU General Public License for more details. + * + * Or, alternatively, + * + *  b) Permission is hereby granted, free of charge, to any person + *     obtaining a copy of this software and associated documentation + *     files (the "Software"), to deal in the Software without + *     restriction, including without limitation the rights to use, + *     copy, modify, merge, publish, distribute, sublicense, and/or + *     sell copies of the Software, and to permit persons to whom the + *     Software is furnished to do so, subject to the following + *     conditions: + * + *     The above copyright notice and this permission notice shall be + *     included in all copies or substantial portions of the Software. + * + *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + *     OTHER DEALINGS IN THE SOFTWARE. + */ + +#include <dt-bindings/thermal/thermal.h> + +cpu_thermal: cpu_thermal { +	polling-delay-passive = <100>; /* milliseconds */ +	polling-delay = <5000>; /* milliseconds */ + +	thermal-sensors = <&tsadc 0>; + +	trips { +		cpu_alert0: cpu_alert0 { +			temperature = <75000>; /* millicelsius */ +			hysteresis = <2000>; /* millicelsius */ +			type = "passive"; +		}; +		cpu_alert1: cpu_alert1 { +			temperature = <80000>; /* millicelsius */ +			hysteresis = <2000>; /* millicelsius */ +			type = "passive"; +		}; +		cpu_crit: cpu_crit { +			temperature = <95000>; /* millicelsius */ +			hysteresis = <2000>; /* millicelsius */ +			type = "critical"; +		}; +	}; + +	cooling-maps { +		map0 { +			trip = <&cpu_alert0>; +			cooling-device = +				<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; +		}; +		map1 { +			trip = <&cpu_alert1>; +			cooling-device = +				<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; +		}; +	}; +}; + +gpu_thermal: gpu_thermal { +	polling-delay-passive = <100>; /* milliseconds */ +	polling-delay = <5000>; /* milliseconds */ + +	thermal-sensors = <&tsadc 1>; + +	trips { +		gpu_alert0: gpu_alert0 { +			temperature = <80000>; /* millicelsius */ +			hysteresis = <2000>; /* millicelsius */ +			type = "passive"; +		}; +		gpu_crit: gpu_crit { +			temperature = <1150000>; /* millicelsius */ +			hysteresis = <2000>; /* millicelsius */ +			type = "critical"; +		}; +	}; + +	cooling-maps { +		map0 { +			trip = <&gpu_alert0>; +			cooling-device = +				<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; +		}; +	}; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi index cc093a482aa4..61ca1abde947 100644 --- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi @@ -45,6 +45,7 @@  #include <dt-bindings/interrupt-controller/irq.h>  #include <dt-bindings/interrupt-controller/arm-gic.h>  #include <dt-bindings/pinctrl/rockchip.h> +#include <dt-bindings/thermal/thermal.h>  / {  	compatible = "rockchip,rk3368"; @@ -53,6 +54,7 @@  	#size-cells = <2>;  	aliases { +		ethernet0 = &gmac;  		i2c0 = &i2c0;  		i2c1 = &i2c1;  		i2c2 = &i2c2; @@ -123,6 +125,8 @@  			reg = <0x0 0x0>;  			cpu-idle-states = <&cpu_sleep>;  			enable-method = "psci"; + +			#cooling-cells = <2>; /* min followed by max */  		};  		cpu_l1: cpu@1 { @@ -155,6 +159,8 @@  			reg = <0x0 0x100>;  			cpu-idle-states = <&cpu_sleep>;  			enable-method = "psci"; + +			#cooling-cells = <2>; /* min followed by max */  		};  		cpu_b1: cpu@101 { @@ -404,6 +410,27 @@  		status = "disabled";  	}; +	thermal-zones { +		#include "rk3368-thermal.dtsi" +	}; + +	tsadc: tsadc@ff280000 { +		compatible = "rockchip,rk3368-tsadc"; +		reg = <0x0 0xff280000 0x0 0x100>; +		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; +		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>; +		clock-names = "tsadc", "apb_pclk"; +		resets = <&cru SRST_TSADC>; +		reset-names = "tsadc-apb"; +		pinctrl-names = "init", "default", "sleep"; +		pinctrl-0 = <&otp_gpio>; +		pinctrl-1 = <&otp_out>; +		pinctrl-2 = <&otp_gpio>; +		#thermal-sensor-cells = <1>; +		rockchip,hw-tshut-temp = <95000>; +		status = "disabled"; +	}; +  	gmac: ethernet@ff290000 {  		compatible = "rockchip,rk3368-gmac";  		reg = <0x0 0xff290000 0x0 0x10000>; @@ -471,6 +498,48 @@  		status = "disabled";  	}; +	pwm0: pwm@ff680000 { +		compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; +		reg = <0x0 0xff680000 0x0 0x10>; +		#pwm-cells = <3>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pwm0_pin>; +		clocks = <&cru PCLK_PWM1>; +		clock-names = "pwm"; +		status = "disabled"; +	}; + +	pwm1: pwm@ff680010 { +		compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; +		reg = <0x0 0xff680010 0x0 0x10>; +		#pwm-cells = <3>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pwm1_pin>; +		clocks = <&cru PCLK_PWM1>; +		clock-names = "pwm"; +		status = "disabled"; +	}; + +	pwm2: pwm@ff680020 { +		compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; +		reg = <0x0 0xff680020 0x0 0x10>; +		#pwm-cells = <3>; +		clocks = <&cru PCLK_PWM1>; +		clock-names = "pwm"; +		status = "disabled"; +	}; + +	pwm3: pwm@ff680030 { +		compatible = "rockchip,rk3368-pwm", "rockchip,rk3288-pwm"; +		reg = <0x0 0xff680030 0x0 0x10>; +		#pwm-cells = <3>; +		pinctrl-names = "default"; +		pinctrl-0 = <&pwm3_pin>; +		clocks = <&cru PCLK_PWM1>; +		clock-names = "pwm"; +		status = "disabled"; +	}; +  	uart2: serial@ff690000 {  		compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";  		reg = <0x0 0xff690000 0x0 0x100>; @@ -712,6 +781,24 @@  			};  		}; +		pwm0 { +			pwm0_pin: pwm0-pin { +				rockchip,pins = <3 8 RK_FUNC_2 &pcfg_pull_none>; +			}; +		}; + +		pwm1 { +			pwm1_pin: pwm1-pin { +				rockchip,pins = <0 8 RK_FUNC_2 &pcfg_pull_none>; +			}; +		}; + +		pwm3 { +			pwm3_pin: pwm3-pin { +				rockchip,pins = <3 29 RK_FUNC_3 &pcfg_pull_none>; +			}; +		}; +  		sdio0 {  			sdio0_bus1: sdio0-bus1 {  				rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>; @@ -829,6 +916,16 @@  			};  		}; +		tsadc { +			otp_gpio: otp-gpio { +				rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>; +			}; + +			otp_out: otp-out { +				rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>; +			}; +		}; +  		uart0 {  			uart0_xfer: uart0-xfer {  				rockchip,pins = <2 24 RK_FUNC_1 &pcfg_pull_up>, | 
