diff --git a/patch/kernel/sunxi-legacy/board-h2plus-sunvell-r69-add-device.patch b/patch/kernel/sunxi-legacy/board-h2plus-sunvell-r69-add-device.patch index e5052b775..d0ccdc7fe 100644 --- a/patch/kernel/sunxi-legacy/board-h2plus-sunvell-r69-add-device.patch +++ b/patch/kernel/sunxi-legacy/board-h2plus-sunvell-r69-add-device.patch @@ -1,61 +1,24 @@ diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index e3d5a6c..0d3eef6 100644 +index f47ce87..9f4bc9e 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -995,6 +995,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ +@@ -1092,6 +1092,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ + sun8i-h2-plus-nanopi-duo.dtb \ sun8i-h2-plus-orangepi-r1.dtb \ - sun8i-h2-plus-bananapi-m2-zero.dtb \ sun8i-h2-plus-orangepi-zero.dtb \ + sun8i-h2-plus-sunvell-r69.dtb \ sun8i-h3-bananapi-m2-plus.dtb \ + sun8i-h3-bananapi-m2-plus-v1.2.dtb \ sun8i-h3-beelink-x2.dtb \ - sun8i-h3-libretech-all-h3-cc.dtb \ diff --git a/arch/arm/boot/dts/sun8i-h2-plus-sunvell-r69.dts b/arch/arm/boot/dts/sun8i-h2-plus-sunvell-r69.dts new file mode 100644 -index 0000000..1adfb0c +index 0000000..ef7cb09 --- /dev/null +++ b/arch/arm/boot/dts/sun8i-h2-plus-sunvell-r69.dts -@@ -0,0 +1,215 @@ +@@ -0,0 +1,225 @@ ++// SPDX-License-Identifier: (GPL-2.0+ or MIT) +/* -+ * Based original Sunvell R69 FEX file (2018 ) -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. ++ * Based original Sunvell R69 FEX file (2019 karabek) + */ + +/dts-v1/; @@ -71,41 +34,60 @@ index 0000000..1adfb0c + compatible = "sunvell,sunvell-r69", "allwinner,sun8i-h2-plus"; + + aliases { -+ serial0 = &uart0; + ethernet0 = &emac; + ethernet1 = &xr819; ++ serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + -+ connector { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; ++ connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_con_in: endpoint { ++ remote-endpoint = <&hdmi_out_con>; ++ }; ++ }; ++ }; + + leds { + compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&leds_opc>, <&leds_r_opc>; + + pwr_led { -+ label = "sunvell-r69:blue:pwr"; -+ gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "heartbeat"; ++ label = "sunvell-r69:red:pwr"; ++ gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; + }; + + status_led { -+ label = "sunvell-r69:red:status"; -+ gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; ++ label = "sunvell-r69:blue:status"; ++ gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "heartbeat"; + }; + }; + ++ reg_vdd_cpux: vdd-cpux-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>; /* 4ms */ ++ ++ gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ ++ enable-active-high; ++ gpios-states = <0x1>; ++ states = <1100000 0x0 ++ 1300000 0x1>; ++ }; ++ + reg_vcc_wifi: reg_vcc_wifi { + compatible = "regulator-fixed"; + regulator-min-microvolt = <3300000>; @@ -123,6 +105,10 @@ index 0000000..1adfb0c + }; +}; + ++&cpu0 { ++ cpu-supply = <®_vdd_cpux>; ++}; ++ +&de { + status = "okay"; +}; @@ -159,32 +145,19 @@ index 0000000..1adfb0c +}; + +&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <®_vcc3v3>; + bus-width = <4>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; -+ cd-inverted; ++ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ + status = "okay"; +}; + -+&mmc1_pins { -+ bias-pull-up; -+}; -+ +&mmc1 { -+ pinctrl-names = "default"; -+ /* pinctrl-0 = <&mmc1_pins>; */ + vmmc-supply = <®_vcc_wifi>; + mmc-pwrseq = <&wifi_pwrseq>; + bus-width = <4>; + non-removable; + status = "okay"; + -+ /* -+ * Explicitly define the sdio device, so that we can add an ethernet -+ * alias for it (which e.g. makes u-boot set a mac-address). -+ */ + xr819: sdio_wifi@1 { + reg = <1>; + compatible = "xradio,xr819"; @@ -204,6 +177,11 @@ index 0000000..1adfb0c + status = "okay"; +}; + ++&mmc2_8bit_pins { ++ /* Increase current from 30mA to 40mA for DDR eMMC */ ++ allwinner,drive = ; ++}; ++ +&ohci0 { + status = "okay"; +}; @@ -212,7 +190,22 @@ index 0000000..1adfb0c + status = "okay"; +}; + -+&tcon0 { ++&pio { ++ leds_opc: led_pins { ++ pins = "PA15"; ++ function = "gpio_out"; ++ }; ++}; ++ ++&r_pio { ++ leds_r_opc: led_pins { ++ pins = "PL10"; ++ function = "gpio_out"; ++ }; ++}; ++ ++®_usb0_vbus { ++ gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ + status = "okay"; +}; + @@ -222,12 +215,29 @@ index 0000000..1adfb0c + status = "okay"; +}; + ++&uart1 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart1_pins>; ++ status = "disabled"; ++}; ++ ++&uart2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart2_pins>; ++ status = "disabled"; ++}; ++ ++&uart3 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart3_pins>; ++ status = "disabled"; ++}; ++ +&usb_otg { -+ dr_mode = "host"; /* host -or- peripheral */ ++ dr_mode = "otg"; + status = "okay"; +}; + +&usbphy { -+ /* USB VBUS is always on */ + status = "okay"; +};