Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'v4.10-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

32bit devicetree changes for Rockchip including removal of skeleton.dtsi
inclusion, missing unit names for memory nodes, various frequency
optimizations allowing for better performance on rk3066, the usage of
pin constants to bridge between the two numbering schemes used (gpio
controllers using 0-31 and pins being labeled A0-A7,..., D0-D7)
and UHS/HS modes for the mmc controllers on the popmetal board.

Two new boards, the PX3-based evaluation board, with the PX3 being an
industrial variant of the rk3188 soc and the Rikomagic MK808 board
based around the rk3066 are also added.

* tag 'v4.10-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (21 commits)
ARM: dts: rockchip: replace to "max-frequency" instead of "clock-freq-min-max"
ARM: dts: rockchip: Set sdmmc frequency at boot time for rk3066a
ARM: dts: rockchip: use pin constants to describe gpios on Popmetal-RK3288
include: dt-bindings: Add GPIO pin index definition for rockchip pinctrl
ARM: dts: rockchip: Add rk3066 MK808 board
devicetree: Add vendor prefix for Rikomagic
ARM: dts: rockchip: initialize rk3066 PLL clock rate
clk: rockchip: Add binding ids for cpu and peri clocks on rk3066
ARM: dts: rockchip: enable HS200/DDR52 mode for emmc on rk3288-popmetal
ARM: dts: rockchip: Support UHS mode for SD card on PopMetal-RK3288 board
ARM: dts: rockchip: remove always-on and boot-on from vcc_sd for px3-evb
ARM: dts: rockchip: update compatible strings for Rockchip efuse
ARM: dts: rockchip: add rockchip PX3 Evaluation board
ARM: dts: rockchip: Add missing unit name to memory nodes in rk3xxx boards
ARM: dts: rockchip: Add missing unit name to memory nodes in rk3288 boards
ARM: dts: rockchip: Add missing unit name to memory nodes in rk322x boards
ARM: dts: rockchip: Add missing unit name to memory nodes in rk3036 boards
ARM: dts: rockchip: Remove skeleton.dtsi inclusion in rk3xxx.dtsi
ARM: dts: rockchip: Remove skeleton.dtsi inclusion in rk3288.dtsi
ARM: dts: rockchip: Remove skeleton.dtsi inclusion in rk322x.dtsi
...

Signed-off-by: Olof Johansson <olof@lixom.net>

