1aa56cb37SJelle de Jong/* 2aa56cb37SJelle de Jong * Copyright 2015 Jelle de Jong <jelledejong@powercraft.nl> 3aa56cb37SJelle de Jong * 4aa56cb37SJelle de Jong * This file is dual-licensed: you can use it either under the terms 5aa56cb37SJelle de Jong * of the GPL or the X11 license, at your option. Note that this dual 6aa56cb37SJelle de Jong * licensing only applies to this file, and not this project as a 7aa56cb37SJelle de Jong * whole. 8aa56cb37SJelle de Jong * 9aa56cb37SJelle de Jong * a) This file is free software; you can redistribute it and/or 10aa56cb37SJelle de Jong * modify it under the terms of the GNU General Public License as 11aa56cb37SJelle de Jong * published by the Free Software Foundation; either version 2 of the 12aa56cb37SJelle de Jong * License, or (at your option) any later version. 13aa56cb37SJelle de Jong * 14aa56cb37SJelle de Jong * This file is distributed in the hope that it will be useful, 15aa56cb37SJelle de Jong * but WITHOUT ANY WARRANTY; without even the implied warranty of 16aa56cb37SJelle de Jong * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17aa56cb37SJelle de Jong * GNU General Public License for more details. 18aa56cb37SJelle de Jong * 19aa56cb37SJelle de Jong * Or, alternatively, 20aa56cb37SJelle de Jong * 21aa56cb37SJelle de Jong * b) Permission is hereby granted, free of charge, to any person 22aa56cb37SJelle de Jong * obtaining a copy of this software and associated documentation 23aa56cb37SJelle de Jong * files (the "Software"), to deal in the Software without 24aa56cb37SJelle de Jong * restriction, including without limitation the rights to use, 25aa56cb37SJelle de Jong * copy, modify, merge, publish, distribute, sublicense, and/or 26aa56cb37SJelle de Jong * sell copies of the Software, and to permit persons to whom the 27aa56cb37SJelle de Jong * Software is furnished to do so, subject to the following 28aa56cb37SJelle de Jong * conditions: 29aa56cb37SJelle de Jong * 30aa56cb37SJelle de Jong * The above copyright notice and this permission notice shall be 31aa56cb37SJelle de Jong * included in all copies or substantial portions of the Software. 32aa56cb37SJelle de Jong * 33aa56cb37SJelle de Jong * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34aa56cb37SJelle de Jong * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35aa56cb37SJelle de Jong * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36aa56cb37SJelle de Jong * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37aa56cb37SJelle de Jong * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38aa56cb37SJelle de Jong * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39aa56cb37SJelle de Jong * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40aa56cb37SJelle de Jong * OTHER DEALINGS IN THE SOFTWARE. 41aa56cb37SJelle de Jong */ 42aa56cb37SJelle de Jong 43aa56cb37SJelle de Jong/dts-v1/; 44aa56cb37SJelle de Jong#include "sun7i-a20.dtsi" 45aa56cb37SJelle de Jong#include "sunxi-common-regulators.dtsi" 46aa56cb37SJelle de Jong 47aa56cb37SJelle de Jong#include <dt-bindings/gpio/gpio.h> 48aa56cb37SJelle de Jong#include <dt-bindings/interrupt-controller/irq.h> 49aa56cb37SJelle de Jong#include <dt-bindings/pinctrl/sun4i-a10.h> 50aa56cb37SJelle de Jong 51aa56cb37SJelle de Jong/ { 52aa56cb37SJelle de Jong model = "Lamobo R1"; 53aa56cb37SJelle de Jong compatible = "lamobo,lamobo-r1", "allwinner,sun7i-a20"; 54aa56cb37SJelle de Jong 55aa56cb37SJelle de Jong aliases { 56aa56cb37SJelle de Jong serial0 = &uart0; 57aa56cb37SJelle de Jong serial1 = &uart3; 58aa56cb37SJelle de Jong serial2 = &uart7; 59aa56cb37SJelle de Jong }; 60aa56cb37SJelle de Jong 61aa56cb37SJelle de Jong chosen { 62aa56cb37SJelle de Jong stdout-path = "serial0:115200n8"; 63aa56cb37SJelle de Jong }; 64aa56cb37SJelle de Jong 65aa56cb37SJelle de Jong leds { 66aa56cb37SJelle de Jong compatible = "gpio-leds"; 67aa56cb37SJelle de Jong pinctrl-names = "default"; 68aa56cb37SJelle de Jong pinctrl-0 = <&led_pins_lamobo_r1>; 69aa56cb37SJelle de Jong 70aa56cb37SJelle de Jong green { 71aa56cb37SJelle de Jong label = "lamobo_r1:green:usr"; 72aa56cb37SJelle de Jong gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; 73aa56cb37SJelle de Jong }; 74aa56cb37SJelle de Jong }; 75aa56cb37SJelle de Jong 76aa56cb37SJelle de Jong reg_gmac_3v3: gmac-3v3 { 77aa56cb37SJelle de Jong compatible = "regulator-fixed"; 78aa56cb37SJelle de Jong pinctrl-names = "default"; 79aa56cb37SJelle de Jong pinctrl-0 = <&gmac_power_pin_lamobo_r1>; 80aa56cb37SJelle de Jong regulator-name = "gmac-3v3"; 81aa56cb37SJelle de Jong regulator-min-microvolt = <3300000>; 82aa56cb37SJelle de Jong regulator-max-microvolt = <3300000>; 83aa56cb37SJelle de Jong startup-delay-us = <100000>; 84aa56cb37SJelle de Jong enable-active-high; 85aa56cb37SJelle de Jong gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */ 86aa56cb37SJelle de Jong }; 87aa56cb37SJelle de Jong}; 88aa56cb37SJelle de Jong 89aa56cb37SJelle de Jong&ahci_pwr_pin_a { 90aa56cb37SJelle de Jong allwinner,pins = "PB3"; 91aa56cb37SJelle de Jong}; 92aa56cb37SJelle de Jong 93aa56cb37SJelle de Jong&ahci { 94aa56cb37SJelle de Jong target-supply = <®_ahci_5v>; 95aa56cb37SJelle de Jong status = "okay"; 96aa56cb37SJelle de Jong}; 97aa56cb37SJelle de Jong 98*860fbdd4SHans de Goede&codec { 99*860fbdd4SHans de Goede status = "okay"; 100*860fbdd4SHans de Goede}; 101*860fbdd4SHans de Goede 102aa56cb37SJelle de Jong&cpu0 { 103aa56cb37SJelle de Jong cpu-supply = <®_dcdc2>; 104aa56cb37SJelle de Jong}; 105aa56cb37SJelle de Jong 106aa56cb37SJelle de Jong&ehci0 { 107aa56cb37SJelle de Jong status = "okay"; 108aa56cb37SJelle de Jong}; 109aa56cb37SJelle de Jong 110aa56cb37SJelle de Jong&ehci1 { 111aa56cb37SJelle de Jong status = "okay"; 112aa56cb37SJelle de Jong}; 113aa56cb37SJelle de Jong 114aa56cb37SJelle de Jong&gmac { 115aa56cb37SJelle de Jong pinctrl-names = "default"; 116aa56cb37SJelle de Jong pinctrl-0 = <&gmac_pins_rgmii_a>; 117aa56cb37SJelle de Jong phy-mode = "rgmii"; 118aa56cb37SJelle de Jong phy-supply = <®_gmac_3v3>; 119aa56cb37SJelle de Jong status = "okay"; 120aa56cb37SJelle de Jong 121*860fbdd4SHans de Goede fixed-link { 122*860fbdd4SHans de Goede speed = <1000>; 123*860fbdd4SHans de Goede full-duplex; 124*860fbdd4SHans de Goede }; 125*860fbdd4SHans de Goede 126*860fbdd4SHans de Goede mdio { 127*860fbdd4SHans de Goede compatible = "snps,dwmac-mdio"; 128*860fbdd4SHans de Goede #address-cells = <1>; 129*860fbdd4SHans de Goede #size-cells = <0>; 130*860fbdd4SHans de Goede 131*860fbdd4SHans de Goede switch: ethernet-switch@1e { 132*860fbdd4SHans de Goede compatible = "brcm,bcm53125"; 133*860fbdd4SHans de Goede reg = <30>; 134*860fbdd4SHans de Goede #address-cells = <1>; 135*860fbdd4SHans de Goede #size-cells = <0>; 136*860fbdd4SHans de Goede 137*860fbdd4SHans de Goede ports { 138*860fbdd4SHans de Goede #address-cells = <1>; 139*860fbdd4SHans de Goede #size-cells = <0>; 140*860fbdd4SHans de Goede 141*860fbdd4SHans de Goede port0: port@0 { 142*860fbdd4SHans de Goede reg = <0>; 143*860fbdd4SHans de Goede label = "lan2"; 144*860fbdd4SHans de Goede }; 145*860fbdd4SHans de Goede 146*860fbdd4SHans de Goede port1: port@1 { 147aa56cb37SJelle de Jong reg = <1>; 148*860fbdd4SHans de Goede label = "lan3"; 149*860fbdd4SHans de Goede }; 150*860fbdd4SHans de Goede 151*860fbdd4SHans de Goede port2: port@2 { 152*860fbdd4SHans de Goede reg = <2>; 153*860fbdd4SHans de Goede label = "lan4"; 154*860fbdd4SHans de Goede }; 155*860fbdd4SHans de Goede 156*860fbdd4SHans de Goede port3: port@3 { 157*860fbdd4SHans de Goede reg = <3>; 158*860fbdd4SHans de Goede label = "wan"; 159*860fbdd4SHans de Goede }; 160*860fbdd4SHans de Goede 161*860fbdd4SHans de Goede port4: port@4 { 162*860fbdd4SHans de Goede reg = <4>; 163*860fbdd4SHans de Goede label = "lan1"; 164*860fbdd4SHans de Goede }; 165*860fbdd4SHans de Goede 166*860fbdd4SHans de Goede port8: port@8 { 167*860fbdd4SHans de Goede reg = <8>; 168*860fbdd4SHans de Goede label = "cpu"; 169*860fbdd4SHans de Goede ethernet = <&gmac>; 170*860fbdd4SHans de Goede phy-mode = "rgmii"; 171*860fbdd4SHans de Goede fixed-link { 172*860fbdd4SHans de Goede speed = <1000>; 173*860fbdd4SHans de Goede full-duplex; 174*860fbdd4SHans de Goede }; 175*860fbdd4SHans de Goede }; 176*860fbdd4SHans de Goede }; 177*860fbdd4SHans de Goede }; 178aa56cb37SJelle de Jong }; 179aa56cb37SJelle de Jong}; 180aa56cb37SJelle de Jong 181aa56cb37SJelle de Jong&i2c0 { 182aa56cb37SJelle de Jong pinctrl-names = "default"; 183aa56cb37SJelle de Jong pinctrl-0 = <&i2c0_pins_a>; 184aa56cb37SJelle de Jong status = "okay"; 185aa56cb37SJelle de Jong 186aa56cb37SJelle de Jong axp209: pmic@34 { 187aa56cb37SJelle de Jong reg = <0x34>; 188aa56cb37SJelle de Jong interrupt-parent = <&nmi_intc>; 189aa56cb37SJelle de Jong interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 190aa56cb37SJelle de Jong }; 191aa56cb37SJelle de Jong}; 192aa56cb37SJelle de Jong 193aa56cb37SJelle de Jong&i2c2 { 194aa56cb37SJelle de Jong pinctrl-names = "default"; 195aa56cb37SJelle de Jong pinctrl-0 = <&i2c2_pins_a>; 196aa56cb37SJelle de Jong status = "okay"; 197aa56cb37SJelle de Jong}; 198aa56cb37SJelle de Jong 199aa56cb37SJelle de Jong&ir0 { 200aa56cb37SJelle de Jong pinctrl-names = "default"; 201aa56cb37SJelle de Jong pinctrl-0 = <&ir0_rx_pins_a>; 202aa56cb37SJelle de Jong status = "okay"; 203aa56cb37SJelle de Jong}; 204aa56cb37SJelle de Jong 205aa56cb37SJelle de Jong&mmc0 { 206aa56cb37SJelle de Jong pinctrl-names = "default"; 207aa56cb37SJelle de Jong pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_lamobo_r1>; 208aa56cb37SJelle de Jong vmmc-supply = <®_vcc3v3>; 209aa56cb37SJelle de Jong bus-width = <4>; 210aa56cb37SJelle de Jong cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ 211aa56cb37SJelle de Jong cd-inverted; 212aa56cb37SJelle de Jong status = "okay"; 213aa56cb37SJelle de Jong}; 214aa56cb37SJelle de Jong 215aa56cb37SJelle de Jong&ohci0 { 216aa56cb37SJelle de Jong status = "okay"; 217aa56cb37SJelle de Jong}; 218aa56cb37SJelle de Jong 219aa56cb37SJelle de Jong&otg_sram { 220aa56cb37SJelle de Jong status = "okay"; 221aa56cb37SJelle de Jong}; 222aa56cb37SJelle de Jong 223aa56cb37SJelle de Jong&pio { 224aa56cb37SJelle de Jong usb0_id_detect_pin: usb0_id_detect_pin@0 { 225aa56cb37SJelle de Jong allwinner,pins = "PH4"; 226aa56cb37SJelle de Jong allwinner,function = "gpio_in"; 227aa56cb37SJelle de Jong allwinner,drive = <SUN4I_PINCTRL_10_MA>; 228aa56cb37SJelle de Jong allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 229aa56cb37SJelle de Jong }; 230aa56cb37SJelle de Jong 231aa56cb37SJelle de Jong mmc0_cd_pin_lamobo_r1: mmc0_cd_pin@0 { 232aa56cb37SJelle de Jong allwinner,pins = "PH10"; 233aa56cb37SJelle de Jong allwinner,function = "gpio_in"; 234aa56cb37SJelle de Jong allwinner,drive = <SUN4I_PINCTRL_10_MA>; 235aa56cb37SJelle de Jong allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 236aa56cb37SJelle de Jong }; 237aa56cb37SJelle de Jong 238aa56cb37SJelle de Jong gmac_power_pin_lamobo_r1: gmac_power_pin@0 { 239aa56cb37SJelle de Jong allwinner,pins = "PH23"; 240aa56cb37SJelle de Jong allwinner,function = "gpio_out"; 241aa56cb37SJelle de Jong allwinner,drive = <SUN4I_PINCTRL_10_MA>; 242aa56cb37SJelle de Jong allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 243aa56cb37SJelle de Jong }; 244aa56cb37SJelle de Jong 245aa56cb37SJelle de Jong led_pins_lamobo_r1: led_pins@0 { 246aa56cb37SJelle de Jong allwinner,pins = "PH24"; 247aa56cb37SJelle de Jong allwinner,function = "gpio_out"; 248aa56cb37SJelle de Jong allwinner,drive = <SUN4I_PINCTRL_10_MA>; 249aa56cb37SJelle de Jong allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 250aa56cb37SJelle de Jong }; 251aa56cb37SJelle de Jong}; 252aa56cb37SJelle de Jong 253aa56cb37SJelle de Jong#include "axp209.dtsi" 254aa56cb37SJelle de Jong 255aa56cb37SJelle de Jong®_ahci_5v { 256*860fbdd4SHans de Goede gpio = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ 257aa56cb37SJelle de Jong status = "okay"; 258aa56cb37SJelle de Jong}; 259aa56cb37SJelle de Jong 260aa56cb37SJelle de Jong®_dcdc2 { 261aa56cb37SJelle de Jong regulator-always-on; 262aa56cb37SJelle de Jong regulator-min-microvolt = <1000000>; 263aa56cb37SJelle de Jong regulator-max-microvolt = <1400000>; 264aa56cb37SJelle de Jong regulator-name = "vdd-cpu"; 265aa56cb37SJelle de Jong}; 266aa56cb37SJelle de Jong 267aa56cb37SJelle de Jong®_dcdc3 { 268aa56cb37SJelle de Jong regulator-always-on; 269aa56cb37SJelle de Jong regulator-min-microvolt = <1000000>; 270aa56cb37SJelle de Jong regulator-max-microvolt = <1400000>; 271aa56cb37SJelle de Jong regulator-name = "vdd-int-dll"; 272aa56cb37SJelle de Jong}; 273aa56cb37SJelle de Jong 274aa56cb37SJelle de Jong®_ldo1 { 275aa56cb37SJelle de Jong regulator-name = "vdd-rtc"; 276aa56cb37SJelle de Jong}; 277aa56cb37SJelle de Jong 278aa56cb37SJelle de Jong®_ldo2 { 279aa56cb37SJelle de Jong regulator-always-on; 280aa56cb37SJelle de Jong regulator-min-microvolt = <3000000>; 281aa56cb37SJelle de Jong regulator-max-microvolt = <3000000>; 282aa56cb37SJelle de Jong regulator-name = "avcc"; 283aa56cb37SJelle de Jong}; 284aa56cb37SJelle de Jong 285aa56cb37SJelle de Jong®_usb0_vbus { 286aa56cb37SJelle de Jong status = "okay"; 287aa56cb37SJelle de Jong}; 288aa56cb37SJelle de Jong 289aa56cb37SJelle de Jong®_usb2_vbus { 290*860fbdd4SHans de Goede gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */ 291aa56cb37SJelle de Jong status = "okay"; 292aa56cb37SJelle de Jong}; 293aa56cb37SJelle de Jong 294aa56cb37SJelle de Jong&spi0 { 295aa56cb37SJelle de Jong pinctrl-names = "default"; 296aa56cb37SJelle de Jong pinctrl-0 = <&spi0_pins_a>, 297aa56cb37SJelle de Jong <&spi0_cs0_pins_a>, 298aa56cb37SJelle de Jong <&spi0_cs1_pins_a>; 299aa56cb37SJelle de Jong status = "okay"; 300aa56cb37SJelle de Jong}; 301aa56cb37SJelle de Jong 302aa56cb37SJelle de Jong&uart0 { 303aa56cb37SJelle de Jong pinctrl-names = "default"; 304aa56cb37SJelle de Jong pinctrl-0 = <&uart0_pins_a>; 305aa56cb37SJelle de Jong status = "okay"; 306aa56cb37SJelle de Jong}; 307aa56cb37SJelle de Jong 308aa56cb37SJelle de Jong&uart3 { 309aa56cb37SJelle de Jong pinctrl-names = "default"; 310aa56cb37SJelle de Jong pinctrl-0 = <&uart3_pins_b>; 311aa56cb37SJelle de Jong status = "okay"; 312aa56cb37SJelle de Jong}; 313aa56cb37SJelle de Jong 314aa56cb37SJelle de Jong&uart7 { 315aa56cb37SJelle de Jong pinctrl-names = "default"; 316aa56cb37SJelle de Jong pinctrl-0 = <&uart7_pins_a>; 317aa56cb37SJelle de Jong status = "okay"; 318aa56cb37SJelle de Jong}; 319aa56cb37SJelle de Jong 320aa56cb37SJelle de Jong&usb_otg { 321aa56cb37SJelle de Jong dr_mode = "otg"; 322aa56cb37SJelle de Jong status = "okay"; 323aa56cb37SJelle de Jong}; 324aa56cb37SJelle de Jong 325aa56cb37SJelle de Jong&usb_power_supply { 326aa56cb37SJelle de Jong status = "okay"; 327aa56cb37SJelle de Jong}; 328aa56cb37SJelle de Jong 329*860fbdd4SHans de Goede&usb2_vbus_pin_a { 330*860fbdd4SHans de Goede allwinner,pins = "PH12"; 331*860fbdd4SHans de Goede}; 332*860fbdd4SHans de Goede 333aa56cb37SJelle de Jong&usbphy { 334aa56cb37SJelle de Jong pinctrl-names = "default"; 335aa56cb37SJelle de Jong pinctrl-0 = <&usb0_id_detect_pin>; 336aa56cb37SJelle de Jong usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 337aa56cb37SJelle de Jong usb0_vbus_power-supply = <&usb_power_supply>; 338aa56cb37SJelle de Jong usb0_vbus-supply = <®_usb0_vbus>; 339aa56cb37SJelle de Jong usb2_vbus-supply = <®_usb2_vbus>; 340aa56cb37SJelle de Jong status = "okay"; 341aa56cb37SJelle de Jong}; 342