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