14969efb2SJagan Teki/* 24969efb2SJagan Teki * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 34969efb2SJagan Teki * 44969efb2SJagan Teki * This file is dual-licensed: you can use it either under the terms 54969efb2SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual 64969efb2SJagan Teki * licensing only applies to this file, and not this project as a 74969efb2SJagan Teki * whole. 84969efb2SJagan Teki * 94969efb2SJagan Teki * a) This library is free software; you can redistribute it and/or 104969efb2SJagan Teki * modify it under the terms of the GNU General Public License as 114969efb2SJagan Teki * published by the Free Software Foundation; either version 2 of the 124969efb2SJagan Teki * License, or (at your option) any later version. 134969efb2SJagan Teki * 144969efb2SJagan Teki * This library is distributed in the hope that it will be useful, 154969efb2SJagan Teki * but WITHOUT ANY WARRANTY; without even the implied warranty of 164969efb2SJagan Teki * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 174969efb2SJagan Teki * GNU General Public License for more details. 184969efb2SJagan Teki * 194969efb2SJagan Teki * Or, alternatively, 204969efb2SJagan Teki * 214969efb2SJagan Teki * b) Permission is hereby granted, free of charge, to any person 224969efb2SJagan Teki * obtaining a copy of this software and associated documentation 234969efb2SJagan Teki * files (the "Software"), to deal in the Software without 244969efb2SJagan Teki * restriction, including without limitation the rights to use, 254969efb2SJagan Teki * copy, modify, merge, publish, distribute, sublicense, and/or 264969efb2SJagan Teki * sell copies of the Software, and to permit persons to whom the 274969efb2SJagan Teki * Software is furnished to do so, subject to the following 284969efb2SJagan Teki * conditions: 294969efb2SJagan Teki * 304969efb2SJagan Teki * The above copyright notice and this permission notice shall be 314969efb2SJagan Teki * included in all copies or substantial portions of the Software. 324969efb2SJagan Teki * 334969efb2SJagan Teki * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 344969efb2SJagan Teki * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 354969efb2SJagan Teki * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 364969efb2SJagan Teki * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 374969efb2SJagan Teki * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 384969efb2SJagan Teki * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 394969efb2SJagan Teki * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 404969efb2SJagan Teki * OTHER DEALINGS IN THE SOFTWARE. 414969efb2SJagan Teki */ 424969efb2SJagan Teki 434969efb2SJagan Teki/dts-v1/; 444969efb2SJagan Teki 454969efb2SJagan Teki#include "sun50i-a64.dtsi" 464969efb2SJagan Teki 474969efb2SJagan Teki#include <dt-bindings/gpio/gpio.h> 484969efb2SJagan Teki 494969efb2SJagan Teki/ { 504969efb2SJagan Teki model = "Olimex A64-Olinuxino"; 514969efb2SJagan Teki compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; 524969efb2SJagan Teki 534969efb2SJagan Teki aliases { 5421eac6f3SAndre Przywara ethernet0 = &emac; 554969efb2SJagan Teki serial0 = &uart0; 564969efb2SJagan Teki }; 574969efb2SJagan Teki 584969efb2SJagan Teki chosen { 594969efb2SJagan Teki stdout-path = "serial0:115200n8"; 604969efb2SJagan Teki }; 61916b68cfSJagan Teki 62f4e4453aSJagan Teki hdmi-connector { 63f4e4453aSJagan Teki compatible = "hdmi-connector"; 64f4e4453aSJagan Teki type = "a"; 65f4e4453aSJagan Teki 66f4e4453aSJagan Teki port { 67f4e4453aSJagan Teki hdmi_con_in: endpoint { 68f4e4453aSJagan Teki remote-endpoint = <&hdmi_out_con>; 69f4e4453aSJagan Teki }; 70f4e4453aSJagan Teki }; 71f4e4453aSJagan Teki }; 72f4e4453aSJagan Teki 73aa9cbe94SAndre Przywara reg_usb1_vbus: usb1-vbus { 74aa9cbe94SAndre Przywara compatible = "regulator-fixed"; 75aa9cbe94SAndre Przywara regulator-name = "usb1-vbus"; 76aa9cbe94SAndre Przywara regulator-min-microvolt = <5000000>; 77aa9cbe94SAndre Przywara regulator-max-microvolt = <5000000>; 78aa9cbe94SAndre Przywara regulator-boot-on; 79aa9cbe94SAndre Przywara enable-active-high; 80aa9cbe94SAndre Przywara gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */ 81aa9cbe94SAndre Przywara status = "okay"; 82aa9cbe94SAndre Przywara }; 83aa9cbe94SAndre Przywara 84916b68cfSJagan Teki wifi_pwrseq: wifi_pwrseq { 85916b68cfSJagan Teki compatible = "mmc-pwrseq-simple"; 86916b68cfSJagan Teki reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 87916b68cfSJagan Teki }; 884969efb2SJagan Teki}; 894969efb2SJagan Teki 90f4e4453aSJagan Teki&de { 91f4e4453aSJagan Teki status = "okay"; 92f4e4453aSJagan Teki}; 93f4e4453aSJagan Teki 94aa9cbe94SAndre Przywara&ehci0 { 95aa9cbe94SAndre Przywara status = "okay"; 96aa9cbe94SAndre Przywara}; 97aa9cbe94SAndre Przywara 98aa9cbe94SAndre Przywara&ehci1 { 99aa9cbe94SAndre Przywara status = "okay"; 100aa9cbe94SAndre Przywara}; 101aa9cbe94SAndre Przywara 10221eac6f3SAndre Przywara&emac { 10321eac6f3SAndre Przywara pinctrl-names = "default"; 10421eac6f3SAndre Przywara pinctrl-0 = <&rgmii_pins>; 10521eac6f3SAndre Przywara phy-mode = "rgmii"; 10621eac6f3SAndre Przywara phy-handle = <&ext_rgmii_phy>; 10721eac6f3SAndre Przywara phy-supply = <®_dcdc1>; 10867929449SRodrigo Exterckötter Tjäder allwinner,tx-delay-ps = <600>; 10921eac6f3SAndre Przywara status = "okay"; 11021eac6f3SAndre Przywara}; 11121eac6f3SAndre Przywara 112f4e4453aSJagan Teki&hdmi { 113f4e4453aSJagan Teki hvcc-supply = <®_dldo1>; 114f4e4453aSJagan Teki status = "okay"; 115f4e4453aSJagan Teki}; 116f4e4453aSJagan Teki 117f4e4453aSJagan Teki&hdmi_out { 118f4e4453aSJagan Teki hdmi_out_con: endpoint { 119f4e4453aSJagan Teki remote-endpoint = <&hdmi_con_in>; 120f4e4453aSJagan Teki }; 121f4e4453aSJagan Teki}; 122f4e4453aSJagan Teki 12321eac6f3SAndre Przywara&mdio { 12421eac6f3SAndre Przywara ext_rgmii_phy: ethernet-phy@1 { 12521eac6f3SAndre Przywara compatible = "ethernet-phy-ieee802.3-c22"; 12621eac6f3SAndre Przywara reg = <1>; 12721eac6f3SAndre Przywara }; 12821eac6f3SAndre Przywara}; 12921eac6f3SAndre Przywara 1304969efb2SJagan Teki&mmc0 { 1314969efb2SJagan Teki pinctrl-names = "default"; 1324969efb2SJagan Teki pinctrl-0 = <&mmc0_pins>; 1334969efb2SJagan Teki vmmc-supply = <®_dcdc1>; 134b75cb68dSTuomas Tynkkynen cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 1354969efb2SJagan Teki disable-wp; 1364969efb2SJagan Teki bus-width = <4>; 1374969efb2SJagan Teki status = "okay"; 1384969efb2SJagan Teki}; 1394969efb2SJagan Teki 140916b68cfSJagan Teki&mmc1 { 141916b68cfSJagan Teki pinctrl-names = "default"; 142916b68cfSJagan Teki pinctrl-0 = <&mmc1_pins>; 143916b68cfSJagan Teki vmmc-supply = <®_aldo2>; 144916b68cfSJagan Teki vqmmc-supply = <®_dldo4>; 145916b68cfSJagan Teki mmc-pwrseq = <&wifi_pwrseq>; 146916b68cfSJagan Teki bus-width = <4>; 147916b68cfSJagan Teki non-removable; 148916b68cfSJagan Teki status = "okay"; 149916b68cfSJagan Teki 150916b68cfSJagan Teki rtl8723bs: wifi@1 { 151916b68cfSJagan Teki reg = <1>; 152916b68cfSJagan Teki interrupt-parent = <&r_pio>; 153916b68cfSJagan Teki interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 154916b68cfSJagan Teki interrupt-names = "host-wake"; 155916b68cfSJagan Teki }; 156916b68cfSJagan Teki}; 157916b68cfSJagan Teki 158aa9cbe94SAndre Przywara&ohci0 { 159aa9cbe94SAndre Przywara status = "okay"; 160aa9cbe94SAndre Przywara}; 161aa9cbe94SAndre Przywara 162aa9cbe94SAndre Przywara&ohci1 { 163aa9cbe94SAndre Przywara status = "okay"; 164aa9cbe94SAndre Przywara}; 165aa9cbe94SAndre Przywara 1664969efb2SJagan Teki&r_rsb { 1674969efb2SJagan Teki status = "okay"; 1684969efb2SJagan Teki 1694969efb2SJagan Teki axp803: pmic@3a3 { 1704969efb2SJagan Teki compatible = "x-powers,axp803"; 1714969efb2SJagan Teki reg = <0x3a3>; 1724969efb2SJagan Teki interrupt-parent = <&r_intc>; 1734969efb2SJagan Teki interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 174aa9cbe94SAndre Przywara x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 1754969efb2SJagan Teki }; 1764969efb2SJagan Teki}; 1774969efb2SJagan Teki 1784969efb2SJagan Teki#include "axp803.dtsi" 1794969efb2SJagan Teki 1804969efb2SJagan Teki®_aldo1 { 1814969efb2SJagan Teki regulator-always-on; 1824969efb2SJagan Teki regulator-min-microvolt = <2800000>; 1834969efb2SJagan Teki regulator-max-microvolt = <2800000>; 1844969efb2SJagan Teki regulator-name = "vcc-pe"; 1854969efb2SJagan Teki}; 1864969efb2SJagan Teki 1874969efb2SJagan Teki®_aldo2 { 1884969efb2SJagan Teki regulator-always-on; 1894969efb2SJagan Teki regulator-min-microvolt = <3300000>; 1904969efb2SJagan Teki regulator-max-microvolt = <3300000>; 1914969efb2SJagan Teki regulator-name = "vcc-pl"; 1924969efb2SJagan Teki}; 1934969efb2SJagan Teki 1944969efb2SJagan Teki®_aldo3 { 1954969efb2SJagan Teki regulator-always-on; 1964969efb2SJagan Teki regulator-min-microvolt = <3000000>; 1974969efb2SJagan Teki regulator-max-microvolt = <3000000>; 1984969efb2SJagan Teki regulator-name = "vcc-pll-avcc"; 1994969efb2SJagan Teki}; 2004969efb2SJagan Teki 2014969efb2SJagan Teki®_dcdc1 { 2024969efb2SJagan Teki regulator-always-on; 2034969efb2SJagan Teki regulator-min-microvolt = <3300000>; 2044969efb2SJagan Teki regulator-max-microvolt = <3300000>; 2054969efb2SJagan Teki regulator-name = "vcc-3v3"; 2064969efb2SJagan Teki}; 2074969efb2SJagan Teki 2084969efb2SJagan Teki®_dcdc2 { 2094969efb2SJagan Teki regulator-always-on; 2104969efb2SJagan Teki regulator-min-microvolt = <1040000>; 2114969efb2SJagan Teki regulator-max-microvolt = <1300000>; 2124969efb2SJagan Teki regulator-name = "vdd-cpux"; 2134969efb2SJagan Teki}; 2144969efb2SJagan Teki 2154969efb2SJagan Teki/* DCDC3 is polyphased with DCDC2 */ 2164969efb2SJagan Teki 21793366b49SAndre Przywara/* 21893366b49SAndre Przywara * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal 21993366b49SAndre Przywara * 1.35V that the PMIC can drive. 22093366b49SAndre Przywara */ 2214969efb2SJagan Teki®_dcdc5 { 2224969efb2SJagan Teki regulator-always-on; 22393366b49SAndre Przywara regulator-min-microvolt = <1360000>; 22493366b49SAndre Przywara regulator-max-microvolt = <1360000>; 2254969efb2SJagan Teki regulator-name = "vcc-ddr3"; 2264969efb2SJagan Teki}; 2274969efb2SJagan Teki 2284969efb2SJagan Teki®_dcdc6 { 2294969efb2SJagan Teki regulator-always-on; 2304969efb2SJagan Teki regulator-min-microvolt = <1100000>; 2314969efb2SJagan Teki regulator-max-microvolt = <1100000>; 2324969efb2SJagan Teki regulator-name = "vdd-sys"; 2334969efb2SJagan Teki}; 2344969efb2SJagan Teki 2354969efb2SJagan Teki®_dldo1 { 2364969efb2SJagan Teki regulator-min-microvolt = <3300000>; 2374969efb2SJagan Teki regulator-max-microvolt = <3300000>; 2384969efb2SJagan Teki regulator-name = "vcc-hdmi"; 2394969efb2SJagan Teki}; 2404969efb2SJagan Teki 2414969efb2SJagan Teki®_dldo2 { 2424969efb2SJagan Teki regulator-min-microvolt = <3300000>; 2434969efb2SJagan Teki regulator-max-microvolt = <3300000>; 2444969efb2SJagan Teki regulator-name = "vcc-mipi"; 2454969efb2SJagan Teki}; 2464969efb2SJagan Teki 2474969efb2SJagan Teki®_dldo3 { 2484969efb2SJagan Teki regulator-min-microvolt = <2800000>; 2494969efb2SJagan Teki regulator-max-microvolt = <2800000>; 2504969efb2SJagan Teki regulator-name = "vcc-avdd-csi"; 2514969efb2SJagan Teki}; 2524969efb2SJagan Teki 2534969efb2SJagan Teki®_dldo4 { 2544969efb2SJagan Teki regulator-min-microvolt = <3300000>; 2554969efb2SJagan Teki regulator-max-microvolt = <3300000>; 2564969efb2SJagan Teki regulator-name = "vcc-wifi-io"; 2574969efb2SJagan Teki}; 2584969efb2SJagan Teki 259aa9cbe94SAndre Przywara®_drivevbus { 260aa9cbe94SAndre Przywara regulator-name = "usb0-vbus"; 261aa9cbe94SAndre Przywara status = "okay"; 262aa9cbe94SAndre Przywara}; 263aa9cbe94SAndre Przywara 2644969efb2SJagan Teki®_eldo1 { 2654969efb2SJagan Teki regulator-min-microvolt = <1800000>; 2664969efb2SJagan Teki regulator-max-microvolt = <1800000>; 2674969efb2SJagan Teki regulator-name = "cpvdd"; 2684969efb2SJagan Teki}; 2694969efb2SJagan Teki 2704969efb2SJagan Teki®_eldo2 { 2714969efb2SJagan Teki regulator-min-microvolt = <1800000>; 2724969efb2SJagan Teki regulator-max-microvolt = <1800000>; 2734969efb2SJagan Teki regulator-name = "vcc-dvdd-csi"; 2744969efb2SJagan Teki}; 2754969efb2SJagan Teki 2764969efb2SJagan Teki®_fldo1 { 2774969efb2SJagan Teki regulator-min-microvolt = <1200000>; 2784969efb2SJagan Teki regulator-max-microvolt = <1200000>; 2794969efb2SJagan Teki regulator-name = "vcc-1v2-hsic"; 2804969efb2SJagan Teki}; 2814969efb2SJagan Teki 2824969efb2SJagan Teki/* 2834969efb2SJagan Teki * The A64 chip cannot work without this regulator off, although 2844969efb2SJagan Teki * it seems to be only driving the AR100 core. 2854969efb2SJagan Teki * Maybe we don't still know well about CPUs domain. 2864969efb2SJagan Teki */ 2874969efb2SJagan Teki®_fldo2 { 2884969efb2SJagan Teki regulator-always-on; 2894969efb2SJagan Teki regulator-min-microvolt = <1100000>; 2904969efb2SJagan Teki regulator-max-microvolt = <1100000>; 2914969efb2SJagan Teki regulator-name = "vdd-cpus"; 2924969efb2SJagan Teki}; 2934969efb2SJagan Teki 2944969efb2SJagan Teki®_rtc_ldo { 2954969efb2SJagan Teki regulator-name = "vcc-rtc"; 2964969efb2SJagan Teki}; 2974969efb2SJagan Teki 2985cbef9f9SIcenowy Zheng&simplefb_hdmi { 2995cbef9f9SIcenowy Zheng vcc-hdmi-supply = <®_dldo1>; 3005cbef9f9SIcenowy Zheng}; 3015cbef9f9SIcenowy Zheng 3024969efb2SJagan Teki&uart0 { 3034969efb2SJagan Teki pinctrl-names = "default"; 304d91ebb95SChen-Yu Tsai pinctrl-0 = <&uart0_pb_pins>; 3054969efb2SJagan Teki status = "okay"; 3064969efb2SJagan Teki}; 307aa9cbe94SAndre Przywara 308aa9cbe94SAndre Przywara&usb_otg { 309aa9cbe94SAndre Przywara dr_mode = "otg"; 310aa9cbe94SAndre Przywara status = "okay"; 311aa9cbe94SAndre Przywara}; 312aa9cbe94SAndre Przywara 313aa9cbe94SAndre Przywara&usbphy { 314aa9cbe94SAndre Przywara status = "okay"; 315aa9cbe94SAndre Przywara usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 316aa9cbe94SAndre Przywara usb0_vbus-supply = <®_drivevbus>; 317aa9cbe94SAndre Przywara usb1_vbus-supply = <®_usb1_vbus>; 318aa9cbe94SAndre Przywara}; 319