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 50aa56cb37SJelle de Jong/ { 51aa56cb37SJelle de Jong model = "Lamobo R1"; 52aa56cb37SJelle de Jong compatible = "lamobo,lamobo-r1", "allwinner,sun7i-a20"; 53aa56cb37SJelle de Jong 54aa56cb37SJelle de Jong aliases { 55aa56cb37SJelle de Jong serial0 = &uart0; 56aa56cb37SJelle de Jong serial1 = &uart3; 57aa56cb37SJelle de Jong serial2 = &uart7; 58aa56cb37SJelle de Jong }; 59aa56cb37SJelle de Jong 60aa56cb37SJelle de Jong chosen { 61aa56cb37SJelle de Jong stdout-path = "serial0:115200n8"; 62aa56cb37SJelle de Jong }; 63aa56cb37SJelle de Jong 64*b9d59d08SJagan Teki hdmi-connector { 65*b9d59d08SJagan Teki compatible = "hdmi-connector"; 66*b9d59d08SJagan Teki type = "a"; 67*b9d59d08SJagan Teki 68*b9d59d08SJagan Teki port { 69*b9d59d08SJagan Teki hdmi_con_in: endpoint { 70*b9d59d08SJagan Teki remote-endpoint = <&hdmi_out_con>; 71*b9d59d08SJagan Teki }; 72*b9d59d08SJagan Teki }; 73*b9d59d08SJagan Teki }; 74*b9d59d08SJagan Teki 75aa56cb37SJelle de Jong leds { 76aa56cb37SJelle de Jong compatible = "gpio-leds"; 77aa56cb37SJelle de Jong pinctrl-names = "default"; 78aa56cb37SJelle de Jong pinctrl-0 = <&led_pins_lamobo_r1>; 79aa56cb37SJelle de Jong 80aa56cb37SJelle de Jong green { 81aa56cb37SJelle de Jong label = "lamobo_r1:green:usr"; 82aa56cb37SJelle de Jong gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>; 83aa56cb37SJelle de Jong }; 84aa56cb37SJelle de Jong }; 85aa56cb37SJelle de Jong 86aa56cb37SJelle de Jong reg_gmac_3v3: gmac-3v3 { 87aa56cb37SJelle de Jong compatible = "regulator-fixed"; 88aa56cb37SJelle de Jong pinctrl-names = "default"; 89aa56cb37SJelle de Jong pinctrl-0 = <&gmac_power_pin_lamobo_r1>; 90aa56cb37SJelle de Jong regulator-name = "gmac-3v3"; 91aa56cb37SJelle de Jong regulator-min-microvolt = <3300000>; 92aa56cb37SJelle de Jong regulator-max-microvolt = <3300000>; 93aa56cb37SJelle de Jong startup-delay-us = <100000>; 94aa56cb37SJelle de Jong enable-active-high; 95aa56cb37SJelle de Jong gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */ 96aa56cb37SJelle de Jong }; 97aa56cb37SJelle de Jong}; 98aa56cb37SJelle de Jong 99aa56cb37SJelle de Jong&ahci { 100aa56cb37SJelle de Jong target-supply = <®_ahci_5v>; 101aa56cb37SJelle de Jong status = "okay"; 102aa56cb37SJelle de Jong}; 103aa56cb37SJelle de Jong 104860fbdd4SHans de Goede&codec { 105860fbdd4SHans de Goede status = "okay"; 106860fbdd4SHans de Goede}; 107860fbdd4SHans de Goede 108aa56cb37SJelle de Jong&cpu0 { 109aa56cb37SJelle de Jong cpu-supply = <®_dcdc2>; 110aa56cb37SJelle de Jong}; 111aa56cb37SJelle de Jong 112*b9d59d08SJagan Teki&de { 113*b9d59d08SJagan Teki status = "okay"; 114*b9d59d08SJagan Teki}; 115*b9d59d08SJagan Teki 116aa56cb37SJelle de Jong&ehci0 { 117aa56cb37SJelle de Jong status = "okay"; 118aa56cb37SJelle de Jong}; 119aa56cb37SJelle de Jong 120aa56cb37SJelle de Jong&ehci1 { 121aa56cb37SJelle de Jong status = "okay"; 122aa56cb37SJelle de Jong}; 123aa56cb37SJelle de Jong 124aa56cb37SJelle de Jong&gmac { 125aa56cb37SJelle de Jong pinctrl-names = "default"; 126aa56cb37SJelle de Jong pinctrl-0 = <&gmac_pins_rgmii_a>; 127aa56cb37SJelle de Jong phy-mode = "rgmii"; 128aa56cb37SJelle de Jong phy-supply = <®_gmac_3v3>; 129aa56cb37SJelle de Jong status = "okay"; 130aa56cb37SJelle de Jong 131860fbdd4SHans de Goede fixed-link { 132860fbdd4SHans de Goede speed = <1000>; 133860fbdd4SHans de Goede full-duplex; 134860fbdd4SHans de Goede }; 135860fbdd4SHans de Goede 136860fbdd4SHans de Goede mdio { 137860fbdd4SHans de Goede compatible = "snps,dwmac-mdio"; 138860fbdd4SHans de Goede #address-cells = <1>; 139860fbdd4SHans de Goede #size-cells = <0>; 140860fbdd4SHans de Goede 141860fbdd4SHans de Goede switch: ethernet-switch@1e { 142860fbdd4SHans de Goede compatible = "brcm,bcm53125"; 143860fbdd4SHans de Goede reg = <30>; 144860fbdd4SHans de Goede #address-cells = <1>; 145860fbdd4SHans de Goede #size-cells = <0>; 146860fbdd4SHans de Goede 147860fbdd4SHans de Goede ports { 148860fbdd4SHans de Goede #address-cells = <1>; 149860fbdd4SHans de Goede #size-cells = <0>; 150860fbdd4SHans de Goede 151860fbdd4SHans de Goede port0: port@0 { 152860fbdd4SHans de Goede reg = <0>; 153860fbdd4SHans de Goede label = "lan2"; 154860fbdd4SHans de Goede }; 155860fbdd4SHans de Goede 156860fbdd4SHans de Goede port1: port@1 { 157aa56cb37SJelle de Jong reg = <1>; 158860fbdd4SHans de Goede label = "lan3"; 159860fbdd4SHans de Goede }; 160860fbdd4SHans de Goede 161860fbdd4SHans de Goede port2: port@2 { 162860fbdd4SHans de Goede reg = <2>; 163860fbdd4SHans de Goede label = "lan4"; 164860fbdd4SHans de Goede }; 165860fbdd4SHans de Goede 166860fbdd4SHans de Goede port3: port@3 { 167860fbdd4SHans de Goede reg = <3>; 168860fbdd4SHans de Goede label = "wan"; 169860fbdd4SHans de Goede }; 170860fbdd4SHans de Goede 171860fbdd4SHans de Goede port4: port@4 { 172860fbdd4SHans de Goede reg = <4>; 173860fbdd4SHans de Goede label = "lan1"; 174860fbdd4SHans de Goede }; 175860fbdd4SHans de Goede 176860fbdd4SHans de Goede port8: port@8 { 177860fbdd4SHans de Goede reg = <8>; 178860fbdd4SHans de Goede label = "cpu"; 179860fbdd4SHans de Goede ethernet = <&gmac>; 180*b9d59d08SJagan Teki phy-mode = "rgmii-txid"; 181860fbdd4SHans de Goede fixed-link { 182860fbdd4SHans de Goede speed = <1000>; 183860fbdd4SHans de Goede full-duplex; 184860fbdd4SHans de Goede }; 185860fbdd4SHans de Goede }; 186860fbdd4SHans de Goede }; 187860fbdd4SHans de Goede }; 188aa56cb37SJelle de Jong }; 189aa56cb37SJelle de Jong}; 190aa56cb37SJelle de Jong 191*b9d59d08SJagan Teki&hdmi { 192*b9d59d08SJagan Teki status = "okay"; 193*b9d59d08SJagan Teki}; 194*b9d59d08SJagan Teki 195*b9d59d08SJagan Teki&hdmi_out { 196*b9d59d08SJagan Teki hdmi_out_con: endpoint { 197*b9d59d08SJagan Teki remote-endpoint = <&hdmi_con_in>; 198*b9d59d08SJagan Teki }; 199*b9d59d08SJagan Teki}; 200*b9d59d08SJagan Teki 201aa56cb37SJelle de Jong&i2c0 { 202aa56cb37SJelle de Jong pinctrl-names = "default"; 203aa56cb37SJelle de Jong pinctrl-0 = <&i2c0_pins_a>; 204aa56cb37SJelle de Jong status = "okay"; 205aa56cb37SJelle de Jong 206aa56cb37SJelle de Jong axp209: pmic@34 { 207aa56cb37SJelle de Jong reg = <0x34>; 208aa56cb37SJelle de Jong interrupt-parent = <&nmi_intc>; 209aa56cb37SJelle de Jong interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 210aa56cb37SJelle de Jong }; 211aa56cb37SJelle de Jong}; 212aa56cb37SJelle de Jong 213aa56cb37SJelle de Jong&i2c2 { 214aa56cb37SJelle de Jong pinctrl-names = "default"; 215aa56cb37SJelle de Jong pinctrl-0 = <&i2c2_pins_a>; 216aa56cb37SJelle de Jong status = "okay"; 217aa56cb37SJelle de Jong}; 218aa56cb37SJelle de Jong 219aa56cb37SJelle de Jong&ir0 { 220aa56cb37SJelle de Jong pinctrl-names = "default"; 221aa56cb37SJelle de Jong pinctrl-0 = <&ir0_rx_pins_a>; 222aa56cb37SJelle de Jong status = "okay"; 223aa56cb37SJelle de Jong}; 224aa56cb37SJelle de Jong 225aa56cb37SJelle de Jong&mmc0 { 226aa56cb37SJelle de Jong pinctrl-names = "default"; 227aa56cb37SJelle de Jong pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_lamobo_r1>; 228aa56cb37SJelle de Jong vmmc-supply = <®_vcc3v3>; 229aa56cb37SJelle de Jong bus-width = <4>; 230*b9d59d08SJagan Teki cd-gpios = <&pio 7 10 GPIO_ACTIVE_LOW>; /* PH10 */ 231aa56cb37SJelle de Jong status = "okay"; 232aa56cb37SJelle de Jong}; 233aa56cb37SJelle de Jong 234aa56cb37SJelle de Jong&ohci0 { 235aa56cb37SJelle de Jong status = "okay"; 236aa56cb37SJelle de Jong}; 237aa56cb37SJelle de Jong 238aa56cb37SJelle de Jong&otg_sram { 239aa56cb37SJelle de Jong status = "okay"; 240aa56cb37SJelle de Jong}; 241aa56cb37SJelle de Jong 242aa56cb37SJelle de Jong&pio { 243aa56cb37SJelle de Jong usb0_id_detect_pin: usb0_id_detect_pin@0 { 244*b9d59d08SJagan Teki pins = "PH4"; 245*b9d59d08SJagan Teki function = "gpio_in"; 246*b9d59d08SJagan Teki bias-pull-up; 247aa56cb37SJelle de Jong }; 248aa56cb37SJelle de Jong 249aa56cb37SJelle de Jong mmc0_cd_pin_lamobo_r1: mmc0_cd_pin@0 { 250*b9d59d08SJagan Teki pins = "PH10"; 251*b9d59d08SJagan Teki function = "gpio_in"; 252*b9d59d08SJagan Teki bias-pull-up; 253aa56cb37SJelle de Jong }; 254aa56cb37SJelle de Jong 255aa56cb37SJelle de Jong gmac_power_pin_lamobo_r1: gmac_power_pin@0 { 256*b9d59d08SJagan Teki pins = "PH23"; 257*b9d59d08SJagan Teki function = "gpio_out"; 258aa56cb37SJelle de Jong }; 259aa56cb37SJelle de Jong 260aa56cb37SJelle de Jong led_pins_lamobo_r1: led_pins@0 { 261*b9d59d08SJagan Teki pins = "PH24"; 262*b9d59d08SJagan Teki function = "gpio_out"; 263aa56cb37SJelle de Jong }; 264aa56cb37SJelle de Jong}; 265aa56cb37SJelle de Jong 266aa56cb37SJelle de Jong#include "axp209.dtsi" 267aa56cb37SJelle de Jong 268*b9d59d08SJagan Teki&ac_power_supply { 269*b9d59d08SJagan Teki status = "okay"; 270*b9d59d08SJagan Teki}; 271*b9d59d08SJagan Teki 272*b9d59d08SJagan Teki&battery_power_supply { 273*b9d59d08SJagan Teki status = "okay"; 274*b9d59d08SJagan Teki}; 275*b9d59d08SJagan Teki 276aa56cb37SJelle de Jong®_ahci_5v { 277860fbdd4SHans de Goede gpio = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ 278aa56cb37SJelle de Jong status = "okay"; 279aa56cb37SJelle de Jong}; 280aa56cb37SJelle de Jong 281aa56cb37SJelle de Jong®_dcdc2 { 282aa56cb37SJelle de Jong regulator-always-on; 283aa56cb37SJelle de Jong regulator-min-microvolt = <1000000>; 284aa56cb37SJelle de Jong regulator-max-microvolt = <1400000>; 285aa56cb37SJelle de Jong regulator-name = "vdd-cpu"; 286aa56cb37SJelle de Jong}; 287aa56cb37SJelle de Jong 288aa56cb37SJelle de Jong®_dcdc3 { 289aa56cb37SJelle de Jong regulator-always-on; 290aa56cb37SJelle de Jong regulator-min-microvolt = <1000000>; 291aa56cb37SJelle de Jong regulator-max-microvolt = <1400000>; 292aa56cb37SJelle de Jong regulator-name = "vdd-int-dll"; 293aa56cb37SJelle de Jong}; 294aa56cb37SJelle de Jong 295aa56cb37SJelle de Jong®_ldo1 { 296aa56cb37SJelle de Jong regulator-name = "vdd-rtc"; 297aa56cb37SJelle de Jong}; 298aa56cb37SJelle de Jong 299aa56cb37SJelle de Jong®_ldo2 { 300aa56cb37SJelle de Jong regulator-always-on; 301aa56cb37SJelle de Jong regulator-min-microvolt = <3000000>; 302aa56cb37SJelle de Jong regulator-max-microvolt = <3000000>; 303aa56cb37SJelle de Jong regulator-name = "avcc"; 304aa56cb37SJelle de Jong}; 305aa56cb37SJelle de Jong 306aa56cb37SJelle de Jong®_usb0_vbus { 307aa56cb37SJelle de Jong status = "okay"; 308aa56cb37SJelle de Jong}; 309aa56cb37SJelle de Jong 310aa56cb37SJelle de Jong®_usb2_vbus { 311860fbdd4SHans de Goede gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */ 312aa56cb37SJelle de Jong status = "okay"; 313aa56cb37SJelle de Jong}; 314aa56cb37SJelle de Jong 315aa56cb37SJelle de Jong&spi0 { 316aa56cb37SJelle de Jong pinctrl-names = "default"; 317aa56cb37SJelle de Jong pinctrl-0 = <&spi0_pins_a>, 318aa56cb37SJelle de Jong <&spi0_cs0_pins_a>, 319aa56cb37SJelle de Jong <&spi0_cs1_pins_a>; 320aa56cb37SJelle de Jong status = "okay"; 321aa56cb37SJelle de Jong}; 322aa56cb37SJelle de Jong 323aa56cb37SJelle de Jong&uart0 { 324aa56cb37SJelle de Jong pinctrl-names = "default"; 325aa56cb37SJelle de Jong pinctrl-0 = <&uart0_pins_a>; 326aa56cb37SJelle de Jong status = "okay"; 327aa56cb37SJelle de Jong}; 328aa56cb37SJelle de Jong 329aa56cb37SJelle de Jong&uart3 { 330aa56cb37SJelle de Jong pinctrl-names = "default"; 331aa56cb37SJelle de Jong pinctrl-0 = <&uart3_pins_b>; 332aa56cb37SJelle de Jong status = "okay"; 333aa56cb37SJelle de Jong}; 334aa56cb37SJelle de Jong 335aa56cb37SJelle de Jong&uart7 { 336aa56cb37SJelle de Jong pinctrl-names = "default"; 337aa56cb37SJelle de Jong pinctrl-0 = <&uart7_pins_a>; 338aa56cb37SJelle de Jong status = "okay"; 339aa56cb37SJelle de Jong}; 340aa56cb37SJelle de Jong 341aa56cb37SJelle de Jong&usb_otg { 342aa56cb37SJelle de Jong dr_mode = "otg"; 343aa56cb37SJelle de Jong status = "okay"; 344aa56cb37SJelle de Jong}; 345aa56cb37SJelle de Jong 346aa56cb37SJelle de Jong&usb_power_supply { 347aa56cb37SJelle de Jong status = "okay"; 348aa56cb37SJelle de Jong}; 349aa56cb37SJelle de Jong 350aa56cb37SJelle de Jong&usbphy { 351aa56cb37SJelle de Jong pinctrl-names = "default"; 352aa56cb37SJelle de Jong pinctrl-0 = <&usb0_id_detect_pin>; 353aa56cb37SJelle de Jong usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 354aa56cb37SJelle de Jong usb0_vbus_power-supply = <&usb_power_supply>; 355aa56cb37SJelle de Jong usb0_vbus-supply = <®_usb0_vbus>; 356aa56cb37SJelle de Jong usb2_vbus-supply = <®_usb2_vbus>; 357aa56cb37SJelle de Jong status = "okay"; 358aa56cb37SJelle de Jong}; 359