From f84c7c6b85d8a2b6533099c5b6d6b0d715b8d9f9 Mon Sep 17 00:00:00 2001 From: Marek Belisko Date: Wed, 13 Apr 2022 11:28:13 +0200 Subject: [PATCH] linux-mainline: Added patch for nanopi-r1 Signed-off-by: Marek Belisko --- recipes-kernel/linux/linux-mainline.inc | 1 + ...n8i-h3-Add-initial-NanoPi-R1-support.patch | 236 ++++++++++++++++++ 2 files changed, 237 insertions(+) create mode 100644 recipes-kernel/linux/linux-mainline/0002-ARM-dts-sun8i-h3-Add-initial-NanoPi-R1-support.patch diff --git a/recipes-kernel/linux/linux-mainline.inc b/recipes-kernel/linux/linux-mainline.inc index cfc7c09..102f691 100644 --- a/recipes-kernel/linux/linux-mainline.inc +++ b/recipes-kernel/linux/linux-mainline.inc @@ -22,6 +22,7 @@ S = "${WORKDIR}/linux-${PV}" SRC_URI = "https://www.kernel.org/pub/linux/kernel/v5.x/linux-${PV}.tar.xz \ file://0001-dts-orange-pi-zero-Add-wifi-support.patch \ + file://0002-ARM-dts-sun8i-h3-Add-initial-NanoPi-R1-support.patch \ file://defconfig \ " diff --git a/recipes-kernel/linux/linux-mainline/0002-ARM-dts-sun8i-h3-Add-initial-NanoPi-R1-support.patch b/recipes-kernel/linux/linux-mainline/0002-ARM-dts-sun8i-h3-Add-initial-NanoPi-R1-support.patch new file mode 100644 index 0000000..a8b279c --- /dev/null +++ b/recipes-kernel/linux/linux-mainline/0002-ARM-dts-sun8i-h3-Add-initial-NanoPi-R1-support.patch @@ -0,0 +1,236 @@ +From 692c8efb60d033fa0df3d79d4aee6e3e1d966425 Mon Sep 17 00:00:00 2001 +From: Marek Belisko +Date: Wed, 13 Apr 2022 11:19:29 +0200 +Subject: [PATCH] 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 +Signed-off-by: Maxime Ripard +Link: https://lore.kernel.org/r/20201102100157.85801-2-mtwget@gmail.com +--- + Documentation/devicetree/bindings/arm/sunxi.yaml | 5 + + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts | 169 +++++++++++++++++++++++ + 3 files changed, 175 insertions(+) + create mode 100644 arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts + +diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentation/devicetree/bindings/arm/sunxi.yaml +index cab8e1b..5424bab 100644 +--- a/Documentation/devicetree/bindings/arm/sunxi.yaml ++++ b/Documentation/devicetree/bindings/arm/sunxi.yaml +@@ -251,6 +251,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 +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 4c3ba04..494639a 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -1240,6 +1240,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 \ +diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts +new file mode 100644 +index 0000000..204a39f +--- /dev/null ++++ b/arch/arm/boot/dts/sun8i-h3-nanopi-r1.dts +@@ -0,0 +1,169 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (C) 2019 Igor Pecovnik ++ * Copyright (C) 2020 Jayantajit Gogoi ++ * Copyright (C) 2020 Yu-Tung Chang ++*/ ++ ++#include "sun8i-h3-nanopi.dtsi" ++#include ++ ++/ { ++ model = "FriendlyARM NanoPi R1"; ++ compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3"; ++ ++ aliases { ++ serial1 = &uart1; ++ ethernet0 = &emac; ++ ethernet1 = &wifi; ++ }; ++ ++ reg_gmac_3v3: gmac-3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "gmac-3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <100000>; ++ enable-active-high; ++ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */ ++ }; ++ ++ reg_vdd_cpux: gpio-regulator { ++ compatible = "regulator-gpio"; ++ regulator-name = "vdd-cpux"; ++ regulator-type = "voltage"; ++ regulator-boot-on; ++ regulator-always-on; ++ regulator-min-microvolt = <1100000>; ++ regulator-max-microvolt = <1300000>; ++ regulator-ramp-delay = <50>; ++ gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ ++ gpios-states = <0x1>; ++ states = <1100000 0x0 ++ 1300000 0x1>; ++ }; ++ ++ wifi_pwrseq: wifi_pwrseq { ++ compatible = "mmc-pwrseq-simple"; ++ reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ ++ clocks = <&rtc 1>; ++ clock-names = "ext_clock"; ++ }; ++ ++ leds { ++ led-2 { ++ function = LED_FUNCTION_WAN; ++ color = ; ++ gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */ ++ }; ++ ++ led-3 { ++ function = LED_FUNCTION_LAN; ++ color = ; ++ gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>; /* PA9 */ ++ }; ++ }; ++}; ++ ++&cpu0 { ++ cpu-supply = <®_vdd_cpux>; ++}; ++ ++&ehci1 { ++ status = "okay"; ++}; ++ ++&ehci2 { ++ status = "okay"; ++}; ++ ++&emac { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&emac_rgmii_pins>; ++ phy-supply = <®_gmac_3v3>; ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii-id"; ++ status = "okay"; ++}; ++ ++&external_mdio { ++ ext_rgmii_phy: ethernet-phy@7 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <7>; ++ }; ++}; ++ ++&mmc1 { ++ vmmc-supply = <®_vcc3v3>; ++ vqmmc-supply = <®_vcc3v3>; ++ mmc-pwrseq = <&wifi_pwrseq>; ++ bus-width = <4>; ++ non-removable; ++ status = "okay"; ++ ++ wifi: wifi@1 { ++ reg = <1>; ++ compatible = "brcm,bcm4329-fmac"; ++ interrupt-parent = <&pio>; ++ interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */ ++ interrupt-names = "host-wake"; ++ }; ++}; ++ ++&mmc2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc2_8bit_pins>; ++ vmmc-supply = <®_vcc3v3>; ++ vqmmc-supply = <®_vcc3v3>; ++ bus-width = <8>; ++ non-removable; ++ status = "okay"; ++}; ++ ++&ohci1 { ++ status = "okay"; ++}; ++ ++&ohci2 { ++ status = "okay"; ++}; ++ ++®_usb0_vbus { ++ gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ ++ status = "okay"; ++}; ++ ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart1_pins>; ++ status = "okay"; ++}; ++ ++&uart3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>; ++ uart-has-rtscts; ++ status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm43438-bt"; ++ clocks = <&rtc 1>; ++ clock-names = "lpo"; ++ vbat-supply = <®_vcc3v3>; ++ vddio-supply = <®_vcc3v3>; ++ device-wakeup-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */ ++ host-wakeup-gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */ ++ shutdown-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */ ++ }; ++}; ++ ++&usb_otg { ++ status = "okay"; ++ dr_mode = "otg"; ++}; ++ ++&usbphy { ++ usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ ++ usb0_vbus-supply = <®_usb0_vbus>; ++ status = "okay"; ++}; +-- +2.7.4 +