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