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}; 469