1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2// Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3 4/dts-v1/; 5 6#include "sun50i-a64.dtsi" 7#include "sun50i-a64-cpu-opp.dtsi" 8 9#include <dt-bindings/gpio/gpio.h> 10 11/ { 12 model = "Olimex A64-Olinuxino"; 13 compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; 14 15 aliases { 16 ethernet0 = &emac; 17 serial0 = &uart0; 18 }; 19 20 chosen { 21 stdout-path = "serial0:115200n8"; 22 }; 23 24 hdmi-connector { 25 compatible = "hdmi-connector"; 26 type = "a"; 27 28 port { 29 hdmi_con_in: endpoint { 30 remote-endpoint = <&hdmi_out_con>; 31 }; 32 }; 33 }; 34 35 reg_usb1_vbus: usb1-vbus { 36 compatible = "regulator-fixed"; 37 regulator-name = "usb1-vbus"; 38 regulator-min-microvolt = <5000000>; 39 regulator-max-microvolt = <5000000>; 40 regulator-boot-on; 41 enable-active-high; 42 gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */ 43 status = "okay"; 44 }; 45 46 wifi_pwrseq: wifi_pwrseq { 47 compatible = "mmc-pwrseq-simple"; 48 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 49 }; 50}; 51 52&cpu0 { 53 cpu-supply = <®_dcdc2>; 54}; 55 56&cpu1 { 57 cpu-supply = <®_dcdc2>; 58}; 59 60&cpu2 { 61 cpu-supply = <®_dcdc2>; 62}; 63 64&cpu3 { 65 cpu-supply = <®_dcdc2>; 66}; 67 68&de { 69 status = "okay"; 70}; 71 72&ehci0 { 73 status = "okay"; 74}; 75 76&ehci1 { 77 status = "okay"; 78}; 79 80&emac { 81 pinctrl-names = "default"; 82 pinctrl-0 = <&rgmii_pins>; 83 phy-mode = "rgmii"; 84 phy-handle = <&ext_rgmii_phy>; 85 phy-supply = <®_dcdc1>; 86 allwinner,tx-delay-ps = <600>; 87 status = "okay"; 88}; 89 90&hdmi { 91 hvcc-supply = <®_dldo1>; 92 status = "okay"; 93}; 94 95&hdmi_out { 96 hdmi_out_con: endpoint { 97 remote-endpoint = <&hdmi_con_in>; 98 }; 99}; 100 101&mdio { 102 ext_rgmii_phy: ethernet-phy@1 { 103 compatible = "ethernet-phy-ieee802.3-c22"; 104 reg = <1>; 105 }; 106}; 107 108&mmc0 { 109 pinctrl-names = "default"; 110 pinctrl-0 = <&mmc0_pins>; 111 vmmc-supply = <®_dcdc1>; 112 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 113 disable-wp; 114 bus-width = <4>; 115 status = "okay"; 116}; 117 118&mmc1 { 119 pinctrl-names = "default"; 120 pinctrl-0 = <&mmc1_pins>; 121 vmmc-supply = <®_dcdc1>; 122 vqmmc-supply = <®_dldo4>; 123 mmc-pwrseq = <&wifi_pwrseq>; 124 bus-width = <4>; 125 non-removable; 126 status = "okay"; 127 128 rtl8723bs: wifi@1 { 129 reg = <1>; 130 interrupt-parent = <&r_pio>; 131 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 132 interrupt-names = "host-wake"; 133 }; 134}; 135 136&ohci0 { 137 status = "okay"; 138}; 139 140&ohci1 { 141 status = "okay"; 142}; 143 144&pio { 145 vcc-pc-supply = <®_dcdc1>; 146 vcc-pd-supply = <®_dcdc1>; 147 vcc-pe-supply = <®_aldo1>; 148 vcc-pg-supply = <®_dldo4>; 149}; 150 151&r_pio { 152 /* 153 * FIXME: We can't add that supply for now since it would 154 * create a circular dependency between pinctrl, the regulator 155 * and the RSB Bus. 156 * 157 * vcc-pl-supply = <®_aldo2>; 158 */ 159}; 160 161&pio { 162 vcc-pa-supply = <®_dcdc1>; 163 vcc-pb-supply = <®_dcdc1>; 164 vcc-pc-supply = <®_dcdc1>; 165 vcc-pd-supply = <®_dcdc1>; 166 vcc-pe-supply = <®_aldo1>; 167 vcc-pf-supply = <®_dcdc1>; 168 vcc-pg-supply = <®_dldo4>; 169 vcc-ph-supply = <®_dcdc1>; 170}; 171 172&r_rsb { 173 status = "okay"; 174 175 axp803: pmic@3a3 { 176 compatible = "x-powers,axp803"; 177 reg = <0x3a3>; 178 interrupt-parent = <&r_intc>; 179 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 180 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 181 }; 182}; 183 184/* VCC-PL is powered by aldo2 but we cannot add it as the RSB */ 185/* interface used to talk to the PMIC in on the PL pins */ 186/* &r_pio { */ 187/* vcc-pl-supply = <®_aldo2>; */ 188/* }; */ 189 190#include "axp803.dtsi" 191 192&ac_power_supply { 193 status = "okay"; 194}; 195 196&battery_power_supply { 197 status = "okay"; 198}; 199 200®_aldo1 { 201 regulator-always-on; 202 regulator-min-microvolt = <2800000>; 203 regulator-max-microvolt = <2800000>; 204 regulator-name = "vcc-pe"; 205}; 206 207®_aldo2 { 208 regulator-always-on; 209 regulator-min-microvolt = <3300000>; 210 regulator-max-microvolt = <3300000>; 211 regulator-name = "vcc-pl"; 212}; 213 214®_aldo3 { 215 regulator-always-on; 216 regulator-min-microvolt = <3000000>; 217 regulator-max-microvolt = <3000000>; 218 regulator-name = "vcc-pll-avcc"; 219}; 220 221®_dcdc1 { 222 regulator-always-on; 223 regulator-min-microvolt = <3300000>; 224 regulator-max-microvolt = <3300000>; 225 regulator-name = "vcc-3v3"; 226}; 227 228®_dcdc2 { 229 regulator-always-on; 230 regulator-min-microvolt = <1040000>; 231 regulator-max-microvolt = <1300000>; 232 regulator-name = "vdd-cpux"; 233}; 234 235/* DCDC3 is polyphased with DCDC2 */ 236 237/* 238 * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal 239 * 1.35V that the PMIC can drive. 240 */ 241®_dcdc5 { 242 regulator-always-on; 243 regulator-min-microvolt = <1360000>; 244 regulator-max-microvolt = <1360000>; 245 regulator-name = "vcc-ddr3"; 246}; 247 248®_dcdc6 { 249 regulator-always-on; 250 regulator-min-microvolt = <1100000>; 251 regulator-max-microvolt = <1100000>; 252 regulator-name = "vdd-sys"; 253}; 254 255®_dldo1 { 256 regulator-min-microvolt = <3300000>; 257 regulator-max-microvolt = <3300000>; 258 regulator-name = "vcc-hdmi"; 259}; 260 261®_dldo2 { 262 regulator-min-microvolt = <3300000>; 263 regulator-max-microvolt = <3300000>; 264 regulator-name = "vcc-mipi"; 265}; 266 267®_dldo3 { 268 regulator-min-microvolt = <2800000>; 269 regulator-max-microvolt = <2800000>; 270 regulator-name = "vcc-avdd-csi"; 271}; 272 273®_dldo4 { 274 regulator-min-microvolt = <3300000>; 275 regulator-max-microvolt = <3300000>; 276 regulator-name = "vcc-wifi-io"; 277}; 278 279®_drivevbus { 280 regulator-name = "usb0-vbus"; 281 status = "okay"; 282}; 283 284®_eldo1 { 285 regulator-min-microvolt = <1800000>; 286 regulator-max-microvolt = <1800000>; 287 regulator-name = "cpvdd"; 288}; 289 290®_eldo2 { 291 regulator-min-microvolt = <1800000>; 292 regulator-max-microvolt = <1800000>; 293 regulator-name = "vcc-dvdd-csi"; 294}; 295 296®_fldo1 { 297 regulator-min-microvolt = <1200000>; 298 regulator-max-microvolt = <1200000>; 299 regulator-name = "vcc-1v2-hsic"; 300}; 301 302/* 303 * The A64 chip cannot work without this regulator off, although 304 * it seems to be only driving the AR100 core. 305 * Maybe we don't still know well about CPUs domain. 306 */ 307®_fldo2 { 308 regulator-always-on; 309 regulator-min-microvolt = <1100000>; 310 regulator-max-microvolt = <1100000>; 311 regulator-name = "vdd-cpus"; 312}; 313 314®_rtc_ldo { 315 regulator-name = "vcc-rtc"; 316}; 317 318&simplefb_hdmi { 319 vcc-hdmi-supply = <®_dldo1>; 320}; 321 322&uart0 { 323 pinctrl-names = "default"; 324 pinctrl-0 = <&uart0_pb_pins>; 325 status = "okay"; 326}; 327 328&usb_otg { 329 dr_mode = "otg"; 330 status = "okay"; 331}; 332 333&usbphy { 334 status = "okay"; 335 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 336 usb0_vbus-supply = <®_drivevbus>; 337 usb1_vbus-supply = <®_usb1_vbus>; 338}; 339