xref: /openbmc/u-boot/arch/arm/dts/sun50i-a64-pine64.dts (revision 6f443330186676004148930b4dd77f1c2735bd36)
1c1fd2441SAndre Przywara/*
2c1fd2441SAndre Przywara * Copyright (c) 2016 ARM Ltd.
3c1fd2441SAndre Przywara *
4c1fd2441SAndre Przywara * This file is dual-licensed: you can use it either under the terms
5c1fd2441SAndre Przywara * of the GPL or the X11 license, at your option. Note that this dual
6c1fd2441SAndre Przywara * licensing only applies to this file, and not this project as a
7c1fd2441SAndre Przywara * whole.
8c1fd2441SAndre Przywara *
9c1fd2441SAndre Przywara *  a) This library is free software; you can redistribute it and/or
10c1fd2441SAndre Przywara *     modify it under the terms of the GNU General Public License as
11c1fd2441SAndre Przywara *     published by the Free Software Foundation; either version 2 of the
12c1fd2441SAndre Przywara *     License, or (at your option) any later version.
13c1fd2441SAndre Przywara *
14c1fd2441SAndre Przywara *     This library is distributed in the hope that it will be useful,
15c1fd2441SAndre Przywara *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16c1fd2441SAndre Przywara *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17c1fd2441SAndre Przywara *     GNU General Public License for more details.
18c1fd2441SAndre Przywara *
19c1fd2441SAndre Przywara * Or, alternatively,
20c1fd2441SAndre Przywara *
21c1fd2441SAndre Przywara *  b) Permission is hereby granted, free of charge, to any person
22c1fd2441SAndre Przywara *     obtaining a copy of this software and associated documentation
23c1fd2441SAndre Przywara *     files (the "Software"), to deal in the Software without
24c1fd2441SAndre Przywara *     restriction, including without limitation the rights to use,
25c1fd2441SAndre Przywara *     copy, modify, merge, publish, distribute, sublicense, and/or
26c1fd2441SAndre Przywara *     sell copies of the Software, and to permit persons to whom the
27c1fd2441SAndre Przywara *     Software is furnished to do so, subject to the following
28c1fd2441SAndre Przywara *     conditions:
29c1fd2441SAndre Przywara *
30c1fd2441SAndre Przywara *     The above copyright notice and this permission notice shall be
31c1fd2441SAndre Przywara *     included in all copies or substantial portions of the Software.
32c1fd2441SAndre Przywara *
33c1fd2441SAndre Przywara *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34c1fd2441SAndre Przywara *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35c1fd2441SAndre Przywara *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36c1fd2441SAndre Przywara *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37c1fd2441SAndre Przywara *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38c1fd2441SAndre Przywara *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39c1fd2441SAndre Przywara *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40c1fd2441SAndre Przywara *     OTHER DEALINGS IN THE SOFTWARE.
41c1fd2441SAndre Przywara */
42c1fd2441SAndre Przywara
43c1fd2441SAndre Przywara/dts-v1/;
44c1fd2441SAndre Przywara
45f98852bfSAndre Przywara#include "sun50i-a64.dtsi"
46f98852bfSAndre Przywara
47f98852bfSAndre Przywara#include <dt-bindings/gpio/gpio.h>
48c1fd2441SAndre Przywara
49c1fd2441SAndre Przywara/ {
50c1fd2441SAndre Przywara	model = "Pine64";
51c1fd2441SAndre Przywara	compatible = "pine64,pine64", "allwinner,sun50i-a64";
52c1fd2441SAndre Przywara
53f98852bfSAndre Przywara	aliases {
5468dd17c3SAndre Przywara		ethernet0 = &emac;
55f98852bfSAndre Przywara		serial0 = &uart0;
5668dd17c3SAndre Przywara		serial1 = &uart1;
5768dd17c3SAndre Przywara		serial2 = &uart2;
5868dd17c3SAndre Przywara		serial3 = &uart3;
5968dd17c3SAndre Przywara		serial4 = &uart4;
60f98852bfSAndre Przywara	};
61f98852bfSAndre Przywara
62c1fd2441SAndre Przywara	chosen {
63c1fd2441SAndre Przywara		stdout-path = "serial0:115200n8";
64c1fd2441SAndre Przywara	};
65*1b39a183SAndre Przywara
66*1b39a183SAndre Przywara	hdmi-connector {
67*1b39a183SAndre Przywara		compatible = "hdmi-connector";
68*1b39a183SAndre Przywara		type = "a";
69*1b39a183SAndre Przywara
70*1b39a183SAndre Przywara		port {
71*1b39a183SAndre Przywara			hdmi_con_in: endpoint {
72*1b39a183SAndre Przywara				remote-endpoint = <&hdmi_out_con>;
73*1b39a183SAndre Przywara			};
74*1b39a183SAndre Przywara		};
75*1b39a183SAndre Przywara	};
76*1b39a183SAndre Przywara};
77*1b39a183SAndre Przywara
78*1b39a183SAndre Przywara&de {
79*1b39a183SAndre Przywara	status = "okay";
80c1fd2441SAndre Przywara};
8168dd17c3SAndre Przywara
8268dd17c3SAndre Przywara&ehci0 {
8368dd17c3SAndre Przywara	status = "okay";
84c1fd2441SAndre Przywara};
85f98852bfSAndre Przywara
86f98852bfSAndre Przywara&ehci1 {
87f98852bfSAndre Przywara	status = "okay";
88f98852bfSAndre Przywara};
89f98852bfSAndre Przywara
9068dd17c3SAndre Przywara&emac {
9168dd17c3SAndre Przywara	pinctrl-names = "default";
9268dd17c3SAndre Przywara	pinctrl-0 = <&rmii_pins>;
9368dd17c3SAndre Przywara	phy-mode = "rmii";
9468dd17c3SAndre Przywara	phy-handle = <&ext_rmii_phy1>;
9568dd17c3SAndre Przywara	phy-supply = <&reg_dc1sw>;
9668dd17c3SAndre Przywara	status = "okay";
9768dd17c3SAndre Przywara
9868dd17c3SAndre Przywara};
9968dd17c3SAndre Przywara
100*1b39a183SAndre Przywara&hdmi {
101*1b39a183SAndre Przywara	hvcc-supply = <&reg_dldo1>;
102*1b39a183SAndre Przywara	status = "okay";
103*1b39a183SAndre Przywara};
104*1b39a183SAndre Przywara
105*1b39a183SAndre Przywara&hdmi_out {
106*1b39a183SAndre Przywara	hdmi_out_con: endpoint {
107*1b39a183SAndre Przywara		remote-endpoint = <&hdmi_con_in>;
108*1b39a183SAndre Przywara	};
109*1b39a183SAndre Przywara};
110*1b39a183SAndre Przywara
111f98852bfSAndre Przywara&i2c1 {
112f98852bfSAndre Przywara	pinctrl-names = "default";
113f98852bfSAndre Przywara	pinctrl-0 = <&i2c1_pins>;
114f98852bfSAndre Przywara	status = "okay";
115f98852bfSAndre Przywara};
116f98852bfSAndre Przywara
117f98852bfSAndre Przywara&i2c1_pins {
118f98852bfSAndre Przywara	bias-pull-up;
119f98852bfSAndre Przywara};
120f98852bfSAndre Przywara
12168dd17c3SAndre Przywara&mdio {
12268dd17c3SAndre Przywara	ext_rmii_phy1: ethernet-phy@1 {
12368dd17c3SAndre Przywara		compatible = "ethernet-phy-ieee802.3-c22";
12468dd17c3SAndre Przywara		reg = <1>;
12568dd17c3SAndre Przywara	};
12668dd17c3SAndre Przywara};
12768dd17c3SAndre Przywara
128f98852bfSAndre Przywara&mmc0 {
129f98852bfSAndre Przywara	pinctrl-names = "default";
130f98852bfSAndre Przywara	pinctrl-0 = <&mmc0_pins>;
13168dd17c3SAndre Przywara	vmmc-supply = <&reg_dcdc1>;
13268dd17c3SAndre Przywara	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
133f98852bfSAndre Przywara	disable-wp;
134f98852bfSAndre Przywara	bus-width = <4>;
135f98852bfSAndre Przywara	status = "okay";
136f98852bfSAndre Przywara};
137f98852bfSAndre Przywara
13868dd17c3SAndre Przywara&ohci0 {
13968dd17c3SAndre Przywara	status = "okay";
14068dd17c3SAndre Przywara};
14168dd17c3SAndre Przywara
142f98852bfSAndre Przywara&ohci1 {
143f98852bfSAndre Przywara	status = "okay";
144f98852bfSAndre Przywara};
145f98852bfSAndre Przywara
14668dd17c3SAndre Przywara&r_rsb {
14768dd17c3SAndre Przywara	status = "okay";
14868dd17c3SAndre Przywara
14968dd17c3SAndre Przywara	axp803: pmic@3a3 {
15068dd17c3SAndre Przywara		compatible = "x-powers,axp803";
15168dd17c3SAndre Przywara		reg = <0x3a3>;
15268dd17c3SAndre Przywara		interrupt-parent = <&r_intc>;
15368dd17c3SAndre Przywara		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
15468dd17c3SAndre Przywara	};
15568dd17c3SAndre Przywara};
15668dd17c3SAndre Przywara
15768dd17c3SAndre Przywara#include "axp803.dtsi"
15868dd17c3SAndre Przywara
15968dd17c3SAndre Przywara&reg_aldo2 {
16068dd17c3SAndre Przywara	regulator-always-on;
16168dd17c3SAndre Przywara	regulator-min-microvolt = <1800000>;
16268dd17c3SAndre Przywara	regulator-max-microvolt = <3300000>;
16368dd17c3SAndre Przywara	regulator-name = "vcc-pl";
16468dd17c3SAndre Przywara};
16568dd17c3SAndre Przywara
16668dd17c3SAndre Przywara&reg_aldo3 {
16768dd17c3SAndre Przywara	regulator-always-on;
16868dd17c3SAndre Przywara	regulator-min-microvolt = <3000000>;
16968dd17c3SAndre Przywara	regulator-max-microvolt = <3000000>;
17068dd17c3SAndre Przywara	regulator-name = "vcc-pll-avcc";
17168dd17c3SAndre Przywara};
17268dd17c3SAndre Przywara
17368dd17c3SAndre Przywara&reg_dc1sw {
17468dd17c3SAndre Przywara	regulator-name = "vcc-phy";
17568dd17c3SAndre Przywara};
17668dd17c3SAndre Przywara
17768dd17c3SAndre Przywara&reg_dcdc1 {
17868dd17c3SAndre Przywara	regulator-always-on;
17968dd17c3SAndre Przywara	regulator-min-microvolt = <3300000>;
18068dd17c3SAndre Przywara	regulator-max-microvolt = <3300000>;
18168dd17c3SAndre Przywara	regulator-name = "vcc-3v3";
18268dd17c3SAndre Przywara};
18368dd17c3SAndre Przywara
18468dd17c3SAndre Przywara&reg_dcdc2 {
18568dd17c3SAndre Przywara	regulator-always-on;
18668dd17c3SAndre Przywara	regulator-min-microvolt = <1040000>;
18768dd17c3SAndre Przywara	regulator-max-microvolt = <1300000>;
18868dd17c3SAndre Przywara	regulator-name = "vdd-cpux";
18968dd17c3SAndre Przywara};
19068dd17c3SAndre Przywara
19168dd17c3SAndre Przywara/* DCDC3 is polyphased with DCDC2 */
19268dd17c3SAndre Przywara
19368dd17c3SAndre Przywara/*
19468dd17c3SAndre Przywara * The DRAM chips used by Pine64 boards are DDR3L-compatible, so they can
19568dd17c3SAndre Przywara * work at 1.35V with less power consumption.
19668dd17c3SAndre Przywara * As AXP803 DCDC5 cannot reach 1.35V accurately, use 1.36V instead.
19768dd17c3SAndre Przywara */
19868dd17c3SAndre Przywara&reg_dcdc5 {
19968dd17c3SAndre Przywara	regulator-always-on;
20068dd17c3SAndre Przywara	regulator-min-microvolt = <1360000>;
20168dd17c3SAndre Przywara	regulator-max-microvolt = <1360000>;
20268dd17c3SAndre Przywara	regulator-name = "vcc-dram";
20368dd17c3SAndre Przywara};
20468dd17c3SAndre Przywara
20568dd17c3SAndre Przywara&reg_dcdc6 {
20668dd17c3SAndre Przywara	regulator-always-on;
20768dd17c3SAndre Przywara	regulator-min-microvolt = <1100000>;
20868dd17c3SAndre Przywara	regulator-max-microvolt = <1100000>;
20968dd17c3SAndre Przywara	regulator-name = "vdd-sys";
21068dd17c3SAndre Przywara};
21168dd17c3SAndre Przywara
21268dd17c3SAndre Przywara&reg_dldo1 {
21368dd17c3SAndre Przywara	regulator-min-microvolt = <3300000>;
21468dd17c3SAndre Przywara	regulator-max-microvolt = <3300000>;
21568dd17c3SAndre Przywara	regulator-name = "vcc-hdmi";
21668dd17c3SAndre Przywara};
21768dd17c3SAndre Przywara
21868dd17c3SAndre Przywara&reg_dldo2 {
21968dd17c3SAndre Przywara	regulator-min-microvolt = <3300000>;
22068dd17c3SAndre Przywara	regulator-max-microvolt = <3300000>;
22168dd17c3SAndre Przywara	regulator-name = "vcc-mipi";
22268dd17c3SAndre Przywara};
22368dd17c3SAndre Przywara
22468dd17c3SAndre Przywara&reg_dldo4 {
22568dd17c3SAndre Przywara	regulator-min-microvolt = <3300000>;
22668dd17c3SAndre Przywara	regulator-max-microvolt = <3300000>;
22768dd17c3SAndre Przywara	regulator-name = "vcc-wifi";
22868dd17c3SAndre Przywara};
22968dd17c3SAndre Przywara
23068dd17c3SAndre Przywara&reg_eldo1 {
23168dd17c3SAndre Przywara	regulator-min-microvolt = <1800000>;
23268dd17c3SAndre Przywara	regulator-max-microvolt = <1800000>;
23368dd17c3SAndre Przywara	regulator-name = "cpvdd";
23468dd17c3SAndre Przywara};
23568dd17c3SAndre Przywara
23668dd17c3SAndre Przywara&reg_fldo1 {
23768dd17c3SAndre Przywara	regulator-min-microvolt = <1200000>;
23868dd17c3SAndre Przywara	regulator-max-microvolt = <1200000>;
23968dd17c3SAndre Przywara	regulator-name = "vcc-1v2-hsic";
24068dd17c3SAndre Przywara};
24168dd17c3SAndre Przywara
24268dd17c3SAndre Przywara/*
24368dd17c3SAndre Przywara * The A64 chip cannot work without this regulator off, although
24468dd17c3SAndre Przywara * it seems to be only driving the AR100 core.
24568dd17c3SAndre Przywara * Maybe we don't still know well about CPUs domain.
24668dd17c3SAndre Przywara */
24768dd17c3SAndre Przywara&reg_fldo2 {
24868dd17c3SAndre Przywara	regulator-always-on;
24968dd17c3SAndre Przywara	regulator-min-microvolt = <1100000>;
25068dd17c3SAndre Przywara	regulator-max-microvolt = <1100000>;
25168dd17c3SAndre Przywara	regulator-name = "vdd-cpus";
25268dd17c3SAndre Przywara};
25368dd17c3SAndre Przywara
25468dd17c3SAndre Przywara&reg_rtc_ldo {
25568dd17c3SAndre Przywara	regulator-name = "vcc-rtc";
25668dd17c3SAndre Przywara};
25768dd17c3SAndre Przywara
258*1b39a183SAndre Przywara&simplefb_hdmi {
259*1b39a183SAndre Przywara	vcc-hdmi-supply = <&reg_dldo1>;
260*1b39a183SAndre Przywara};
261*1b39a183SAndre Przywara
26268dd17c3SAndre Przywara/* On Euler connector */
26368dd17c3SAndre Przywara&spdif {
26468dd17c3SAndre Przywara	status = "disabled";
26568dd17c3SAndre Przywara};
26668dd17c3SAndre Przywara
26768dd17c3SAndre Przywara/* On Exp and Euler connectors */
268f98852bfSAndre Przywara&uart0 {
269f98852bfSAndre Przywara	pinctrl-names = "default";
270*1b39a183SAndre Przywara	pinctrl-0 = <&uart0_pb_pins>;
271f98852bfSAndre Przywara	status = "okay";
272f98852bfSAndre Przywara};
273f98852bfSAndre Przywara
27468dd17c3SAndre Przywara/* On Wifi/BT connector, with RTS/CTS */
27568dd17c3SAndre Przywara&uart1 {
27668dd17c3SAndre Przywara	pinctrl-names = "default";
27768dd17c3SAndre Przywara	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
27868dd17c3SAndre Przywara	status = "disabled";
27968dd17c3SAndre Przywara};
28068dd17c3SAndre Przywara
28168dd17c3SAndre Przywara/* On Pi-2 connector */
28268dd17c3SAndre Przywara&uart2 {
28368dd17c3SAndre Przywara	pinctrl-names = "default";
28468dd17c3SAndre Przywara	pinctrl-0 = <&uart2_pins>;
28568dd17c3SAndre Przywara	status = "disabled";
28668dd17c3SAndre Przywara};
28768dd17c3SAndre Przywara
28868dd17c3SAndre Przywara/* On Euler connector */
28968dd17c3SAndre Przywara&uart3 {
29068dd17c3SAndre Przywara	pinctrl-names = "default";
29168dd17c3SAndre Przywara	pinctrl-0 = <&uart3_pins>;
29268dd17c3SAndre Przywara	status = "disabled";
29368dd17c3SAndre Przywara};
29468dd17c3SAndre Przywara
29568dd17c3SAndre Przywara/* On Euler connector, RTS/CTS optional */
29668dd17c3SAndre Przywara&uart4 {
29768dd17c3SAndre Przywara	pinctrl-names = "default";
29868dd17c3SAndre Przywara	pinctrl-0 = <&uart4_pins>;
29968dd17c3SAndre Przywara	status = "disabled";
30068dd17c3SAndre Przywara};
30168dd17c3SAndre Przywara
302f98852bfSAndre Przywara&usb_otg {
303f98852bfSAndre Przywara	dr_mode = "host";
304f98852bfSAndre Przywara	status = "okay";
305f98852bfSAndre Przywara};
306f98852bfSAndre Przywara
307f98852bfSAndre Przywara&usbphy {
308f98852bfSAndre Przywara	status = "okay";
309f98852bfSAndre Przywara};
310