0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 // Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
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 = "FriendlyARM NanoPi A64";
0013 compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64";
0014
0015 aliases {
0016 ethernet0 = &emac;
0017 serial0 = &uart0;
0018 };
0019
0020 chosen {
0021 stdout-path = "serial0:115200n8";
0022 };
0023
0024 hdmi-connector {
0025 compatible = "hdmi-connector";
0026 type = "a";
0027
0028 port {
0029 hdmi_con_in: endpoint {
0030 remote-endpoint = <&hdmi_out_con>;
0031 };
0032 };
0033 };
0034
0035 leds {
0036 compatible = "gpio-leds";
0037
0038 led {
0039 label = "nanopi-a64:blue:status";
0040 gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
0041 };
0042 };
0043
0044 wifi_pwrseq: wifi_pwrseq {
0045 compatible = "mmc-pwrseq-simple";
0046 clocks = <&rtc CLK_OSC32K_FANOUT>;
0047 clock-names = "ext_clock";
0048 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
0049 };
0050 };
0051
0052 &cpu0 {
0053 cpu-supply = <®_dcdc2>;
0054 };
0055
0056 &cpu1 {
0057 cpu-supply = <®_dcdc2>;
0058 };
0059
0060 &cpu2 {
0061 cpu-supply = <®_dcdc2>;
0062 };
0063
0064 &cpu3 {
0065 cpu-supply = <®_dcdc2>;
0066 };
0067
0068 &de {
0069 status = "okay";
0070 };
0071
0072 &ehci0 {
0073 status = "okay";
0074 };
0075
0076 &ehci1 {
0077 status = "okay";
0078 };
0079
0080 &emac {
0081 pinctrl-names = "default";
0082 pinctrl-0 = <&rgmii_pins>;
0083 phy-mode = "rgmii";
0084 phy-handle = <&ext_rgmii_phy>;
0085 phy-supply = <®_dcdc1>;
0086 status = "okay";
0087 };
0088
0089 &hdmi {
0090 hvcc-supply = <®_dldo1>;
0091 status = "okay";
0092 };
0093
0094 &hdmi_out {
0095 hdmi_out_con: endpoint {
0096 remote-endpoint = <&hdmi_con_in>;
0097 };
0098 };
0099
0100 /* i2c1 connected with gpio headers like pine64, bananapi */
0101 &i2c1_pins {
0102 bias-pull-up;
0103 };
0104
0105 &mdio {
0106 ext_rgmii_phy: ethernet-phy@1 {
0107 compatible = "ethernet-phy-ieee802.3-c22";
0108 reg = <7>;
0109 };
0110 };
0111
0112 &mmc0 {
0113 pinctrl-names = "default";
0114 pinctrl-0 = <&mmc0_pins>;
0115 vmmc-supply = <®_dcdc1>;
0116 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
0117 disable-wp;
0118 bus-width = <4>;
0119 status = "okay";
0120 };
0121
0122 &mmc1 {
0123 pinctrl-names = "default";
0124 pinctrl-0 = <&mmc1_pins>;
0125 vmmc-supply = <®_dcdc1>;
0126 vqmmc-supply = <®_dldo4>;
0127 mmc-pwrseq = <&wifi_pwrseq>;
0128 bus-width = <4>;
0129 non-removable;
0130 status = "okay";
0131
0132 rtl8189etv: wifi@1 {
0133 reg = <1>;
0134 interrupt-parent = <&r_pio>;
0135 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
0136 interrupt-names = "host-wake";
0137 };
0138 };
0139
0140 &ohci0 {
0141 status = "okay";
0142 };
0143
0144 &ohci1 {
0145 status = "okay";
0146 };
0147
0148 &r_rsb {
0149 status = "okay";
0150
0151 axp803: pmic@3a3 {
0152 compatible = "x-powers,axp803";
0153 reg = <0x3a3>;
0154 interrupt-parent = <&r_intc>;
0155 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
0156 };
0157 };
0158
0159 #include "axp803.dtsi"
0160
0161 &ac_power_supply {
0162 status = "okay";
0163 };
0164
0165 ®_aldo2 {
0166 regulator-always-on;
0167 regulator-min-microvolt = <1800000>;
0168 regulator-max-microvolt = <3300000>;
0169 regulator-name = "vcc-pl";
0170 };
0171
0172 ®_aldo3 {
0173 regulator-always-on;
0174 regulator-min-microvolt = <3000000>;
0175 regulator-max-microvolt = <3000000>;
0176 regulator-name = "vcc-pll-avcc";
0177 };
0178
0179 ®_dcdc1 {
0180 regulator-always-on;
0181 regulator-min-microvolt = <3300000>;
0182 regulator-max-microvolt = <3300000>;
0183 regulator-name = "vcc-3v3";
0184 };
0185
0186 ®_dcdc2 {
0187 regulator-always-on;
0188 regulator-min-microvolt = <1040000>;
0189 regulator-max-microvolt = <1300000>;
0190 regulator-name = "vdd-cpux";
0191 };
0192
0193 /* DCDC3 is polyphased with DCDC2 */
0194
0195 ®_dcdc5 {
0196 regulator-always-on;
0197 regulator-min-microvolt = <1500000>;
0198 regulator-max-microvolt = <1500000>;
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-always-on;
0211 regulator-min-microvolt = <3300000>;
0212 regulator-max-microvolt = <3300000>;
0213 regulator-name = "vcc-hdmi-dsi";
0214 };
0215
0216 ®_dldo4 {
0217 regulator-always-on;
0218 regulator-min-microvolt = <3000000>;
0219 regulator-max-microvolt = <3000000>;
0220 regulator-name = "vcc-pg-wifi-io";
0221 };
0222
0223 ®_eldo1 {
0224 regulator-min-microvolt = <1800000>;
0225 regulator-max-microvolt = <1800000>;
0226 regulator-name = "cpvdd";
0227 };
0228
0229 ®_fldo1 {
0230 regulator-min-microvolt = <1200000>;
0231 regulator-max-microvolt = <1200000>;
0232 regulator-name = "vcc-1v2-hsic";
0233 };
0234
0235 /*
0236 * The A64 chip cannot work without this regulator off, although
0237 * it seems to be only driving the AR100 core.
0238 * Maybe we don't still know well about CPUs domain.
0239 */
0240 ®_fldo2 {
0241 regulator-always-on;
0242 regulator-min-microvolt = <1100000>;
0243 regulator-max-microvolt = <1100000>;
0244 regulator-name = "vdd-cpus";
0245 };
0246
0247 ®_rtc_ldo {
0248 regulator-name = "vcc-rtc";
0249 };
0250
0251 &simplefb_hdmi {
0252 vcc-hdmi-supply = <®_dldo1>;
0253 };
0254
0255 &uart0 {
0256 pinctrl-names = "default";
0257 pinctrl-0 = <&uart0_pb_pins>;
0258 status = "okay";
0259 };
0260
0261 &usbphy {
0262 status = "okay";
0263 };