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

Merge tag 'v3.20-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

Merge "ARM: rockchip: second batch of dts updates for 3.20" from Heiko Stübner:

Basic display nodes for crtcs and hdmi encoder, timer node
for the broadcast timer going through the clocksource tree
and two new boards, the rk3288-based Firefly and the
PX2-based Rayeager board (the PX2 is identical to the rk3066
but made for industrial users).

* tag 'v3.20-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: rockchip: add dts for ChipSPARK Rayeager PX2 board
ARM: dts: rockchip: add dts for Firefly Firefly-RK3288 boards
dt-bindings: add vendor prefix and root compatible property for Rockchip boards
ARM: dts: rockchip: Add rockchip timer node for rk3288
ARM: dts: rockchip: add rk3288 hdmi nodes
ARM: dts: rockchip: Add rk3288 vop and display-subsystem

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

+1177 -1
+10
Documentation/devicetree/bindings/arm/rockchip.txt
··· 9 9 Required root node properties: 10 10 - compatible = "mundoreader,bq-curie2", "rockchip,rk3066a"; 11 11 12 + - ChipSPARK Rayeager PX2 board: 13 + Required root node properties: 14 + - compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; 15 + 12 16 - Radxa Rock board: 13 17 Required root node properties: 14 18 - compatible = "radxa,rock", "rockchip,rk3188"; 19 + 20 + - Firefly Firefly-RK3288 board: 21 + Required root node properties: 22 + - compatible = "firefly,firefly-rk3288", "rockchip,rk3288"; 23 + or 24 + - compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
+2
Documentation/devicetree/bindings/vendor-prefixes.txt
··· 32 32 cavium Cavium, Inc. 33 33 cdns Cadence Design Systems Inc. 34 34 chipidea Chipidea, Inc 35 + chipspark ChipSPARK 35 36 chrp Common Hardware Reference Platform 36 37 chunghwa Chunghwa Picture Tubes Ltd. 37 38 cirrus Cirrus Logic, Inc. ··· 61 60 everest Everest Semiconductor Co. Ltd. 62 61 excito Excito 63 62 fcs Fairchild Semiconductor 63 + firefly Firefly 64 64 fsl Freescale Semiconductor 65 65 GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. 66 66 gef GE Fanuc Intelligent Platforms Embedded Systems, Inc.
+4 -1
arch/arm/boot/dts/Makefile
··· 444 444 dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 445 445 rk3066a-bqcurie2.dtb \ 446 446 rk3066a-marsboard.dtb \ 447 + rk3066a-rayeager.dtb \ 447 448 rk3188-radxarock.dtb \ 448 449 rk3288-evb-act8846.dtb \ 449 - rk3288-evb-rk808.dtb 450 + rk3288-evb-rk808.dtb \ 451 + rk3288-firefly-beta.dtb \ 452 + rk3288-firefly.dtb 450 453 dtb-$(CONFIG_ARCH_S3C24XX) += \ 451 454 s3c2416-smdk2416.dtb 452 455 dtb-$(CONFIG_ARCH_S3C64XX) += \
+468
arch/arm/boot/dts/rk3066a-rayeager.dts
··· 1 + /* 2 + * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@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 = "Rayeager PX2"; 48 + compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; 49 + 50 + memory { 51 + reg = <0x60000000 0x40000000>; 52 + }; 53 + 54 + ir: ir-receiver { 55 + compatible = "gpio-ir-receiver"; 56 + gpios = <&gpio6 1 GPIO_ACTIVE_LOW>; 57 + pinctrl-names = "default"; 58 + pinctrl-0 = <&ir_int>; 59 + }; 60 + 61 + keys: gpio-keys { 62 + compatible = "gpio-keys"; 63 + #address-cells = <1>; 64 + #size-cells = <0>; 65 + 66 + button@0 { 67 + gpio-key,wakeup = <1>; 68 + gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; 69 + label = "GPIO Power"; 70 + linux,code = <116>; 71 + pinctrl-names = "default"; 72 + pinctrl-0 = <&pwr_key>; 73 + }; 74 + }; 75 + 76 + vsys: vsys-regulator { 77 + compatible = "regulator-fixed"; 78 + regulator-name = "vsys"; 79 + regulator-min-microvolt = <5000000>; 80 + regulator-max-microvolt = <5000000>; 81 + regulator-always-on; 82 + regulator-boot-on; 83 + }; 84 + 85 + /* input for 5V_STDBY is VSYS or DC5V, selectable by jumper J4 */ 86 + vcc_stdby: 5v-stdby-regulator { 87 + compatible = "regulator-fixed"; 88 + regulator-name = "5v_stdby"; 89 + regulator-min-microvolt = <5000000>; 90 + regulator-max-microvolt = <5000000>; 91 + regulator-always-on; 92 + regulator-boot-on; 93 + }; 94 + 95 + vcc_emmc: emmc-regulator { 96 + compatible = "regulator-fixed"; 97 + regulator-name = "emmc_vccq"; 98 + regulator-min-microvolt = <3000000>; 99 + regulator-max-microvolt = <3000000>; 100 + vin-supply = <&vsys>; 101 + }; 102 + 103 + vcc_sata: sata-regulator { 104 + compatible = "regulator-fixed"; 105 + enable-active-high; 106 + gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>; 107 + pinctrl-names = "default"; 108 + pinctrl-0 = <&sata_pwr>; 109 + regulator-name = "usb_5v"; 110 + regulator-min-microvolt = <5000000>; 111 + regulator-max-microvolt = <5000000>; 112 + regulator-always-on; 113 + vin-supply = <&vcc_stdby>; 114 + }; 115 + 116 + vcc_sd: sdmmc-regulator { 117 + compatible = "regulator-fixed"; 118 + gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 119 + pinctrl-names = "default"; 120 + pinctrl-0 = <&sdmmc_pwr>; 121 + regulator-name = "vcc_sd"; 122 + regulator-min-microvolt = <3300000>; 123 + regulator-max-microvolt = <3300000>; 124 + startup-delay-us = <100000>; 125 + vin-supply = <&vcc_io>; 126 + }; 127 + 128 + vcc_host: usb-host-regulator { 129 + compatible = "regulator-fixed"; 130 + enable-active-high; 131 + gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 132 + pinctrl-names = "default"; 133 + pinctrl-0 = <&host_drv>; 134 + regulator-name = "host-pwr"; 135 + regulator-min-microvolt = <5000000>; 136 + regulator-max-microvolt = <5000000>; 137 + regulator-always-on; 138 + vin-supply = <&vcc_stdby>; 139 + }; 140 + 141 + vcc_otg: usb-otg-regulator { 142 + compatible = "regulator-fixed"; 143 + enable-active-high; 144 + gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>; 145 + pinctrl-names = "default"; 146 + pinctrl-0 = <&otg_drv>; 147 + regulator-name = "vcc_otg"; 148 + regulator-min-microvolt = <5000000>; 149 + regulator-max-microvolt = <5000000>; 150 + regulator-always-on; 151 + vin-supply = <&vcc_stdby>; 152 + }; 153 + }; 154 + 155 + &cpu0 { 156 + cpu0-supply = <&vdd_arm>; 157 + }; 158 + 159 + &emac { 160 + pinctrl-names = "default"; 161 + pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>; 162 + phy = <&phy0>; 163 + phy-supply = <&vcc_rmii>; 164 + status = "okay"; 165 + 166 + phy0: ethernet-phy@0 { 167 + reg = <0>; 168 + }; 169 + }; 170 + 171 + &emmc { 172 + broken-cd; 173 + bus-width = <8>; 174 + cap-mmc-highspeed; 175 + disable-wp; 176 + non-removable; 177 + num-slots = <1>; 178 + pinctrl-names = "default"; 179 + pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; 180 + vmmc-supply = <&vcc_emmc>; 181 + vqmmc-supply = <&vcc_emmc>; 182 + status = "okay"; 183 + }; 184 + 185 + &i2c0 { 186 + clock-frequency = <400000>; 187 + status = "okay"; 188 + 189 + ak8963: ak8963@0d { 190 + compatible = "asahi-kasei,ak8975"; 191 + reg = <0x0d>; 192 + interrupt-parent = <&gpio4>; 193 + interrupts = <17 IRQ_TYPE_EDGE_RISING>; 194 + pinctrl-names = "default"; 195 + pinctrl-0 = <&comp_int>; 196 + }; 197 + 198 + mma8452: mma8452@1d { 199 + compatible = "fsl,mma8452"; 200 + reg = <0x1d>; 201 + interrupt-parent = <&gpio4>; 202 + interrupts = <16 IRQ_TYPE_EDGE_RISING>; 203 + pinctrl-names = "default"; 204 + pinctrl-0 = <&gsensor_int>; 205 + }; 206 + }; 207 + 208 + &i2c1 { 209 + clock-frequency = <400000>; 210 + status = "okay"; 211 + 212 + tps: tps@2d { 213 + reg = <0x2d>; 214 + interrupt-parent = <&gpio6>; 215 + interrupts = <4 IRQ_TYPE_EDGE_RISING>; 216 + pinctrl-names = "default"; 217 + pinctrl-0 = <&pmic_int>, <&pwr_hold>; 218 + 219 + vcc1-supply = <&vsys>; 220 + vcc2-supply = <&vsys>; 221 + vcc3-supply = <&vsys>; 222 + vcc4-supply = <&vsys>; 223 + vcc5-supply = <&vcc_io>; 224 + vcc6-supply = <&vcc_io>; 225 + vcc7-supply = <&vsys>; 226 + vccio-supply = <&vsys>; 227 + 228 + regulators { 229 + vcc_rtc: regulator@0 { 230 + regulator-name = "vcc_rtc"; 231 + regulator-always-on; 232 + }; 233 + 234 + vcc_io: regulator@1 { 235 + regulator-name = "vcc_io"; 236 + regulator-min-microvolt = <3300000>; 237 + regulator-max-microvolt = <3300000>; 238 + regulator-always-on; 239 + }; 240 + 241 + vdd_arm: regulator@2 { 242 + regulator-name = "vdd_arm"; 243 + regulator-min-microvolt = <600000>; 244 + regulator-max-microvolt = <1500000>; 245 + regulator-always-on; 246 + regulator-boot-on; 247 + }; 248 + 249 + vcc_ddr: regulator@3 { 250 + regulator-name = "vcc_ddr"; 251 + regulator-min-microvolt = <600000>; 252 + regulator-max-microvolt = <1500000>; 253 + regulator-always-on; 254 + regulator-boot-on; 255 + }; 256 + 257 + vcc18: regulator@5 { 258 + regulator-name = "vcc18"; 259 + regulator-min-microvolt = <1800000>; 260 + regulator-max-microvolt = <1800000>; 261 + regulator-always-on; 262 + }; 263 + 264 + vdd_11: regulator@6 { 265 + regulator-name = "vdd_11"; 266 + regulator-min-microvolt = <1100000>; 267 + regulator-max-microvolt = <1100000>; 268 + regulator-always-on; 269 + }; 270 + 271 + vcc_25: regulator@7 { 272 + regulator-name = "vcc_25"; 273 + regulator-min-microvolt = <2500000>; 274 + regulator-max-microvolt = <2500000>; 275 + regulator-always-on; 276 + }; 277 + 278 + vccio_wl: regulator@8 { 279 + regulator-name = "vccio_wl"; 280 + regulator-min-microvolt = <1800000>; 281 + regulator-max-microvolt = <1800000>; 282 + }; 283 + 284 + vcc25_hdmi: regulator@9 { 285 + regulator-name = "vcc25_hdmi"; 286 + regulator-min-microvolt = <2500000>; 287 + regulator-max-microvolt = <2500000>; 288 + }; 289 + 290 + vcca_33: regulator@10 { 291 + regulator-name = "vcca_33"; 292 + regulator-min-microvolt = <3300000>; 293 + regulator-max-microvolt = <3300000>; 294 + }; 295 + 296 + vcc_rmii: regulator@11 { 297 + regulator-name = "vcc_rmii"; 298 + regulator-min-microvolt = <3300000>; 299 + regulator-max-microvolt = <3300000>; 300 + }; 301 + 302 + vcc28_cif: regulator@12 { 303 + regulator-name = "vcc28_cif"; 304 + regulator-min-microvolt = <2800000>; 305 + regulator-max-microvolt = <2800000>; 306 + }; 307 + }; 308 + }; 309 + }; 310 + 311 + #include "tps65910.dtsi" 312 + 313 + &i2c2 { 314 + status = "okay"; 315 + }; 316 + 317 + &i2c3 { 318 + status = "okay"; 319 + }; 320 + 321 + &i2c4 { 322 + status = "okay"; 323 + }; 324 + 325 + &mmc0 { 326 + bus-width = <4>; 327 + disable-wp; 328 + num-slots = <1>; 329 + pinctrl-names = "default"; 330 + pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; 331 + vmmc-supply = <&vcc_sd>; 332 + status = "okay"; 333 + }; 334 + 335 + &mmc1 { 336 + broken-cd; 337 + bus-width = <4>; 338 + disable-wp; 339 + non-removable; 340 + num-slots = <1>; 341 + pinctrl-names = "default"; 342 + pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>; 343 + vmmc-supply = <&vccio_wl>; 344 + status = "okay"; 345 + }; 346 + 347 + &pinctrl { 348 + pcfg_output_high: pcfg-output-high { 349 + output-high; 350 + }; 351 + 352 + ak8963 { 353 + comp_int: comp-int { 354 + rockchip,pins = <4 17 RK_FUNC_GPIO &pcfg_pull_default>; 355 + }; 356 + }; 357 + 358 + emac { 359 + rmii_rst: rmii-rst { 360 + rockchip,pins = <1 30 RK_FUNC_GPIO &pcfg_output_high>; 361 + }; 362 + }; 363 + 364 + ir { 365 + ir_int: ir-int { 366 + rockchip,pins = <6 1 RK_FUNC_GPIO &pcfg_pull_default>; 367 + }; 368 + }; 369 + 370 + keys { 371 + pwr_key: pwr-key { 372 + rockchip,pins = <6 2 RK_FUNC_GPIO &pcfg_pull_default>; 373 + }; 374 + }; 375 + 376 + mma8452 { 377 + gsensor_int: gsensor-int { 378 + rockchip,pins = <4 16 RK_FUNC_GPIO &pcfg_pull_default>; 379 + }; 380 + }; 381 + 382 + mmc { 383 + sdmmc_pwr: sdmmc-pwr { 384 + rockchip,pins = <3 7 RK_FUNC_GPIO &pcfg_pull_default>; 385 + }; 386 + }; 387 + 388 + usb_host { 389 + host_drv: host-drv { 390 + rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_default>; 391 + }; 392 + 393 + hub_rst: hub-rst { 394 + rockchip,pins = <1 31 RK_FUNC_GPIO &pcfg_output_high>; 395 + }; 396 + 397 + sata_pwr: sata-pwr { 398 + rockchip,pins = <4 22 RK_FUNC_GPIO &pcfg_pull_default>; 399 + }; 400 + 401 + sata_reset: sata-reset { 402 + rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_output_high>; 403 + }; 404 + }; 405 + 406 + usb_otg { 407 + otg_drv: otg-drv { 408 + rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_default>; 409 + }; 410 + }; 411 + 412 + tps { 413 + pmic_int: pmic-int { 414 + rockchip,pins = <6 4 RK_FUNC_GPIO &pcfg_pull_default>; 415 + }; 416 + 417 + pwr_hold: pwr-hold { 418 + rockchip,pins = <6 8 RK_FUNC_GPIO &pcfg_output_high>; 419 + }; 420 + }; 421 + }; 422 + 423 + &pwm1 { 424 + status = "okay"; 425 + }; 426 + 427 + &pwm2 { 428 + status = "okay"; 429 + }; 430 + 431 + &saradc { 432 + vref-supply = <&vcc_25>; 433 + status = "okay"; 434 + }; 435 + 436 + &spi0 { 437 + status = "okay"; 438 + }; 439 + 440 + &uart0 { 441 + pinctrl-names = "default"; 442 + pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 443 + status = "okay"; 444 + }; 445 + 446 + &uart2 { 447 + status = "okay"; 448 + }; 449 + 450 + &uart3 { 451 + pinctrl-names = "default"; 452 + pinctrl-0 = <&uart3_xfer>, <&uart3_cts>, <&uart3_rts>; 453 + status = "okay"; 454 + }; 455 + 456 + &usb_host { 457 + pinctrl-names = "default"; 458 + pinctrl-0 = <&hub_rst>, <&sata_reset>; 459 + status = "okay"; 460 + }; 461 + 462 + &usb_otg { 463 + status = "okay"; 464 + }; 465 + 466 + &wdt { 467 + status = "okay"; 468 + };
+71
arch/arm/boot/dts/rk3288-firefly-beta.dts
··· 1 + /* 2 + * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@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 "rk3288-firefly.dtsi" 45 + 46 + / { 47 + model = "Firefly-RK3288 Beta"; 48 + compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288"; 49 + }; 50 + 51 + &ir { 52 + gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; 53 + }; 54 + 55 + &pinctrl { 56 + act8846 { 57 + pmic_vsel: pmic-vsel { 58 + rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>; 59 + }; 60 + }; 61 + 62 + ir { 63 + ir_int: ir-int { 64 + rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_up>; 65 + }; 66 + }; 67 + }; 68 + 69 + &pwm0 { 70 + status = "okay"; 71 + };
+71
arch/arm/boot/dts/rk3288-firefly.dts
··· 1 + /* 2 + * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@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 "rk3288-firefly.dtsi" 45 + 46 + / { 47 + model = "Firefly-RK3288"; 48 + compatible = "firefly,firefly-rk3288", "rockchip,rk3288"; 49 + }; 50 + 51 + &ir { 52 + gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 53 + }; 54 + 55 + &pinctrl { 56 + act8846 { 57 + pmic_vsel: pmic-vsel { 58 + rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>; 59 + }; 60 + }; 61 + 62 + ir { 63 + ir_int: ir-int { 64 + rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>; 65 + }; 66 + }; 67 + }; 68 + 69 + &pwm1 { 70 + status = "okay"; 71 + };
+467
arch/arm/boot/dts/rk3288-firefly.dtsi
··· 1 + /* 2 + * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@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 + #include "rk3288.dtsi" 44 + 45 + / { 46 + memory { 47 + reg = <0 0x80000000>; 48 + }; 49 + 50 + ext_gmac: external-gmac-clock { 51 + compatible = "fixed-clock"; 52 + #clock-cells = <0>; 53 + clock-frequency = <125000000>; 54 + clock-output-names = "ext_gmac"; 55 + }; 56 + 57 + ir: ir-receiver { 58 + compatible = "gpio-ir-receiver"; 59 + pinctrl-names = "default"; 60 + pinctrl-0 = <&ir_int>; 61 + }; 62 + 63 + keys: gpio-keys { 64 + compatible = "gpio-keys"; 65 + #address-cells = <1>; 66 + #size-cells = <0>; 67 + 68 + button@0 { 69 + gpio-key,wakeup = <1>; 70 + gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; 71 + label = "GPIO Power"; 72 + linux,code = <116>; 73 + pinctrl-names = "default"; 74 + pinctrl-0 = <&pwr_key>; 75 + }; 76 + }; 77 + 78 + leds { 79 + compatible = "gpio-leds"; 80 + 81 + work { 82 + gpios = <&gpio8 1 GPIO_ACTIVE_LOW>; 83 + label = "firefly:blue:user"; 84 + linux,default-trigger = "rc-feedback"; 85 + pinctrl-names = "default"; 86 + pinctrl-0 = <&work_led>; 87 + }; 88 + 89 + power { 90 + gpios = <&gpio8 2 GPIO_ACTIVE_LOW>; 91 + label = "firefly:green:power"; 92 + linux,default-trigger = "default-on"; 93 + pinctrl-names = "default"; 94 + pinctrl-0 = <&power_led>; 95 + }; 96 + }; 97 + 98 + vcc_sys: vsys-regulator { 99 + compatible = "regulator-fixed"; 100 + regulator-name = "vcc_sys"; 101 + regulator-min-microvolt = <5000000>; 102 + regulator-max-microvolt = <5000000>; 103 + regulator-always-on; 104 + regulator-boot-on; 105 + }; 106 + 107 + vcc_sd: sdmmc-regulator { 108 + compatible = "regulator-fixed"; 109 + gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 110 + pinctrl-names = "default"; 111 + pinctrl-0 = <&sdmmc_pwr>; 112 + regulator-name = "vcc_sd"; 113 + regulator-min-microvolt = <3300000>; 114 + regulator-max-microvolt = <3300000>; 115 + startup-delay-us = <100000>; 116 + vin-supply = <&vcc_io>; 117 + }; 118 + 119 + vcc_flash: flash-regulator { 120 + compatible = "regulator-fixed"; 121 + regulator-name = "vcc_flash"; 122 + regulator-min-microvolt = <1800000>; 123 + regulator-max-microvolt = <1800000>; 124 + vin-supply = <&vcc_io>; 125 + }; 126 + 127 + vcc_5v: usb-regulator { 128 + compatible = "regulator-fixed"; 129 + regulator-name = "vcc_5v"; 130 + regulator-min-microvolt = <5000000>; 131 + regulator-max-microvolt = <5000000>; 132 + regulator-always-on; 133 + regulator-boot-on; 134 + vin-supply = <&vcc_sys>; 135 + }; 136 + 137 + vcc_host_5v: usb-host-regulator { 138 + compatible = "regulator-fixed"; 139 + enable-active-high; 140 + gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; 141 + pinctrl-names = "default"; 142 + pinctrl-0 = <&host_vbus_drv>; 143 + regulator-name = "vcc_host_5v"; 144 + regulator-min-microvolt = <5000000>; 145 + regulator-max-microvolt = <5000000>; 146 + regulator-always-on; 147 + vin-supply = <&vcc_5v>; 148 + }; 149 + 150 + vcc_otg_5v: usb-otg-regulator { 151 + compatible = "regulator-fixed"; 152 + enable-active-high; 153 + gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; 154 + pinctrl-names = "default"; 155 + pinctrl-0 = <&otg_vbus_drv>; 156 + regulator-name = "vcc_otg_5v"; 157 + regulator-min-microvolt = <5000000>; 158 + regulator-max-microvolt = <5000000>; 159 + regulator-always-on; 160 + vin-supply = <&vcc_5v>; 161 + }; 162 + }; 163 + 164 + &cpu0 { 165 + cpu0-supply = <&vdd_cpu>; 166 + }; 167 + 168 + &emmc { 169 + broken-cd; 170 + bus-width = <8>; 171 + cap-mmc-highspeed; 172 + disable-wp; 173 + non-removable; 174 + num-slots = <1>; 175 + pinctrl-names = "default"; 176 + pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>; 177 + vmmc-supply = <&vcc_io>; 178 + vqmmc-supply = <&vcc_flash>; 179 + status = "okay"; 180 + }; 181 + 182 + &i2c0 { 183 + clock-frequency = <400000>; 184 + status = "okay"; 185 + 186 + vdd_cpu: syr827@40 { 187 + compatible = "silergy,syr827"; 188 + fcs,suspend-voltage-selector = <1>; 189 + reg = <0x40>; 190 + regulator-name = "vdd_cpu"; 191 + regulator-min-microvolt = <850000>; 192 + regulator-max-microvolt = <1350000>; 193 + regulator-always-on; 194 + regulator-boot-on; 195 + vin-supply = <&vcc_sys>; 196 + }; 197 + 198 + vdd_gpu: syr828@41 { 199 + compatible = "silergy,syr828"; 200 + fcs,suspend-voltage-selector = <1>; 201 + reg = <0x41>; 202 + regulator-name = "vdd_gpu"; 203 + regulator-min-microvolt = <850000>; 204 + regulator-max-microvolt = <1350000>; 205 + regulator-always-on; 206 + vin-supply = <&vcc_sys>; 207 + }; 208 + 209 + hym8563: hym8563@51 { 210 + compatible = "haoyu,hym8563"; 211 + reg = <0x51>; 212 + #clock-cells = <0>; 213 + clock-frequency = <32768>; 214 + clock-output-names = "xin32k"; 215 + interrupt-parent = <&gpio7>; 216 + interrupts = <4 IRQ_TYPE_EDGE_FALLING>; 217 + pinctrl-names = "default"; 218 + pinctrl-0 = <&rtc_int>; 219 + }; 220 + 221 + act8846: act8846@5a { 222 + compatible = "active-semi,act8846"; 223 + reg = <0x5a>; 224 + pinctrl-names = "default"; 225 + pinctrl-0 = <&pmic_vsel>, <&pwr_hold>; 226 + system-power-controller; 227 + 228 + regulators { 229 + vcc_ddr: REG1 { 230 + regulator-name = "vcc_ddr"; 231 + regulator-min-microvolt = <1200000>; 232 + regulator-max-microvolt = <1200000>; 233 + regulator-always-on; 234 + }; 235 + 236 + vcc_io: REG2 { 237 + regulator-name = "vcc_io"; 238 + regulator-min-microvolt = <3300000>; 239 + regulator-max-microvolt = <3300000>; 240 + regulator-always-on; 241 + }; 242 + 243 + vdd_log: REG3 { 244 + regulator-name = "vdd_log"; 245 + regulator-min-microvolt = <1100000>; 246 + regulator-max-microvolt = <1100000>; 247 + regulator-always-on; 248 + }; 249 + 250 + vcc_20: REG4 { 251 + regulator-name = "vcc_20"; 252 + regulator-min-microvolt = <2000000>; 253 + regulator-max-microvolt = <2000000>; 254 + regulator-always-on; 255 + }; 256 + 257 + vccio_sd: REG5 { 258 + regulator-name = "vccio_sd"; 259 + regulator-min-microvolt = <3300000>; 260 + regulator-max-microvolt = <3300000>; 261 + regulator-always-on; 262 + }; 263 + 264 + vdd10_lcd: REG6 { 265 + regulator-name = "vdd10_lcd"; 266 + regulator-min-microvolt = <1000000>; 267 + regulator-max-microvolt = <1000000>; 268 + }; 269 + 270 + vcca_18: REG7 { 271 + regulator-name = "vcca_18"; 272 + regulator-min-microvolt = <1800000>; 273 + regulator-max-microvolt = <1800000>; 274 + }; 275 + 276 + vcca_33: REG8 { 277 + regulator-name = "vcca_33"; 278 + regulator-min-microvolt = <3300000>; 279 + regulator-max-microvolt = <3300000>; 280 + }; 281 + 282 + vcc_lan: REG9 { 283 + regulator-name = "vcc_lan"; 284 + regulator-min-microvolt = <3300000>; 285 + regulator-max-microvolt = <3300000>; 286 + }; 287 + 288 + vdd_10: REG10 { 289 + regulator-name = "vdd_10"; 290 + regulator-min-microvolt = <1000000>; 291 + regulator-max-microvolt = <1000000>; 292 + regulator-always-on; 293 + }; 294 + 295 + vcc_18: REG11 { 296 + regulator-name = "vcc_18"; 297 + regulator-min-microvolt = <1800000>; 298 + regulator-max-microvolt = <1800000>; 299 + regulator-always-on; 300 + }; 301 + 302 + vcc18_lcd: REG12 { 303 + regulator-name = "vcc18_lcd"; 304 + regulator-min-microvolt = <1800000>; 305 + regulator-max-microvolt = <1800000>; 306 + }; 307 + }; 308 + }; 309 + }; 310 + 311 + &i2c1 { 312 + status = "okay"; 313 + }; 314 + 315 + &i2c2 { 316 + status = "okay"; 317 + }; 318 + 319 + &i2c4 { 320 + status = "okay"; 321 + }; 322 + 323 + &i2c5 { 324 + status = "okay"; 325 + }; 326 + 327 + &pinctrl { 328 + pcfg_output_high: pcfg-output-high { 329 + output-high; 330 + }; 331 + 332 + pcfg_output_low: pcfg-output-low { 333 + output-low; 334 + }; 335 + 336 + act8846 { 337 + pwr_hold: pwr-hold { 338 + rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>; 339 + }; 340 + }; 341 + 342 + gmac { 343 + phy_int: phy-int { 344 + rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>; 345 + }; 346 + 347 + phy_pmeb: phy-pmeb { 348 + rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>; 349 + }; 350 + 351 + phy_rst: phy-rst { 352 + rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>; 353 + }; 354 + }; 355 + 356 + hym8563 { 357 + rtc_int: rtc-int { 358 + rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>; 359 + }; 360 + }; 361 + 362 + keys { 363 + pwr_key: pwr-key { 364 + rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; 365 + }; 366 + }; 367 + 368 + leds { 369 + power_led: power-led { 370 + rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>; 371 + }; 372 + 373 + work_led: work-led { 374 + rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>; 375 + }; 376 + }; 377 + 378 + sdmmc { 379 + sdmmc_pwr: sdmmc-pwr { 380 + rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 381 + }; 382 + }; 383 + 384 + usb_host { 385 + host_vbus_drv: host-vbus-drv { 386 + rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; 387 + }; 388 + 389 + usbhub_rst: usbhub-rst { 390 + rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>; 391 + }; 392 + }; 393 + 394 + usb_otg { 395 + otg_vbus_drv: otg-vbus-drv { 396 + rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>; 397 + }; 398 + }; 399 + }; 400 + 401 + &saradc { 402 + vref-supply = <&vcc_18>; 403 + status = "okay"; 404 + }; 405 + 406 + &sdio0 { 407 + broken-cd; 408 + bus-width = <4>; 409 + disable-wp; 410 + non-removable; 411 + num-slots = <1>; 412 + pinctrl-names = "default"; 413 + pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>; 414 + vmmc-supply = <&vcc_18>; 415 + status = "okay"; 416 + }; 417 + 418 + &sdmmc { 419 + bus-width = <4>; 420 + cap-mmc-highspeed; 421 + cap-sd-highspeed; 422 + card-detect-delay = <200>; 423 + disable-wp; 424 + num-slots = <1>; 425 + pinctrl-names = "default"; 426 + pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 427 + vmmc-supply = <&vcc_sd>; 428 + status = "okay"; 429 + }; 430 + 431 + &spi0 { 432 + pinctrl-names = "default"; 433 + pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>; 434 + status = "okay"; 435 + }; 436 + 437 + &uart0 { 438 + pinctrl-names = "default"; 439 + pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 440 + status = "okay"; 441 + }; 442 + 443 + &uart1 { 444 + status = "okay"; 445 + }; 446 + 447 + &uart2 { 448 + status = "okay"; 449 + }; 450 + 451 + &uart3 { 452 + status = "okay"; 453 + }; 454 + 455 + &usb_host1 { 456 + pinctrl-names = "default"; 457 + pinctrl-0 = <&usbhub_rst>; 458 + status = "okay"; 459 + }; 460 + 461 + &usb_otg { 462 + status = "okay"; 463 + }; 464 + 465 + &wdt { 466 + status = "okay"; 467 + };
+84
arch/arm/boot/dts/rk3288.dtsi
··· 149 149 clock-frequency = <24000000>; 150 150 }; 151 151 152 + timer: timer@ff810000 { 153 + compatible = "rockchip,rk3288-timer"; 154 + reg = <0xff810000 0x20>; 155 + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 156 + clocks = <&xin24m>, <&cru PCLK_TIMER>; 157 + clock-names = "timer", "pclk"; 158 + }; 159 + 160 + display-subsystem { 161 + compatible = "rockchip,display-subsystem"; 162 + ports = <&vopl_out>, <&vopb_out>; 163 + }; 164 + 152 165 sdmmc: dwmmc@ff0c0000 { 153 166 compatible = "rockchip,rk3288-dw-mshc"; 154 167 clock-freq-min-max = <400000 150000000>; ··· 579 566 status = "disabled"; 580 567 }; 581 568 569 + vopb: vop@ff930000 { 570 + compatible = "rockchip,rk3288-vop"; 571 + reg = <0xff930000 0x19c>; 572 + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 573 + clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>; 574 + clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 575 + resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>; 576 + reset-names = "axi", "ahb", "dclk"; 577 + iommus = <&vopb_mmu>; 578 + status = "disabled"; 579 + 580 + vopb_out: port { 581 + #address-cells = <1>; 582 + #size-cells = <0>; 583 + 584 + vopb_out_hdmi: endpoint@0 { 585 + reg = <0>; 586 + remote-endpoint = <&hdmi_in_vopb>; 587 + }; 588 + }; 589 + }; 590 + 582 591 vopb_mmu: iommu@ff930300 { 583 592 compatible = "rockchip,iommu"; 584 593 reg = <0xff930300 0x100>; ··· 610 575 status = "disabled"; 611 576 }; 612 577 578 + vopl: vop@ff940000 { 579 + compatible = "rockchip,rk3288-vop"; 580 + reg = <0xff940000 0x19c>; 581 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 582 + clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>; 583 + clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; 584 + resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>; 585 + reset-names = "axi", "ahb", "dclk"; 586 + iommus = <&vopl_mmu>; 587 + status = "disabled"; 588 + 589 + vopl_out: port { 590 + #address-cells = <1>; 591 + #size-cells = <0>; 592 + 593 + vopl_out_hdmi: endpoint@0 { 594 + reg = <0>; 595 + remote-endpoint = <&hdmi_in_vopl>; 596 + }; 597 + }; 598 + }; 599 + 613 600 vopl_mmu: iommu@ff940300 { 614 601 compatible = "rockchip,iommu"; 615 602 reg = <0xff940300 0x100>; ··· 639 582 interrupt-names = "vopl_mmu"; 640 583 #iommu-cells = <0>; 641 584 status = "disabled"; 585 + }; 586 + 587 + hdmi: hdmi@ff980000 { 588 + compatible = "rockchip,rk3288-dw-hdmi"; 589 + reg = <0xff980000 0x20000>; 590 + reg-io-width = <4>; 591 + ddc-i2c-bus = <&i2c5>; 592 + rockchip,grf = <&grf>; 593 + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 594 + clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; 595 + clock-names = "iahb", "isfr"; 596 + status = "disabled"; 597 + 598 + ports { 599 + hdmi_in: port { 600 + #address-cells = <1>; 601 + #size-cells = <0>; 602 + hdmi_in_vopb: endpoint@0 { 603 + reg = <0>; 604 + remote-endpoint = <&vopb_out_hdmi>; 605 + }; 606 + hdmi_in_vopl: endpoint@1 { 607 + reg = <1>; 608 + remote-endpoint = <&vopl_out_hdmi>; 609 + }; 610 + }; 611 + }; 642 612 }; 643 613 644 614 gic: interrupt-controller@ffc01000 {