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

ARM: dts: sun8i: h3: Add initial NanoPi R1 support

The NanoPi R1 is a complete open source board developed
by FriendlyElec for makers, hobbyists, fans and etc.

NanoPi R1 key features
- Allwinner H3, Quad-core Cortex-A7@1.2GHz
- 512MB/1GB DDR3 RAM
- 8GB eMMC
- microSD slot
- 10/100/1000M Ethernet x 1
- 10/100 Ethernet x 1
- Wifi 802.11b/g/n
- Bluetooth 4.0
- Serial Debug Port
- 5V 2A DC power-supply

Signed-off-by: Yu-Tung Chang <mtwget@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20201102100157.85801-2-mtwget@gmail.com

authored by

Yu-Tung Chang and committed by
Maxime Ripard
9340c293 030eea2a

+175
+5
Documentation/devicetree/bindings/arm/sunxi.yaml
··· 264 264 - const: friendlyarm,nanopi-neo-plus2 265 265 - const: allwinner,sun50i-h5 266 266 267 + - description: FriendlyARM NanoPi R1 268 + items: 269 + - const: friendlyarm,nanopi-r1 270 + - const: allwinner,sun8i-h3 271 + 267 272 - description: FriendlyARM ZeroPi 268 273 items: 269 274 - const: friendlyarm,zeropi
+1
arch/arm/boot/dts/Makefile
··· 1192 1192 sun8i-h3-nanopi-m1-plus.dtb \ 1193 1193 sun8i-h3-nanopi-neo.dtb \ 1194 1194 sun8i-h3-nanopi-neo-air.dtb \ 1195 + sun8i-h3-nanopi-r1.dtb \ 1195 1196 sun8i-h3-orangepi-2.dtb \ 1196 1197 sun8i-h3-orangepi-lite.dtb \ 1197 1198 sun8i-h3-orangepi-one.dtb \
+169
arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts
··· 1 + // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 + /* 3 + * Copyright (C) 2019 Igor Pecovnik <igor@armbian.com> 4 + * Copyright (C) 2020 Jayantajit Gogoi <jayanta.gogoi525@gmail.com> 5 + * Copyright (C) 2020 Yu-Tung Chang <mtwget@gmail.com> 6 + */ 7 + 8 + #include "sun8i-h3-nanopi.dtsi" 9 + #include <dt-bindings/leds/common.h> 10 + 11 + / { 12 + model = "FriendlyARM NanoPi R1"; 13 + compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3"; 14 + 15 + aliases { 16 + serial1 = &uart1; 17 + ethernet0 = &emac; 18 + ethernet1 = &wifi; 19 + }; 20 + 21 + reg_gmac_3v3: gmac-3v3 { 22 + compatible = "regulator-fixed"; 23 + regulator-name = "gmac-3v3"; 24 + regulator-min-microvolt = <3300000>; 25 + regulator-max-microvolt = <3300000>; 26 + startup-delay-us = <100000>; 27 + enable-active-high; 28 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */ 29 + }; 30 + 31 + reg_vdd_cpux: gpio-regulator { 32 + compatible = "regulator-gpio"; 33 + regulator-name = "vdd-cpux"; 34 + regulator-type = "voltage"; 35 + regulator-boot-on; 36 + regulator-always-on; 37 + regulator-min-microvolt = <1100000>; 38 + regulator-max-microvolt = <1300000>; 39 + regulator-ramp-delay = <50>; 40 + gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ 41 + gpios-states = <0x1>; 42 + states = <1100000 0x0 43 + 1300000 0x1>; 44 + }; 45 + 46 + wifi_pwrseq: wifi_pwrseq { 47 + compatible = "mmc-pwrseq-simple"; 48 + reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ 49 + clocks = <&rtc 1>; 50 + clock-names = "ext_clock"; 51 + }; 52 + 53 + leds { 54 + led-2 { 55 + function = LED_FUNCTION_WAN; 56 + color = <LED_COLOR_ID_GREEN>; 57 + gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */ 58 + }; 59 + 60 + led-3 { 61 + function = LED_FUNCTION_LAN; 62 + color = <LED_COLOR_ID_GREEN>; 63 + gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>; /* PA9 */ 64 + }; 65 + }; 66 + }; 67 + 68 + &cpu0 { 69 + cpu-supply = <&reg_vdd_cpux>; 70 + }; 71 + 72 + &ehci1 { 73 + status = "okay"; 74 + }; 75 + 76 + &ehci2 { 77 + status = "okay"; 78 + }; 79 + 80 + &emac { 81 + pinctrl-names = "default"; 82 + pinctrl-0 = <&emac_rgmii_pins>; 83 + phy-supply = <&reg_gmac_3v3>; 84 + phy-handle = <&ext_rgmii_phy>; 85 + phy-mode = "rgmii-id"; 86 + status = "okay"; 87 + }; 88 + 89 + &external_mdio { 90 + ext_rgmii_phy: ethernet-phy@7 { 91 + compatible = "ethernet-phy-ieee802.3-c22"; 92 + reg = <7>; 93 + }; 94 + }; 95 + 96 + &mmc1 { 97 + vmmc-supply = <&reg_vcc3v3>; 98 + vqmmc-supply = <&reg_vcc3v3>; 99 + mmc-pwrseq = <&wifi_pwrseq>; 100 + bus-width = <4>; 101 + non-removable; 102 + status = "okay"; 103 + 104 + wifi: wifi@1 { 105 + reg = <1>; 106 + compatible = "brcm,bcm4329-fmac"; 107 + interrupt-parent = <&pio>; 108 + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ 109 + interrupt-names = "host-wake"; 110 + }; 111 + }; 112 + 113 + &mmc2 { 114 + pinctrl-names = "default"; 115 + pinctrl-0 = <&mmc2_8bit_pins>; 116 + vmmc-supply = <&reg_vcc3v3>; 117 + vqmmc-supply = <&reg_vcc3v3>; 118 + bus-width = <8>; 119 + non-removable; 120 + status = "okay"; 121 + }; 122 + 123 + &ohci1 { 124 + status = "okay"; 125 + }; 126 + 127 + &ohci2 { 128 + status = "okay"; 129 + }; 130 + 131 + &reg_usb0_vbus { 132 + gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 133 + status = "okay"; 134 + }; 135 + 136 + &uart1 { 137 + pinctrl-names = "default"; 138 + pinctrl-0 = <&uart1_pins>; 139 + status = "okay"; 140 + }; 141 + 142 + &uart3 { 143 + pinctrl-names = "default"; 144 + pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>; 145 + uart-has-rtscts; 146 + status = "okay"; 147 + 148 + bluetooth { 149 + compatible = "brcm,bcm43438-bt"; 150 + clocks = <&rtc 1>; 151 + clock-names = "lpo"; 152 + vbat-supply = <&reg_vcc3v3>; 153 + vddio-supply = <&reg_vcc3v3>; 154 + device-wakeup-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */ 155 + host-wakeup-gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */ 156 + shutdown-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */ 157 + }; 158 + }; 159 + 160 + &usb_otg { 161 + status = "okay"; 162 + dr_mode = "otg"; 163 + }; 164 + 165 + &usbphy { 166 + usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ 167 + usb0_vbus-supply = <&reg_usb0_vbus>; 168 + status = "okay"; 169 + };