<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">From 5aee0b1272cd5b42933ef629d66b677669e2e8d2 Mon Sep 17 00:00:00 2001
From: Jayantajit Gogoi &lt;jayanta.gogoi525@gmail.com&gt;
Date: Mon, 12 Oct 2020 05:24:51 +0000
Subject: [PATCH] sunxi: add support for friendlyarm nanopi r1

Signed-off-by: Jayantajit Gogoi &lt;jayanta.gogoi525@gmail.com&gt;
---
 .../devicetree/bindings/arm/sunxi.yaml        |   5 +
 arch/arm/boot/dts/Makefile                    |   1 +
 arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts      | 146 ++++++++++++++++++
 3 files changed, 152 insertions(+)
 create mode 100644 arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts

--- a/Documentation/devicetree/bindings/arm/sunxi.yaml
+++ b/Documentation/devicetree/bindings/arm/sunxi.yaml
@@ -241,6 +241,11 @@ properties:
           - const: friendlyarm,nanopi-neo-plus2
           - const: allwinner,sun50i-h5
 
+      - description: FriendlyARM NanoPi R1
+        items:
+          - const: friendlyarm,nanopi-r1
+          - const: allwinner,sun8i-h3
+
       - description: Gemei G9 Tablet
         items:
           - const: gemei,g9
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1109,6 +1109,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
 	sun8i-h3-nanopi-m1-plus.dtb \
 	sun8i-h3-nanopi-neo.dtb \
 	sun8i-h3-nanopi-neo-air.dtb \
+	sun8i-h3-nanopi-r1.dtb \
 	sun8i-h3-orangepi-2.dtb \
 	sun8i-h3-orangepi-lite.dtb \
 	sun8i-h3-orangepi-one.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts
@@ -0,0 +1,146 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2019 Igor Pecovnik &lt;igor@armbian.com&gt;
+ * Copyright (C) 2020 Jayantajit Gogoi &lt;jayanta.gogoi525@gmail.com&gt;
+ */
+
+/* NanoPi R1 is based on the NanoPi-H3 design from FriendlyARM */
+#include "sun8i-h3-nanopi.dtsi"
+
+/ {
+	model = "FriendlyARM NanoPi R1";
+	compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3";
+
+	reg_gmac_3v3: gmac-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "gmac-3v3";
+		regulator-min-microvolt = &lt;3300000&gt;;
+		regulator-max-microvolt = &lt;3300000&gt;;
+		startup-delay-us = &lt;100000&gt;;
+		enable-active-high;
+		gpio = &lt;&amp;pio 3 6 GPIO_ACTIVE_HIGH&gt;;
+	};
+
+	vdd_cpux: gpio-regulator {
+		compatible = "regulator-gpio";
+		pinctrl-names = "default";
+		regulator-name = "vdd-cpux";
+		regulator-type = "voltage";
+		regulator-boot-on;
+		regulator-always-on;
+		regulator-min-microvolt = &lt;1100000&gt;;
+		regulator-max-microvolt = &lt;1300000&gt;;
+		regulator-ramp-delay = &lt;50&gt;;
+		gpios = &lt;&amp;r_pio 0 6 GPIO_ACTIVE_HIGH&gt;;
+		gpios-states = &lt;0x1&gt;;
+		states = &lt;1100000 0x0
+			  1300000 0x1&gt;;
+	};
+
+	wifi_pwrseq: wifi_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		pinctrl-names = "default";
+		reset-gpios = &lt;&amp;r_pio 0 7 GPIO_ACTIVE_LOW&gt;;
+	};
+
+	leds {
+		/delete-node/ pwr;
+		status {
+			label = "nanopi:red:status";
+			gpios = &lt;&amp;pio 0 10 GPIO_ACTIVE_HIGH&gt;;
+			linux,default-trigger = "heartbeat";
+		};
+
+		wan {
+			label = "nanopi:green:wan";
+			gpios = &lt;&amp;pio 6 11 GPIO_ACTIVE_HIGH&gt;;
+		};
+
+		lan {
+			label = "nanopi:green:lan";
+			gpios = &lt;&amp;pio 0 9 GPIO_ACTIVE_HIGH&gt;;
+		};
+	};
+
+	r_gpio_keys {
+		pinctrl-names = "default";
+		pinctrl-0 = &lt;&amp;sw_r_npi&gt;;
+
+		/delete-node/ k1;
+		reset {
+			label = "reset";
+			linux,code = &lt;KEY_RESTART&gt;;
+			gpios = &lt;&amp;r_pio 0 3 GPIO_ACTIVE_LOW&gt;;
+		};
+	};
+};
+
+&amp;cpu0 {
+	cpu-supply = &lt;&amp;vdd_cpux&gt;;
+};
+
+&amp;ehci1 {
+	status = "okay";
+};
+
+&amp;ehci2 {
+	status = "okay";
+};
+
+&amp;emac {
+	pinctrl-names = "default";
+	pinctrl-0 = &lt;&amp;emac_rgmii_pins&gt;;
+	phy-supply = &lt;&amp;reg_gmac_3v3&gt;;
+	phy-handle = &lt;&amp;ext_rgmii_phy&gt;;
+	phy-mode = "rgmii";
+	status = "okay";
+};
+
+&amp;external_mdio {
+	ext_rgmii_phy: ethernet-phy@1 {
+		compatible = "ethernet-phy-ieee802.3-c22";
+		reg = &lt;7&gt;;
+	};
+};
+
+&amp;mmc1 {
+	vmmc-supply = &lt;&amp;reg_vcc3v3&gt;;
+	vqmmc-supply = &lt;&amp;reg_vcc3v3&gt;;
+	mmc-pwrseq = &lt;&amp;wifi_pwrseq&gt;;
+	bus-width = &lt;4&gt;;
+	non-removable;
+	status = "okay";
+
+	sdio_wifi: sdio_wifi@1 {
+		reg = &lt;1&gt;;
+		compatible = "brcm,bcm4329-fmac";
+		interrupt-parent = &lt;&amp;pio&gt;;
+		interrupts = &lt;6 10 IRQ_TYPE_LEVEL_LOW&gt;;
+		interrupt-names = "host-wake";
+	};
+};
+
+&amp;mmc2 {
+	pinctrl-names = "default";
+	pinctrl-0 = &lt;&amp;mmc2_8bit_pins&gt;;
+	vmmc-supply = &lt;&amp;reg_vcc3v3&gt;;
+	vqmmc-supply = &lt;&amp;reg_vcc3v3&gt;;
+	bus-width = &lt;8&gt;;
+	non-removable;
+	status = "okay";
+};
+
+&amp;ohci1 {
+	status = "okay";
+};
+
+&amp;ohci2 {
+	status = "okay";
+};
+
+&amp;r_pio {
+	sw_r_npi: key_pins {
+		pins = "PL3";
+		function = "gpio_in";
+	};
+};
</pre></body></html>