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 <dt-bindings/input/input.h> 45#include "rk3066a.dtsi" 46 47/ { 48 model = "Rayeager PX2"; 49 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; 50 51 memory { 52 device_type = "memory"; 53 reg = <0x60000000 0x40000000>; 54 }; 55 56 ir: ir-receiver { 57 compatible = "gpio-ir-receiver"; 58 gpios = <&gpio6 1 GPIO_ACTIVE_LOW>; 59 pinctrl-names = "default"; 60 pinctrl-0 = <&ir_int>; 61 }; 62 63 keys: gpio-keys { 64 compatible = "gpio-keys"; 65 66 power { 67 wakeup-source; 68 gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; 69 label = "GPIO Power"; 70 linux,code = <KEY_POWER>; 71 pinctrl-names = "default"; 72 pinctrl-0 = <&pwr_key>; 73 }; 74 }; 75 76 vdd_log: vdd-log { 77 compatible = "pwm-regulator"; 78 pwms = <&pwm3 0 1000>; 79 regulator-name = "vdd_log"; 80 regulator-min-microvolt = <1200000>; 81 regulator-max-microvolt = <1200000>; 82 regulator-always-on; 83 voltage-table = <1000000 100>, 84 <1200000 42>; 85 status = "okay"; 86 }; 87 88 vsys: vsys-regulator { 89 compatible = "regulator-fixed"; 90 regulator-name = "vsys"; 91 regulator-min-microvolt = <5000000>; 92 regulator-max-microvolt = <5000000>; 93 regulator-always-on; 94 regulator-boot-on; 95 }; 96 97 /* input for 5V_STDBY is VSYS or DC5V, selectable by jumper J4 */ 98 vcc_stdby: 5v-stdby-regulator { 99 compatible = "regulator-fixed"; 100 regulator-name = "5v_stdby"; 101 regulator-min-microvolt = <5000000>; 102 regulator-max-microvolt = <5000000>; 103 regulator-always-on; 104 regulator-boot-on; 105 }; 106 107 vcc_emmc: emmc-regulator { 108 compatible = "regulator-fixed"; 109 regulator-name = "emmc_vccq"; 110 regulator-min-microvolt = <3000000>; 111 regulator-max-microvolt = <3000000>; 112 vin-supply = <&vsys>; 113 }; 114 115 vcc_sata: sata-regulator { 116 compatible = "regulator-fixed"; 117 enable-active-high; 118 gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>; 119 pinctrl-names = "default"; 120 pinctrl-0 = <&sata_pwr>; 121 regulator-name = "usb_5v"; 122 regulator-min-microvolt = <5000000>; 123 regulator-max-microvolt = <5000000>; 124 regulator-always-on; 125 vin-supply = <&vcc_stdby>; 126 }; 127 128 vcc_sd: sdmmc-regulator { 129 compatible = "regulator-fixed"; 130 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>; 131 pinctrl-names = "default"; 132 pinctrl-0 = <&sdmmc_pwr>; 133 regulator-name = "vcc_sd"; 134 regulator-min-microvolt = <3300000>; 135 regulator-max-microvolt = <3300000>; 136 startup-delay-us = <100000>; 137 vin-supply = <&vcc_io>; 138 }; 139 140 vcc_host: usb-host-regulator { 141 compatible = "regulator-fixed"; 142 enable-active-high; 143 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>; 144 pinctrl-names = "default"; 145 pinctrl-0 = <&host_drv>; 146 regulator-name = "host-pwr"; 147 regulator-min-microvolt = <5000000>; 148 regulator-max-microvolt = <5000000>; 149 regulator-always-on; 150 vin-supply = <&vcc_stdby>; 151 }; 152 153 vcc_otg: usb-otg-regulator { 154 compatible = "regulator-fixed"; 155 enable-active-high; 156 gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>; 157 pinctrl-names = "default"; 158 pinctrl-0 = <&otg_drv>; 159 regulator-name = "vcc_otg"; 160 regulator-min-microvolt = <5000000>; 161 regulator-max-microvolt = <5000000>; 162 regulator-always-on; 163 vin-supply = <&vcc_stdby>; 164 }; 165}; 166 167&cpu0 { 168 cpu0-supply = <&vdd_arm>; 169}; 170 171&emac { 172 pinctrl-names = "default"; 173 pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>; 174 phy = <&phy0>; 175 phy-supply = <&vcc_rmii>; 176 status = "okay"; 177 178 phy0: ethernet-phy@0 { 179 reg = <0>; 180 }; 181}; 182 183&emmc { 184 bus-width = <8>; 185 cap-mmc-highspeed; 186 disable-wp; 187 non-removable; 188 num-slots = <1>; 189 pinctrl-names = "default"; 190 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; 191 vmmc-supply = <&vcc_emmc>; 192 vqmmc-supply = <&vcc_emmc>; 193 status = "okay"; 194}; 195 196&i2c0 { 197 clock-frequency = <400000>; 198 status = "okay"; 199 200 ak8963: ak8963@0d { 201 compatible = "asahi-kasei,ak8975"; 202 reg = <0x0d>; 203 interrupt-parent = <&gpio4>; 204 interrupts = <17 IRQ_TYPE_EDGE_RISING>; 205 pinctrl-names = "default"; 206 pinctrl-0 = <&comp_int>; 207 }; 208 209 mma8452: mma8452@1d { 210 compatible = "fsl,mma8452"; 211 reg = <0x1d>; 212 interrupt-parent = <&gpio4>; 213 interrupts = <16 IRQ_TYPE_EDGE_RISING>; 214 pinctrl-names = "default"; 215 pinctrl-0 = <&gsensor_int>; 216 }; 217}; 218 219&i2c1 { 220 clock-frequency = <400000>; 221 status = "okay"; 222 223 tps: tps@2d { 224 reg = <0x2d>; 225 interrupt-parent = <&gpio6>; 226 interrupts = <4 IRQ_TYPE_EDGE_RISING>; 227 pinctrl-names = "default"; 228 pinctrl-0 = <&pmic_int>, <&pwr_hold>; 229 230 vcc1-supply = <&vsys>; 231 vcc2-supply = <&vsys>; 232 vcc3-supply = <&vsys>; 233 vcc4-supply = <&vsys>; 234 vcc5-supply = <&vcc_io>; 235 vcc6-supply = <&vcc_io>; 236 vcc7-supply = <&vsys>; 237 vccio-supply = <&vsys>; 238 239 regulators { 240 vcc_rtc: regulator@0 { 241 regulator-name = "vcc_rtc"; 242 regulator-always-on; 243 }; 244 245 vcc_io: regulator@1 { 246 regulator-name = "vcc_io"; 247 regulator-min-microvolt = <3300000>; 248 regulator-max-microvolt = <3300000>; 249 regulator-always-on; 250 }; 251 252 vdd_arm: regulator@2 { 253 regulator-name = "vdd_arm"; 254 regulator-min-microvolt = <600000>; 255 regulator-max-microvolt = <1500000>; 256 regulator-always-on; 257 regulator-boot-on; 258 }; 259 260 vcc_ddr: regulator@3 { 261 regulator-name = "vcc_ddr"; 262 regulator-min-microvolt = <600000>; 263 regulator-max-microvolt = <1500000>; 264 regulator-always-on; 265 regulator-boot-on; 266 }; 267 268 vcc18: regulator@5 { 269 regulator-name = "vcc18"; 270 regulator-min-microvolt = <1800000>; 271 regulator-max-microvolt = <1800000>; 272 regulator-always-on; 273 }; 274 275 vdd_11: regulator@6 { 276 regulator-name = "vdd_11"; 277 regulator-min-microvolt = <1100000>; 278 regulator-max-microvolt = <1100000>; 279 regulator-always-on; 280 }; 281 282 vcc_25: regulator@7 { 283 regulator-name = "vcc_25"; 284 regulator-min-microvolt = <2500000>; 285 regulator-max-microvolt = <2500000>; 286 regulator-always-on; 287 }; 288 289 vccio_wl: regulator@8 { 290 regulator-name = "vccio_wl"; 291 regulator-min-microvolt = <1800000>; 292 regulator-max-microvolt = <1800000>; 293 }; 294 295 vcc25_hdmi: regulator@9 { 296 regulator-name = "vcc25_hdmi"; 297 regulator-min-microvolt = <2500000>; 298 regulator-max-microvolt = <2500000>; 299 }; 300 301 vcca_33: regulator@10 { 302 regulator-name = "vcca_33"; 303 regulator-min-microvolt = <3300000>; 304 regulator-max-microvolt = <3300000>; 305 }; 306 307 vcc_rmii: regulator@11 { 308 regulator-name = "vcc_rmii"; 309 regulator-min-microvolt = <3300000>; 310 regulator-max-microvolt = <3300000>; 311 }; 312 313 vcc28_cif: regulator@12 { 314 regulator-name = "vcc28_cif"; 315 regulator-min-microvolt = <2800000>; 316 regulator-max-microvolt = <2800000>; 317 }; 318 }; 319 }; 320}; 321 322#include "tps65910.dtsi" 323 324&i2c2 { 325 status = "okay"; 326}; 327 328&i2c3 { 329 status = "okay"; 330}; 331 332&i2c4 { 333 status = "okay"; 334}; 335 336&mmc0 { 337 bus-width = <4>; 338 disable-wp; 339 num-slots = <1>; 340 pinctrl-names = "default"; 341 pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; 342 vmmc-supply = <&vcc_sd>; 343 cap-mmc-highspeed; 344 cap-sd-highspeed; 345 status = "okay"; 346}; 347 348&mmc1 { 349 bus-width = <4>; 350 disable-wp; 351 non-removable; 352 num-slots = <1>; 353 pinctrl-names = "default"; 354 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>; 355 vmmc-supply = <&vccio_wl>; 356 status = "okay"; 357}; 358 359&pinctrl { 360 pcfg_output_high: pcfg-output-high { 361 output-high; 362 }; 363 364 ak8963 { 365 comp_int: comp-int { 366 rockchip,pins = <4 17 RK_FUNC_GPIO &pcfg_pull_default>; 367 }; 368 }; 369 370 emac { 371 rmii_rst: rmii-rst { 372 rockchip,pins = <1 30 RK_FUNC_GPIO &pcfg_output_high>; 373 }; 374 }; 375 376 ir { 377 ir_int: ir-int { 378 rockchip,pins = <6 1 RK_FUNC_GPIO &pcfg_pull_default>; 379 }; 380 }; 381 382 keys { 383 pwr_key: pwr-key { 384 rockchip,pins = <6 2 RK_FUNC_GPIO &pcfg_pull_default>; 385 }; 386 }; 387 388 mma8452 { 389 gsensor_int: gsensor-int { 390 rockchip,pins = <4 16 RK_FUNC_GPIO &pcfg_pull_default>; 391 }; 392 }; 393 394 mmc { 395 sdmmc_pwr: sdmmc-pwr { 396 rockchip,pins = <3 7 RK_FUNC_GPIO &pcfg_pull_default>; 397 }; 398 }; 399 400 usb_host { 401 host_drv: host-drv { 402 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_default>; 403 }; 404 405 hub_rst: hub-rst { 406 rockchip,pins = <1 31 RK_FUNC_GPIO &pcfg_output_high>; 407 }; 408 409 sata_pwr: sata-pwr { 410 rockchip,pins = <4 22 RK_FUNC_GPIO &pcfg_pull_default>; 411 }; 412 413 sata_reset: sata-reset { 414 rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_output_high>; 415 }; 416 }; 417 418 usb_otg { 419 otg_drv: otg-drv { 420 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_default>; 421 }; 422 }; 423 424 tps { 425 pmic_int: pmic-int { 426 rockchip,pins = <6 4 RK_FUNC_GPIO &pcfg_pull_default>; 427 }; 428 429 pwr_hold: pwr-hold { 430 rockchip,pins = <6 8 RK_FUNC_GPIO &pcfg_output_high>; 431 }; 432 }; 433}; 434 435&pwm1 { 436 status = "okay"; 437}; 438 439&pwm2 { 440 status = "okay"; 441}; 442 443&pwm3 { 444 status = "okay"; 445}; 446 447&saradc { 448 vref-supply = <&vcc_25>; 449 status = "okay"; 450}; 451 452&spi0 { 453 status = "okay"; 454}; 455 456&uart0 { 457 pinctrl-names = "default"; 458 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 459 status = "okay"; 460}; 461 462&uart2 { 463 status = "okay"; 464}; 465 466&uart3 { 467 pinctrl-names = "default"; 468 pinctrl-0 = <&uart3_xfer>, <&uart3_cts>, <&uart3_rts>; 469 status = "okay"; 470}; 471 472&usb_host { 473 pinctrl-names = "default"; 474 pinctrl-0 = <&hub_rst>, <&sata_reset>; 475 status = "okay"; 476}; 477 478&usbphy { 479 status = "okay"; 480}; 481 482&usb_otg { 483 status = "okay"; 484}; 485 486&wdt { 487 status = "okay"; 488}; 489