1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) !! 1 /* 2 // Copyright (c) 2016 ARM Ltd. !! 2 * Copyright (c) 2016 ARM Ltd. >> 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 library 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 library 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 */ 3 42 4 /dts-v1/; 43 /dts-v1/; 5 44 6 #include "sun50i-a64.dtsi" 45 #include "sun50i-a64.dtsi" 7 #include "sun50i-a64-cpu-opp.dtsi" << 8 46 9 #include <dt-bindings/gpio/gpio.h> 47 #include <dt-bindings/gpio/gpio.h> 10 48 11 / { 49 / { 12 model = "Pine64 PINE A64"; !! 50 model = "Pine64"; 13 compatible = "pine64,pine64", "allwinn 51 compatible = "pine64,pine64", "allwinner,sun50i-a64"; 14 52 15 aliases { 53 aliases { 16 ethernet0 = &emac; << 17 serial0 = &uart0; 54 serial0 = &uart0; 18 serial1 = &uart1; << 19 serial2 = &uart2; << 20 serial3 = &uart3; << 21 serial4 = &uart4; << 22 }; 55 }; 23 56 24 chosen { 57 chosen { 25 stdout-path = "serial0:115200n 58 stdout-path = "serial0:115200n8"; 26 }; 59 }; 27 60 28 hdmi-connector { !! 61 reg_vcc3v3: vcc3v3 { 29 compatible = "hdmi-connector"; !! 62 compatible = "regulator-fixed"; 30 type = "a"; !! 63 regulator-name = "vcc3v3"; 31 !! 64 regulator-min-microvolt = <3300000>; 32 port { !! 65 regulator-max-microvolt = <3300000>; 33 hdmi_con_in: endpoint << 34 remote-endpoin << 35 }; << 36 }; << 37 }; 66 }; 38 }; 67 }; 39 68 40 &codec { << 41 status = "okay"; << 42 }; << 43 << 44 &codec_analog { << 45 cpvdd-supply = <®_eldo1>; << 46 status = "okay"; << 47 }; << 48 << 49 &cpu0 { << 50 cpu-supply = <®_dcdc2>; << 51 }; << 52 << 53 &cpu1 { << 54 cpu-supply = <®_dcdc2>; << 55 }; << 56 << 57 &cpu2 { << 58 cpu-supply = <®_dcdc2>; << 59 }; << 60 << 61 &cpu3 { << 62 cpu-supply = <®_dcdc2>; << 63 }; << 64 << 65 &dai { << 66 status = "okay"; << 67 }; << 68 << 69 &de { << 70 status = "okay"; << 71 }; << 72 << 73 &ehci0 { << 74 status = "okay"; << 75 }; << 76 << 77 &ehci1 { 69 &ehci1 { 78 status = "okay"; 70 status = "okay"; 79 }; 71 }; 80 72 81 &emac { << 82 pinctrl-names = "default"; << 83 pinctrl-0 = <&rmii_pins>; << 84 phy-mode = "rmii"; << 85 phy-handle = <&ext_rmii_phy1>; << 86 phy-supply = <®_dc1sw>; << 87 status = "okay"; << 88 << 89 }; << 90 << 91 &hdmi { << 92 hvcc-supply = <®_dldo1>; << 93 status = "okay"; << 94 }; << 95 << 96 &hdmi_out { << 97 hdmi_out_con: endpoint { << 98 remote-endpoint = <&hdmi_con_i << 99 }; << 100 }; << 101 << 102 &i2c1 { 73 &i2c1 { >> 74 pinctrl-names = "default"; >> 75 pinctrl-0 = <&i2c1_pins>; 103 status = "okay"; 76 status = "okay"; 104 }; 77 }; 105 78 106 &i2c1_pins { 79 &i2c1_pins { 107 bias-pull-up; 80 bias-pull-up; 108 }; 81 }; 109 82 110 &mdio { << 111 ext_rmii_phy1: ethernet-phy@1 { << 112 compatible = "ethernet-phy-iee << 113 reg = <1>; << 114 }; << 115 }; << 116 << 117 &mmc0 { 83 &mmc0 { 118 pinctrl-names = "default"; 84 pinctrl-names = "default"; 119 pinctrl-0 = <&mmc0_pins>; 85 pinctrl-0 = <&mmc0_pins>; 120 vmmc-supply = <®_dcdc1>; !! 86 vmmc-supply = <®_vcc3v3>; 121 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; !! 87 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; >> 88 cd-inverted; 122 disable-wp; 89 disable-wp; 123 bus-width = <4>; 90 bus-width = <4>; 124 status = "okay"; 91 status = "okay"; 125 }; 92 }; 126 93 127 &ohci0 { << 128 status = "okay"; << 129 }; << 130 << 131 &ohci1 { 94 &ohci1 { 132 status = "okay"; 95 status = "okay"; 133 }; 96 }; 134 97 135 &r_rsb { << 136 status = "okay"; << 137 << 138 axp803: pmic@3a3 { << 139 compatible = "x-powers,axp803" << 140 reg = <0x3a3>; << 141 interrupt-parent = <&r_intc>; << 142 interrupts = <GIC_SPI 32 IRQ_T << 143 }; << 144 }; << 145 << 146 #include "axp803.dtsi" << 147 << 148 &ac_power_supply { << 149 status = "okay"; << 150 }; << 151 << 152 &battery_power_supply { << 153 status = "okay"; << 154 }; << 155 << 156 ®_aldo2 { << 157 regulator-always-on; << 158 regulator-min-microvolt = <1800000>; << 159 regulator-max-microvolt = <3300000>; << 160 regulator-name = "vcc-pl"; << 161 }; << 162 << 163 ®_aldo3 { << 164 regulator-always-on; << 165 regulator-min-microvolt = <3000000>; << 166 regulator-max-microvolt = <3000000>; << 167 regulator-name = "vcc-pll-avcc"; << 168 }; << 169 << 170 ®_dc1sw { << 171 regulator-name = "vcc-phy"; << 172 }; << 173 << 174 ®_dcdc1 { << 175 regulator-always-on; << 176 regulator-min-microvolt = <3300000>; << 177 regulator-max-microvolt = <3300000>; << 178 regulator-name = "vcc-3v3"; << 179 }; << 180 << 181 ®_dcdc2 { << 182 regulator-always-on; << 183 regulator-min-microvolt = <1040000>; << 184 regulator-max-microvolt = <1300000>; << 185 regulator-name = "vdd-cpux"; << 186 }; << 187 << 188 /* DCDC3 is polyphased with DCDC2 */ << 189 << 190 /* << 191 * The DRAM chips used by Pine64 boards are DD << 192 * work at 1.35V with less power consumption. << 193 * As AXP803 DCDC5 cannot reach 1.35V accurate << 194 */ << 195 ®_dcdc5 { << 196 regulator-always-on; << 197 regulator-min-microvolt = <1360000>; << 198 regulator-max-microvolt = <1360000>; << 199 regulator-name = "vcc-dram"; << 200 }; << 201 << 202 ®_dcdc6 { << 203 regulator-always-on; << 204 regulator-min-microvolt = <1100000>; << 205 regulator-max-microvolt = <1100000>; << 206 regulator-name = "vdd-sys"; << 207 }; << 208 << 209 ®_dldo1 { << 210 regulator-min-microvolt = <3300000>; << 211 regulator-max-microvolt = <3300000>; << 212 regulator-name = "vcc-hdmi"; << 213 }; << 214 << 215 ®_dldo2 { << 216 regulator-min-microvolt = <3300000>; << 217 regulator-max-microvolt = <3300000>; << 218 regulator-name = "vcc-mipi"; << 219 }; << 220 << 221 ®_dldo4 { << 222 regulator-min-microvolt = <3300000>; << 223 regulator-max-microvolt = <3300000>; << 224 regulator-name = "vcc-wifi"; << 225 }; << 226 << 227 ®_eldo1 { << 228 regulator-min-microvolt = <1800000>; << 229 regulator-max-microvolt = <1800000>; << 230 regulator-name = "cpvdd"; << 231 }; << 232 << 233 ®_fldo1 { << 234 regulator-min-microvolt = <1200000>; << 235 regulator-max-microvolt = <1200000>; << 236 regulator-name = "vcc-1v2-hsic"; << 237 }; << 238 << 239 /* << 240 * The A64 chip cannot work without this regul << 241 * it seems to be only driving the AR100 core. << 242 * Maybe we don't still know well about CPUs d << 243 */ << 244 ®_fldo2 { << 245 regulator-always-on; << 246 regulator-min-microvolt = <1100000>; << 247 regulator-max-microvolt = <1100000>; << 248 regulator-name = "vdd-cpus"; << 249 }; << 250 << 251 ®_rtc_ldo { << 252 regulator-name = "vcc-rtc"; << 253 }; << 254 << 255 &simplefb_hdmi { << 256 vcc-hdmi-supply = <®_dldo1>; << 257 }; << 258 << 259 &sound { << 260 simple-audio-card,aux-devs = <&codec_a << 261 simple-audio-card,widgets = "Microphon << 262 "Headphone << 263 simple-audio-card,routing = << 264 "Left DAC", "DACL", << 265 "Right DAC", "DACR", << 266 "Headphone Jack", "HP" << 267 "ADCL", "Left ADC", << 268 "ADCR", "Right ADC", << 269 "MIC2", "Microphone Ja << 270 status = "okay"; << 271 }; << 272 << 273 /* On Euler connector */ << 274 &spdif { << 275 status = "disabled"; << 276 }; << 277 << 278 /* On Exp and Euler connectors */ << 279 &uart0 { 98 &uart0 { 280 pinctrl-names = "default"; 99 pinctrl-names = "default"; 281 pinctrl-0 = <&uart0_pb_pins>; !! 100 pinctrl-0 = <&uart0_pins_a>; 282 status = "okay"; 101 status = "okay"; 283 }; << 284 << 285 /* On Wifi/BT connector, with RTS/CTS */ << 286 &uart1 { << 287 pinctrl-names = "default"; << 288 pinctrl-0 = <&uart1_pins>, <&uart1_rts << 289 status = "disabled"; << 290 }; << 291 << 292 /* On Pi-2 connector */ << 293 &uart2 { << 294 pinctrl-names = "default"; << 295 pinctrl-0 = <&uart2_pins>; << 296 status = "disabled"; << 297 }; << 298 << 299 /* On Euler connector */ << 300 &uart3 { << 301 pinctrl-names = "default"; << 302 pinctrl-0 = <&uart3_pins>; << 303 status = "disabled"; << 304 }; << 305 << 306 /* On Euler connector, RTS/CTS optional */ << 307 &uart4 { << 308 pinctrl-names = "default"; << 309 pinctrl-0 = <&uart4_pins>; << 310 status = "disabled"; << 311 }; 102 }; 312 103 313 &usb_otg { 104 &usb_otg { 314 dr_mode = "host"; 105 dr_mode = "host"; 315 status = "okay"; 106 status = "okay"; 316 }; 107 }; 317 108 318 &usbphy { 109 &usbphy { 319 status = "okay"; 110 status = "okay"; 320 }; 111 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.