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 = <®_dc1sw>; 9668dd17c3SAndre Przywara status = "okay"; 9768dd17c3SAndre Przywara 9868dd17c3SAndre Przywara}; 9968dd17c3SAndre Przywara 100*1b39a183SAndre Przywara&hdmi { 101*1b39a183SAndre Przywara hvcc-supply = <®_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 = <®_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®_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®_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®_dc1sw { 17468dd17c3SAndre Przywara regulator-name = "vcc-phy"; 17568dd17c3SAndre Przywara}; 17668dd17c3SAndre Przywara 17768dd17c3SAndre Przywara®_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®_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®_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®_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®_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®_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®_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®_eldo1 { 23168dd17c3SAndre Przywara regulator-min-microvolt = <1800000>; 23268dd17c3SAndre Przywara regulator-max-microvolt = <1800000>; 23368dd17c3SAndre Przywara regulator-name = "cpvdd"; 23468dd17c3SAndre Przywara}; 23568dd17c3SAndre Przywara 23668dd17c3SAndre Przywara®_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®_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®_rtc_ldo { 25568dd17c3SAndre Przywara regulator-name = "vcc-rtc"; 25668dd17c3SAndre Przywara}; 25768dd17c3SAndre Przywara 258*1b39a183SAndre Przywara&simplefb_hdmi { 259*1b39a183SAndre Przywara vcc-hdmi-supply = <®_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