0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 // Copyright (c) 2016 ARM Ltd.
0003
0004 /dts-v1/;
0005
0006 #include "sun50i-a64.dtsi"
0007 #include "sun50i-a64-cpu-opp.dtsi"
0008
0009 #include <dt-bindings/gpio/gpio.h>
0010
0011 / {
0012 model = "Pine64";
0013 compatible = "pine64,pine64", "allwinner,sun50i-a64";
0014
0015 aliases {
0016 ethernet0 = &emac;
0017 serial0 = &uart0;
0018 serial1 = &uart1;
0019 serial2 = &uart2;
0020 serial3 = &uart3;
0021 serial4 = &uart4;
0022 };
0023
0024 chosen {
0025 stdout-path = "serial0:115200n8";
0026 };
0027
0028 hdmi-connector {
0029 compatible = "hdmi-connector";
0030 type = "a";
0031
0032 port {
0033 hdmi_con_in: endpoint {
0034 remote-endpoint = <&hdmi_out_con>;
0035 };
0036 };
0037 };
0038 };
0039
0040 &codec {
0041 status = "okay";
0042 };
0043
0044 &codec_analog {
0045 cpvdd-supply = <®_eldo1>;
0046 status = "okay";
0047 };
0048
0049 &cpu0 {
0050 cpu-supply = <®_dcdc2>;
0051 };
0052
0053 &cpu1 {
0054 cpu-supply = <®_dcdc2>;
0055 };
0056
0057 &cpu2 {
0058 cpu-supply = <®_dcdc2>;
0059 };
0060
0061 &cpu3 {
0062 cpu-supply = <®_dcdc2>;
0063 };
0064
0065 &dai {
0066 status = "okay";
0067 };
0068
0069 &de {
0070 status = "okay";
0071 };
0072
0073 &ehci0 {
0074 status = "okay";
0075 };
0076
0077 &ehci1 {
0078 status = "okay";
0079 };
0080
0081 &emac {
0082 pinctrl-names = "default";
0083 pinctrl-0 = <&rmii_pins>;
0084 phy-mode = "rmii";
0085 phy-handle = <&ext_rmii_phy1>;
0086 phy-supply = <®_dc1sw>;
0087 status = "okay";
0088
0089 };
0090
0091 &hdmi {
0092 hvcc-supply = <®_dldo1>;
0093 status = "okay";
0094 };
0095
0096 &hdmi_out {
0097 hdmi_out_con: endpoint {
0098 remote-endpoint = <&hdmi_con_in>;
0099 };
0100 };
0101
0102 &i2c1 {
0103 status = "okay";
0104 };
0105
0106 &i2c1_pins {
0107 bias-pull-up;
0108 };
0109
0110 &mdio {
0111 ext_rmii_phy1: ethernet-phy@1 {
0112 compatible = "ethernet-phy-ieee802.3-c22";
0113 reg = <1>;
0114 };
0115 };
0116
0117 &mmc0 {
0118 pinctrl-names = "default";
0119 pinctrl-0 = <&mmc0_pins>;
0120 vmmc-supply = <®_dcdc1>;
0121 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
0122 disable-wp;
0123 bus-width = <4>;
0124 status = "okay";
0125 };
0126
0127 &ohci0 {
0128 status = "okay";
0129 };
0130
0131 &ohci1 {
0132 status = "okay";
0133 };
0134
0135 &r_rsb {
0136 status = "okay";
0137
0138 axp803: pmic@3a3 {
0139 compatible = "x-powers,axp803";
0140 reg = <0x3a3>;
0141 interrupt-parent = <&r_intc>;
0142 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
0143 };
0144 };
0145
0146 #include "axp803.dtsi"
0147
0148 &ac_power_supply {
0149 status = "okay";
0150 };
0151
0152 &battery_power_supply {
0153 status = "okay";
0154 };
0155
0156 ®_aldo2 {
0157 regulator-always-on;
0158 regulator-min-microvolt = <1800000>;
0159 regulator-max-microvolt = <3300000>;
0160 regulator-name = "vcc-pl";
0161 };
0162
0163 ®_aldo3 {
0164 regulator-always-on;
0165 regulator-min-microvolt = <3000000>;
0166 regulator-max-microvolt = <3000000>;
0167 regulator-name = "vcc-pll-avcc";
0168 };
0169
0170 ®_dc1sw {
0171 regulator-name = "vcc-phy";
0172 };
0173
0174 ®_dcdc1 {
0175 regulator-always-on;
0176 regulator-min-microvolt = <3300000>;
0177 regulator-max-microvolt = <3300000>;
0178 regulator-name = "vcc-3v3";
0179 };
0180
0181 ®_dcdc2 {
0182 regulator-always-on;
0183 regulator-min-microvolt = <1040000>;
0184 regulator-max-microvolt = <1300000>;
0185 regulator-name = "vdd-cpux";
0186 };
0187
0188 /* DCDC3 is polyphased with DCDC2 */
0189
0190 /*
0191 * The DRAM chips used by Pine64 boards are DDR3L-compatible, so they can
0192 * work at 1.35V with less power consumption.
0193 * As AXP803 DCDC5 cannot reach 1.35V accurately, use 1.36V instead.
0194 */
0195 ®_dcdc5 {
0196 regulator-always-on;
0197 regulator-min-microvolt = <1360000>;
0198 regulator-max-microvolt = <1360000>;
0199 regulator-name = "vcc-dram";
0200 };
0201
0202 ®_dcdc6 {
0203 regulator-always-on;
0204 regulator-min-microvolt = <1100000>;
0205 regulator-max-microvolt = <1100000>;
0206 regulator-name = "vdd-sys";
0207 };
0208
0209 ®_dldo1 {
0210 regulator-min-microvolt = <3300000>;
0211 regulator-max-microvolt = <3300000>;
0212 regulator-name = "vcc-hdmi";
0213 };
0214
0215 ®_dldo2 {
0216 regulator-min-microvolt = <3300000>;
0217 regulator-max-microvolt = <3300000>;
0218 regulator-name = "vcc-mipi";
0219 };
0220
0221 ®_dldo4 {
0222 regulator-min-microvolt = <3300000>;
0223 regulator-max-microvolt = <3300000>;
0224 regulator-name = "vcc-wifi";
0225 };
0226
0227 ®_eldo1 {
0228 regulator-min-microvolt = <1800000>;
0229 regulator-max-microvolt = <1800000>;
0230 regulator-name = "cpvdd";
0231 };
0232
0233 ®_fldo1 {
0234 regulator-min-microvolt = <1200000>;
0235 regulator-max-microvolt = <1200000>;
0236 regulator-name = "vcc-1v2-hsic";
0237 };
0238
0239 /*
0240 * The A64 chip cannot work without this regulator off, although
0241 * it seems to be only driving the AR100 core.
0242 * Maybe we don't still know well about CPUs domain.
0243 */
0244 ®_fldo2 {
0245 regulator-always-on;
0246 regulator-min-microvolt = <1100000>;
0247 regulator-max-microvolt = <1100000>;
0248 regulator-name = "vdd-cpus";
0249 };
0250
0251 ®_rtc_ldo {
0252 regulator-name = "vcc-rtc";
0253 };
0254
0255 &simplefb_hdmi {
0256 vcc-hdmi-supply = <®_dldo1>;
0257 };
0258
0259 &sound {
0260 simple-audio-card,aux-devs = <&codec_analog>;
0261 simple-audio-card,widgets = "Microphone", "Microphone Jack",
0262 "Headphone", "Headphone Jack";
0263 simple-audio-card,routing =
0264 "Left DAC", "DACL",
0265 "Right DAC", "DACR",
0266 "Headphone Jack", "HP",
0267 "ADCL", "Left ADC",
0268 "ADCR", "Right ADC",
0269 "MIC2", "Microphone Jack";
0270 status = "okay";
0271 };
0272
0273 /* On Euler connector */
0274 &spdif {
0275 status = "disabled";
0276 };
0277
0278 /* On Exp and Euler connectors */
0279 &uart0 {
0280 pinctrl-names = "default";
0281 pinctrl-0 = <&uart0_pb_pins>;
0282 status = "okay";
0283 };
0284
0285 /* On Wifi/BT connector, with RTS/CTS */
0286 &uart1 {
0287 pinctrl-names = "default";
0288 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
0289 status = "disabled";
0290 };
0291
0292 /* On Pi-2 connector */
0293 &uart2 {
0294 pinctrl-names = "default";
0295 pinctrl-0 = <&uart2_pins>;
0296 status = "disabled";
0297 };
0298
0299 /* On Euler connector */
0300 &uart3 {
0301 pinctrl-names = "default";
0302 pinctrl-0 = <&uart3_pins>;
0303 status = "disabled";
0304 };
0305
0306 /* On Euler connector, RTS/CTS optional */
0307 &uart4 {
0308 pinctrl-names = "default";
0309 pinctrl-0 = <&uart4_pins>;
0310 status = "disabled";
0311 };
0312
0313 &usb_otg {
0314 dr_mode = "host";
0315 status = "okay";
0316 };
0317
0318 &usbphy {
0319 status = "okay";
0320 };