Back to home page

OSCL-LXR

 
 

    


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 = <&reg_eldo1>;
0046         status = "okay";
0047 };
0048 
0049 &cpu0 {
0050         cpu-supply = <&reg_dcdc2>;
0051 };
0052 
0053 &cpu1 {
0054         cpu-supply = <&reg_dcdc2>;
0055 };
0056 
0057 &cpu2 {
0058         cpu-supply = <&reg_dcdc2>;
0059 };
0060 
0061 &cpu3 {
0062         cpu-supply = <&reg_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 = <&reg_dc1sw>;
0087         status = "okay";
0088 
0089 };
0090 
0091 &hdmi {
0092         hvcc-supply = <&reg_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 = <&reg_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 &reg_aldo2 {
0157         regulator-always-on;
0158         regulator-min-microvolt = <1800000>;
0159         regulator-max-microvolt = <3300000>;
0160         regulator-name = "vcc-pl";
0161 };
0162 
0163 &reg_aldo3 {
0164         regulator-always-on;
0165         regulator-min-microvolt = <3000000>;
0166         regulator-max-microvolt = <3000000>;
0167         regulator-name = "vcc-pll-avcc";
0168 };
0169 
0170 &reg_dc1sw {
0171         regulator-name = "vcc-phy";
0172 };
0173 
0174 &reg_dcdc1 {
0175         regulator-always-on;
0176         regulator-min-microvolt = <3300000>;
0177         regulator-max-microvolt = <3300000>;
0178         regulator-name = "vcc-3v3";
0179 };
0180 
0181 &reg_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 &reg_dcdc5 {
0196         regulator-always-on;
0197         regulator-min-microvolt = <1360000>;
0198         regulator-max-microvolt = <1360000>;
0199         regulator-name = "vcc-dram";
0200 };
0201 
0202 &reg_dcdc6 {
0203         regulator-always-on;
0204         regulator-min-microvolt = <1100000>;
0205         regulator-max-microvolt = <1100000>;
0206         regulator-name = "vdd-sys";
0207 };
0208 
0209 &reg_dldo1 {
0210         regulator-min-microvolt = <3300000>;
0211         regulator-max-microvolt = <3300000>;
0212         regulator-name = "vcc-hdmi";
0213 };
0214 
0215 &reg_dldo2 {
0216         regulator-min-microvolt = <3300000>;
0217         regulator-max-microvolt = <3300000>;
0218         regulator-name = "vcc-mipi";
0219 };
0220 
0221 &reg_dldo4 {
0222         regulator-min-microvolt = <3300000>;
0223         regulator-max-microvolt = <3300000>;
0224         regulator-name = "vcc-wifi";
0225 };
0226 
0227 &reg_eldo1 {
0228         regulator-min-microvolt = <1800000>;
0229         regulator-max-microvolt = <1800000>;
0230         regulator-name = "cpvdd";
0231 };
0232 
0233 &reg_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 &reg_fldo2 {
0245         regulator-always-on;
0246         regulator-min-microvolt = <1100000>;
0247         regulator-max-microvolt = <1100000>;
0248         regulator-name = "vdd-cpus";
0249 };
0250 
0251 &reg_rtc_ldo {
0252         regulator-name = "vcc-rtc";
0253 };
0254 
0255 &simplefb_hdmi {
0256         vcc-hdmi-supply = <&reg_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 };