1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * Copyright 2015 Chen-Yu Tsai 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Chen-Yu Tsai <wens@csie.org> 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This file is dual-licensed: you can use it either under the terms 7*4882a593Smuzhiyun * of the GPL or the X11 license, at your option. Note that this dual 8*4882a593Smuzhiyun * licensing only applies to this file, and not this project as a 9*4882a593Smuzhiyun * whole. 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * a) This file is free software; you can redistribute it and/or 12*4882a593Smuzhiyun * modify it under the terms of the GNU General Public License as 13*4882a593Smuzhiyun * published by the Free Software Foundation; either version 2 of the 14*4882a593Smuzhiyun * License, or (at your option) any later version. 15*4882a593Smuzhiyun * 16*4882a593Smuzhiyun * This file is distributed in the hope that it will be useful, 17*4882a593Smuzhiyun * but WITHOUT ANY WARRANTY; without even the implied warranty of 18*4882a593Smuzhiyun * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*4882a593Smuzhiyun * GNU General Public License for more details. 20*4882a593Smuzhiyun * 21*4882a593Smuzhiyun * Or, alternatively, 22*4882a593Smuzhiyun * 23*4882a593Smuzhiyun * b) Permission is hereby granted, free of charge, to any person 24*4882a593Smuzhiyun * obtaining a copy of this software and associated documentation 25*4882a593Smuzhiyun * files (the "Software"), to deal in the Software without 26*4882a593Smuzhiyun * restriction, including without limitation the rights to use, 27*4882a593Smuzhiyun * copy, modify, merge, publish, distribute, sublicense, and/or 28*4882a593Smuzhiyun * sell copies of the Software, and to permit persons to whom the 29*4882a593Smuzhiyun * Software is furnished to do so, subject to the following 30*4882a593Smuzhiyun * conditions: 31*4882a593Smuzhiyun * 32*4882a593Smuzhiyun * The above copyright notice and this permission notice shall be 33*4882a593Smuzhiyun * included in all copies or substantial portions of the Software. 34*4882a593Smuzhiyun * 35*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36*4882a593Smuzhiyun * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37*4882a593Smuzhiyun * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38*4882a593Smuzhiyun * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39*4882a593Smuzhiyun * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40*4882a593Smuzhiyun * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41*4882a593Smuzhiyun * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42*4882a593Smuzhiyun * OTHER DEALINGS IN THE SOFTWARE. 43*4882a593Smuzhiyun */ 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun/dts-v1/; 46*4882a593Smuzhiyun#include "sun8i-a83t.dtsi" 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun/ { 51*4882a593Smuzhiyun model = "Cubietech Cubietruck Plus"; 52*4882a593Smuzhiyun compatible = "cubietech,cubietruck-plus", "allwinner,sun8i-a83t"; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun aliases { 55*4882a593Smuzhiyun ethernet0 = &emac; 56*4882a593Smuzhiyun serial0 = &uart0; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun chosen { 60*4882a593Smuzhiyun stdout-path = "serial0:115200n8"; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun hdmi-connector { 64*4882a593Smuzhiyun compatible = "hdmi-connector"; 65*4882a593Smuzhiyun type = "a"; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun port { 68*4882a593Smuzhiyun hdmi_con_in: endpoint { 69*4882a593Smuzhiyun remote-endpoint = <&hdmi_out_con>; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun }; 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun leds { 75*4882a593Smuzhiyun compatible = "gpio-leds"; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun blue { 78*4882a593Smuzhiyun label = "cubietruck-plus:blue:usr"; 79*4882a593Smuzhiyun gpios = <&pio 3 25 GPIO_ACTIVE_HIGH>; /* PD25 */ 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun orange { 83*4882a593Smuzhiyun label = "cubietruck-plus:orange:usr"; 84*4882a593Smuzhiyun gpios = <&pio 3 26 GPIO_ACTIVE_HIGH>; /* PD26 */ 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun white { 88*4882a593Smuzhiyun label = "cubietruck-plus:white:usr"; 89*4882a593Smuzhiyun gpios = <&pio 3 27 GPIO_ACTIVE_HIGH>; /* PD27 */ 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun green { 93*4882a593Smuzhiyun label = "cubietruck-plus:green:usr"; 94*4882a593Smuzhiyun gpios = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */ 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun usb-hub { 99*4882a593Smuzhiyun /* I2C is not connected */ 100*4882a593Smuzhiyun compatible = "smsc,usb3503"; 101*4882a593Smuzhiyun initial-mode = <1>; /* initialize in HUB mode */ 102*4882a593Smuzhiyun disabled-ports = <1>; 103*4882a593Smuzhiyun intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ 104*4882a593Smuzhiyun reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */ 105*4882a593Smuzhiyun connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */ 106*4882a593Smuzhiyun refclk-frequency = <19200000>; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun reg_usb1_vbus: reg-usb1-vbus { 110*4882a593Smuzhiyun compatible = "regulator-fixed"; 111*4882a593Smuzhiyun regulator-name = "usb1-vbus"; 112*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 113*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 114*4882a593Smuzhiyun regulator-boot-on; 115*4882a593Smuzhiyun enable-active-high; 116*4882a593Smuzhiyun gpio = <&pio 3 29 GPIO_ACTIVE_HIGH>; /* PD29 */ 117*4882a593Smuzhiyun }; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun reg_usb2_vbus: reg-usb2-vbus { 120*4882a593Smuzhiyun compatible = "regulator-fixed"; 121*4882a593Smuzhiyun regulator-name = "usb2-vbus"; 122*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 123*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 124*4882a593Smuzhiyun regulator-boot-on; 125*4882a593Smuzhiyun enable-active-high; 126*4882a593Smuzhiyun gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun sound { 130*4882a593Smuzhiyun compatible = "simple-audio-card"; 131*4882a593Smuzhiyun simple-audio-card,name = "On-board SPDIF"; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun simple-audio-card,cpu { 134*4882a593Smuzhiyun sound-dai = <&spdif>; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun simple-audio-card,codec { 138*4882a593Smuzhiyun sound-dai = <&spdif_out>; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun spdif_out: spdif-out { 143*4882a593Smuzhiyun #sound-dai-cells = <0>; 144*4882a593Smuzhiyun compatible = "linux,spdif-dit"; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun wifi_pwrseq: wifi_pwrseq { 148*4882a593Smuzhiyun compatible = "mmc-pwrseq-simple"; 149*4882a593Smuzhiyun clocks = <&ac100_rtc 1>; 150*4882a593Smuzhiyun clock-names = "ext_clock"; 151*4882a593Smuzhiyun /* The WiFi low power clock must be 32768 Hz */ 152*4882a593Smuzhiyun assigned-clocks = <&ac100_rtc 1>; 153*4882a593Smuzhiyun assigned-clock-rates = <32768>; 154*4882a593Smuzhiyun /* enables internal regulator and de-asserts reset */ 155*4882a593Smuzhiyun reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */ 156*4882a593Smuzhiyun }; 157*4882a593Smuzhiyun}; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun&cpu0 { 160*4882a593Smuzhiyun cpu-supply = <®_dcdc2>; 161*4882a593Smuzhiyun}; 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun&cpu100 { 164*4882a593Smuzhiyun cpu-supply = <®_dcdc3>; 165*4882a593Smuzhiyun}; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun&de { 168*4882a593Smuzhiyun status = "okay"; 169*4882a593Smuzhiyun}; 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun&ehci0 { 172*4882a593Smuzhiyun /* GL830 USB-to-SATA bridge here */ 173*4882a593Smuzhiyun status = "okay"; 174*4882a593Smuzhiyun}; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun&ehci1 { 177*4882a593Smuzhiyun /* USB3503 HSIC USB 2.0 hub here */ 178*4882a593Smuzhiyun status = "okay"; 179*4882a593Smuzhiyun}; 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun&emac { 182*4882a593Smuzhiyun pinctrl-names = "default"; 183*4882a593Smuzhiyun pinctrl-0 = <&emac_rgmii_pins>; 184*4882a593Smuzhiyun phy-supply = <®_dldo4>; 185*4882a593Smuzhiyun phy-handle = <&rgmii_phy>; 186*4882a593Smuzhiyun phy-mode = "rgmii-id"; 187*4882a593Smuzhiyun status = "okay"; 188*4882a593Smuzhiyun}; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun&hdmi { 191*4882a593Smuzhiyun status = "okay"; 192*4882a593Smuzhiyun}; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun&hdmi_out { 195*4882a593Smuzhiyun hdmi_out_con: endpoint { 196*4882a593Smuzhiyun remote-endpoint = <&hdmi_con_in>; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun}; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun&mdio { 201*4882a593Smuzhiyun rgmii_phy: ethernet-phy@1 { 202*4882a593Smuzhiyun compatible = "ethernet-phy-ieee802.3-c22"; 203*4882a593Smuzhiyun reg = <1>; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun}; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun&mmc0 { 208*4882a593Smuzhiyun pinctrl-names = "default"; 209*4882a593Smuzhiyun pinctrl-0 = <&mmc0_pins>; 210*4882a593Smuzhiyun vmmc-supply = <®_dcdc1>; 211*4882a593Smuzhiyun bus-width = <4>; 212*4882a593Smuzhiyun cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 213*4882a593Smuzhiyun status = "okay"; 214*4882a593Smuzhiyun}; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun&mmc1 { 217*4882a593Smuzhiyun vmmc-supply = <®_dcdc1>; 218*4882a593Smuzhiyun vqmmc-supply = <®_sw>; 219*4882a593Smuzhiyun mmc-pwrseq = <&wifi_pwrseq>; 220*4882a593Smuzhiyun bus-width = <4>; 221*4882a593Smuzhiyun non-removable; 222*4882a593Smuzhiyun status = "okay"; 223*4882a593Smuzhiyun}; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun&mmc2 { 226*4882a593Smuzhiyun pinctrl-names = "default"; 227*4882a593Smuzhiyun pinctrl-0 = <&mmc2_8bit_emmc_pins>; 228*4882a593Smuzhiyun vmmc-supply = <®_dcdc1>; 229*4882a593Smuzhiyun bus-width = <8>; 230*4882a593Smuzhiyun non-removable; 231*4882a593Smuzhiyun cap-mmc-hw-reset; 232*4882a593Smuzhiyun status = "okay"; 233*4882a593Smuzhiyun}; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun&r_rsb { 236*4882a593Smuzhiyun status = "okay"; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun axp81x: pmic@3a3 { 239*4882a593Smuzhiyun compatible = "x-powers,axp818", "x-powers,axp813"; 240*4882a593Smuzhiyun reg = <0x3a3>; 241*4882a593Smuzhiyun interrupt-parent = <&r_intc>; 242*4882a593Smuzhiyun interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 243*4882a593Smuzhiyun eldoin-supply = <®_dcdc1>; 244*4882a593Smuzhiyun swin-supply = <®_dcdc1>; 245*4882a593Smuzhiyun x-powers,drive-vbus-en; 246*4882a593Smuzhiyun }; 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun ac100: codec@e89 { 249*4882a593Smuzhiyun compatible = "x-powers,ac100"; 250*4882a593Smuzhiyun reg = <0xe89>; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun ac100_codec: codec { 253*4882a593Smuzhiyun compatible = "x-powers,ac100-codec"; 254*4882a593Smuzhiyun interrupt-parent = <&r_pio>; 255*4882a593Smuzhiyun interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */ 256*4882a593Smuzhiyun #clock-cells = <0>; 257*4882a593Smuzhiyun clock-output-names = "4M_adda"; 258*4882a593Smuzhiyun }; 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun ac100_rtc: rtc { 261*4882a593Smuzhiyun compatible = "x-powers,ac100-rtc"; 262*4882a593Smuzhiyun interrupt-parent = <&r_intc>; 263*4882a593Smuzhiyun interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 264*4882a593Smuzhiyun clocks = <&ac100_codec>; 265*4882a593Smuzhiyun #clock-cells = <1>; 266*4882a593Smuzhiyun clock-output-names = "cko1_rtc", 267*4882a593Smuzhiyun "cko2_rtc", 268*4882a593Smuzhiyun "cko3_rtc"; 269*4882a593Smuzhiyun }; 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun}; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun#include "axp81x.dtsi" 274*4882a593Smuzhiyun 275*4882a593Smuzhiyun&ac_power_supply { 276*4882a593Smuzhiyun status = "okay"; 277*4882a593Smuzhiyun}; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun&battery_power_supply { 280*4882a593Smuzhiyun status = "okay"; 281*4882a593Smuzhiyun}; 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun®_aldo1 { 284*4882a593Smuzhiyun regulator-always-on; 285*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 286*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 287*4882a593Smuzhiyun regulator-name = "vcc-1v8"; 288*4882a593Smuzhiyun}; 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun®_aldo2 { 291*4882a593Smuzhiyun regulator-always-on; 292*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 293*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 294*4882a593Smuzhiyun regulator-name = "dram-pll"; 295*4882a593Smuzhiyun}; 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun®_aldo3 { 298*4882a593Smuzhiyun regulator-always-on; 299*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 300*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 301*4882a593Smuzhiyun regulator-name = "avcc"; 302*4882a593Smuzhiyun}; 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun®_dcdc1 { 305*4882a593Smuzhiyun /* 306*4882a593Smuzhiyun * The schematics say this should be 3.3V, but the FEX file says 307*4882a593Smuzhiyun * it should be 3V. The latter makes sense, as the WiFi module's 308*4882a593Smuzhiyun * I/O is indirectly powered from DCDC1, through SW. It is rated 309*4882a593Smuzhiyun * at 2.98V maximum. 310*4882a593Smuzhiyun */ 311*4882a593Smuzhiyun regulator-always-on; 312*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 313*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 314*4882a593Smuzhiyun regulator-name = "vcc-3v"; 315*4882a593Smuzhiyun}; 316*4882a593Smuzhiyun 317*4882a593Smuzhiyun®_dcdc2 { 318*4882a593Smuzhiyun regulator-always-on; 319*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 320*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 321*4882a593Smuzhiyun regulator-name = "vdd-cpua"; 322*4882a593Smuzhiyun}; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun®_dcdc3 { 325*4882a593Smuzhiyun regulator-always-on; 326*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 327*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 328*4882a593Smuzhiyun regulator-name = "vdd-cpub"; 329*4882a593Smuzhiyun}; 330*4882a593Smuzhiyun 331*4882a593Smuzhiyun®_dcdc4 { 332*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 333*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 334*4882a593Smuzhiyun regulator-name = "vdd-gpu"; 335*4882a593Smuzhiyun}; 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun®_dcdc5 { 338*4882a593Smuzhiyun regulator-always-on; 339*4882a593Smuzhiyun regulator-min-microvolt = <1500000>; 340*4882a593Smuzhiyun regulator-max-microvolt = <1500000>; 341*4882a593Smuzhiyun regulator-name = "vcc-dram"; 342*4882a593Smuzhiyun}; 343*4882a593Smuzhiyun 344*4882a593Smuzhiyun®_dcdc6 { 345*4882a593Smuzhiyun regulator-always-on; 346*4882a593Smuzhiyun regulator-min-microvolt = <900000>; 347*4882a593Smuzhiyun regulator-max-microvolt = <900000>; 348*4882a593Smuzhiyun regulator-name = "vdd-sys"; 349*4882a593Smuzhiyun}; 350*4882a593Smuzhiyun 351*4882a593Smuzhiyun®_dldo2 { 352*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 353*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 354*4882a593Smuzhiyun regulator-name = "dp-pwr"; 355*4882a593Smuzhiyun}; 356*4882a593Smuzhiyun 357*4882a593Smuzhiyun®_dldo3 { 358*4882a593Smuzhiyun regulator-always-on; 359*4882a593Smuzhiyun regulator-min-microvolt = <2500000>; 360*4882a593Smuzhiyun regulator-max-microvolt = <2500000>; 361*4882a593Smuzhiyun regulator-name = "ephy-io"; 362*4882a593Smuzhiyun}; 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun®_dldo4 { 365*4882a593Smuzhiyun /* 366*4882a593Smuzhiyun * The PHY requires 20ms after all voltages are applied until core 367*4882a593Smuzhiyun * logic is ready and 30ms after the reset pin is de-asserted. 368*4882a593Smuzhiyun * Set a 100ms delay to account for PMIC ramp time and board traces. 369*4882a593Smuzhiyun */ 370*4882a593Smuzhiyun regulator-enable-ramp-delay = <100000>; 371*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 372*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 373*4882a593Smuzhiyun regulator-name = "ephy"; 374*4882a593Smuzhiyun}; 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun®_drivevbus { 377*4882a593Smuzhiyun regulator-name = "usb0-vbus"; 378*4882a593Smuzhiyun status = "okay"; 379*4882a593Smuzhiyun}; 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun®_eldo1 { 382*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 383*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 384*4882a593Smuzhiyun regulator-name = "dp-bridge-1"; 385*4882a593Smuzhiyun}; 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun®_eldo2 { 388*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 389*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 390*4882a593Smuzhiyun regulator-name = "dp-bridge-2"; 391*4882a593Smuzhiyun}; 392*4882a593Smuzhiyun 393*4882a593Smuzhiyun®_fldo1 { 394*4882a593Smuzhiyun /* TODO should be handled by USB PHY */ 395*4882a593Smuzhiyun regulator-always-on; 396*4882a593Smuzhiyun regulator-min-microvolt = <1080000>; 397*4882a593Smuzhiyun regulator-max-microvolt = <1320000>; 398*4882a593Smuzhiyun regulator-name = "vdd12-hsic"; 399*4882a593Smuzhiyun}; 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun®_fldo2 { 402*4882a593Smuzhiyun /* 403*4882a593Smuzhiyun * Despite the embedded CPUs core not being used in any way, 404*4882a593Smuzhiyun * this must remain on or the system will hang. 405*4882a593Smuzhiyun */ 406*4882a593Smuzhiyun regulator-always-on; 407*4882a593Smuzhiyun regulator-min-microvolt = <700000>; 408*4882a593Smuzhiyun regulator-max-microvolt = <1100000>; 409*4882a593Smuzhiyun regulator-name = "vdd-cpus"; 410*4882a593Smuzhiyun}; 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun®_rtc_ldo { 413*4882a593Smuzhiyun regulator-name = "vcc-rtc"; 414*4882a593Smuzhiyun}; 415*4882a593Smuzhiyun 416*4882a593Smuzhiyun®_sw { 417*4882a593Smuzhiyun regulator-name = "vcc-wifi-io"; 418*4882a593Smuzhiyun}; 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun&spdif { 421*4882a593Smuzhiyun status = "okay"; 422*4882a593Smuzhiyun}; 423*4882a593Smuzhiyun 424*4882a593Smuzhiyun&uart0 { 425*4882a593Smuzhiyun pinctrl-names = "default"; 426*4882a593Smuzhiyun pinctrl-0 = <&uart0_pb_pins>; 427*4882a593Smuzhiyun status = "okay"; 428*4882a593Smuzhiyun}; 429*4882a593Smuzhiyun 430*4882a593Smuzhiyun&uart1 { 431*4882a593Smuzhiyun pinctrl-names = "default"; 432*4882a593Smuzhiyun pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 433*4882a593Smuzhiyun uart-has-rtscts; 434*4882a593Smuzhiyun status = "okay"; 435*4882a593Smuzhiyun 436*4882a593Smuzhiyun bluetooth { 437*4882a593Smuzhiyun compatible = "brcm,bcm4330-bt"; 438*4882a593Smuzhiyun clocks = <&ac100_rtc 1>; 439*4882a593Smuzhiyun clock-names = "lpo"; 440*4882a593Smuzhiyun vbat-supply = <®_dcdc1>; 441*4882a593Smuzhiyun vddio-supply = <®_sw>; 442*4882a593Smuzhiyun device-wakeup-gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */ 443*4882a593Smuzhiyun host-wakeup-gpios = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */ 444*4882a593Smuzhiyun shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 445*4882a593Smuzhiyun }; 446*4882a593Smuzhiyun}; 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun&usb_otg { 449*4882a593Smuzhiyun dr_mode = "otg"; 450*4882a593Smuzhiyun status = "okay"; 451*4882a593Smuzhiyun}; 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun&usb_power_supply { 454*4882a593Smuzhiyun status = "okay"; 455*4882a593Smuzhiyun}; 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun&usbphy { 458*4882a593Smuzhiyun usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ 459*4882a593Smuzhiyun usb0_vbus_power-supply = <&usb_power_supply>; 460*4882a593Smuzhiyun usb0_vbus-supply = <®_drivevbus>; 461*4882a593Smuzhiyun usb1_vbus-supply = <®_usb1_vbus>; 462*4882a593Smuzhiyun usb2_vbus-supply = <®_usb2_vbus>; 463*4882a593Smuzhiyun status = "okay"; 464*4882a593Smuzhiyun}; 465