1585bf8aeSJagan Teki/* 2585bf8aeSJagan Teki * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3585bf8aeSJagan Teki * 4585bf8aeSJagan Teki * This file is dual-licensed: you can use it either under the terms 5585bf8aeSJagan Teki * of the GPL or the X11 license, at your option. Note that this dual 6585bf8aeSJagan Teki * licensing only applies to this file, and not this project as a 7585bf8aeSJagan Teki * whole. 8585bf8aeSJagan Teki * 9585bf8aeSJagan Teki * a) This library is free software; you can redistribute it and/or 10585bf8aeSJagan Teki * modify it under the terms of the GNU General Public License as 11585bf8aeSJagan Teki * published by the Free Software Foundation; either version 2 of the 12585bf8aeSJagan Teki * License, or (at your option) any later version. 13585bf8aeSJagan Teki * 14585bf8aeSJagan Teki * This library is distributed in the hope that it will be useful, 15585bf8aeSJagan Teki * but WITHOUT ANY WARRANTY; without even the implied warranty of 16585bf8aeSJagan Teki * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17585bf8aeSJagan Teki * GNU General Public License for more details. 18585bf8aeSJagan Teki * 19585bf8aeSJagan Teki * Or, alternatively, 20585bf8aeSJagan Teki * 21585bf8aeSJagan Teki * b) Permission is hereby granted, free of charge, to any person 22585bf8aeSJagan Teki * obtaining a copy of this software and associated documentation 23585bf8aeSJagan Teki * files (the "Software"), to deal in the Software without 24585bf8aeSJagan Teki * restriction, including without limitation the rights to use, 25585bf8aeSJagan Teki * copy, modify, merge, publish, distribute, sublicense, and/or 26585bf8aeSJagan Teki * sell copies of the Software, and to permit persons to whom the 27585bf8aeSJagan Teki * Software is furnished to do so, subject to the following 28585bf8aeSJagan Teki * conditions: 29585bf8aeSJagan Teki * 30585bf8aeSJagan Teki * The above copyright notice and this permission notice shall be 31585bf8aeSJagan Teki * included in all copies or substantial portions of the Software. 32585bf8aeSJagan Teki * 33585bf8aeSJagan Teki * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34585bf8aeSJagan Teki * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35585bf8aeSJagan Teki * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36585bf8aeSJagan Teki * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37585bf8aeSJagan Teki * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38585bf8aeSJagan Teki * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39585bf8aeSJagan Teki * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40585bf8aeSJagan Teki * OTHER DEALINGS IN THE SOFTWARE. 41585bf8aeSJagan Teki */ 42585bf8aeSJagan Teki 43585bf8aeSJagan Teki/dts-v1/; 44585bf8aeSJagan Teki 45585bf8aeSJagan Teki#include "sun50i-a64.dtsi" 46585bf8aeSJagan Teki 47585bf8aeSJagan Teki#include <dt-bindings/gpio/gpio.h> 48585bf8aeSJagan Teki 49585bf8aeSJagan Teki/ { 50585bf8aeSJagan Teki model = "Olimex A64-Olinuxino"; 51585bf8aeSJagan Teki compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; 52585bf8aeSJagan Teki 53585bf8aeSJagan Teki aliases { 54*1b39a183SAndre Przywara ethernet0 = &emac; 55585bf8aeSJagan Teki serial0 = &uart0; 56585bf8aeSJagan Teki }; 57585bf8aeSJagan Teki 58585bf8aeSJagan Teki chosen { 59585bf8aeSJagan Teki stdout-path = "serial0:115200n8"; 60585bf8aeSJagan Teki }; 61585bf8aeSJagan Teki 62*1b39a183SAndre Przywara hdmi-connector { 63*1b39a183SAndre Przywara compatible = "hdmi-connector"; 64*1b39a183SAndre Przywara type = "a"; 65*1b39a183SAndre Przywara 66*1b39a183SAndre Przywara port { 67*1b39a183SAndre Przywara hdmi_con_in: endpoint { 68*1b39a183SAndre Przywara remote-endpoint = <&hdmi_out_con>; 69*1b39a183SAndre Przywara }; 70*1b39a183SAndre Przywara }; 71*1b39a183SAndre Przywara }; 72*1b39a183SAndre Przywara 73*1b39a183SAndre Przywara reg_usb1_vbus: usb1-vbus { 74*1b39a183SAndre Przywara compatible = "regulator-fixed"; 75*1b39a183SAndre Przywara regulator-name = "usb1-vbus"; 76*1b39a183SAndre Przywara regulator-min-microvolt = <5000000>; 77*1b39a183SAndre Przywara regulator-max-microvolt = <5000000>; 78*1b39a183SAndre Przywara regulator-boot-on; 79*1b39a183SAndre Przywara enable-active-high; 80*1b39a183SAndre Przywara gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */ 81*1b39a183SAndre Przywara status = "okay"; 82*1b39a183SAndre Przywara }; 83*1b39a183SAndre Przywara 8468dd17c3SAndre Przywara wifi_pwrseq: wifi_pwrseq { 8568dd17c3SAndre Przywara compatible = "mmc-pwrseq-simple"; 8668dd17c3SAndre Przywara reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 87585bf8aeSJagan Teki }; 88585bf8aeSJagan Teki}; 89585bf8aeSJagan Teki 90*1b39a183SAndre Przywara&de { 91*1b39a183SAndre Przywara status = "okay"; 92*1b39a183SAndre Przywara}; 93*1b39a183SAndre Przywara 94*1b39a183SAndre Przywara&ehci0 { 95*1b39a183SAndre Przywara status = "okay"; 96*1b39a183SAndre Przywara}; 97*1b39a183SAndre Przywara 98*1b39a183SAndre Przywara&ehci1 { 99*1b39a183SAndre Przywara status = "okay"; 100*1b39a183SAndre Przywara}; 101*1b39a183SAndre Przywara 102*1b39a183SAndre Przywara&emac { 103*1b39a183SAndre Przywara pinctrl-names = "default"; 104*1b39a183SAndre Przywara pinctrl-0 = <&rgmii_pins>; 105*1b39a183SAndre Przywara phy-mode = "rgmii"; 106*1b39a183SAndre Przywara phy-handle = <&ext_rgmii_phy>; 107*1b39a183SAndre Przywara phy-supply = <®_dcdc1>; 108*1b39a183SAndre Przywara allwinner,tx-delay-ps = <600>; 109*1b39a183SAndre Przywara status = "okay"; 110*1b39a183SAndre Przywara}; 111*1b39a183SAndre Przywara 112*1b39a183SAndre Przywara&hdmi { 113*1b39a183SAndre Przywara hvcc-supply = <®_dldo1>; 114*1b39a183SAndre Przywara status = "okay"; 115*1b39a183SAndre Przywara}; 116*1b39a183SAndre Przywara 117*1b39a183SAndre Przywara&hdmi_out { 118*1b39a183SAndre Przywara hdmi_out_con: endpoint { 119*1b39a183SAndre Przywara remote-endpoint = <&hdmi_con_in>; 120*1b39a183SAndre Przywara }; 121*1b39a183SAndre Przywara}; 122*1b39a183SAndre Przywara 123*1b39a183SAndre Przywara&mdio { 124*1b39a183SAndre Przywara ext_rgmii_phy: ethernet-phy@1 { 125*1b39a183SAndre Przywara compatible = "ethernet-phy-ieee802.3-c22"; 126*1b39a183SAndre Przywara reg = <1>; 127*1b39a183SAndre Przywara }; 128*1b39a183SAndre Przywara}; 129*1b39a183SAndre Przywara 130585bf8aeSJagan Teki&mmc0 { 131585bf8aeSJagan Teki pinctrl-names = "default"; 132585bf8aeSJagan Teki pinctrl-0 = <&mmc0_pins>; 13368dd17c3SAndre Przywara vmmc-supply = <®_dcdc1>; 13468dd17c3SAndre Przywara cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 135585bf8aeSJagan Teki disable-wp; 136585bf8aeSJagan Teki bus-width = <4>; 137585bf8aeSJagan Teki status = "okay"; 138585bf8aeSJagan Teki}; 139585bf8aeSJagan Teki 14068dd17c3SAndre Przywara&mmc1 { 14168dd17c3SAndre Przywara pinctrl-names = "default"; 14268dd17c3SAndre Przywara pinctrl-0 = <&mmc1_pins>; 14368dd17c3SAndre Przywara vmmc-supply = <®_aldo2>; 14468dd17c3SAndre Przywara vqmmc-supply = <®_dldo4>; 14568dd17c3SAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 14668dd17c3SAndre Przywara bus-width = <4>; 14768dd17c3SAndre Przywara non-removable; 14868dd17c3SAndre Przywara status = "okay"; 14968dd17c3SAndre Przywara 15068dd17c3SAndre Przywara rtl8723bs: wifi@1 { 15168dd17c3SAndre Przywara reg = <1>; 15268dd17c3SAndre Przywara interrupt-parent = <&r_pio>; 15368dd17c3SAndre Przywara interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 15468dd17c3SAndre Przywara interrupt-names = "host-wake"; 15568dd17c3SAndre Przywara }; 15668dd17c3SAndre Przywara}; 15768dd17c3SAndre Przywara 158*1b39a183SAndre Przywara&ohci0 { 159*1b39a183SAndre Przywara status = "okay"; 160*1b39a183SAndre Przywara}; 161*1b39a183SAndre Przywara 162*1b39a183SAndre Przywara&ohci1 { 163*1b39a183SAndre Przywara status = "okay"; 164*1b39a183SAndre Przywara}; 165*1b39a183SAndre Przywara 16668dd17c3SAndre Przywara&r_rsb { 16768dd17c3SAndre Przywara status = "okay"; 16868dd17c3SAndre Przywara 16968dd17c3SAndre Przywara axp803: pmic@3a3 { 17068dd17c3SAndre Przywara compatible = "x-powers,axp803"; 17168dd17c3SAndre Przywara reg = <0x3a3>; 17268dd17c3SAndre Przywara interrupt-parent = <&r_intc>; 17368dd17c3SAndre Przywara interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 174*1b39a183SAndre Przywara x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ 17568dd17c3SAndre Przywara }; 17668dd17c3SAndre Przywara}; 17768dd17c3SAndre Przywara 17868dd17c3SAndre Przywara#include "axp803.dtsi" 17968dd17c3SAndre Przywara 18068dd17c3SAndre Przywara®_aldo1 { 18168dd17c3SAndre Przywara regulator-always-on; 18268dd17c3SAndre Przywara regulator-min-microvolt = <2800000>; 18368dd17c3SAndre Przywara regulator-max-microvolt = <2800000>; 18468dd17c3SAndre Przywara regulator-name = "vcc-pe"; 18568dd17c3SAndre Przywara}; 18668dd17c3SAndre Przywara 18768dd17c3SAndre Przywara®_aldo2 { 18868dd17c3SAndre Przywara regulator-always-on; 18968dd17c3SAndre Przywara regulator-min-microvolt = <3300000>; 19068dd17c3SAndre Przywara regulator-max-microvolt = <3300000>; 19168dd17c3SAndre Przywara regulator-name = "vcc-pl"; 19268dd17c3SAndre Przywara}; 19368dd17c3SAndre Przywara 19468dd17c3SAndre Przywara®_aldo3 { 19568dd17c3SAndre Przywara regulator-always-on; 19668dd17c3SAndre Przywara regulator-min-microvolt = <3000000>; 19768dd17c3SAndre Przywara regulator-max-microvolt = <3000000>; 19868dd17c3SAndre Przywara regulator-name = "vcc-pll-avcc"; 19968dd17c3SAndre Przywara}; 20068dd17c3SAndre Przywara 20168dd17c3SAndre Przywara®_dcdc1 { 20268dd17c3SAndre Przywara regulator-always-on; 20368dd17c3SAndre Przywara regulator-min-microvolt = <3300000>; 20468dd17c3SAndre Przywara regulator-max-microvolt = <3300000>; 20568dd17c3SAndre Przywara regulator-name = "vcc-3v3"; 20668dd17c3SAndre Przywara}; 20768dd17c3SAndre Przywara 20868dd17c3SAndre Przywara®_dcdc2 { 20968dd17c3SAndre Przywara regulator-always-on; 21068dd17c3SAndre Przywara regulator-min-microvolt = <1040000>; 21168dd17c3SAndre Przywara regulator-max-microvolt = <1300000>; 21268dd17c3SAndre Przywara regulator-name = "vdd-cpux"; 21368dd17c3SAndre Przywara}; 21468dd17c3SAndre Przywara 21568dd17c3SAndre Przywara/* DCDC3 is polyphased with DCDC2 */ 21668dd17c3SAndre Przywara 217*1b39a183SAndre Przywara/* 218*1b39a183SAndre Przywara * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal 219*1b39a183SAndre Przywara * 1.35V that the PMIC can drive. 220*1b39a183SAndre Przywara */ 22168dd17c3SAndre Przywara®_dcdc5 { 22268dd17c3SAndre Przywara regulator-always-on; 223*1b39a183SAndre Przywara regulator-min-microvolt = <1360000>; 224*1b39a183SAndre Przywara regulator-max-microvolt = <1360000>; 22568dd17c3SAndre Przywara regulator-name = "vcc-ddr3"; 22668dd17c3SAndre Przywara}; 22768dd17c3SAndre Przywara 22868dd17c3SAndre Przywara®_dcdc6 { 22968dd17c3SAndre Przywara regulator-always-on; 23068dd17c3SAndre Przywara regulator-min-microvolt = <1100000>; 23168dd17c3SAndre Przywara regulator-max-microvolt = <1100000>; 23268dd17c3SAndre Przywara regulator-name = "vdd-sys"; 23368dd17c3SAndre Przywara}; 23468dd17c3SAndre Przywara 23568dd17c3SAndre Przywara®_dldo1 { 23668dd17c3SAndre Przywara regulator-min-microvolt = <3300000>; 23768dd17c3SAndre Przywara regulator-max-microvolt = <3300000>; 23868dd17c3SAndre Przywara regulator-name = "vcc-hdmi"; 23968dd17c3SAndre Przywara}; 24068dd17c3SAndre Przywara 24168dd17c3SAndre Przywara®_dldo2 { 24268dd17c3SAndre Przywara regulator-min-microvolt = <3300000>; 24368dd17c3SAndre Przywara regulator-max-microvolt = <3300000>; 24468dd17c3SAndre Przywara regulator-name = "vcc-mipi"; 24568dd17c3SAndre Przywara}; 24668dd17c3SAndre Przywara 24768dd17c3SAndre Przywara®_dldo3 { 24868dd17c3SAndre Przywara regulator-min-microvolt = <2800000>; 24968dd17c3SAndre Przywara regulator-max-microvolt = <2800000>; 25068dd17c3SAndre Przywara regulator-name = "vcc-avdd-csi"; 25168dd17c3SAndre Przywara}; 25268dd17c3SAndre Przywara 25368dd17c3SAndre Przywara®_dldo4 { 25468dd17c3SAndre Przywara regulator-min-microvolt = <3300000>; 25568dd17c3SAndre Przywara regulator-max-microvolt = <3300000>; 25668dd17c3SAndre Przywara regulator-name = "vcc-wifi-io"; 25768dd17c3SAndre Przywara}; 25868dd17c3SAndre Przywara 259*1b39a183SAndre Przywara®_drivevbus { 260*1b39a183SAndre Przywara regulator-name = "usb0-vbus"; 261*1b39a183SAndre Przywara status = "okay"; 262*1b39a183SAndre Przywara}; 263*1b39a183SAndre Przywara 26468dd17c3SAndre Przywara®_eldo1 { 26568dd17c3SAndre Przywara regulator-min-microvolt = <1800000>; 26668dd17c3SAndre Przywara regulator-max-microvolt = <1800000>; 26768dd17c3SAndre Przywara regulator-name = "cpvdd"; 26868dd17c3SAndre Przywara}; 26968dd17c3SAndre Przywara 27068dd17c3SAndre Przywara®_eldo2 { 27168dd17c3SAndre Przywara regulator-min-microvolt = <1800000>; 27268dd17c3SAndre Przywara regulator-max-microvolt = <1800000>; 27368dd17c3SAndre Przywara regulator-name = "vcc-dvdd-csi"; 27468dd17c3SAndre Przywara}; 27568dd17c3SAndre Przywara 27668dd17c3SAndre Przywara®_fldo1 { 27768dd17c3SAndre Przywara regulator-min-microvolt = <1200000>; 27868dd17c3SAndre Przywara regulator-max-microvolt = <1200000>; 27968dd17c3SAndre Przywara regulator-name = "vcc-1v2-hsic"; 28068dd17c3SAndre Przywara}; 28168dd17c3SAndre Przywara 28268dd17c3SAndre Przywara/* 28368dd17c3SAndre Przywara * The A64 chip cannot work without this regulator off, although 28468dd17c3SAndre Przywara * it seems to be only driving the AR100 core. 28568dd17c3SAndre Przywara * Maybe we don't still know well about CPUs domain. 28668dd17c3SAndre Przywara */ 28768dd17c3SAndre Przywara®_fldo2 { 28868dd17c3SAndre Przywara regulator-always-on; 28968dd17c3SAndre Przywara regulator-min-microvolt = <1100000>; 29068dd17c3SAndre Przywara regulator-max-microvolt = <1100000>; 29168dd17c3SAndre Przywara regulator-name = "vdd-cpus"; 29268dd17c3SAndre Przywara}; 29368dd17c3SAndre Przywara 29468dd17c3SAndre Przywara®_rtc_ldo { 29568dd17c3SAndre Przywara regulator-name = "vcc-rtc"; 29668dd17c3SAndre Przywara}; 29768dd17c3SAndre Przywara 298*1b39a183SAndre Przywara&simplefb_hdmi { 299*1b39a183SAndre Przywara vcc-hdmi-supply = <®_dldo1>; 300*1b39a183SAndre Przywara}; 301*1b39a183SAndre Przywara 302585bf8aeSJagan Teki&uart0 { 303585bf8aeSJagan Teki pinctrl-names = "default"; 304*1b39a183SAndre Przywara pinctrl-0 = <&uart0_pb_pins>; 305585bf8aeSJagan Teki status = "okay"; 306585bf8aeSJagan Teki}; 307*1b39a183SAndre Przywara 308*1b39a183SAndre Przywara&usb_otg { 309*1b39a183SAndre Przywara dr_mode = "otg"; 310*1b39a183SAndre Przywara status = "okay"; 311*1b39a183SAndre Przywara}; 312*1b39a183SAndre Przywara 313*1b39a183SAndre Przywara&usbphy { 314*1b39a183SAndre Przywara status = "okay"; 315*1b39a183SAndre Przywara usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 316*1b39a183SAndre Przywara usb0_vbus-supply = <®_drivevbus>; 317*1b39a183SAndre Przywara usb1_vbus-supply = <®_usb1_vbus>; 318*1b39a183SAndre Przywara}; 319