1af79c4f1SHans de Goede/* 2*80e5f83cSHans de Goede * Copyright 2015 Jelle de Jong <jelledejong@powercraft.nl> 3af79c4f1SHans de Goede * 4*80e5f83cSHans de Goede * This file is dual-licensed: you can use it either under the terms 5*80e5f83cSHans de Goede * of the GPL or the X11 license, at your option. Note that this dual 6*80e5f83cSHans de Goede * licensing only applies to this file, and not this project as a 7*80e5f83cSHans de Goede * whole. 8af79c4f1SHans de Goede * 9*80e5f83cSHans de Goede * a) This file is free software; you can redistribute it and/or 10*80e5f83cSHans de Goede * modify it under the terms of the GNU General Public License as 11*80e5f83cSHans de Goede * published by the Free Software Foundation; either version 2 of the 12*80e5f83cSHans de Goede * License, or (at your option) any later version. 13*80e5f83cSHans de Goede * 14*80e5f83cSHans de Goede * This file is distributed in the hope that it will be useful, 15*80e5f83cSHans de Goede * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*80e5f83cSHans de Goede * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*80e5f83cSHans de Goede * GNU General Public License for more details. 18*80e5f83cSHans de Goede * 19*80e5f83cSHans de Goede * Or, alternatively, 20*80e5f83cSHans de Goede * 21*80e5f83cSHans de Goede * b) Permission is hereby granted, free of charge, to any person 22*80e5f83cSHans de Goede * obtaining a copy of this software and associated documentation 23*80e5f83cSHans de Goede * files (the "Software"), to deal in the Software without 24*80e5f83cSHans de Goede * restriction, including without limitation the rights to use, 25*80e5f83cSHans de Goede * copy, modify, merge, publish, distribute, sublicense, and/or 26*80e5f83cSHans de Goede * sell copies of the Software, and to permit persons to whom the 27*80e5f83cSHans de Goede * Software is furnished to do so, subject to the following 28*80e5f83cSHans de Goede * conditions: 29*80e5f83cSHans de Goede * 30*80e5f83cSHans de Goede * The above copyright notice and this permission notice shall be 31*80e5f83cSHans de Goede * included in all copies or substantial portions of the Software. 32*80e5f83cSHans de Goede * 33*80e5f83cSHans de Goede * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34*80e5f83cSHans de Goede * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35*80e5f83cSHans de Goede * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36*80e5f83cSHans de Goede * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37*80e5f83cSHans de Goede * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38*80e5f83cSHans de Goede * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39*80e5f83cSHans de Goede * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40*80e5f83cSHans de Goede * OTHER DEALINGS IN THE SOFTWARE. 41af79c4f1SHans de Goede */ 42af79c4f1SHans de Goede 43af79c4f1SHans de Goede/dts-v1/; 44af79c4f1SHans de Goede#include "sun7i-a20.dtsi" 45*80e5f83cSHans de Goede#include "sunxi-common-regulators.dtsi" 46*80e5f83cSHans de Goede 47*80e5f83cSHans de Goede#include <dt-bindings/gpio/gpio.h> 48*80e5f83cSHans de Goede#include <dt-bindings/input/input.h> 49*80e5f83cSHans de Goede#include <dt-bindings/interrupt-controller/irq.h> 50af79c4f1SHans de Goede 51af79c4f1SHans de Goede/ { 52af79c4f1SHans de Goede model = "Wits Pro A20 DKT"; 53af79c4f1SHans de Goede compatible = "wits,pro-a20-dkt", "allwinner,sun7i-a20"; 54af79c4f1SHans de Goede 55af79c4f1SHans de Goede aliases { 56af79c4f1SHans de Goede serial0 = &uart0; 57af79c4f1SHans de Goede }; 58af79c4f1SHans de Goede 59af79c4f1SHans de Goede chosen { 60af79c4f1SHans de Goede stdout-path = "serial0:115200n8"; 61af79c4f1SHans de Goede }; 62*80e5f83cSHans de Goede 63*80e5f83cSHans de Goede mmc3_pwrseq: mmc3_pwrseq { 64*80e5f83cSHans de Goede compatible = "mmc-pwrseq-simple"; 65*80e5f83cSHans de Goede pinctrl-names = "default"; 66*80e5f83cSHans de Goede pinctrl-0 = <&vmmc3_pin_ap6xxx_wl_regon>; 67*80e5f83cSHans de Goede reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */ 68*80e5f83cSHans de Goede }; 69*80e5f83cSHans de Goede}; 70*80e5f83cSHans de Goede 71*80e5f83cSHans de Goede&cpu0 { 72*80e5f83cSHans de Goede cpu-supply = <®_dcdc2>; 73af79c4f1SHans de Goede}; 74af79c4f1SHans de Goede 75af79c4f1SHans de Goede&ehci0 { 76af79c4f1SHans de Goede status = "okay"; 77af79c4f1SHans de Goede}; 78af79c4f1SHans de Goede 79af79c4f1SHans de Goede&ehci1 { 80af79c4f1SHans de Goede status = "okay"; 81af79c4f1SHans de Goede}; 82af79c4f1SHans de Goede 83af79c4f1SHans de Goede&gmac { 84af79c4f1SHans de Goede pinctrl-names = "default"; 85af79c4f1SHans de Goede pinctrl-0 = <&gmac_pins_rgmii_a>; 86af79c4f1SHans de Goede phy = <&phy1>; 87af79c4f1SHans de Goede phy-mode = "rgmii"; 88af79c4f1SHans de Goede status = "okay"; 89af79c4f1SHans de Goede 90af79c4f1SHans de Goede phy1: ethernet-phy@1 { 91af79c4f1SHans de Goede reg = <1>; 92af79c4f1SHans de Goede }; 93af79c4f1SHans de Goede}; 94af79c4f1SHans de Goede 95*80e5f83cSHans de Goede&i2c0 { 96*80e5f83cSHans de Goede pinctrl-names = "default"; 97*80e5f83cSHans de Goede pinctrl-0 = <&i2c0_pins_a>; 98*80e5f83cSHans de Goede status = "okay"; 99*80e5f83cSHans de Goede 100*80e5f83cSHans de Goede axp209: pmic@34 { 101*80e5f83cSHans de Goede reg = <0x34>; 102*80e5f83cSHans de Goede interrupt-parent = <&nmi_intc>; 103*80e5f83cSHans de Goede interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 104*80e5f83cSHans de Goede }; 105*80e5f83cSHans de Goede}; 106*80e5f83cSHans de Goede 107*80e5f83cSHans de Goede&i2c1 { 108*80e5f83cSHans de Goede pinctrl-names = "default"; 109*80e5f83cSHans de Goede pinctrl-0 = <&i2c1_pins_a>; 110*80e5f83cSHans de Goede status = "okay"; 111*80e5f83cSHans de Goede}; 112*80e5f83cSHans de Goede 113*80e5f83cSHans de Goede&i2c2 { 114*80e5f83cSHans de Goede pinctrl-names = "default"; 115*80e5f83cSHans de Goede pinctrl-0 = <&i2c2_pins_a>; 116*80e5f83cSHans de Goede status = "okay"; 117*80e5f83cSHans de Goede}; 118*80e5f83cSHans de Goede 119*80e5f83cSHans de Goede#include "axp209.dtsi" 120*80e5f83cSHans de Goede 121*80e5f83cSHans de Goede&mmc0 { 122*80e5f83cSHans de Goede pinctrl-names = "default"; 123*80e5f83cSHans de Goede pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>; 124*80e5f83cSHans de Goede vmmc-supply = <®_vcc3v3>; 125*80e5f83cSHans de Goede bus-width = <4>; 126*80e5f83cSHans de Goede cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */ 127*80e5f83cSHans de Goede cd-inverted; 128*80e5f83cSHans de Goede status = "okay"; 129*80e5f83cSHans de Goede}; 130*80e5f83cSHans de Goede 131*80e5f83cSHans de Goede&mmc3 { 132*80e5f83cSHans de Goede pinctrl-names = "default"; 133*80e5f83cSHans de Goede pinctrl-0 = <&mmc3_pins_a>; 134*80e5f83cSHans de Goede vmmc-supply = <®_vcc3v3>; 135*80e5f83cSHans de Goede mmc-pwrseq = <&mmc3_pwrseq>; 136*80e5f83cSHans de Goede bus-width = <4>; 137*80e5f83cSHans de Goede non-removable; 138*80e5f83cSHans de Goede status = "okay"; 139*80e5f83cSHans de Goede 140*80e5f83cSHans de Goede brcmf: bcrmf@1 { 141*80e5f83cSHans de Goede reg = <1>; 142*80e5f83cSHans de Goede compatible = "brcm,bcm4329-fmac"; 143*80e5f83cSHans de Goede interrupt-parent = <&pio>; 144*80e5f83cSHans de Goede interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */ 145*80e5f83cSHans de Goede interrupt-names = "host-wake"; 146*80e5f83cSHans de Goede }; 147*80e5f83cSHans de Goede}; 148*80e5f83cSHans de Goede 149af79c4f1SHans de Goede&ohci0 { 150af79c4f1SHans de Goede status = "okay"; 151af79c4f1SHans de Goede}; 152af79c4f1SHans de Goede 153af79c4f1SHans de Goede&ohci1 { 154af79c4f1SHans de Goede status = "okay"; 155af79c4f1SHans de Goede}; 156af79c4f1SHans de Goede 157*80e5f83cSHans de Goede&otg_sram { 158*80e5f83cSHans de Goede status = "okay"; 159*80e5f83cSHans de Goede}; 160*80e5f83cSHans de Goede 161*80e5f83cSHans de Goede&pio { 162*80e5f83cSHans de Goede vmmc3_pin_ap6xxx_wl_regon: vmmc3_pin@0 { 163*80e5f83cSHans de Goede allwinner,pins = "PH9"; 164*80e5f83cSHans de Goede allwinner,function = "gpio_out"; 165*80e5f83cSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 166*80e5f83cSHans de Goede allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 167*80e5f83cSHans de Goede }; 168*80e5f83cSHans de Goede 169*80e5f83cSHans de Goede usb0_id_detect_pin: usb0_id_detect_pin@0 { 170*80e5f83cSHans de Goede allwinner,pins = "PH4"; 171*80e5f83cSHans de Goede allwinner,function = "gpio_in"; 172*80e5f83cSHans de Goede allwinner,drive = <SUN4I_PINCTRL_10_MA>; 173*80e5f83cSHans de Goede allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 174*80e5f83cSHans de Goede }; 175*80e5f83cSHans de Goede}; 176*80e5f83cSHans de Goede 177*80e5f83cSHans de Goede®_dcdc2 { 178*80e5f83cSHans de Goede regulator-always-on; 179*80e5f83cSHans de Goede regulator-min-microvolt = <1000000>; 180*80e5f83cSHans de Goede regulator-max-microvolt = <1450000>; 181*80e5f83cSHans de Goede regulator-name = "vdd-cpu"; 182*80e5f83cSHans de Goede}; 183*80e5f83cSHans de Goede 184*80e5f83cSHans de Goede®_dcdc3 { 185*80e5f83cSHans de Goede regulator-always-on; 186*80e5f83cSHans de Goede regulator-min-microvolt = <1000000>; 187*80e5f83cSHans de Goede regulator-max-microvolt = <1400000>; 188*80e5f83cSHans de Goede regulator-name = "vdd-int-dll"; 189*80e5f83cSHans de Goede}; 190*80e5f83cSHans de Goede 191*80e5f83cSHans de Goede®_ldo1 { 192*80e5f83cSHans de Goede regulator-name = "vdd-rtc"; 193*80e5f83cSHans de Goede}; 194*80e5f83cSHans de Goede 195*80e5f83cSHans de Goede®_ldo2 { 196*80e5f83cSHans de Goede regulator-always-on; 197*80e5f83cSHans de Goede regulator-min-microvolt = <3000000>; 198*80e5f83cSHans de Goede regulator-max-microvolt = <3000000>; 199*80e5f83cSHans de Goede regulator-name = "avcc"; 200*80e5f83cSHans de Goede}; 201*80e5f83cSHans de Goede 202*80e5f83cSHans de Goede®_usb0_vbus { 203*80e5f83cSHans de Goede status = "okay"; 204*80e5f83cSHans de Goede}; 205*80e5f83cSHans de Goede 206*80e5f83cSHans de Goede®_usb1_vbus { 207*80e5f83cSHans de Goede status = "okay"; 208*80e5f83cSHans de Goede}; 209*80e5f83cSHans de Goede 210*80e5f83cSHans de Goede®_usb2_vbus { 211*80e5f83cSHans de Goede status = "okay"; 212*80e5f83cSHans de Goede}; 213*80e5f83cSHans de Goede 214af79c4f1SHans de Goede&uart0 { 215af79c4f1SHans de Goede pinctrl-names = "default"; 216af79c4f1SHans de Goede pinctrl-0 = <&uart0_pins_a>; 217af79c4f1SHans de Goede status = "okay"; 218af79c4f1SHans de Goede}; 219*80e5f83cSHans de Goede 220*80e5f83cSHans de Goede&usb_otg { 221*80e5f83cSHans de Goede dr_mode = "otg"; 222*80e5f83cSHans de Goede status = "okay"; 223*80e5f83cSHans de Goede}; 224*80e5f83cSHans de Goede 225*80e5f83cSHans de Goede&usb_power_supply { 226*80e5f83cSHans de Goede status = "okay"; 227*80e5f83cSHans de Goede}; 228*80e5f83cSHans de Goede 229*80e5f83cSHans de Goede&usbphy { 230*80e5f83cSHans de Goede pinctrl-names = "default"; 231*80e5f83cSHans de Goede pinctrl-0 = <&usb0_id_detect_pin>; 232*80e5f83cSHans de Goede usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 233*80e5f83cSHans de Goede usb0_vbus_power-supply = <&usb_power_supply>; 234*80e5f83cSHans de Goede usb0_vbus-supply = <®_usb0_vbus>; 235*80e5f83cSHans de Goede usb1_vbus-supply = <®_usb1_vbus>; 236*80e5f83cSHans de Goede usb2_vbus-supply = <®_usb2_vbus>; 237*80e5f83cSHans de Goede status = "okay"; 238*80e5f83cSHans de Goede}; 239