+639 -46
+4
Documentation/devicetree/bindings/arm/rockchip.txt
··· 25 25 Required root node properties: 26 26 - compatible = "radxa,rock2-square", "rockchip,rk3288"; 27 27 28 + - Rikomagic MK808 v1 board: 29 + Required root node properties: 30 + - compatible = "rikomagic,mk808", "rockchip,rk3066a"; 31 + 28 32 - Firefly Firefly-RK3288 board: 29 33 Required root node properties: 30 34 - compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
+1
Documentation/devicetree/bindings/vendor-prefixes.txt
··· 229 229 renesas Renesas Electronics Corporation 230 230 richtek Richtek Technology Corporation 231 231 ricoh Ricoh Co. Ltd. 232 + rikomagic Rikomagic Tech Corp. Ltd 232 233 rockchip Fuzhou Rockchip Electronics Co., Ltd 233 234 samsung Samsung Semiconductor 234 235 sandisk Sandisk Corporation
+2
arch/arm/boot/dts/Makefile
··· 640 640 rk3036-kylin.dtb \ 641 641 rk3066a-bqcurie2.dtb \ 642 642 rk3066a-marsboard.dtb \ 643 + rk3066a-mk808.dtb \ 643 644 rk3066a-rayeager.dtb \ 645 + rk3188-px3-evb.dtb \ 644 646 rk3188-radxarock.dtb \ 645 647 rk3228-evb.dtb \ 646 648 rk3229-evb.dtb \
+1 -1
arch/arm/boot/dts/rk3036-evb.dts
··· 46 46 model = "Rockchip RK3036 Evaluation board"; 47 47 compatible = "rockchip,rk3036-evb", "rockchip,rk3036"; 48 48 49 - memory { 49 + memory@60000000 { 50 50 device_type = "memory"; 51 51 reg = <0x60000000 0x40000000>; 52 52 };
+1 -1
arch/arm/boot/dts/rk3036-kylin.dts
··· 46 46 model = "Rockchip RK3036 KylinBoard"; 47 47 compatible = "rockchip,rk3036-kylin", "rockchip,rk3036"; 48 48 49 - memory { 49 + memory@60000000 { 50 50 device_type = "memory"; 51 51 reg = <0x60000000 0x20000000>; 52 52 };
+6 -4
arch/arm/boot/dts/rk3036.dtsi
··· 44 44 #include <dt-bindings/pinctrl/rockchip.h> 45 45 #include <dt-bindings/clock/rk3036-cru.h> 46 46 #include <dt-bindings/soc/rockchip,boot-mode.h> 47 - #include "skeleton.dtsi" 48 47 49 48 / { 49 + #address-cells = <1>; 50 + #size-cells = <1>; 51 + 50 52 compatible = "rockchip,rk3036"; 51 53 52 54 interrupt-parent = <&gic>; ··· 246 244 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc"; 247 245 reg = <0x10214000 0x4000>; 248 246 clock-frequency = <37500000>; 249 - clock-freq-min-max = <400000 37500000>; 247 + max-frequency = <37500000>; 250 248 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; 251 249 clock-names = "biu", "ciu"; 252 250 fifo-depth = <0x100>; ··· 257 255 sdio: dwmmc@10218000 { 258 256 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc"; 259 257 reg = <0x10218000 0x4000>; 260 - clock-freq-min-max = <400000 37500000>; 258 + max-frequency = <37500000>; 261 259 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, 262 260 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 263 261 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; ··· 273 271 bus-width = <8>; 274 272 cap-mmc-highspeed; 275 273 clock-frequency = <37500000>; 276 - clock-freq-min-max = <400000 37500000>; 274 + max-frequency = <37500000>; 277 275 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 278 276 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 279 277 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
+1 -1
arch/arm/boot/dts/rk3066a-bqcurie2.dts
··· 49 49 model = "bq Curie 2"; 50 50 compatible = "mundoreader,bq-curie2", "rockchip,rk3066a"; 51 51 52 - memory { 52 + memory@60000000 { 53 53 device_type = "memory"; 54 54 reg = <0x60000000 0x40000000>; 55 55 };
+1 -1
arch/arm/boot/dts/rk3066a-marsboard.dts
··· 47 47 model = "MarsBoard RK3066"; 48 48 compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a"; 49 49 50 - memory { 50 + memory@60000000 { 51 51 device_type = "memory"; 52 52 reg = <0x60000000 0x40000000>; 53 53 };
+195
arch/arm/boot/dts/rk3066a-mk808.dts
··· 1 + /* 2 + * Copyright (c) 2016 Paweł Jarosz <paweljarosz3691@gmail.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include "rk3066a.dtsi" 45 + 46 + / { 47 + model = "Rikomagic MK808"; 48 + compatible = "rikomagic,mk808", "rockchip,rk3066a"; 49 + 50 + chosen { 51 + stdout-path = "serial2:115200n8"; 52 + }; 53 + 54 + memory@60000000 { 55 + reg = <0x60000000 0x40000000>; 56 + device_type = "memory"; 57 + }; 58 + 59 + gpio-leds { 60 + compatible = "gpio-leds"; 61 + 62 + blue { 63 + label = "mk808:blue:power"; 64 + gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; 65 + default-state = "off"; 66 + linux,default-trigger = "default-on"; 67 + }; 68 + }; 69 + 70 + vcc_io: vcc-io { 71 + compatible = "regulator-fixed"; 72 + regulator-name = "vcc_io"; 73 + regulator-min-microvolt = <3300000>; 74 + regulator-max-microvolt = <3300000>; 75 + }; 76 + 77 + vcc_host: usb-host-regulator { 78 + compatible = "regulator-fixed"; 79 + enable-active-high; 80 + gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 81 + pinctrl-0 = <&host_drv>; 82 + pinctrl-names = "default"; 83 + regulator-always-on; 84 + regulator-name = "host-pwr"; 85 + regulator-min-microvolt = <5000000>; 86 + regulator-max-microvolt = <5000000>; 87 + startup-delay-us = <100000>; 88 + vin-supply = <&vcc_io>; 89 + }; 90 + 91 + vcc_otg: usb-otg-regulator { 92 + compatible = "regulator-fixed"; 93 + enable-active-high; 94 + gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>; 95 + pinctrl-0 = <&otg_drv>; 96 + pinctrl-names = "default"; 97 + regulator-always-on; 98 + regulator-name = "vcc_otg"; 99 + regulator-min-microvolt = <5000000>; 100 + regulator-max-microvolt = <5000000>; 101 + startup-delay-us = <100000>; 102 + vin-supply = <&vcc_io>; 103 + }; 104 + 105 + vcc_sd: sdmmc-regulator { 106 + compatible = "regulator-fixed"; 107 + gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 108 + pinctrl-0 = <&sdmmc_pwr>; 109 + pinctrl-names = "default"; 110 + regulator-name = "vcc_sd"; 111 + regulator-min-microvolt = <3300000>; 112 + regulator-max-microvolt = <3300000>; 113 + startup-delay-us = <100000>; 114 + vin-supply = <&vcc_io>; 115 + }; 116 + 117 + vcc_wifi: sdio-regulator { 118 + compatible = "regulator-fixed"; 119 + enable-active-high; 120 + gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>; 121 + pinctrl-0 = <&wifi_pwr>; 122 + pinctrl-names = "default"; 123 + regulator-name = "vcc_wifi"; 124 + regulator-min-microvolt = <3300000>; 125 + regulator-max-microvolt = <3300000>; 126 + startup-delay-us = <100000>; 127 + vin-supply = <&vcc_io>; 128 + }; 129 + }; 130 + 131 + &mmc0 { 132 + bus-width = <4>; 133 + cap-mmc-highspeed; 134 + cap-sd-highspeed; 135 + num-slots = <1>; 136 + vmmc-supply = <&vcc_sd>; 137 + status = "okay"; 138 + }; 139 + 140 + &mmc1 { 141 + bus-width = <4>; 142 + disable-wp; 143 + non-removable; 144 + num-slots = <1>; 145 + pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>; 146 + pinctrl-names = "default"; 147 + vmmc-supply = <&vcc_wifi>; 148 + status = "okay"; 149 + }; 150 + 151 + &pinctrl { 152 + usb-host { 153 + host_drv: host-drv { 154 + rockchip,pins = <RK_GPIO0 6 RK_FUNC_GPIO &pcfg_pull_default>; 155 + }; 156 + }; 157 + 158 + usb-otg { 159 + otg_drv: otg-drv { 160 + rockchip,pins = <RK_GPIO0 5 RK_FUNC_GPIO &pcfg_pull_default>; 161 + }; 162 + }; 163 + 164 + sdmmc { 165 + sdmmc_pwr: sdmmc-pwr { 166 + rockchip,pins = <RK_GPIO3 7 RK_FUNC_GPIO &pcfg_pull_default>; 167 + }; 168 + }; 169 + 170 + sdio { 171 + wifi_pwr: wifi-pwr { 172 + rockchip,pins = <RK_GPIO3 24 RK_FUNC_GPIO &pcfg_pull_none>; 173 + }; 174 + }; 175 + }; 176 + 177 + &uart2 { 178 + status = "okay"; 179 + }; 180 + 181 + &usb_host { 182 + status = "okay"; 183 + }; 184 + 185 + &usb_otg { 186 + status = "okay"; 187 + }; 188 + 189 + &usbphy { 190 + status = "okay"; 191 + }; 192 + 193 + &wdt { 194 + status = "okay"; 195 + };
+1 -1
arch/arm/boot/dts/rk3066a-rayeager.dts
··· 48 48 model = "Rayeager PX2"; 49 49 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; 50 50 51 - memory { 51 + memory@60000000 { 52 52 device_type = "memory"; 53 53 reg = <0x60000000 0x40000000>; 54 54 };
+11 -1
arch/arm/boot/dts/rk3066a.dtsi
··· 151 151 152 152 #clock-cells = <1>; 153 153 #reset-cells = <1>; 154 + assigned-clocks = <&cru PLL_CPLL>, <&cru PLL_GPLL>, 155 + <&cru ACLK_CPU>, <&cru HCLK_CPU>, 156 + <&cru PCLK_CPU>, <&cru ACLK_PERI>, 157 + <&cru HCLK_PERI>, <&cru PCLK_PERI>; 158 + assigned-clock-rates = <400000000>, <594000000>, 159 + <300000000>, <150000000>, 160 + <75000000>, <300000000>, 161 + <150000000>, <75000000>; 154 162 }; 155 163 156 164 timer@2000e000 { ··· 170 162 }; 171 163 172 164 efuse: efuse@20010000 { 173 - compatible = "rockchip,rockchip-efuse"; 165 + compatible = "rockchip,rk3066a-efuse"; 174 166 reg = <0x20010000 0x4000>; 175 167 #address-cells = <1>; 176 168 #size-cells = <1>; ··· 636 628 }; 637 629 638 630 &mmc0 { 631 + clock-frequency = <50000000>; 632 + max-frequency = <50000000>; 639 633 pinctrl-names = "default"; 640 634 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4>; 641 635 };
+328
arch/arm/boot/dts/rk3188-px3-evb.dts
··· 1 + /* 2 + * Copyright (c) 2016 Andy Yan <andy.yan@rock-chips.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include <dt-bindings/input/input.h> 45 + #include "rk3188.dtsi" 46 + 47 + / { 48 + model = "Rockchip PX3-EVB"; 49 + compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188"; 50 + 51 + chosen { 52 + stdout-path = "serial2:115200n8"; 53 + }; 54 + 55 + memory@60000000 { 56 + reg = <0x60000000 0x80000000>; 57 + device_type = "memory"; 58 + }; 59 + 60 + gpio-keys { 61 + compatible = "gpio-keys"; 62 + autorepeat; 63 + 64 + power { 65 + gpios = <&gpio0 4 GPIO_ACTIVE_LOW>; 66 + linux,code = <KEY_POWER>; 67 + label = "GPIO Key Power"; 68 + linux,input-type = <1>; 69 + wakeup-source; 70 + debounce-interval = <100>; 71 + }; 72 + }; 73 + 74 + vcc_sys: vsys-regulator { 75 + compatible = "regulator-fixed"; 76 + regulator-name = "vsys"; 77 + regulator-min-microvolt = <5000000>; 78 + regulator-max-microvolt = <5000000>; 79 + regulator-boot-on; 80 + }; 81 + }; 82 + 83 + &cpu0 { 84 + cpu0-supply = <&vdd_cpu>; 85 + }; 86 + 87 + &emmc { 88 + bus-width = <8>; 89 + cap-mmc-highspeed; 90 + disable-wp; 91 + non-removable; 92 + num-slots = <1>; 93 + pinctrl-names = "default"; 94 + pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; 95 + status = "okay"; 96 + }; 97 + 98 + &i2c0 { 99 + status = "okay"; 100 + 101 + accelerometer@18 { 102 + compatible = "bosch,bma250"; 103 + reg = <0x18>; 104 + interrupt-parent = <&gpio0>; 105 + interrupts = <15 IRQ_TYPE_LEVEL_LOW>; 106 + }; 107 + }; 108 + 109 + &i2c1 { 110 + status = "okay"; 111 + clock-frequency = <400000>; 112 + 113 + rk808: pmic@1c { 114 + compatible = "rockchip,rk818"; 115 + reg = <0x1c>; 116 + interrupt-parent = <&gpio0>; 117 + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 118 + rockchip,system-power-controller; 119 + wakeup-source; 120 + #clock-cells = <1>; 121 + clock-output-names = "xin32k", "rk808-clkout2"; 122 + 123 + vcc1-supply = <&vcc_sys>; 124 + vcc2-supply = <&vcc_sys>; 125 + vcc3-supply = <&vcc_sys>; 126 + vcc4-supply = <&vcc_sys>; 127 + vcc6-supply = <&vcc_sys>; 128 + vcc7-supply = <&vcc_sys>; 129 + vcc8-supply = <&vcc_io>; 130 + vcc9-supply = <&vcc_io>; 131 + 132 + regulators { 133 + vdd_cpu: DCDC_REG1 { 134 + regulator-always-on; 135 + regulator-boot-on; 136 + regulator-min-microvolt = <750000>; 137 + regulator-max-microvolt = <1350000>; 138 + regulator-name = "vdd_arm"; 139 + regulator-state-mem { 140 + regulator-off-in-suspend; 141 + }; 142 + }; 143 + 144 + vdd_gpu: DCDC_REG2 { 145 + regulator-always-on; 146 + regulator-boot-on; 147 + regulator-min-microvolt = <850000>; 148 + regulator-max-microvolt = <1250000>; 149 + regulator-name = "vdd_gpu"; 150 + regulator-state-mem { 151 + regulator-on-in-suspend; 152 + regulator-suspend-microvolt = <1000000>; 153 + }; 154 + }; 155 + 156 + vcc_ddr: DCDC_REG3 { 157 + regulator-always-on; 158 + regulator-boot-on; 159 + regulator-name = "vcc_ddr"; 160 + regulator-state-mem { 161 + regulator-on-in-suspend; 162 + }; 163 + }; 164 + 165 + vcc_io: DCDC_REG4 { 166 + regulator-always-on; 167 + regulator-boot-on; 168 + regulator-min-microvolt = <3300000>; 169 + regulator-max-microvolt = <3300000>; 170 + regulator-name = "vcc_io"; 171 + regulator-state-mem { 172 + regulator-on-in-suspend; 173 + regulator-suspend-microvolt = <3300000>; 174 + }; 175 + }; 176 + 177 + vcc_cif: LDO_REG1 { 178 + regulator-min-microvolt = <3300000>; 179 + regulator-max-microvolt = <3300000>; 180 + regulator-name = "vcc_cif"; 181 + }; 182 + 183 + vcc_jetta33: LDO_REG2 { 184 + regulator-always-on; 185 + regulator-boot-on; 186 + regulator-min-microvolt = <3300000>; 187 + regulator-max-microvolt = <3300000>; 188 + regulator-name = "vcc_jetta33"; 189 + }; 190 + 191 + vdd_10: LDO_REG3 { 192 + regulator-always-on; 193 + regulator-boot-on; 194 + regulator-min-microvolt = <1000000>; 195 + regulator-max-microvolt = <1000000>; 196 + regulator-name = "vdd_10"; 197 + regulator-state-mem { 198 + regulator-on-in-suspend; 199 + regulator-suspend-microvolt = <1000000>; 200 + }; 201 + }; 202 + 203 + lvds_12: LDO_REG4 { 204 + regulator-min-microvolt = <1800000>; 205 + regulator-max-microvolt = <1800000>; 206 + regulator-name = "lvds_12"; 207 + }; 208 + 209 + lvds_25: LDO_REG5 { 210 + regulator-min-microvolt = <1800000>; 211 + regulator-max-microvolt = <3300000>; 212 + regulator-name = "lvds_25"; 213 + }; 214 + 215 + cif_18: LDO_REG6 { 216 + regulator-min-microvolt = <1000000>; 217 + regulator-max-microvolt = <1000000>; 218 + regulator-name = "cif_18"; 219 + }; 220 + 221 + vcc_sd: LDO_REG7 { 222 + regulator-min-microvolt = <1800000>; 223 + regulator-max-microvolt = <3300000>; 224 + regulator-name = "vcc_sd"; 225 + regulator-state-mem { 226 + regulator-on-in-suspend; 227 + regulator-suspend-microvolt = <3300000>; 228 + }; 229 + }; 230 + 231 + wl_18: LDO_REG8 { 232 + regulator-min-microvolt = <1800000>; 233 + regulator-max-microvolt = <3300000>; 234 + regulator-name = "wl_18"; 235 + }; 236 + 237 + lcd_33: SWITCH_REG1 { 238 + regulator-name = "lcd_33"; 239 + }; 240 + }; 241 + }; 242 + 243 + }; 244 + 245 + &i2c2 { 246 + gsl1680: touchscreen@40 { 247 + compatible = "silead,gsl1680"; 248 + reg = <0x40>; 249 + interrupt-parent = <&gpio1>; 250 + interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 251 + power-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; 252 + touchscreen-size-x = <800>; 253 + touchscreen-size-y = <1280>; 254 + silead,max-fingers = <5>; 255 + }; 256 + }; 257 + 258 + &mmc0 { 259 + num-slots = <1>; 260 + status = "okay"; 261 + pinctrl-names = "default"; 262 + pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; 263 + vmmc-supply = <&vcc_sd>; 264 + 265 + bus-width = <4>; 266 + cap-mmc-highspeed; 267 + cap-sd-highspeed; 268 + disable-wp; 269 + }; 270 + 271 + &pinctrl { 272 + pcfg_output_low: pcfg-output-low { 273 + output-low; 274 + }; 275 + 276 + usb { 277 + host_vbus_drv: host-vbus-drv { 278 + rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>; 279 + }; 280 + otg_vbus_drv: otg-vbus-drv { 281 + rockchip,pins = <2 31 RK_FUNC_GPIO &pcfg_pull_none>; 282 + }; 283 + }; 284 + }; 285 + 286 + &pwm1 { 287 + status = "okay"; 288 + }; 289 + 290 + &pwm2 { 291 + status = "okay"; 292 + }; 293 + 294 + &pwm3 { 295 + status = "okay"; 296 + }; 297 + 298 + &uart0 { 299 + status = "okay"; 300 + }; 301 + 302 + &uart1 { 303 + status = "okay"; 304 + }; 305 + 306 + &uart2 { 307 + status = "okay"; 308 + }; 309 + 310 + &uart3 { 311 + status = "okay"; 312 + }; 313 + 314 + &usbphy { 315 + status = "okay"; 316 + }; 317 + 318 + &usb_host { 319 + status = "okay"; 320 + }; 321 + 322 + &usb_otg { 323 + status = "okay"; 324 + }; 325 + 326 + &wdt { 327 + status = "okay"; 328 + };
+1 -1
arch/arm/boot/dts/rk3188-radxarock.dts
··· 48 48 model = "Radxa Rock"; 49 49 compatible = "radxa,rock", "rockchip,rk3188"; 50 50 51 - memory { 51 + memory@60000000 { 52 52 device_type = "memory"; 53 53 reg = <0x60000000 0x80000000>; 54 54 };
+1 -1
arch/arm/boot/dts/rk3188.dtsi
··· 147 147 }; 148 148 149 149 efuse: efuse@20010000 { 150 - compatible = "rockchip,rockchip-efuse"; 150 + compatible = "rockchip,rk3188-efuse"; 151 151 reg = <0x20010000 0x4000>; 152 152 #address-cells = <1>; 153 153 #size-cells = <1>;
+1 -1
arch/arm/boot/dts/rk3228-evb.dts
··· 46 46 model = "Rockchip RK3228 Evaluation board"; 47 47 compatible = "rockchip,rk3228-evb", "rockchip,rk3228"; 48 48 49 - memory { 49 + memory@60000000 { 50 50 device_type = "memory"; 51 51 reg = <0x60000000 0x40000000>; 52 52 };
+1 -1
arch/arm/boot/dts/rk3229-evb.dts
··· 46 46 model = "Rockchip RK3229 Evaluation board"; 47 47 compatible = "rockchip,rk3229-evb", "rockchip,rk3229"; 48 48 49 - memory { 49 + memory@60000000 { 50 50 device_type = "memory"; 51 51 reg = <0x60000000 0x40000000>; 52 52 };
+4 -2
arch/arm/boot/dts/rk322x.dtsi
··· 44 44 #include <dt-bindings/pinctrl/rockchip.h> 45 45 #include <dt-bindings/clock/rk3228-cru.h> 46 46 #include <dt-bindings/thermal/thermal.h> 47 - #include "skeleton.dtsi" 48 47 49 48 / { 49 + #address-cells = <1>; 50 + #size-cells = <1>; 51 + 50 52 interrupt-parent = <&gic>; 51 53 52 54 aliases { ··· 404 402 reg = <0x30020000 0x4000>; 405 403 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 406 404 clock-frequency = <37500000>; 407 - clock-freq-min-max = <400000 37500000>; 405 + max-frequency = <37500000>; 408 406 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 409 407 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 410 408 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
+1 -1
arch/arm/boot/dts/rk3288-evb.dtsi
··· 43 43 #include "rk3288.dtsi" 44 44 45 45 / { 46 - memory { 46 + memory@0 { 47 47 device_type = "memory"; 48 48 reg = <0x0 0x80000000>; 49 49 };
+1 -1
arch/arm/boot/dts/rk3288-fennec.dts
··· 46 46 model = "Rockchip RK3288 Fennec Board"; 47 47 compatible = "rockchip,rk3288-fennec", "rockchip,rk3288"; 48 48 49 - memory { 49 + memory@0 { 50 50 reg = <0x0 0x80000000>; 51 51 device_type = "memory"; 52 52 };
+1 -1
arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
··· 45 45 #include "rk3288.dtsi" 46 46 47 47 / { 48 - memory { 48 + memory@0 { 49 49 device_type = "memory"; 50 50 reg = <0 0x80000000>; 51 51 };
+1 -1
arch/arm/boot/dts/rk3288-firefly.dtsi
··· 44 44 #include "rk3288.dtsi" 45 45 46 46 / { 47 - memory { 47 + memory@0 { 48 48 device_type = "memory"; 49 49 reg = <0 0x80000000>; 50 50 };
+1 -1
arch/arm/boot/dts/rk3288-miqi.dts
··· 52 52 stdout-path = "serial2:115200n8"; 53 53 }; 54 54 55 - memory { 55 + memory@0 { 56 56 device_type = "memory"; 57 57 reg = <0 0x80000000>; 58 58 };
+20 -14
arch/arm/boot/dts/rk3288-popmetal.dts
··· 48 48 model = "PopMetal-RK3288"; 49 49 compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288"; 50 50 51 - memory{ 51 + memory@0 { 52 52 device_type = "memory"; 53 53 reg = <0 0x80000000>; 54 54 }; ··· 68 68 pinctrl-0 = <&pwrbtn>; 69 69 70 70 power { 71 - gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 71 + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 72 72 linux,code = <KEY_POWER>; 73 73 label = "GPIO Key Power"; 74 74 linux,input-type = <1>; ··· 79 79 80 80 ir: ir-receiver { 81 81 compatible = "gpio-ir-receiver"; 82 - gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 82 + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>; 83 83 pinctrl-names = "default"; 84 84 pinctrl-0 = <&ir_int>; 85 85 }; ··· 94 94 95 95 vcc_sd: sdmmc-regulator { 96 96 compatible = "regulator-fixed"; 97 - gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 97 + gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>; 98 98 pinctrl-names = "default"; 99 99 pinctrl-0 = <&sdmmc_pwr>; 100 100 regulator-name = "vcc_sd"; ··· 128 128 vcc28_dvp: vcc28-dvp-regulator { 129 129 compatible = "regulator-fixed"; 130 130 enable-active-high; 131 - gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>; 131 + gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; 132 132 pinctrl-names = "default"; 133 133 pinctrl-0 = <&dvp_pwr>; 134 134 regulator-name = "vcc28_dvp"; ··· 147 147 bus-width = <8>; 148 148 cap-mmc-highspeed; 149 149 disable-wp; 150 + mmc-ddr-1_8v; 151 + mmc-hs200-1_8v; 150 152 non-removable; 151 153 num-slots = <1>; 152 154 pinctrl-names = "default"; ··· 167 165 num-slots = <1>; 168 166 pinctrl-names = "default"; 169 167 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 168 + sd-uhs-sdr12; 169 + sd-uhs-sdr25; 170 + sd-uhs-sdr50; 171 + sd-uhs-sdr104; 170 172 vmmc-supply = <&vcc_sd>; 171 173 vqmmc-supply = <&vccio_sd>; 172 174 status = "okay"; ··· 180 174 phy-supply = <&vcc_lan>; 181 175 phy-mode = "rgmii"; 182 176 clock_in_out = "input"; 183 - snps,reset-gpio = <&gpio4 7 0>; 177 + snps,reset-gpio = <&gpio4 RK_PB0 0>; 184 178 snps,reset-active-low; 185 179 snps,reset-delays-us = <0 10000 1000000>; 186 180 assigned-clocks = <&cru SCLK_MAC>; ··· 286 280 vccio_sd: LDO_REG2 { 287 281 regulator-always-on; 288 282 regulator-boot-on; 289 - regulator-min-microvolt = <3300000>; 283 + regulator-min-microvolt = <1800000>; 290 284 regulator-max-microvolt = <3300000>; 291 285 regulator-name = "vccio_sd"; 292 286 regulator-state-mem { ··· 449 443 &pinctrl { 450 444 ak8963 { 451 445 comp_int: comp-int { 452 - rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>; 446 + rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; 453 447 }; 454 448 }; 455 449 456 450 buttons { 457 451 pwrbtn: pwrbtn { 458 - rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; 452 + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 459 453 }; 460 454 }; 461 455 462 456 dvp { 463 457 dvp_pwr: dvp-pwr { 464 - rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>; 458 + rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 465 459 }; 466 460 }; 467 461 468 462 ir { 469 463 ir_int: ir-int { 470 - rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>; 464 + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; 471 465 }; 472 466 }; 473 467 474 468 mma8452 { 475 469 gsensor_int: gsensor-int { 476 - rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>; 470 + rockchip,pins = <8 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; 477 471 }; 478 472 }; 479 473 480 474 pmic { 481 475 pmic_int: pmic-int { 482 - rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>; 476 + rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 483 477 }; 484 478 }; 485 479 486 480 sdmmc { 487 481 sdmmc_pwr: sdmmc-pwr { 488 - rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 482 + rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 489 483 }; 490 484 }; 491 485 };
+1 -1
arch/arm/boot/dts/rk3288-r89.dts
··· 48 48 / { 49 49 compatible = "netxeon,r89", "rockchip,rk3288"; 50 50 51 - memory { 51 + memory@0 { 52 52 device_type = "memory"; 53 53 reg = <0x0 0x80000000>; 54 54 };
+1 -1
arch/arm/boot/dts/rk3288-rock2-som.dtsi
··· 42 42 #include "rk3288.dtsi" 43 43 44 44 / { 45 - memory { 45 + memory@0 { 46 46 reg = <0x0 0x80000000>; 47 47 device_type = "memory"; 48 48 };
+1 -1
arch/arm/boot/dts/rk3288-veyron.dtsi
··· 47 47 #include "rk3288.dtsi" 48 48 49 49 / { 50 - memory { 50 + memory@0 { 51 51 device_type = "memory"; 52 52 reg = <0x0 0x80000000>; 53 53 };
+8 -6
arch/arm/boot/dts/rk3288.dtsi
··· 46 46 #include <dt-bindings/thermal/thermal.h> 47 47 #include <dt-bindings/power/rk3288-power.h> 48 48 #include <dt-bindings/soc/rockchip,boot-mode.h> 49 - #include "skeleton.dtsi" 50 49 51 50 / { 51 + #address-cells = <1>; 52 + #size-cells = <1>; 53 + 52 54 compatible = "rockchip,rk3288"; 53 55 54 56 interrupt-parent = <&gic>; ··· 229 227 230 228 sdmmc: dwmmc@ff0c0000 { 231 229 compatible = "rockchip,rk3288-dw-mshc"; 232 - clock-freq-min-max = <400000 150000000>; 230 + max-frequency = <150000000>; 233 231 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 234 232 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 235 233 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; ··· 241 239 242 240 sdio0: dwmmc@ff0d0000 { 243 241 compatible = "rockchip,rk3288-dw-mshc"; 244 - clock-freq-min-max = <400000 150000000>; 242 + max-frequency = <150000000>; 245 243 clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, 246 244 <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; 247 245 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; ··· 253 251 254 252 sdio1: dwmmc@ff0e0000 { 255 253 compatible = "rockchip,rk3288-dw-mshc"; 256 - clock-freq-min-max = <400000 150000000>; 254 + max-frequency = <150000000>; 257 255 clocks = <&cru HCLK_SDIO1>, <&cru SCLK_SDIO1>, 258 256 <&cru SCLK_SDIO1_DRV>, <&cru SCLK_SDIO1_SAMPLE>; 259 257 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; ··· 265 263 266 264 emmc: dwmmc@ff0f0000 { 267 265 compatible = "rockchip,rk3288-dw-mshc"; 268 - clock-freq-min-max = <400000 150000000>; 266 + max-frequency = <150000000>; 269 267 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 270 268 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 271 269 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; ··· 1118 1116 }; 1119 1117 1120 1118 efuse: efuse@ffb40000 { 1121 - compatible = "rockchip,rockchip-efuse"; 1119 + compatible = "rockchip,rk3288-efuse"; 1122 1120 reg = <0xffb40000 0x20>; 1123 1121 #address-cells = <1>; 1124 1122 #size-cells = <1>;
+3 -1
arch/arm/boot/dts/rk3xxx.dtsi
··· 44 44 #include <dt-bindings/interrupt-controller/irq.h> 45 45 #include <dt-bindings/interrupt-controller/arm-gic.h> 46 46 #include <dt-bindings/soc/rockchip,boot-mode.h> 47 - #include "skeleton.dtsi" 48 47 49 48 / { 49 + #address-cells = <1>; 50 + #size-cells = <1>; 51 + 50 52 interrupt-parent = <&gic>; 51 53 52 54 aliases {
+7 -1
include/dt-bindings/clock/rk3188-cru-common.h
··· 72 72 #define ACLK_IPP 200 73 73 #define ACLK_RGA 201 74 74 #define ACLK_CIF0 202 75 + #define ACLK_CPU 203 76 + #define ACLK_PERI 204 75 77 76 78 /* pclk gates */ 77 79 #define PCLK_GRF 320 ··· 106 104 #define PCLK_EFUSE 347 107 105 #define PCLK_TZPC 348 108 106 #define PCLK_TSADC 349 107 + #define PCLK_CPU 350 108 + #define PCLK_PERI 351 109 109 110 110 /* hclk gates */ 111 111 #define HCLK_SDMMC 448 ··· 130 126 #define HCLK_IPP 465 131 127 #define HCLK_RGA 466 132 128 #define HCLK_NANDC0 467 129 + #define HCLK_CPU 468 130 + #define HCLK_PERI 469 133 131 134 - #define CLK_NR_CLKS (HCLK_NANDC0 + 1) 132 + #define CLK_NR_CLKS (HCLK_PERI + 1) 135 133 136 134 /* soft-reset indices */ 137 135 #define SRST_MCORE 2
+33
include/dt-bindings/pinctrl/rockchip.h
··· 25 25 #define RK_GPIO4 4 26 26 #define RK_GPIO6 6 27 27 28 + #define RK_PA0 0 29 + #define RK_PA1 1 30 + #define RK_PA2 2 31 + #define RK_PA3 3 32 + #define RK_PA4 4 33 + #define RK_PA5 5 34 + #define RK_PA6 6 35 + #define RK_PA7 7 36 + #define RK_PB0 8 37 + #define RK_PB1 9 38 + #define RK_PB2 10 39 + #define RK_PB3 11 40 + #define RK_PB4 12 41 + #define RK_PB5 13 42 + #define RK_PB6 14 43 + #define RK_PB7 15 44 + #define RK_PC0 16 45 + #define RK_PC1 17 46 + #define RK_PC2 18 47 + #define RK_PC3 19 48 + #define RK_PC4 20 49 + #define RK_PC5 21 50 + #define RK_PC6 22 51 + #define RK_PC7 23 52 + #define RK_PD0 24 53 + #define RK_PD1 25 54 + #define RK_PD2 26 55 + #define RK_PD3 27 56 + #define RK_PD4 28 57 + #define RK_PD5 29 58 + #define RK_PD6 30 59 + #define RK_PD7 31 60 + 28 61 #define RK_FUNC_GPIO 0 29 62 #define RK_FUNC_1 1 30 63 #define RK_FUNC_2 2