Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: sun7i: Add dts file for the lamobo-r1 board

The lamobo-r1 board, sometimes called the BPI-R1 but not labelled as such
on the PCB, is meant as a A20 based router board. As such the board comes
with a built-in switch chip giving it 5 gigabit ethernet ports, and it
has a large empty area on the pcb with mounting holes which will fit a
2.5 inch harddisk. To complete its networking features it has a
Realtek RTL8192CU for WiFi 802.11 b/g/n.

Signed-off-by: Jelle de Jong <jelledejong@powercraft.nl>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>

authored by

Jelle de Jong and committed by
Maxime Ripard
f9ca3044 cb3cae9a

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