1*ca5c3702SStefan Mavrodiev/* 2*ca5c3702SStefan Mavrodiev * Copyright 2016 - Stefan Mavrodiev <stefan.mavrodiev@gmail.com> 3*ca5c3702SStefan Mavrodiev * Olimex LTD. <support@olimex.com> 4*ca5c3702SStefan Mavrodiev * 5*ca5c3702SStefan Mavrodiev * This file is dual-licensed: you can use it either under the terms 6*ca5c3702SStefan Mavrodiev * of the GPL or the X11 license, at your option. Note that this dual 7*ca5c3702SStefan Mavrodiev * licensing only applies to this file, and not this project as a 8*ca5c3702SStefan Mavrodiev * whole. 9*ca5c3702SStefan Mavrodiev * 10*ca5c3702SStefan Mavrodiev * a) This file is free software; you can redistribute it and/or 11*ca5c3702SStefan Mavrodiev * modify it under the terms of the GNU General Public License as 12*ca5c3702SStefan Mavrodiev * published by the Free Software Foundation; either version 2 of the 13*ca5c3702SStefan Mavrodiev * License, or (at your option) any later version. 14*ca5c3702SStefan Mavrodiev * 15*ca5c3702SStefan Mavrodiev * This file is distributed in the hope that it will be useful, 16*ca5c3702SStefan Mavrodiev * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*ca5c3702SStefan Mavrodiev * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*ca5c3702SStefan Mavrodiev * GNU General Public License for more details. 19*ca5c3702SStefan Mavrodiev * 20*ca5c3702SStefan Mavrodiev * Or, alternatively, 21*ca5c3702SStefan Mavrodiev * 22*ca5c3702SStefan Mavrodiev * b) Permission is hereby granted, free of charge, to any person 23*ca5c3702SStefan Mavrodiev * obtaining a copy of this software and associated documentation 24*ca5c3702SStefan Mavrodiev * files (the "Software"), to deal in the Software without 25*ca5c3702SStefan Mavrodiev * restriction, including without limitation the rights to use, 26*ca5c3702SStefan Mavrodiev * copy, modify, merge, publish, distribute, sublicense, and/or 27*ca5c3702SStefan Mavrodiev * sell copies of the Software, and to permit persons to whom the 28*ca5c3702SStefan Mavrodiev * Software is furnished to do so, subject to the following 29*ca5c3702SStefan Mavrodiev * conditions: 30*ca5c3702SStefan Mavrodiev * 31*ca5c3702SStefan Mavrodiev * The above copyright notice and this permission notice shall be 32*ca5c3702SStefan Mavrodiev * included in all copies or substantial portions of the Software. 33*ca5c3702SStefan Mavrodiev * 34*ca5c3702SStefan Mavrodiev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 35*ca5c3702SStefan Mavrodiev * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36*ca5c3702SStefan Mavrodiev * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37*ca5c3702SStefan Mavrodiev * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38*ca5c3702SStefan Mavrodiev * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 39*ca5c3702SStefan Mavrodiev * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40*ca5c3702SStefan Mavrodiev * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41*ca5c3702SStefan Mavrodiev * OTHER DEALINGS IN THE SOFTWARE. 42*ca5c3702SStefan Mavrodiev */ 43*ca5c3702SStefan Mavrodiev 44*ca5c3702SStefan Mavrodiev/dts-v1/; 45*ca5c3702SStefan Mavrodiev#include "sun8i-a33.dtsi" 46*ca5c3702SStefan Mavrodiev#include "sunxi-common-regulators.dtsi" 47*ca5c3702SStefan Mavrodiev 48*ca5c3702SStefan Mavrodiev#include <dt-bindings/gpio/gpio.h> 49*ca5c3702SStefan Mavrodiev#include <dt-bindings/input/input.h> 50*ca5c3702SStefan Mavrodiev 51*ca5c3702SStefan Mavrodiev/ { 52*ca5c3702SStefan Mavrodiev model = "Olimex A33-OLinuXino"; 53*ca5c3702SStefan Mavrodiev compatible = "olimex,a33-olinuxino","allwinner,sun8i-a33"; 54*ca5c3702SStefan Mavrodiev 55*ca5c3702SStefan Mavrodiev aliases { 56*ca5c3702SStefan Mavrodiev serial0 = &uart0; 57*ca5c3702SStefan Mavrodiev }; 58*ca5c3702SStefan Mavrodiev 59*ca5c3702SStefan Mavrodiev chosen { 60*ca5c3702SStefan Mavrodiev stdout-path = "serial0:115200n8"; 61*ca5c3702SStefan Mavrodiev }; 62*ca5c3702SStefan Mavrodiev 63*ca5c3702SStefan Mavrodiev leds { 64*ca5c3702SStefan Mavrodiev compatible = "gpio-leds"; 65*ca5c3702SStefan Mavrodiev pinctrl-names = "default"; 66*ca5c3702SStefan Mavrodiev pinctrl-0 = <&led_pin_olinuxino>; 67*ca5c3702SStefan Mavrodiev 68*ca5c3702SStefan Mavrodiev green { 69*ca5c3702SStefan Mavrodiev label = "a33-olinuxino:green:usr"; 70*ca5c3702SStefan Mavrodiev gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>; 71*ca5c3702SStefan Mavrodiev }; 72*ca5c3702SStefan Mavrodiev }; 73*ca5c3702SStefan Mavrodiev}; 74*ca5c3702SStefan Mavrodiev 75*ca5c3702SStefan Mavrodiev&ehci0 { 76*ca5c3702SStefan Mavrodiev status = "okay"; 77*ca5c3702SStefan Mavrodiev}; 78*ca5c3702SStefan Mavrodiev 79*ca5c3702SStefan Mavrodiev&mmc0 { 80*ca5c3702SStefan Mavrodiev pinctrl-names = "default"; 81*ca5c3702SStefan Mavrodiev pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>; 82*ca5c3702SStefan Mavrodiev vmmc-supply = <®_dcdc1>; 83*ca5c3702SStefan Mavrodiev bus-width = <4>; 84*ca5c3702SStefan Mavrodiev cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 85*ca5c3702SStefan Mavrodiev cd-inverted; 86*ca5c3702SStefan Mavrodiev status = "okay"; 87*ca5c3702SStefan Mavrodiev}; 88*ca5c3702SStefan Mavrodiev 89*ca5c3702SStefan Mavrodiev&ohci0 { 90*ca5c3702SStefan Mavrodiev status = "okay"; 91*ca5c3702SStefan Mavrodiev}; 92*ca5c3702SStefan Mavrodiev 93*ca5c3702SStefan Mavrodiev&pio { 94*ca5c3702SStefan Mavrodiev led_pin_olinuxino: led_pins@0 { 95*ca5c3702SStefan Mavrodiev allwinner,pins = "PB7"; 96*ca5c3702SStefan Mavrodiev allwinner,function = "gpio_out"; 97*ca5c3702SStefan Mavrodiev allwinner,drive = <SUN4I_PINCTRL_10_MA>; 98*ca5c3702SStefan Mavrodiev allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 99*ca5c3702SStefan Mavrodiev }; 100*ca5c3702SStefan Mavrodiev 101*ca5c3702SStefan Mavrodiev mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 { 102*ca5c3702SStefan Mavrodiev allwinner,pins = "PB4"; 103*ca5c3702SStefan Mavrodiev allwinner,function = "gpio_in"; 104*ca5c3702SStefan Mavrodiev allwinner,drive = <SUN4I_PINCTRL_10_MA>; 105*ca5c3702SStefan Mavrodiev allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 106*ca5c3702SStefan Mavrodiev }; 107*ca5c3702SStefan Mavrodiev 108*ca5c3702SStefan Mavrodiev usb0_id_detect_pin: usb0_id_detect_pin@0 { 109*ca5c3702SStefan Mavrodiev allwinner,pins = "PB3"; 110*ca5c3702SStefan Mavrodiev allwinner,function = "gpio_in"; 111*ca5c3702SStefan Mavrodiev allwinner,drive = <SUN4I_PINCTRL_10_MA>; 112*ca5c3702SStefan Mavrodiev allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 113*ca5c3702SStefan Mavrodiev }; 114*ca5c3702SStefan Mavrodiev}; 115*ca5c3702SStefan Mavrodiev 116*ca5c3702SStefan Mavrodiev&r_rsb { 117*ca5c3702SStefan Mavrodiev status = "okay"; 118*ca5c3702SStefan Mavrodiev 119*ca5c3702SStefan Mavrodiev axp22x: pmic@3a3 { 120*ca5c3702SStefan Mavrodiev compatible = "x-powers,axp223"; 121*ca5c3702SStefan Mavrodiev reg = <0x3a3>; 122*ca5c3702SStefan Mavrodiev interrupt-parent = <&nmi_intc>; 123*ca5c3702SStefan Mavrodiev interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 124*ca5c3702SStefan Mavrodiev eldoin-supply = <®_dcdc1>; 125*ca5c3702SStefan Mavrodiev x-powers,drive-vbus-en; 126*ca5c3702SStefan Mavrodiev }; 127*ca5c3702SStefan Mavrodiev}; 128*ca5c3702SStefan Mavrodiev 129*ca5c3702SStefan Mavrodiev#include "axp22x.dtsi" 130*ca5c3702SStefan Mavrodiev 131*ca5c3702SStefan Mavrodiev®_aldo1 { 132*ca5c3702SStefan Mavrodiev regulator-always-on; 133*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <3300000>; 134*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <3300000>; 135*ca5c3702SStefan Mavrodiev regulator-name = "vcc-io"; 136*ca5c3702SStefan Mavrodiev}; 137*ca5c3702SStefan Mavrodiev 138*ca5c3702SStefan Mavrodiev®_aldo2 { 139*ca5c3702SStefan Mavrodiev regulator-always-on; 140*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <2350000>; 141*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <2650000>; 142*ca5c3702SStefan Mavrodiev regulator-name = "vdd-dll"; 143*ca5c3702SStefan Mavrodiev}; 144*ca5c3702SStefan Mavrodiev 145*ca5c3702SStefan Mavrodiev®_aldo3 { 146*ca5c3702SStefan Mavrodiev regulator-always-on; 147*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <3300000>; 148*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <3300000>; 149*ca5c3702SStefan Mavrodiev regulator-name = "vcc-avcc"; 150*ca5c3702SStefan Mavrodiev}; 151*ca5c3702SStefan Mavrodiev 152*ca5c3702SStefan Mavrodiev®_dc1sw { 153*ca5c3702SStefan Mavrodiev regulator-name = "vcc-lcd"; 154*ca5c3702SStefan Mavrodiev}; 155*ca5c3702SStefan Mavrodiev 156*ca5c3702SStefan Mavrodiev®_dc5ldo { 157*ca5c3702SStefan Mavrodiev regulator-always-on; 158*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <900000>; 159*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <1400000>; 160*ca5c3702SStefan Mavrodiev regulator-name = "vdd-cpus"; 161*ca5c3702SStefan Mavrodiev}; 162*ca5c3702SStefan Mavrodiev 163*ca5c3702SStefan Mavrodiev®_dcdc1 { 164*ca5c3702SStefan Mavrodiev regulator-always-on; 165*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <3300000>; 166*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <3300000>; 167*ca5c3702SStefan Mavrodiev regulator-name = "vcc-3v3"; 168*ca5c3702SStefan Mavrodiev}; 169*ca5c3702SStefan Mavrodiev 170*ca5c3702SStefan Mavrodiev®_dcdc2 { 171*ca5c3702SStefan Mavrodiev regulator-always-on; 172*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <900000>; 173*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <1400000>; 174*ca5c3702SStefan Mavrodiev regulator-name = "vdd-sys"; 175*ca5c3702SStefan Mavrodiev}; 176*ca5c3702SStefan Mavrodiev 177*ca5c3702SStefan Mavrodiev®_dcdc3 { 178*ca5c3702SStefan Mavrodiev regulator-always-on; 179*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <900000>; 180*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <1400000>; 181*ca5c3702SStefan Mavrodiev regulator-name = "vdd-cpu"; 182*ca5c3702SStefan Mavrodiev}; 183*ca5c3702SStefan Mavrodiev 184*ca5c3702SStefan Mavrodiev®_dcdc5 { 185*ca5c3702SStefan Mavrodiev regulator-always-on; 186*ca5c3702SStefan Mavrodiev regulator-min-microvolt = <1500000>; 187*ca5c3702SStefan Mavrodiev regulator-max-microvolt = <1500000>; 188*ca5c3702SStefan Mavrodiev regulator-name = "vcc-dram"; 189*ca5c3702SStefan Mavrodiev}; 190*ca5c3702SStefan Mavrodiev 191*ca5c3702SStefan Mavrodiev®_drivevbus { 192*ca5c3702SStefan Mavrodiev regulator-name = "usb0-vbus"; 193*ca5c3702SStefan Mavrodiev status = "okay"; 194*ca5c3702SStefan Mavrodiev}; 195*ca5c3702SStefan Mavrodiev 196*ca5c3702SStefan Mavrodiev®_rtc_ldo { 197*ca5c3702SStefan Mavrodiev regulator-name = "vcc-rtc"; 198*ca5c3702SStefan Mavrodiev}; 199*ca5c3702SStefan Mavrodiev 200*ca5c3702SStefan Mavrodiev&simplefb_lcd { 201*ca5c3702SStefan Mavrodiev vcc-lcd-supply = <®_dc1sw>; 202*ca5c3702SStefan Mavrodiev}; 203*ca5c3702SStefan Mavrodiev 204*ca5c3702SStefan Mavrodiev&uart0 { 205*ca5c3702SStefan Mavrodiev pinctrl-names = "default"; 206*ca5c3702SStefan Mavrodiev pinctrl-0 = <&uart0_pins_b>; 207*ca5c3702SStefan Mavrodiev status = "okay"; 208*ca5c3702SStefan Mavrodiev}; 209*ca5c3702SStefan Mavrodiev 210*ca5c3702SStefan Mavrodiev&usb_otg { 211*ca5c3702SStefan Mavrodiev dr_mode = "otg"; 212*ca5c3702SStefan Mavrodiev status = "okay"; 213*ca5c3702SStefan Mavrodiev}; 214*ca5c3702SStefan Mavrodiev 215*ca5c3702SStefan Mavrodiev&usb_power_supply { 216*ca5c3702SStefan Mavrodiev status = "okay"; 217*ca5c3702SStefan Mavrodiev}; 218*ca5c3702SStefan Mavrodiev 219*ca5c3702SStefan Mavrodiev&usbphy { 220*ca5c3702SStefan Mavrodiev pinctrl-names = "default"; 221*ca5c3702SStefan Mavrodiev pinctrl-0 = <&usb0_id_detect_pin>; 222*ca5c3702SStefan Mavrodiev usb0_id_det-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ 223*ca5c3702SStefan Mavrodiev usb0_vbus_power-supply = <&usb_power_supply>; 224*ca5c3702SStefan Mavrodiev usb0_vbus-supply = <®_drivevbus>; 225*ca5c3702SStefan Mavrodiev status = "okay"; 226*ca5c3702SStefan Mavrodiev}; 227