From 2e94536fc8caccf0b1b4f82dfa41dfe1badba0bb Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:16:18 +0200 Subject: [PATCH 01/40] ipq40xx: use existing labels for watchdog node Currently, a lot of boards are still not using the existing label to reference the watchdog node, so lets rectify this. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts | 8 ++++---- .../files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi | 7 +++---- .../arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts | 8 ++++---- 56 files changed, 223 insertions(+), 224 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts index 8ce530dbd5..6bcf0f8b50 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts @@ -47,10 +47,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -103,6 +99,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts index 07262f9ed5..00ee51f586 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts @@ -101,13 +101,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts index 388b2dd590..454ae8a966 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts @@ -58,10 +58,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -118,6 +114,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts index c388ceca27..424b72a0a6 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts @@ -57,10 +57,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -96,6 +92,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts index fef549035d..ee73eb87c1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts @@ -43,10 +43,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -76,6 +72,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp1_spi1 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts index 396d4e5fea..16567e20f3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts @@ -53,10 +53,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -86,6 +82,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp1_uart1 { pinctrl-0 = <&serial_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts index bfbed30b90..0fbbf7c01e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts @@ -40,10 +40,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -95,6 +91,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts index 4f3d00c678..2ff07d6efc 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts @@ -92,13 +92,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { mux_mdio { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts index bca85cf4ab..5950ad2f86 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts @@ -47,10 +47,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -91,6 +87,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts index 8f108a3f9f..5d272d3e1c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts @@ -40,10 +40,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -89,6 +85,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts index 17bac82bfe..5c4a083402 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts @@ -49,10 +49,6 @@ status = "okay"; }; - watchdog@b017000 { - status = "okay"; - }; - /* * Disable the broken restart as a workaround for the buggy * 3.0.0/3.0.1 U-boots that ship with the device. @@ -104,6 +100,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi index 918224607a..722a891183 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi @@ -55,10 +55,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; aliases { @@ -157,6 +153,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts index 572e6545c4..0fb3863ad5 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts @@ -54,10 +54,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -116,6 +112,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts index fb0175aeca..ba11eaae7e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts @@ -64,10 +64,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -98,6 +94,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts index deee82b1a6..16b8a565c8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts @@ -66,10 +66,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -106,6 +102,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi index 581b939ae6..7daae8ee7a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi @@ -57,13 +57,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { pinmux_1 { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts index 501aed5467..4b73652d81 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts @@ -31,10 +31,6 @@ status = "okay"; }; - watchdog@b017000 { - status = "okay"; - }; - gpio_export { compatible = "gpio-export"; #size-cells = <0>; @@ -88,6 +84,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { spi_0_pins: spi_0_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts index cb40b87e56..e8109ec6c4 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts @@ -63,10 +63,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -129,6 +125,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts index cb847e7558..399d6b380c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts @@ -47,10 +47,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -95,6 +91,10 @@ }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts index ecf652368c..771bcd0b48 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts @@ -58,10 +58,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -132,6 +128,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts index 252f9ad71a..2d720f7383 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts @@ -62,10 +62,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -121,6 +117,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts index 9bcfab4487..c1776d6211 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts @@ -54,10 +54,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -149,6 +145,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &qpic_bam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts index 7ce0b9e359..146dab6eeb 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts @@ -66,10 +66,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -119,6 +115,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts index 26c8c0244a..5d8522a269 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts @@ -72,13 +72,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts index 463e1e171e..78a1091d80 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts @@ -47,10 +47,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -103,6 +99,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts index b4f536fdb8..6e30710849 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts @@ -57,10 +57,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; led_spi { @@ -138,6 +134,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi index 6ea0eb2b55..6476512ec8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi @@ -80,10 +80,6 @@ status = "okay"; }; - watchdog@b017000 { - status = "okay"; - }; - leds { compatible = "gpio-leds"; @@ -133,6 +129,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts index 000acd196c..792c09a1a8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts @@ -81,13 +81,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts index 2c86cd57bc..ab92e7035b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts @@ -57,10 +57,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -123,6 +119,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts index 10f21a5947..17cb80fdfd 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts @@ -44,10 +44,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; key { @@ -83,6 +79,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts index 2555984384..ec5fa286d5 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts @@ -47,10 +47,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; key { @@ -89,6 +85,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts index 86daa58a3f..2a45dc8e6a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts @@ -65,10 +65,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -110,6 +106,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts index 836ad44210..7690e6725d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts @@ -66,10 +66,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -160,6 +156,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts index 4f0eaa625b..97e22c2747 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts @@ -76,10 +76,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -136,6 +132,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts index 30101b0c3a..c2a5c51076 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts @@ -48,10 +48,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -71,6 +67,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &nand { pinctrl-0 = <&nand_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts index 9bc12be8ef..f9ae2f2834 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts @@ -138,13 +138,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts index ede92f7e22..cb39e80e44 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts @@ -121,13 +121,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts index cd1c3c732f..218ba7a442 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts @@ -114,13 +114,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts index f3f9395b41..7cf0960e26 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts @@ -56,10 +56,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; key { @@ -110,6 +106,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi index 849df64201..a587c969b0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi @@ -61,10 +61,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -126,6 +122,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts index ed333c4990..8104432f0d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts @@ -39,10 +39,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -98,6 +94,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi index 0abc3aff55..c327046085 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi @@ -56,10 +56,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -99,6 +95,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts index 2854809bfe..ef9d166783 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts @@ -58,10 +58,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -149,6 +145,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts index e2d435133b..4b1ede666e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts @@ -175,13 +175,13 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi index e31f10f9d3..e785c75625 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi @@ -46,10 +46,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - watchdog@b017000 { - status = "okay"; - }; - aliases { led-boot = &led_status; led-failsafe = &led_status; @@ -82,6 +78,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index d99cbdb608..91afed452c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -308,10 +308,6 @@ status = "okay"; }; - watchdog@b017000 { - status = "okay"; - }; - qpic_bam: dma@7984000 { status = "okay"; }; @@ -334,6 +330,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &usb3_ss_phy { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts index 37383b015d..3d0f32cb8b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts @@ -68,10 +68,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -164,6 +160,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { serial_0_pins: serial0_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi index 8f0fd9a89f..a9b6e37513 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi @@ -56,10 +56,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - watchdog@b017000 { - status = "okay"; - }; - leds { compatible = "gpio-leds"; pinctrl-0 = <&led_pins>; @@ -84,6 +80,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi index 83574f89c7..e0e46b3fbe 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi @@ -62,10 +62,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; regulator-usb-vbus { @@ -79,6 +75,9 @@ }; }; +&watchdog { + status = "okay"; +}; &blsp_dma { status = "okay"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts index 88bcbb3101..71c9884f17 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts @@ -76,10 +76,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -118,6 +114,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { mux_1 { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts index 69d4810277..80f38ec951 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts @@ -67,10 +67,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -120,6 +116,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi index 4b3b682260..3f85b1523d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi @@ -53,10 +53,6 @@ status = "okay"; }; - watchdog@b017000 { - status = "okay"; - }; - i2c_0: i2c@78b7000 { pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; @@ -82,6 +78,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts index e424a021b7..f2994b9ccc 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts @@ -75,10 +75,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -120,6 +116,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts index b7ff970b25..03d3cd1d61 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts @@ -60,10 +60,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -106,6 +102,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi index 2b9f73eb24..a1da4bc832 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi @@ -82,10 +82,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; keys { @@ -110,6 +106,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts index 8794d839a8..6f6c75c568 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts @@ -48,10 +48,6 @@ crypto@8e3a000 { status = "okay"; }; - - watchdog@b017000 { - status = "okay"; - }; }; leds { @@ -106,6 +102,10 @@ }; }; +&watchdog { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; From 22e96cc3ff2b31a263c11a25fd5e0d72bb1c16a8 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:30:48 +0200 Subject: [PATCH 02/40] ipq40xx: use existing labels for prng node Currently, a lot of boards are still not using the existing label to reference the prng node, so lets rectify this. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-mf287_common.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi | 9 ++++----- .../arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts | 8 ++++---- 56 files changed, 224 insertions(+), 225 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts index 6bcf0f8b50..21013f4733 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts @@ -14,10 +14,6 @@ compatible = "openmesh,a42"; soc { - rng@22000 { - status = "okay"; - }; - tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; @@ -103,6 +99,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts index 00ee51f586..76c4c62e98 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts @@ -58,10 +58,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; @@ -108,6 +104,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts index 454ae8a966..fe5b99872c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts @@ -28,10 +28,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -118,6 +114,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts index 424b72a0a6..e52a5ee469 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts @@ -18,10 +18,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -96,6 +92,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts index ee73eb87c1..2b661dbc60 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts @@ -36,10 +36,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - rng@22000 { - status = "okay"; - }; - crypto@8e3a000 { status = "okay"; }; @@ -76,6 +72,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp1_spi1 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts index 16567e20f3..55474b6043 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts @@ -18,10 +18,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -86,6 +82,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp1_uart1 { pinctrl-0 = <&serial_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts index 0fbbf7c01e..801fbe166d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts @@ -11,10 +11,6 @@ compatible = "engenius,eap1300"; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -95,6 +91,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts index 2ff07d6efc..54806c2dd7 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts @@ -56,10 +56,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -99,6 +95,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { mux_mdio { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts index 5950ad2f86..3f9d57c349 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts @@ -18,10 +18,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -91,6 +87,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts index 5d272d3e1c..4aaac0f298 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts @@ -11,10 +11,6 @@ compatible = "engenius,emr3500"; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -89,6 +85,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts index 5c4a083402..4c57e36511 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts @@ -23,10 +23,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -104,6 +100,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi index 722a891183..aa0d0658d6 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi @@ -26,10 +26,6 @@ compatible = "netgear,ex61x0v2"; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -157,6 +153,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts index 0fb3863ad5..2fa3927af8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts @@ -19,10 +19,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -116,6 +112,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts index ba11eaae7e..586926d0c4 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts @@ -27,10 +27,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -98,6 +94,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts index 16b8a565c8..66e1f34f88 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts @@ -28,10 +28,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -106,6 +102,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi index 7daae8ee7a..c0b369ddcc 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi @@ -12,10 +12,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; @@ -64,6 +60,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { pinmux_1 { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts index 4b73652d81..dfbf454c13 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts @@ -15,10 +15,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -88,6 +84,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { spi_0_pins: spi_0_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-mf287_common.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-mf287_common.dtsi index 3784e62d0b..961b4be56b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-mf287_common.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-mf287_common.dtsi @@ -59,10 +59,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -95,6 +91,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &watchdog { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts index e8109ec6c4..3b178d7e88 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts @@ -28,10 +28,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -129,6 +125,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts index 399d6b380c..2fe1b1ad58 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts @@ -14,10 +14,6 @@ compatible = "plasmacloud,pa1200"; soc { - rng@22000 { - status = "okay"; - }; - tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; @@ -95,6 +91,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts index 771bcd0b48..cde16665af 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts @@ -23,10 +23,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -132,6 +128,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts index 2d720f7383..aeb664285e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts @@ -28,10 +28,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -121,6 +117,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts index c1776d6211..7499f4a82b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts @@ -24,10 +24,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -149,6 +145,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &qpic_bam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts index 146dab6eeb..b2fe56c62e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts @@ -37,10 +37,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -119,6 +115,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts index 5d8522a269..d671ea32d3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts @@ -41,10 +41,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -79,6 +75,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts index 78a1091d80..f051cbd948 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts @@ -14,10 +14,6 @@ compatible = "openmesh,a62"; soc { - rng@22000 { - status = "okay"; - }; - tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; @@ -103,6 +99,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts index 6e30710849..baa6f76192 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts @@ -18,10 +18,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -138,6 +134,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi index 6476512ec8..28450643d3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi @@ -21,10 +21,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -133,6 +129,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts index 792c09a1a8..cd0ffb0129 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts @@ -70,10 +70,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -88,6 +84,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts index ab92e7035b..3bad6c4862 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts @@ -22,10 +22,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -123,6 +119,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts index 17cb80fdfd..1b93b23cad 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts @@ -19,10 +19,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -83,6 +79,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts index ec5fa286d5..a55ee262c8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts @@ -18,10 +18,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -89,6 +85,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts index 9f645dd657..82e3c5d1e3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts @@ -24,10 +24,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -106,6 +102,10 @@ }; }; +&prng { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts index 2a45dc8e6a..781150f2be 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts @@ -20,10 +20,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; @@ -110,6 +106,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts index 7690e6725d..f1be7d7451 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts @@ -28,10 +28,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -160,6 +156,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts index 97e22c2747..15cfd85ed0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts @@ -42,10 +42,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -136,6 +132,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts index c2a5c51076..042d6ef239 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts @@ -19,10 +19,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -71,6 +67,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &nand { pinctrl-0 = <&nand_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts index f9ae2f2834..95089c800c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts @@ -97,10 +97,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -145,6 +141,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts index cb39e80e44..5cea29fe14 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts @@ -80,10 +80,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -128,6 +124,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts index 218ba7a442..3168f8f8d4 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts @@ -73,10 +73,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -121,6 +117,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi index a587c969b0..69361befdf 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi @@ -16,10 +16,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; @@ -126,6 +122,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts index 8104432f0d..341e83aa03 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts @@ -14,10 +14,6 @@ compatible = "plasmacloud,pa2200"; soc { - rng@22000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -98,6 +94,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi index c327046085..f1751f9b08 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi @@ -19,10 +19,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -99,6 +95,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts index ef9d166783..c76eff7eda 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts @@ -23,10 +23,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -149,6 +145,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts index 4b1ede666e..5131648cf0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts @@ -138,10 +138,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -182,6 +178,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi index e785c75625..23030b5e58 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi @@ -9,10 +9,6 @@ compatible = "unielec,u4019","qcom,ipq4019"; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -82,6 +78,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts index 3d0f32cb8b..14a55e164d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts @@ -36,10 +36,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -164,6 +160,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { serial_0_pins: serial0_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi index a9b6e37513..fd435dce8e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi @@ -18,11 +18,6 @@ }; soc { - - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -84,6 +79,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi index e0e46b3fbe..58c06978a6 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi @@ -27,10 +27,6 @@ soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -79,6 +75,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts index 71c9884f17..0313806263 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts @@ -35,10 +35,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -118,6 +114,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { mux_1 { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts index 80f38ec951..d8bbe4d57a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts @@ -22,10 +22,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -120,6 +116,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi index 3f85b1523d..3528445fa2 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi @@ -12,10 +12,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -82,6 +78,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts index f2994b9ccc..71bbef45ee 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts @@ -38,10 +38,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -120,6 +116,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts index 03d3cd1d61..c5f91922ba 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts @@ -23,10 +23,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; }; @@ -106,6 +102,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi index a1da4bc832..7256fc0090 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi @@ -33,10 +33,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -110,6 +106,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts index 6f6c75c568..4a952cc4cb 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts @@ -17,10 +17,6 @@ }; soc { - rng@22000 { - status = "okay"; - }; - mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; @@ -106,6 +102,10 @@ status = "okay"; }; +&prng { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; From e54c9c156b94b1a5da5e1e508f5d4ee6c49a11ad Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:42:21 +0200 Subject: [PATCH 03/40] ipq40xx: use existing labels for crypto node Currently, a lot of boards are still not using the existing label to reference the crypto node, so lets rectify this. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts | 8 ++++---- .../files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts | 4 ---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi | 8 ++++---- .../arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts | 8 ++++---- 55 files changed, 216 insertions(+), 220 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts index 21013f4733..c117a90538 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-a42.dts @@ -39,10 +39,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -103,6 +99,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts index 76c4c62e98..f87fef32f3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts @@ -93,10 +93,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -108,6 +104,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts index fe5b99872c..b061428bb3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cap-ac.dts @@ -50,10 +50,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -118,6 +114,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts index e52a5ee469..121d3430ea 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts @@ -49,10 +49,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -96,6 +92,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts index 2b661dbc60..df5d9331a1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-dap-2610.dts @@ -35,10 +35,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -76,6 +72,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp1_spi1 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts index 55474b6043..52ed1a07b2 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts @@ -45,10 +45,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -86,6 +82,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp1_uart1 { pinctrl-0 = <&serial_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts index 801fbe166d..528f54cee4 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts @@ -32,10 +32,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -95,6 +91,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts index 54806c2dd7..777788c59a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ecw5211.dts @@ -84,10 +84,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -99,6 +95,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { mux_mdio { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts index 3f9d57c349..7aa439912a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts @@ -39,10 +39,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -91,6 +87,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts index 4aaac0f298..5c5a9f733d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts @@ -32,10 +32,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -89,6 +85,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts index 4c57e36511..8b75a57074 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ens620ext.dts @@ -41,10 +41,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - crypto@8e3a000 { - status = "okay"; - }; - /* * Disable the broken restart as a workaround for the buggy * 3.0.0/3.0.1 U-boots that ship with the device. @@ -104,6 +100,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi index aa0d0658d6..0ea20530da 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi @@ -47,10 +47,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; aliases { @@ -157,6 +153,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts index 2fa3927af8..1f953ee16b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts @@ -46,10 +46,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -116,6 +112,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts index 586926d0c4..ff111d575f 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts @@ -56,10 +56,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -102,6 +98,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts index 66e1f34f88..07ad4d3d52 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-hap-ac2.dts @@ -58,10 +58,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -106,6 +102,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi index c0b369ddcc..c52af9b1df 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi @@ -49,10 +49,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -64,6 +60,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { pinmux_1 { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts index dfbf454c13..ddbb5a7986 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts @@ -23,10 +23,6 @@ reset-delay-us = <2000>; }; - crypto@8e3a000 { - status = "okay"; - }; - gpio_export { compatible = "gpio-export"; #size-cells = <0>; @@ -88,6 +84,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { spi_0_pins: spi_0_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts index 3b178d7e88..8575b504c8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts @@ -55,10 +55,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -129,6 +125,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts index 2fe1b1ad58..a353c7f9f3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-pa1200.dts @@ -39,10 +39,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -95,6 +91,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts index cde16665af..882d565bd1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts @@ -50,10 +50,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -132,6 +128,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts index aeb664285e..fd797bd548 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts @@ -54,10 +54,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -121,6 +117,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts index 7499f4a82b..f895e2c110 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wac510.dts @@ -46,10 +46,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -149,6 +145,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &qpic_bam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts index b2fe56c62e..211a45bde0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts @@ -58,10 +58,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -119,6 +115,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts index d671ea32d3..fc5a7a94aa 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wrtq-329acn.dts @@ -64,10 +64,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -79,6 +75,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts index f051cbd948..d8249236f0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-a62.dts @@ -39,10 +39,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -103,6 +99,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts index baa6f76192..64752805a0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts @@ -49,10 +49,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; led_spi { @@ -138,6 +134,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi index 28450643d3..80f187c89c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi @@ -72,10 +72,6 @@ status = "okay"; }; - crypto@8e3a000 { - status = "okay"; - }; - leds { compatible = "gpio-leds"; @@ -137,6 +133,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts index cd0ffb0129..7ff350a22c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts @@ -73,10 +73,6 @@ mdio@90000 { status = "okay"; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -88,6 +84,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts index 3bad6c4862..6fd8b48874 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts @@ -49,10 +49,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -123,6 +119,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts index 1b93b23cad..106c8031e3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-1200.dts @@ -36,10 +36,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; key { @@ -83,6 +79,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts index a55ee262c8..6a81d96284 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts @@ -39,10 +39,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; key { @@ -89,6 +85,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_0_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts index 82e3c5d1e3..bc0b5c47a3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts @@ -53,10 +53,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -106,6 +102,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts index 781150f2be..59dbf7f1b0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts @@ -57,10 +57,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -110,6 +106,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts index f1be7d7451..4a3a323b5f 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-hap-ac3.dts @@ -58,10 +58,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -160,6 +156,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts index 15cfd85ed0..f0d1402c35 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts @@ -68,10 +68,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -136,6 +132,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts index 042d6ef239..fd7cd014d6 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts @@ -40,10 +40,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -71,6 +67,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &nand { pinctrl-0 = <&nand_pins>; pinctrl-names = "default"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts index 95089c800c..e00385dbd7 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts @@ -130,10 +130,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -145,6 +141,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts index 5cea29fe14..523c484e91 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts @@ -113,10 +113,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -128,6 +124,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts index 3168f8f8d4..8f1a7f6551 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts @@ -106,10 +106,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -121,6 +117,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts index 7cf0960e26..03b2f95965 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts @@ -52,10 +52,6 @@ qcom,usb-hsphy-mode-select = ; status = "okay"; }; - - crypto@8e3a000 { - status = "okay"; - }; }; key { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi index 69361befdf..5cfed9faa0 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi @@ -53,10 +53,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -126,6 +122,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts index 341e83aa03..f87ab07416 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-pa2200.dts @@ -31,10 +31,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -98,6 +94,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_pins: serial_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi index f1751f9b08..11046db9bb 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi @@ -48,10 +48,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -99,6 +95,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts index c76eff7eda..5feebce485 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts @@ -50,10 +50,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -149,6 +145,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &cryptobam { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts index 5131648cf0..da8b8a1feb 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts @@ -167,10 +167,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; }; @@ -182,6 +178,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 91afed452c..99875485a3 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -304,10 +304,6 @@ status = "okay"; }; - crypto@8e3a000 { - status = "okay"; - }; - qpic_bam: dma@7984000 { status = "okay"; }; @@ -334,6 +330,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &usb3_ss_phy { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts index 14a55e164d..ab985dfce1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wtr-m2133hp.dts @@ -60,10 +60,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -164,6 +160,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { serial_0_pins: serial0_pinmux { mux { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi index 58c06978a6..74d525afff 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi @@ -54,10 +54,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; regulator-usb-vbus { @@ -79,6 +75,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts index 0313806263..df562aa064 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts @@ -68,10 +68,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -118,6 +114,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &tlmm { mdio_pins: mdio_pinmux { mux_1 { diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts index d8bbe4d57a..fbc1616d7c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts @@ -59,10 +59,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -120,6 +116,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi index 3528445fa2..991b93671b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi @@ -45,10 +45,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - crypto@8e3a000 { - status = "okay"; - }; - i2c_0: i2c@78b7000 { pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; @@ -82,6 +78,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts index 71bbef45ee..d0f30eb86d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts @@ -67,10 +67,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -120,6 +116,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts index c5f91922ba..857a2a551f 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts @@ -52,10 +52,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -106,6 +102,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &vqmmc { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi index 7256fc0090..0aee1716d6 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi @@ -74,10 +74,6 @@ enable-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; }; }; - - crypto@8e3a000 { - status = "okay"; - }; }; keys { @@ -110,6 +106,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts index 4a952cc4cb..0d3bae2dfa 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts @@ -40,10 +40,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - crypto@8e3a000 { - status = "okay"; - }; }; leds { @@ -106,6 +102,10 @@ status = "okay"; }; +&crypto { + status = "okay"; +}; + &blsp_dma { status = "okay"; }; From b475e8f717163fd0cb070d83d6b0bbef1d5a614b Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:45:05 +0200 Subject: [PATCH 04/40] ipq40xx: wpj419: use existing labels for DMA nodes WPJ419 is still manually defining dma nodes(And even some labels), so lets convert it to use the existing upstream labels for DMA nodes. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 99875485a3..23dbf9f991 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -139,10 +139,6 @@ }; }; - blsp_dma: dma@7884000 { - status = "okay"; - }; - spi_0: spi@78b5000 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; @@ -300,14 +296,6 @@ status = "okay"; }; - cryptobam: dma@8e04000 { - status = "okay"; - }; - - qpic_bam: dma@7984000 { - status = "okay"; - }; - pcie0: pci@40000000 { status = "okay"; perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; @@ -326,6 +314,10 @@ }; }; +&blsp_dma { + status = "okay"; +}; + &watchdog { status = "okay"; }; @@ -334,6 +326,10 @@ status = "okay"; }; +&cryptobam { + status = "okay"; +}; + &usb3_ss_phy { status = "okay"; }; @@ -354,6 +350,10 @@ status = "okay"; }; +&qpic_bam { + status = "okay"; +}; + &nand { pinctrl-0 = <&nand_pins>; pinctrl-names = "default"; From 7359362a2e300cd84dfc60e71b988cb957b5be76 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:46:06 +0200 Subject: [PATCH 05/40] ipq40xx: ncp-hg100-cellular: drop QPIC BAM node This device does not have NAND enabled at all and NAND is the only consumer of QPIC BAM DMA, so drop the node. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../arm/boot/dts/qcom/qcom-ipq4019-ncp-hg100-cellular.dts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-ncp-hg100-cellular.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-ncp-hg100-cellular.dts index a23654e4c8..e115c211aa 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-ncp-hg100-cellular.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-ncp-hg100-cellular.dts @@ -56,10 +56,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - dma@7984000 { - status = "okay"; - }; }; keys-repeat { From 625e912d758050390528b9fc285f5f8c53fe5f4e Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:53:23 +0200 Subject: [PATCH 06/40] ipq40xx: use existing labels for UART nodes Some boards are still defininig UART nodes under soc instead of using the existing upstream labels to reference them so convert them. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi | 24 +++++++++---------- .../arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 24 +++++++++---------- .../dts/qcom/qcom-ipq4029-insect-common.dtsi | 22 ++++++++--------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi index 80f187c89c..42648c9b00 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi @@ -53,18 +53,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - serial@78af000 { - pinctrl-0 = <&serial_0_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - - serial@78b0000 { - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - i2c@78b7000 { /* BLSP1 QUP2 */ pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; @@ -200,6 +188,18 @@ }; }; +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart2 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &usb3 { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 23dbf9f991..082b209bf8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -284,18 +284,6 @@ status = "okay"; }; - serial@78af000 { - pinctrl-0 = <&serial_0_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - - serial@78b0000 { - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - pcie0: pci@40000000 { status = "okay"; perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; @@ -318,6 +306,18 @@ status = "okay"; }; +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart2 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &watchdog { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi index 0aee1716d6..bebad6f1e6 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi @@ -63,17 +63,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - serial@78b0000 { - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - status = "okay"; - - bluetooth { - compatible = "ti,cc2650"; - enable-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; - }; - }; }; keys { @@ -120,6 +109,17 @@ status = "okay"; }; +&blsp1_uart2 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; + + bluetooth { + compatible = "ti,cc2650"; + enable-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; + }; +}; + &cryptobam { status = "okay"; }; From 90f9bc799f16ee1fa1d63befe6cde81a496c6718 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 13:59:24 +0200 Subject: [PATCH 07/40] ipq40xx: use existing labels for I2C nodes Some boards are still defininig I2C nodes under soc instead of using the existing upstream labels to reference them so convert them. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi | 13 +++++----- .../arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 12 ++++----- .../arm/boot/dts/qcom/qcom-ipq4029-ap-365.dts | 2 +- .../qcom/qcom-ipq4029-aruba-glenmorangie.dtsi | 26 +++++++++---------- 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi index 42648c9b00..e67d1ba7a8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi @@ -53,13 +53,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - i2c@78b7000 { /* BLSP1 QUP2 */ - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - - status = "okay"; - }; - leds { compatible = "gpio-leds"; @@ -200,6 +193,12 @@ status = "okay"; }; +&blsp1_i2c3 { /* BLSP1 QUP2 */ + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &usb3 { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 082b209bf8..74985b4b43 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -278,12 +278,6 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - i2c_0: i2c@78b7000 { - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - status = "okay"; - }; - pcie0: pci@40000000 { status = "okay"; perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; @@ -318,6 +312,12 @@ status = "okay"; }; +&blsp1_i2c3 { + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &watchdog { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-365.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-365.dts index 3477dace72..6df788a745 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-365.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-365.dts @@ -67,7 +67,7 @@ }; }; -&i2c_0 { +&blsp1_i2c3 { power-monitor@40 { /* No driver */ compatible = "isl,isl28022"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi index 991b93671b..a9fe56f537 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi @@ -44,19 +44,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - i2c_0: i2c@78b7000 { - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - status = "okay"; - - tpm@29 { - /* No Driver */ - compatible = "atmel,at97sc3203"; - reg = <0x29>; - read-only; - }; - }; }; keys { @@ -99,6 +86,19 @@ status = "okay"; }; +&blsp1_i2c3 { + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + status = "okay"; + + tpm@29 { + /* No Driver */ + compatible = "atmel,at97sc3203"; + reg = <0x29>; + read-only; + }; +}; + &cryptobam { status = "okay"; }; From 63c5d8bd726a7864673891ad0cff5520e6567acb Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 14:16:48 +0200 Subject: [PATCH 08/40] ipq40xx: use existing labels for MDIO node Some boards are still defining MDIO nodes under soc instead of using the existing upstream labels to reference them so convert them. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts | 14 ++++++------- .../qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts | 16 +++++++-------- .../boot/dts/qcom/qcom-ipq4018-ea6350v3.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-eap1300.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4018-emd1.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-emr3500.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi | 8 ++++---- .../dts/qcom/qcom-ipq4018-fritzbox-4040.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi | 13 ++++++------ .../qcom/qcom-ipq4018-magic-2-wifi-next.dts | 16 +++++++-------- .../boot/dts/qcom/qcom-ipq4018-nbg6617.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts | 4 ---- .../boot/dts/qcom/qcom-ipq4018-wre6606.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4019-cm520-79f.dts | 16 +++++++-------- .../boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi | 12 +++++------ .../boot/dts/qcom/qcom-ipq4019-eap2200.dts | 10 ++++------ .../dts/qcom/qcom-ipq4019-fritzbox-7530.dts | 8 ++++---- .../qcom/qcom-ipq4019-fritzrepeater-3000.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4019-gl-b2200.dts | 8 ++++---- .../dts/qcom/qcom-ipq4019-habanero-dvk.dts | 13 ++++++------ .../boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4019-map-ac2200.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts | 16 +++++++-------- .../boot/dts/qcom/qcom-ipq4019-mf282plus.dts | 16 +++++++-------- .../arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts | 16 +++++++-------- .../arm/boot/dts/qcom/qcom-ipq4019-oap100.dts | 12 +++++------ .../arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi | 13 ++++++------ .../boot/dts/qcom/qcom-ipq4019-r619ac.dtsi | 12 +++++------ .../boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4019-rtl30vw.dts | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi | 16 +++++++-------- .../arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 16 +++++++-------- .../arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi | 16 +++++++-------- .../boot/dts/qcom/qcom-ipq4019-xx8300.dtsi | 8 ++++---- .../arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts | 16 +++++++-------- .../boot/dts/qcom/qcom-ipq4029-ap-303h.dts | 18 ++++++++--------- .../qcom/qcom-ipq4029-aruba-glenmorangie.dtsi | 20 +++++++++---------- .../boot/dts/qcom/qcom-ipq4029-gl-b1300.dts | 8 ++++---- .../boot/dts/qcom/qcom-ipq4029-gl-s1300.dts | 8 ++++---- .../dts/qcom/qcom-ipq4029-insect-common.dtsi | 12 +++++------ .../boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts | 12 +++++------ 43 files changed, 238 insertions(+), 247 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts index f87fef32f3..f2e2ed3f7f 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ap120c-ac.dts @@ -58,13 +58,6 @@ }; soc { - mdio@90000 { - status = "okay"; - - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -327,6 +320,13 @@ phy-names = "usb2-phy"; }; +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts index 121d3430ea..8d09bfd0b7 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-cs-w3-wd1200g-eup.dts @@ -18,14 +18,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; - reset-delay-us = <5000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -245,6 +237,14 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; + reset-delay-us = <5000>; +}; + &gmac { status = "okay"; nvmem-cells = <&macaddr_art_0>; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts index 52ed1a07b2..e80a540244 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ea6350v3.dts @@ -18,10 +18,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -96,6 +92,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts index 528f54cee4..52a96eae98 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-eap1300.dts @@ -11,10 +11,6 @@ compatible = "engenius,eap1300"; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -230,6 +226,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &swport5 { status = "okay"; label = "lan"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts index 7aa439912a..1ef63bdc98 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emd1.dts @@ -18,10 +18,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -201,6 +197,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &wifi0 { status = "okay"; qcom,ath10k-calibration-variant = "EnGenius-EMD1"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts index 5c5a9f733d..9d70501cb7 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-emr3500.dts @@ -11,10 +11,6 @@ compatible = "engenius,emr3500"; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -202,6 +198,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &wifi0 { status = "okay"; qcom,ath10k-calibration-variant = "EnGenius-EMR3500"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi index 0ea20530da..ca064837c8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-ex61x0v2.dtsi @@ -26,10 +26,6 @@ compatible = "netgear,ex61x0v2"; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -334,6 +330,10 @@ nvmem-cells = <&precal_art_5000>, <&macaddr_dnidata_c>; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts index 1f953ee16b..b3617eb45e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-fritzbox-4040.dts @@ -19,10 +19,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -244,6 +240,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + ðphy0 { gpio-controller; #gpio-cells = <2>; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts index ff111d575f..bb197c2742 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-gl-ap1300.dts @@ -27,10 +27,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -269,6 +265,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi index c52af9b1df..9828b4b34e 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-jalapeno.dtsi @@ -12,13 +12,6 @@ }; soc { - mdio@90000 { - status = "okay"; - - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -226,6 +219,12 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts index ddbb5a7986..293bf3d20a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-magic-2-wifi-next.dts @@ -15,14 +15,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - gpio_export { compatible = "gpio-export"; #size-cells = <0>; @@ -234,6 +226,14 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts index 8575b504c8..f8e24ca53d 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-nbg6617.dts @@ -28,10 +28,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -273,6 +269,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts index 882d565bd1..4f31c8f283 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-rt-ac58u.dts @@ -23,10 +23,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -291,6 +287,10 @@ }; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts index fd797bd548..23e9457f02 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-sxtsq-5-ac.dts @@ -28,10 +28,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts index 211a45bde0..d59c41fab1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4018-wre6606.dts @@ -37,10 +37,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -244,6 +240,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &wifi0 { status = "okay"; qcom,ath10k-calibration-variant = "ZyXEL-WRE6606"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts index 64752805a0..3569d6e53a 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-cm520-79f.dts @@ -18,14 +18,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <1000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -348,6 +340,14 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <1000>; +}; + &gmac { status = "okay"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi index e67d1ba7a8..119ba4b7fe 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-e2600ac.dtsi @@ -21,12 +21,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -243,3 +237,9 @@ &usb2_hs_phy { status = "okay"; }; + +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts index 7ff350a22c..8bf86d40cd 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-eap2200.dts @@ -68,12 +68,6 @@ gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; }; }; - - soc { - mdio@90000 { - status = "okay"; - }; - }; }; &watchdog { @@ -275,6 +269,10 @@ }; }; +&mdio { + status = "okay"; +}; + &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts index 6fd8b48874..2344ae7bf8 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzbox-7530.dts @@ -22,10 +22,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -270,6 +266,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts index 6a81d96284..e8daef63f1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-fritzrepeater-3000.dts @@ -18,10 +18,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -253,6 +249,10 @@ }; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts index bc0b5c47a3..89ba523e57 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-gl-b2200.dts @@ -24,10 +24,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -356,6 +352,10 @@ }; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts index 59dbf7f1b0..c25b9ecf5b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-habanero-dvk.dts @@ -20,13 +20,6 @@ }; soc { - mdio@90000 { - status = "okay"; - - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -329,6 +322,12 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts index f0d1402c35..b3eb610b32 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-lhgg-60ad.dts @@ -42,10 +42,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -245,6 +241,10 @@ }; }; +&mdio { + status = "okay"; +}; + ðphy1 { status = "disabled"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts index fd7cd014d6..7ec3c6a9ae 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-map-ac2200.dts @@ -19,10 +19,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -342,6 +338,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts index e00385dbd7..7c0260ec3c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf18a.dts @@ -97,14 +97,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -229,6 +221,14 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &gmac { status = "okay"; nvmem-cell-names = "mac-address"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts index 523c484e91..a4606dd21c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf282plus.dts @@ -80,14 +80,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -212,6 +204,14 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &gmac { status = "okay"; nvmem-cell-names = "mac-address"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts index 8f1a7f6551..06d65b8944 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-mf286d.dts @@ -73,14 +73,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -205,6 +197,14 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &gmac { status = "okay"; nvmem-cell-names = "mac-address"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts index 03b2f95965..752d714393 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-oap100.dts @@ -21,12 +21,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -278,6 +272,12 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi index 5cfed9faa0..bd7565ac02 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi @@ -16,13 +16,6 @@ }; soc { - mdio@90000 { - status = "okay"; - - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -274,6 +267,12 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi index 11046db9bb..0463c61236 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-r619ac.dtsi @@ -19,12 +19,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -282,6 +276,12 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + ðphy0 { qcom,single-led-1000; qcom,single-led-100; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts index 5feebce485..3cd8997a92 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rt-ac42u.dts @@ -23,10 +23,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -269,6 +265,10 @@ }; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts index da8b8a1feb..7a13241b66 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-rtl30vw.dts @@ -138,10 +138,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -376,6 +372,10 @@ qcom,ath10k-calibration-variant = "cellc,rtl30vw"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi index 23030b5e58..67d9f21f71 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-u4019.dtsi @@ -9,14 +9,6 @@ compatible = "unielec,u4019","qcom,ipq4019"; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -204,6 +196,14 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 74985b4b43..92b3fb399b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -244,14 +244,6 @@ }; }; - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <5000>; - }; - tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; @@ -360,6 +352,14 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <5000>; +}; + &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi index fd435dce8e..b494d0ab1c 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-x1pro.dtsi @@ -18,14 +18,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -204,6 +196,14 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi index 74d525afff..ae2d88da93 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-xx8300.dtsi @@ -27,10 +27,6 @@ soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -296,6 +292,10 @@ }; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts index df562aa064..517d691d10 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4028-wpj428.dts @@ -35,14 +35,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; @@ -259,6 +251,14 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts index fbc1616d7c..823431dcf1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ap-303h.dts @@ -22,15 +22,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - - reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -442,6 +433,15 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + + reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; + reset-delay-us = <2000>; +}; + &gmac { status = "okay"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi index a9fe56f537..8c56c7d2f1 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-aruba-glenmorangie.dtsi @@ -12,16 +12,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - - ethphy: ethernet-phy@5 { - reg = <0x5>; - }; - }; - counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; @@ -214,6 +204,16 @@ }; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + + ethphy: ethernet-phy@5 { + reg = <0x5>; + }; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts index d0f30eb86d..dfb639e2bb 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-b1300.dts @@ -38,10 +38,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -283,6 +279,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &gmac { status = "okay"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts index 857a2a551f..e6d74da864 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-gl-s1300.dts @@ -23,10 +23,6 @@ }; soc { - mdio@90000 { - status = "okay"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -348,6 +344,10 @@ status = "okay"; }; +&mdio { + status = "okay"; +}; + &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration"; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi index bebad6f1e6..da22d4a671 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-insect-common.dtsi @@ -33,12 +33,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - /* It is a 56-bit counter that supplies the count to the ARM arch timers and without upstream driver */ counter@4a1000 { @@ -403,6 +397,12 @@ nvmem-cell-names = "mac-address"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &gmac { status = "okay"; nvmem-cells = <&mac_address 0>; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts index 0d3bae2dfa..3bf9f8c42b 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4029-ws-ap3915i.dts @@ -17,12 +17,6 @@ }; soc { - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -124,6 +118,12 @@ status = "okay"; }; +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +}; + &gmac { status = "okay"; }; From 1f3fe4662e84120aff393decf56875fcaa106543 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 14:19:17 +0200 Subject: [PATCH 09/40] ipq40xx: wpj419: use existing label for PCIe node WPJ419 is still manually defining PCIe node, so lets convert it to use the existing upstream labels for PCIe node and while we are here use the -gpios suffix instead. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 92b3fb399b..d8977fe117 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -269,12 +269,6 @@ reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; - - pcie0: pci@40000000 { - status = "okay"; - perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; - wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; - }; }; keys { @@ -352,6 +346,12 @@ status = "okay"; }; +&pcie0 { + status = "okay"; + perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; +}; + &mdio { status = "okay"; pinctrl-0 = <&mdio_pins>; From c9743030e3d6f86a2cf2da8c4f08f76c67a9ef65 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 14:24:16 +0200 Subject: [PATCH 10/40] ipq40xx: wpj419: use existing label for pinctrl node WPJ419 is still manually defining pinctrl node, so lets convert it to use the existing upstream labels for pinctrl node. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 172 +++++++++--------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index d8977fe117..9530824e93 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -53,92 +53,6 @@ }; soc { - pinctrl@1000000 { - mdio_pins: mdio_pinmux { - mux_1 { - pins = "gpio6"; - function = "mdio"; - bias-pull-up; - }; - - mux_2 { - pins = "gpio7"; - function = "mdc"; - bias-pull-up; - }; - }; - - serial_0_pins: serial_pinmux { - mux { - pins = "gpio16", "gpio17"; - function = "blsp_uart0"; - bias-disable; - }; - }; - - serial_1_pins: serial1_pinmux { - mux { - pins = "gpio8", "gpio9", "gpio10", "gpio11"; - function = "blsp_uart1"; - bias-disable; - }; - }; - - spi_0_pins: spi_0_pinmux { - pinmux { - function = "blsp_spi0"; - pins = "gpio13", "gpio14", "gpio15"; - bias-disable; - }; - - pinmux_cs { - function = "gpio"; - pins = "gpio12"; - bias-disable; - output-high; - }; - }; - - i2c_0_pins: i2c_0_pinmux { - mux { - pins = "gpio20", "gpio21"; - function = "blsp_i2c0"; - bias-disable; - }; - }; - - nand_pins: nand_pins { - pullups { - pins = "gpio52", "gpio53", "gpio58", "gpio59"; - function = "qpic"; - bias-pull-up; - }; - - pulldowns { - pins = "gpio54", "gpio55", "gpio56", - "gpio57", "gpio60", "gpio61", - "gpio62", "gpio63", "gpio64", - "gpio65", "gpio66", "gpio67", - "gpio68", "gpio69"; - function = "qpic"; - bias-pull-down; - }; - }; - - led_0_pins: led0_pinmux { - mux_1 { - pins = "gpio36"; - function = "led0"; - bias-pull-down; - }; - mux_2 { - pins = "gpio40"; - function = "led4"; - bias-pull-down; - }; - }; - }; - spi_0: spi@78b5000 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; @@ -282,6 +196,92 @@ }; }; +&tlmm { + mdio_pins: mdio_pinmux { + mux_1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + + mux_2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + serial_0_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + serial_1_pins: serial1_pinmux { + mux { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "blsp_uart1"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + bias-disable; + }; + + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + bias-disable; + output-high; + }; + }; + + i2c_0_pins: i2c_0_pinmux { + mux { + pins = "gpio20", "gpio21"; + function = "blsp_i2c0"; + bias-disable; + }; + }; + + nand_pins: nand_pins { + pullups { + pins = "gpio52", "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; + + led_0_pins: led0_pinmux { + mux_1 { + pins = "gpio36"; + function = "led0"; + bias-pull-down; + }; + mux_2 { + pins = "gpio40"; + function = "led4"; + bias-pull-down; + }; + }; +}; + &blsp_dma { status = "okay"; }; From 592b6aabca48246e452b702496796fee258a8466 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 7 May 2024 14:26:03 +0200 Subject: [PATCH 11/40] ipq40xx: wpj419: use existing label for SPI node WPJ419 is still manually defining SPI node, so lets convert it to use the existing upstream labels for SPI node. Link: https://github.com/openwrt/openwrt/pull/15415 Signed-off-by: Robert Marko --- .../arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts | 210 +++++++++--------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts index 9530824e93..40819fd603 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-wpj419.dts @@ -53,111 +53,6 @@ }; soc { - spi_0: spi@78b5000 { - pinctrl-0 = <&spi_0_pins>; - pinctrl-names = "default"; - status = "okay"; - cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, <&tlmm 41 GPIO_ACTIVE_HIGH>; - num-cs = <2>; - - flash0@0 { - reg = <0>; - compatible = "jedec,spi-nor"; - spi-max-frequency = <24000000>; - broken-flash-reset; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "0:SBL1"; - reg = <0x000000 0x040000>; - read-only; - }; - - partition@40000 { - label = "0:MIBIB"; - reg = <0x040000 0x020000>; - read-only; - }; - - partition@60000 { - label = "0:QSEE"; - reg = <0x060000 0x060000>; - read-only; - }; - - partition@c0000 { - label = "0:CDT"; - reg = <0x0c0000 0x010000>; - read-only; - }; - - partition@d0000 { - label = "0:DDRPARAMS"; - reg = <0x0d0000 0x010000>; - read-only; - }; - - partition@e0000 { - label = "u-boot-env"; - reg = <0x0e0000 0x010000>; - }; - - partition@f0000 { - label = "u-boot"; - reg = <0x0f0000 0x080000>; - read-only; - }; - - partition@170000 { - label = "0:ART"; - reg = <0x170000 0x010000>; - read-only; - - nvmem-layout { - compatible = "fixed-layout"; - #address-cells = <1>; - #size-cells = <1>; - - precal_art_1000: precal@1000 { - reg = <0x1000 0x2f20>; - }; - - precal_art_5000: precal@5000 { - reg = <0x5000 0x2f20>; - }; - }; - }; - }; - }; - - nand@1 { - reg = <1>; - status = "okay"; - compatible = "spi-nand"; - spi-max-frequency = <24000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - /* The device has 128MB, but we can only address - * 64MB because of the bootloader's default settings. - * This is due to the old mt29f driver, - * which detected the deivce with only 64MB - */ - partition@0 { - label = "ubi"; - reg = <0x0000000 0x4000000>; - }; - }; - }; - }; - tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; @@ -304,6 +199,111 @@ status = "okay"; }; +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, <&tlmm 41 GPIO_ACTIVE_HIGH>; + num-cs = <2>; + + flash0@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + broken-flash-reset; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:SBL1"; + reg = <0x000000 0x040000>; + read-only; + }; + + partition@40000 { + label = "0:MIBIB"; + reg = <0x040000 0x020000>; + read-only; + }; + + partition@60000 { + label = "0:QSEE"; + reg = <0x060000 0x060000>; + read-only; + }; + + partition@c0000 { + label = "0:CDT"; + reg = <0x0c0000 0x010000>; + read-only; + }; + + partition@d0000 { + label = "0:DDRPARAMS"; + reg = <0x0d0000 0x010000>; + read-only; + }; + + partition@e0000 { + label = "u-boot-env"; + reg = <0x0e0000 0x010000>; + }; + + partition@f0000 { + label = "u-boot"; + reg = <0x0f0000 0x080000>; + read-only; + }; + + partition@170000 { + label = "0:ART"; + reg = <0x170000 0x010000>; + read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + precal_art_1000: precal@1000 { + reg = <0x1000 0x2f20>; + }; + + precal_art_5000: precal@5000 { + reg = <0x5000 0x2f20>; + }; + }; + }; + }; + }; + + nand@1 { + reg = <1>; + status = "okay"; + compatible = "spi-nand"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* The device has 128MB, but we can only address + * 64MB because of the bootloader's default settings. + * This is due to the old mt29f driver, + * which detected the deivce with only 64MB + */ + partition@0 { + label = "ubi"; + reg = <0x0000000 0x4000000>; + }; + }; + }; +}; + &watchdog { status = "okay"; }; From 0341a06f1f22cf1d4de81bc5501364342a388e0f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 9 May 2024 16:03:08 +0800 Subject: [PATCH 12/40] rockchip: switch to kernel 6.6 Switch to Linux kernel version 6.6 and drop configs, files and patches for Linux 6.1. Signed-off-by: Tianling Shen --- target/linux/rockchip/Makefile | 3 +- target/linux/rockchip/armv8/config-6.1 | 709 ---------- ...-Update-DLL-and-pre-change-delay-for.patch | 60 - ...mshc-properly-determine-max-clock-on.patch | 52 - ...-rockchip-Add-FriendlyARM-NanoPi-R2C.patch | 70 - ...ockchip-rk3328-Add-Orange-Pi-R1-Plus.patch | 407 ------ ...hip-Add-Xunlong-OrangePi-R1-Plus-LTS.patch | 71 - ...rockchip-Add-FriendlyElec-Nanopi-R5S.patch | 754 ---------- ...eate-common-dtsi-for-NanoPi-R5-serie.patch | 1226 ----------------- ...chip-fix-gmac-support-for-NanoPi-R5S.patch | 49 - ...move-I2S1-TDM-node-for-the-NanoPi-R5.patch | 39 - ...-rockchip-Add-FriendlyARM-NanoPi-R5C.patch | 152 -- ...-fix-button-reset-pin-for-nanopi-r5c.patch | 37 - ...nfigure-eth-pad-driver-strength-for-.patch | 33 - ...-Add-Radxa-Compute-Module-3-IO-board.patch | 233 ---- ...chip-Add-FriendlyARM-NanoPi-R2C-Plus.patch | 63 - ...hip-Enable-Ethernet-for-Radxa-CM3-IO.patch | 131 -- ...-rk3566-based-Radxa-Compute-Module-3.patch | 386 ------ ...Enable-WiFi-BT-support-for-Radxa-CM3.patch | 134 -- ...-Enable-USB-OTG-for-rk3566-Radxa-CM3.patch | 32 - ...ockchip-Fix-compatible-for-Radxa-CM3.patch | 45 - ...chip-minor-whitespace-cleanup-around.patch | 28 - ...0-alias-to-the-dts-for-RK3566-boards.patch | 28 - ...rm64-dts-rockchip-Add-Radxa-CM3I-E25.patch | 689 --------- ....3-arm64-dts-rockchip-Update-eMMC-SD.patch | 48 - ...-arm64-dts-rockchip-Add-missing-CM3i.patch | 35 - ...Correct-the-model-name-for-Radxa-E25.patch | 28 - ...hip-Fix-PCIe-regulators-on-Radxa-E25.patch | 79 -- ...ts-rockchip-Enable-SATA-on-Radxa-E25.patch | 41 - ...ip-adjust-vendor-on-Banana-Pi-R2-Pro.patch | 27 - ...ip-set-PHY-address-of-MT7531-switch-.patch | 40 - ...ip-regulator-for-sd-needs-to-be-alwa.patch | 33 - ...-rockchip-use-system-LED-for-OpenWrt.patch | 77 -- ...dd-OF-node-for-USB-eth-on-NanoPi-R2S.patch | 24 - .../105-nanopi-r4s-sd-signalling.patch | 36 - .../patches-6.1/106-r4s-openwrt-leds.patch | 16 - ...ip-Update-LED-properties-for-Orange-.patch | 40 - ...ip-add-LED-configuration-to-Orange-P.patch | 24 - .../109-nanopc-t4-add-led-aliases.patch | 16 - ...ip-Update-LED-properties-for-NanoPi-.patch | 45 - .../111-radxa-cm3-io-add-led-aliases.patch | 36 - .../112-radxa-e25-add-led-aliases.patch | 24 - ...-hwrng-add-Rockchip-SoC-hwrng-driver.patch | 339 ----- ...kchip-add-DT-entry-for-RNG-to-RK356x.patch | 56 - 44 files changed, 1 insertion(+), 6494 deletions(-) delete mode 100644 target/linux/rockchip/armv8/config-6.1 delete mode 100644 target/linux/rockchip/patches-6.1/001-v6.3-mmc-sdhci-of-dwcmshc-Update-DLL-and-pre-change-delay-for.patch delete mode 100644 target/linux/rockchip/patches-6.1/002-v6.4-mmc-sdhci-of-dwcmshc-properly-determine-max-clock-on.patch delete mode 100644 target/linux/rockchip/patches-6.1/006-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C.patch delete mode 100644 target/linux/rockchip/patches-6.1/007-v6.3-arm64-dts-rockchip-rk3328-Add-Orange-Pi-R1-Plus.patch delete mode 100644 target/linux/rockchip/patches-6.1/008-v6.4-arm64-dts-rockchip-Add-Xunlong-OrangePi-R1-Plus-LTS.patch delete mode 100644 target/linux/rockchip/patches-6.1/009-v6.4-arm64-dts-rockchip-Add-FriendlyElec-Nanopi-R5S.patch delete mode 100644 target/linux/rockchip/patches-6.1/010-v6.4-arm64-dts-rockchip-create-common-dtsi-for-NanoPi-R5-serie.patch delete mode 100644 target/linux/rockchip/patches-6.1/011-v6.4-arm64-dts-rockchip-fix-gmac-support-for-NanoPi-R5S.patch delete mode 100644 target/linux/rockchip/patches-6.1/012-v6.4-arm64-dts-rockchip-remove-I2S1-TDM-node-for-the-NanoPi-R5.patch delete mode 100644 target/linux/rockchip/patches-6.1/013-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R5C.patch delete mode 100644 target/linux/rockchip/patches-6.1/014-v6.4-arm64-dts-rockchip-fix-button-reset-pin-for-nanopi-r5c.patch delete mode 100644 target/linux/rockchip/patches-6.1/015-v6.8-arm64-dts-rockchip-configure-eth-pad-driver-strength-for-.patch delete mode 100644 target/linux/rockchip/patches-6.1/016-v6.3-arm64-dts-rockchip-Add-Radxa-Compute-Module-3-IO-board.patch delete mode 100644 target/linux/rockchip/patches-6.1/016-v6.5-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C-Plus.patch delete mode 100644 target/linux/rockchip/patches-6.1/017-v6.3-arm64-dts-rockchip-Enable-Ethernet-for-Radxa-CM3-IO.patch delete mode 100644 target/linux/rockchip/patches-6.1/018-v6.3-arm64-dts-rockchip-Add-rk3566-based-Radxa-Compute-Module-3.patch delete mode 100644 target/linux/rockchip/patches-6.1/019-v6.3-arm64-dts-rockchip-Enable-WiFi-BT-support-for-Radxa-CM3.patch delete mode 100644 target/linux/rockchip/patches-6.1/020-v6.4-arm64-dts-rockchip-Enable-USB-OTG-for-rk3566-Radxa-CM3.patch delete mode 100644 target/linux/rockchip/patches-6.1/021-v6.3-arm64-dts-rockchip-Fix-compatible-for-Radxa-CM3.patch delete mode 100644 target/linux/rockchip/patches-6.1/022-v6.5-arm64-dts-rockchip-minor-whitespace-cleanup-around.patch delete mode 100644 target/linux/rockchip/patches-6.1/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch delete mode 100644 target/linux/rockchip/patches-6.1/024-v6.3-arm64-dts-rockchip-Add-Radxa-CM3I-E25.patch delete mode 100644 target/linux/rockchip/patches-6.1/025-v6.3-arm64-dts-rockchip-Update-eMMC-SD.patch delete mode 100644 target/linux/rockchip/patches-6.1/026-v6.3-arm64-dts-rockchip-Add-missing-CM3i.patch delete mode 100644 target/linux/rockchip/patches-6.1/027-v6.3-arm64-dts-rockchip-Correct-the-model-name-for-Radxa-E25.patch delete mode 100644 target/linux/rockchip/patches-6.1/028-v6.6-arm64-dts-rockchip-Fix-PCIe-regulators-on-Radxa-E25.patch delete mode 100644 target/linux/rockchip/patches-6.1/029-v6.6-arm64-dts-rockchip-Enable-SATA-on-Radxa-E25.patch delete mode 100644 target/linux/rockchip/patches-6.1/030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch delete mode 100644 target/linux/rockchip/patches-6.1/031-v6.10arm64-dts-rockchip-set-PHY-address-of-MT7531-switch-.patch delete mode 100644 target/linux/rockchip/patches-6.1/032-v6.10-arm64-dts-rockchip-regulator-for-sd-needs-to-be-alwa.patch delete mode 100644 target/linux/rockchip/patches-6.1/100-rockchip-use-system-LED-for-OpenWrt.patch delete mode 100644 target/linux/rockchip/patches-6.1/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch delete mode 100644 target/linux/rockchip/patches-6.1/105-nanopi-r4s-sd-signalling.patch delete mode 100644 target/linux/rockchip/patches-6.1/106-r4s-openwrt-leds.patch delete mode 100644 target/linux/rockchip/patches-6.1/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch delete mode 100644 target/linux/rockchip/patches-6.1/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch delete mode 100644 target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch delete mode 100644 target/linux/rockchip/patches-6.1/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch delete mode 100644 target/linux/rockchip/patches-6.1/111-radxa-cm3-io-add-led-aliases.patch delete mode 100644 target/linux/rockchip/patches-6.1/112-radxa-e25-add-led-aliases.patch delete mode 100644 target/linux/rockchip/patches-6.1/300-hwrng-add-Rockchip-SoC-hwrng-driver.patch delete mode 100644 target/linux/rockchip/patches-6.1/301-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch diff --git a/target/linux/rockchip/Makefile b/target/linux/rockchip/Makefile index 75423f70ef..26af6855ac 100644 --- a/target/linux/rockchip/Makefile +++ b/target/linux/rockchip/Makefile @@ -7,8 +7,7 @@ BOARDNAME:=Rockchip FEATURES:=ext4 audio usb usbgadget display gpio fpu pci pcie rootfs-part boot-part squashfs SUBTARGETS:=armv8 -KERNEL_PATCHVER:=6.1 -KERNEL_TESTING_PATCHVER:=6.6 +KERNEL_PATCHVER:=6.6 define Target/Description Build firmware image for Rockchip SoC devices. diff --git a/target/linux/rockchip/armv8/config-6.1 b/target/linux/rockchip/armv8/config-6.1 deleted file mode 100644 index 6337245ff8..0000000000 --- a/target/linux/rockchip/armv8/config-6.1 +++ /dev/null @@ -1,709 +0,0 @@ -CONFIG_64BIT=y -CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_KEEP_MEMBLOCK=y -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_ARCH_MMAP_RND_BITS=18 -CONFIG_ARCH_MMAP_RND_BITS_MAX=33 -CONFIG_ARCH_MMAP_RND_BITS_MIN=18 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 -CONFIG_ARCH_NR_GPIO=0 -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ARCH_ROCKCHIP=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_STACKWALK=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_ARCH_WANTS_THP_SWAP=y -CONFIG_ARC_EMAC_CORE=y -CONFIG_ARM64=y -CONFIG_ARM64_4K_PAGES=y -CONFIG_ARM64_CNP=y -CONFIG_ARM64_EPAN=y -CONFIG_ARM64_ERRATUM_2051678=y -CONFIG_ARM64_ERRATUM_2054223=y -CONFIG_ARM64_ERRATUM_2067961=y -CONFIG_ARM64_ERRATUM_2077057=y -CONFIG_ARM64_ERRATUM_2658417=y -CONFIG_ARM64_ERRATUM_819472=y -CONFIG_ARM64_ERRATUM_824069=y -CONFIG_ARM64_ERRATUM_826319=y -CONFIG_ARM64_ERRATUM_827319=y -CONFIG_ARM64_ERRATUM_832075=y -CONFIG_ARM64_ERRATUM_843419=y -CONFIG_ARM64_ERRATUM_858921=y -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y -CONFIG_ARM64_PAGE_SHIFT=12 -CONFIG_ARM64_PAN=y -CONFIG_ARM64_PA_BITS=48 -CONFIG_ARM64_PA_BITS_48=y -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y -CONFIG_ARM64_RAS_EXTN=y -CONFIG_ARM64_SME=y -CONFIG_ARM64_SVE=y -CONFIG_ARM64_TAGGED_ADDR_ABI=y -CONFIG_ARM64_VA_BITS=48 -# CONFIG_ARM64_VA_BITS_39 is not set -CONFIG_ARM64_VA_BITS_48=y -CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y -CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y -CONFIG_ARM_AMBA=y -CONFIG_ARM_ARCH_TIMER=y -CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y -CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_ARM_GIC=y -CONFIG_ARM_GIC_V2M=y -CONFIG_ARM_GIC_V3=y -CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y -CONFIG_ARM_MHU=y -CONFIG_ARM_MHU_V2=y -CONFIG_ARM_PSCI_CPUIDLE=y -CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y -CONFIG_ARM_PSCI_FW=y -# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set -CONFIG_ARM_SCMI_CPUFREQ=y -CONFIG_ARM_SCMI_HAVE_SHMEM=y -CONFIG_ARM_SCMI_HAVE_TRANSPORT=y -CONFIG_ARM_SCMI_POWER_CONTROL=y -CONFIG_ARM_SCMI_POWER_DOMAIN=y -CONFIG_ARM_SCMI_PROTOCOL=y -CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y -CONFIG_ARM_SCMI_TRANSPORT_SMC=y -CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE=y -CONFIG_ARM_SCPI_CPUFREQ=y -CONFIG_ARM_SCPI_POWER_DOMAIN=y -CONFIG_ARM_SCPI_PROTOCOL=y -CONFIG_ARM_SMMU=y -CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y -# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set -CONFIG_ARM_SMMU_V3=y -# CONFIG_ARM_SMMU_V3_SVA is not set -CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GPIO=y -CONFIG_BACKLIGHT_PWM=y -CONFIG_BLK_DEV_BSG=y -CONFIG_BLK_DEV_BSGLIB=y -CONFIG_BLK_DEV_BSG_COMMON=y -# CONFIG_BLK_DEV_INITRD is not set -CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_BLK_DEV_INTEGRITY_T10=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_NVME=y -CONFIG_BLK_DEV_PCIESSD_MTIP32XX=y -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BRCMSTB_GISB_ARB=y -CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BSD_PROCESS_ACCT_V3=y -CONFIG_CC_HAVE_SHADOW_CALL_STACK=y -CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_CC_NO_ARRAY_BOUNDS=y -CONFIG_CHARGER_GPIO=y -# CONFIG_CHARGER_RK817 is not set -CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_PX30=y -CONFIG_CLK_RK3308=y -CONFIG_CLK_RK3328=y -CONFIG_CLK_RK3368=y -CONFIG_CLK_RK3399=y -CONFIG_CLK_RK3568=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUG is not set -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=16 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -CONFIG_COMMON_CLK=y -CONFIG_COMMON_CLK_RK808=y -CONFIG_COMMON_CLK_ROCKCHIP=y -CONFIG_COMMON_CLK_SCMI=y -CONFIG_COMMON_CLK_SCPI=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -CONFIG_CPU_FREQ=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -# CONFIG_CPU_FREQ_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y -CONFIG_CPU_ISOLATION=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PM=y -CONFIG_CPU_RMAP=y -CONFIG_CPU_THERMAL=y -CONFIG_CRASH_CORE=y -CONFIG_CRASH_DUMP=y -CONFIG_CRC16=y -# CONFIG_CRC32_SARWATE is not set -CONFIG_CRC32_SLICEBY8=y -CONFIG_CRC64=y -CONFIG_CRC64_ROCKSOFT=y -CONFIG_CRC_T10DIF=y -CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_CRYPTO_AES_ARM64=y -CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -CONFIG_CRYPTO_AES_ARM64_CE_CCM=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRC64_ROCKSOFT=y -CONFIG_CRYPTO_CRCT10DIF=y -CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y -CONFIG_CRYPTO_CRYPTD=y -# CONFIG_CRYPTO_DEV_ROCKCHIP is not set -CONFIG_CRYPTO_GHASH_ARM64_CE=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_POLYVAL=y -CONFIG_CRYPTO_POLYVAL_ARM64_CE=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_SM3=y -CONFIG_CRYPTO_SM3_NEON=y -CONFIG_CRYPTO_SM4=y -CONFIG_CRYPTO_SM4_ARM64_CE_BLK=y -CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=y -CONFIG_DCACHE_WORD_ACCESS=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_INFO=y -# CONFIG_DEVFREQ_GOV_PASSIVE is not set -CONFIG_DEVFREQ_GOV_PERFORMANCE=y -CONFIG_DEVFREQ_GOV_POWERSAVE=y -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -CONFIG_DEVFREQ_GOV_USERSPACE=y -# CONFIG_DEVFREQ_THERMAL is not set -CONFIG_DEVMEM=y -# CONFIG_DEVPORT is not set -CONFIG_DMADEVICES=y -CONFIG_DMA_CMA=y -CONFIG_DMA_DIRECT_REMAP=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -CONFIG_DMA_OPS=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DNOTIFY=y -CONFIG_DTC=y -CONFIG_DT_IDLE_GENPD=y -CONFIG_DT_IDLE_STATES=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_DWMAC_DWC_QOS_ETH=y -CONFIG_DWMAC_GENERIC=y -CONFIG_DWMAC_ROCKCHIP=y -CONFIG_DW_WATCHDOG=y -CONFIG_EDAC_SUPPORT=y -CONFIG_EEPROM_AT24=y -CONFIG_EMAC_ROCKCHIP=y -CONFIG_ENERGY_MODEL=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y -CONFIG_EXT4_FS=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FANOTIFY=y -CONFIG_FHANDLE=y -CONFIG_FIXED_PHY=y -CONFIG_FIX_EARLYCON_MEM=y -# CONFIG_FORTIFY_SOURCE is not set -CONFIG_FRAME_POINTER=y -CONFIG_FS_IOMAP=y -CONFIG_FS_MBCACHE=y -CONFIG_FS_POSIX_ACL=y -CONFIG_FWNODE_MDIO=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_FW_LOADER_SYSFS=y -CONFIG_GCC11_NO_ARRAY_BOUNDS=y -CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ARCH_TOPOLOGY=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IOREMAP=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_MSI_IRQ_DOMAIN=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_DWAPB=y -CONFIG_GPIO_GENERIC=y -CONFIG_GPIO_GENERIC_PLATFORM=y -CONFIG_GPIO_ROCKCHIP=y -CONFIG_GPIO_SYSCON=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HID=y -CONFIG_HID_GENERIC=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HOTPLUG_PCI=y -# CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_PCIE is not set -# CONFIG_HOTPLUG_PCI_SHPC is not set -CONFIG_HUGETLBFS=y -CONFIG_HUGETLB_PAGE=y -CONFIG_HWMON=y -CONFIG_HWSPINLOCK=y -CONFIG_HW_CONSOLE=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_ROCKCHIP=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_RK3X=y -CONFIG_IIO=y -# CONFIG_IIO_SCMI is not set -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_INDIRECT_PIO=y -CONFIG_INPUT=y -CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_FF_MEMLESS=y -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_MATRIXKMAP=y -CONFIG_INPUT_RK805_PWRKEY=y -CONFIG_IOMMU_API=y -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set -# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y -CONFIG_IOMMU_DMA=y -CONFIG_IOMMU_IOVA=y -CONFIG_IOMMU_IO_PGTABLE=y -# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set -# CONFIG_IOMMU_IO_PGTABLE_DART is not set -CONFIG_IOMMU_IO_PGTABLE_LPAE=y -# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set -CONFIG_IOMMU_SUPPORT=y -# CONFIG_IO_STRICT_DEVMEM is not set -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_MSI_IOMMU=y -CONFIG_IRQ_TIME_ACCOUNTING=y -CONFIG_IRQ_WORK=y -CONFIG_JBD2=y -CONFIG_JFFS2_ZLIB=y -CONFIG_JUMP_LABEL=y -CONFIG_KALLSYMS=y -CONFIG_KCMP=y -CONFIG_KEXEC_CORE=y -CONFIG_KEXEC_FILE=y -CONFIG_KSM=y -# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_PWM=y -CONFIG_LEDS_SYSCON=y -CONFIG_LEDS_TRIGGER_CPU=y -CONFIG_LEDS_TRIGGER_PANIC=y -CONFIG_LIBCRC32C=y -CONFIG_LIBFDT=y -CONFIG_LOCALVERSION_AUTO=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_LOG_BUF_SHIFT=19 -CONFIG_MAGIC_SYSRQ=y -CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_MAILBOX=y -# CONFIG_MAILBOX_TEST is not set -CONFIG_MDIO_BUS=y -CONFIG_MDIO_BUS_MUX=y -CONFIG_MDIO_BUS_MUX_GPIO=y -CONFIG_MDIO_BUS_MUX_MMIOREG=y -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_DEVRES=y -CONFIG_MEDIATEK_GE_PHY=y -CONFIG_MEMFD_CREATE=y -CONFIG_MEMORY_ISOLATION=y -CONFIG_MFD_CORE=y -# CONFIG_MFD_KHADAS_MCU is not set -CONFIG_MFD_RK808=y -CONFIG_MFD_SYSCON=y -CONFIG_MIGRATION=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=32 -CONFIG_MMC_CQHCI=y -CONFIG_MMC_DW=y -# CONFIG_MMC_DW_BLUEFIELD is not set -# CONFIG_MMC_DW_EXYNOS is not set -# CONFIG_MMC_DW_HI3798CV200 is not set -# CONFIG_MMC_DW_K3 is not set -# CONFIG_MMC_DW_PCI is not set -CONFIG_MMC_DW_PLTFM=y -CONFIG_MMC_DW_ROCKCHIP=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_OF_ARASAN=y -CONFIG_MMC_SDHCI_OF_DWCMSHC=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_MOTORCOMM_PHY=y -CONFIG_MQ_IOSCHED_DEADLINE=y -# CONFIG_MTD_CFI is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -CONFIG_MTD_SPI_NOR=y -CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y -CONFIG_MTD_SPLIT_FIRMWARE=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_NET_DEVLINK=y -CONFIG_NET_DSA=y -CONFIG_NET_DSA_MT7530=y -CONFIG_NET_DSA_MT7530_MDIO=y -CONFIG_NET_DSA_MT7530_MMIO=y -CONFIG_NET_DSA_TAG_MTK=y -CONFIG_NET_FLOW_LIMIT=y -CONFIG_NET_PTP_CLASSIFY=y -CONFIG_NET_SELFTESTS=y -CONFIG_NET_SWITCHDEV=y -CONFIG_NLS=y -CONFIG_NLS_ISO8859_1=y -CONFIG_NOP_USB_XCEIV=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=256 -CONFIG_NVMEM=y -CONFIG_NVMEM_ROCKCHIP_EFUSE=y -# CONFIG_NVMEM_ROCKCHIP_OTP is not set -CONFIG_NVMEM_SYSFS=y -CONFIG_NVME_CORE=y -# CONFIG_NVME_HWMON is not set -# CONFIG_NVME_MULTIPATH is not set -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_DYNAMIC=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IOMMU=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y -CONFIG_OF_MDIO=y -CONFIG_OF_OVERLAY=y -CONFIG_OF_RESOLVE=y -# CONFIG_OVERLAY_FS_XINO_AUTO is not set -CONFIG_PADATA=y -CONFIG_PAGE_POOL=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_PARTITION_PERCPU=y -CONFIG_PCI=y -CONFIG_PCIEAER=y -CONFIG_PCIEASPM=y -CONFIG_PCIEASPM_DEFAULT=y -# CONFIG_PCIEASPM_PERFORMANCE is not set -# CONFIG_PCIEASPM_POWERSAVE is not set -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_DW=y -CONFIG_PCIE_DW_HOST=y -CONFIG_PCIE_PME=y -CONFIG_PCIE_ROCKCHIP=y -CONFIG_PCIE_ROCKCHIP_DW_HOST=y -CONFIG_PCIE_ROCKCHIP_HOST=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PCI_STUB=y -CONFIG_PCS_MTK_LYNXI=y -CONFIG_PCS_XPCS=y -CONFIG_PGTABLE_LEVELS=4 -CONFIG_PHYLIB=y -CONFIG_PHYLINK=y -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_PHY_ROCKCHIP_DP=y -# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set -CONFIG_PHY_ROCKCHIP_EMMC=y -# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set -# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set -# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set -CONFIG_PHY_ROCKCHIP_INNO_USB2=y -CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y -CONFIG_PHY_ROCKCHIP_PCIE=y -CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=y -CONFIG_PHY_ROCKCHIP_TYPEC=y -CONFIG_PHY_ROCKCHIP_USB=y -CONFIG_PINCTRL=y -CONFIG_PINCTRL_RK805=y -CONFIG_PINCTRL_ROCKCHIP=y -# CONFIG_PINCTRL_SINGLE is not set -CONFIG_PL330_DMA=y -CONFIG_PLATFORM_MHU=y -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_DEVFREQ=y -# CONFIG_PM_DEVFREQ_EVENT is not set -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_OPP=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POWER_RESET=y -CONFIG_POWER_SUPPLY=y -CONFIG_POWER_SUPPLY_HWMON=y -CONFIG_PPS=y -CONFIG_PREEMPT=y -CONFIG_PREEMPTION=y -CONFIG_PREEMPT_BUILD=y -CONFIG_PREEMPT_COUNT=y -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_RCU=y -CONFIG_PRINTK_TIME=y -# CONFIG_PRINT_QUOTA_WARNING is not set -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PROC_VMCORE=y -CONFIG_PTP_1588_CLOCK=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y -CONFIG_PWM=y -CONFIG_PWM_ROCKCHIP=y -CONFIG_PWM_SYSFS=y -# CONFIG_QFMT_V2 is not set -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_QUOTA=y -CONFIG_QUOTACTL=y -CONFIG_RAID_ATTRS=y -CONFIG_RANDOMIZE_BASE=y -CONFIG_RANDOMIZE_MODULE_REGION_FULL=y -CONFIG_RANDSTRUCT_NONE=y -CONFIG_RAS=y -CONFIG_RATIONAL=y -# CONFIG_RAVE_SP_CORE is not set -CONFIG_RCU_TRACE=y -CONFIG_REALTEK_PHY=y -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_IRQ=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_ARM_SCMI=y -CONFIG_REGULATOR_FAN53555=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -CONFIG_REGULATOR_PWM=y -CONFIG_REGULATOR_RK808=y -CONFIG_RELOCATABLE=y -CONFIG_RESET_CONTROLLER=y -CONFIG_RESET_SCMI=y -CONFIG_RFS_ACCEL=y -CONFIG_ROCKCHIP_GRF=y -CONFIG_ROCKCHIP_IODOMAIN=y -CONFIG_ROCKCHIP_IOMMU=y -CONFIG_ROCKCHIP_MBOX=y -CONFIG_ROCKCHIP_PHY=y -CONFIG_ROCKCHIP_PM_DOMAINS=y -# CONFIG_ROCKCHIP_SARADC is not set -CONFIG_ROCKCHIP_THERMAL=y -CONFIG_ROCKCHIP_TIMER=y -CONFIG_RODATA_FULL_DEFAULT_ENABLED=y -CONFIG_RPS=y -CONFIG_RSEQ=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_HYM8563=y -CONFIG_RTC_DRV_RK808=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RTC_NVMEM=y -# CONFIG_RUNTIME_TESTING_MENU is not set -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_SCHED_MC=y -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -CONFIG_SCSI_SAS_ATTRS=y -CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS=y -# CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SENSORS_ARM_SCMI=y -CONFIG_SENSORS_ARM_SCPI=y -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_DW=y -CONFIG_SERIAL_8250_DWLIB=y -CONFIG_SERIAL_8250_EXAR=y -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_FSL=y -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -CONFIG_SERIAL_DEV_CTRL_TTYPORT=y -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIO=y -CONFIG_SERIO_AMBAKMI=y -CONFIG_SERIO_LIBPS2=y -CONFIG_SG_POOL=y -CONFIG_SMP=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPI=y -CONFIG_SPI_BITBANG=y -CONFIG_SPI_DYNAMIC=y -CONFIG_SPI_MASTER=y -CONFIG_SPI_MEM=y -CONFIG_SPI_ROCKCHIP=y -CONFIG_SPI_ROCKCHIP_SFC=y -CONFIG_SPI_SPIDEV=y -# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set -CONFIG_SQUASHFS_DECOMP_SINGLE=y -# CONFIG_SQUASHFS_EMBEDDED is not set -CONFIG_SQUASHFS_FILE_CACHE=y -# CONFIG_SQUASHFS_FILE_DIRECT is not set -CONFIG_SRAM=y -CONFIG_SRCU=y -CONFIG_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR_PER_TASK=y -CONFIG_STACKPROTECTOR_STRONG=y -CONFIG_STACKTRACE=y -CONFIG_STMMAC_ETH=y -CONFIG_STMMAC_PLATFORM=y -CONFIG_STRICT_DEVMEM=y -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_SWAP is not set -CONFIG_SWIOTLB=y -CONFIG_SWPHY=y -CONFIG_SYNC_FILE=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_SYSFS_SYSCALL=y -# CONFIG_TEXTSEARCH is not set -CONFIG_THERMAL=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_EMULATION=y -CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_OF=y -CONFIG_THREAD_INFO_IN_TASK=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TRACE_CLOCK=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_TRANSPARENT_HUGEPAGE=y -CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y -# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set -CONFIG_TRANS_TABLE=y -CONFIG_TREE_RCU=y -CONFIG_TREE_SRCU=y -CONFIG_TYPEC=y -# CONFIG_TYPEC_ANX7411 is not set -CONFIG_TYPEC_FUSB302=y -# CONFIG_TYPEC_HD3SS3220 is not set -# CONFIG_TYPEC_MUX_FSA4480 is not set -# CONFIG_TYPEC_MUX_PI3USB30532 is not set -# CONFIG_TYPEC_RT1719 is not set -# CONFIG_TYPEC_STUSB160X is not set -# CONFIG_TYPEC_TCPCI is not set -CONFIG_TYPEC_TCPM=y -# CONFIG_TYPEC_TPS6598X is not set -# CONFIG_TYPEC_WUSB3801 is not set -# CONFIG_UACCE is not set -# CONFIG_UCLAMP_TASK is not set -# CONFIG_UEVENT_HELPER is not set -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_UNMAP_KERNEL_AT_EL0=y -CONFIG_USB=y -CONFIG_USB_COMMON=y -CONFIG_USB_DWC3=y -CONFIG_USB_DWC3_HOST=y -CONFIG_USB_DWC3_OF_SIMPLE=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_HCD_PLATFORM=y -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_HID=y -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_PLATFORM=y -CONFIG_USB_PHY=y -CONFIG_USB_ROLE_SWITCH=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_ULPI=y -CONFIG_USB_ULPI_BUS=y -CONFIG_USB_ULPI_VIEWPORT=y -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PLATFORM=y -# CONFIG_VIRTIO_MENU is not set -CONFIG_VMAP_STACK=y -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XARRAY_MULTI=y -CONFIG_XPS=y -CONFIG_XXHASH=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZONE_DMA32=y diff --git a/target/linux/rockchip/patches-6.1/001-v6.3-mmc-sdhci-of-dwcmshc-Update-DLL-and-pre-change-delay-for.patch b/target/linux/rockchip/patches-6.1/001-v6.3-mmc-sdhci-of-dwcmshc-Update-DLL-and-pre-change-delay-for.patch deleted file mode 100644 index 2bb542be36..0000000000 --- a/target/linux/rockchip/patches-6.1/001-v6.3-mmc-sdhci-of-dwcmshc-Update-DLL-and-pre-change-delay-for.patch +++ /dev/null @@ -1,60 +0,0 @@ -From b75a52b0dda353aeefb4830a320589a363f49579 Mon Sep 17 00:00:00 2001 -From: Shawn Lin -Date: Thu, 2 Feb 2023 08:35:16 +0800 -Subject: [PATCH] mmc: sdhci-of-dwcmshc: Update DLL and pre-change delay for - rockchip platform - -For Rockchip platform, DLL bypass bit and start bit need to be set if -DLL is not locked. And adjust pre-change delay to 0x3 for better signal -test result. - -Signed-off-by: Shawn Lin -Link: https://lore.kernel.org/r/1675298118-64243-2-git-send-email-shawn.lin@rock-chips.com -Signed-off-by: Ulf Hansson ---- - drivers/mmc/host/sdhci-of-dwcmshc.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - ---- a/drivers/mmc/host/sdhci-of-dwcmshc.c -+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -48,6 +48,7 @@ - #define DWCMSHC_EMMC_DLL_RXCLK_SRCSEL 29 - #define DWCMSHC_EMMC_DLL_START_POINT 16 - #define DWCMSHC_EMMC_DLL_INC 8 -+#define DWCMSHC_EMMC_DLL_BYPASS BIT(24) - #define DWCMSHC_EMMC_DLL_DLYENA BIT(27) - #define DLL_TXCLK_TAPNUM_DEFAULT 0x10 - #define DLL_TXCLK_TAPNUM_90_DEGREES 0xA -@@ -60,6 +61,7 @@ - #define DLL_RXCLK_NO_INVERTER 1 - #define DLL_RXCLK_INVERTER 0 - #define DLL_CMDOUT_TAPNUM_90_DEGREES 0x8 -+#define DLL_RXCLK_ORI_GATE BIT(31) - #define DLL_CMDOUT_TAPNUM_FROM_SW BIT(24) - #define DLL_CMDOUT_SRC_CLK_NEG BIT(28) - #define DLL_CMDOUT_EN_SRC_CLK_NEG BIT(29) -@@ -234,9 +236,12 @@ static void dwcmshc_rk3568_set_clock(str - sdhci_writel(host, extra, reg); - - if (clock <= 52000000) { -- /* Disable DLL and reset both of sample and drive clock */ -- sdhci_writel(host, 0, DWCMSHC_EMMC_DLL_CTRL); -- sdhci_writel(host, 0, DWCMSHC_EMMC_DLL_RXCLK); -+ /* -+ * Disable DLL and reset both of sample and drive clock. -+ * The bypass bit and start bit need to be set if DLL is not locked. -+ */ -+ sdhci_writel(host, DWCMSHC_EMMC_DLL_BYPASS | DWCMSHC_EMMC_DLL_START, DWCMSHC_EMMC_DLL_CTRL); -+ sdhci_writel(host, DLL_RXCLK_ORI_GATE, DWCMSHC_EMMC_DLL_RXCLK); - sdhci_writel(host, 0, DWCMSHC_EMMC_DLL_TXCLK); - sdhci_writel(host, 0, DECMSHC_EMMC_DLL_CMDOUT); - /* -@@ -279,7 +284,7 @@ static void dwcmshc_rk3568_set_clock(str - } - - extra = 0x1 << 16 | /* tune clock stop en */ -- 0x2 << 17 | /* pre-change delay */ -+ 0x3 << 17 | /* pre-change delay */ - 0x3 << 19; /* post-change delay */ - sdhci_writel(host, extra, dwc_priv->vendor_specific_area1 + DWCMSHC_EMMC_ATCTRL); - diff --git a/target/linux/rockchip/patches-6.1/002-v6.4-mmc-sdhci-of-dwcmshc-properly-determine-max-clock-on.patch b/target/linux/rockchip/patches-6.1/002-v6.4-mmc-sdhci-of-dwcmshc-properly-determine-max-clock-on.patch deleted file mode 100644 index 9d9c1b5c1c..0000000000 --- a/target/linux/rockchip/patches-6.1/002-v6.4-mmc-sdhci-of-dwcmshc-properly-determine-max-clock-on.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 49502408007b77ff290ce62e6218cefaeedcb31a Mon Sep 17 00:00:00 2001 -From: Vasily Khoruzhick -Date: Thu, 9 Mar 2023 17:03:49 -0800 -Subject: [PATCH] mmc: sdhci-of-dwcmshc: properly determine max clock on - Rockchip - -Currently .get_max_clock returns the current clock rate for cclk_emmc -on rk35xx, thus max clock gets set to whatever bootloader set it to. - -In case of u-boot, it is intentionally reset to 50 MHz if it boots -from eMMC, see mmc_deinit() in u-boot sources. As a result, HS200 and -HS400 modes are never selected by Linux, because dwcmshc_rk35xx_postinit -clears appropriate caps if host->mmc->f_max is < 52MHz - -cclk_emmc is not a fixed clock on rk35xx, so using -sdhci_pltfm_clk_get_max_clock is not appropriate here. - -Implement rk35xx_get_max_clock that returns actual max clock for cclk_emmc. - -Signed-off-by: Vasily Khoruzhick -Acked-by: Adrian Hunter -Link: https://lore.kernel.org/r/20230310010349.509132-1-anarsoul@gmail.com -Signed-off-by: Ulf Hansson ---- - drivers/mmc/host/sdhci-of-dwcmshc.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/drivers/mmc/host/sdhci-of-dwcmshc.c -+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -126,6 +126,13 @@ static unsigned int dwcmshc_get_max_cloc - return pltfm_host->clock; - } - -+static unsigned int rk35xx_get_max_clock(struct sdhci_host *host) -+{ -+ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -+ -+ return clk_round_rate(pltfm_host->clk, ULONG_MAX); -+} -+ - static void dwcmshc_check_auto_cmd23(struct mmc_host *mmc, - struct mmc_request *mrq) - { -@@ -343,7 +350,7 @@ static const struct sdhci_ops sdhci_dwcm - .set_clock = dwcmshc_rk3568_set_clock, - .set_bus_width = sdhci_set_bus_width, - .set_uhs_signaling = dwcmshc_set_uhs_signaling, -- .get_max_clock = sdhci_pltfm_clk_get_max_clock, -+ .get_max_clock = rk35xx_get_max_clock, - .reset = rk35xx_sdhci_reset, - .adma_write_desc = dwcmshc_adma_write_desc, - }; diff --git a/target/linux/rockchip/patches-6.1/006-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C.patch b/target/linux/rockchip/patches-6.1/006-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C.patch deleted file mode 100644 index 049c8ad1af..0000000000 --- a/target/linux/rockchip/patches-6.1/006-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 004589ff9df5b75672a78b6c3c4cba93202b14c9 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 25 Mar 2023 15:40:20 +0800 -Subject: [PATCH] arm64: dts: rockchip: Add FriendlyARM NanoPi R2C - -The NanoPi R2C is a minor variant of NanoPi R2S with the on-board NIC -chip changed from rtl8211e to yt8521s, and otherwise identical to R2S. - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230325074022.9818-3-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3328-nanopi-r2c.dts | 40 +++++++++++++++++++ - 2 files changed, 41 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2c.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a9 - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2c.dts -@@ -0,0 +1,40 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * Copyright (c) 2021 FriendlyElec Computer Tech. Co., Ltd. -+ * (http://www.friendlyarm.com) -+ * -+ * Copyright (c) 2021-2023 Tianling Shen -+ */ -+ -+/dts-v1/; -+#include "rk3328-nanopi-r2s.dts" -+ -+/ { -+ model = "FriendlyElec NanoPi R2C"; -+ compatible = "friendlyarm,nanopi-r2c", "rockchip,rk3328"; -+}; -+ -+&gmac2io { -+ phy-handle = <&yt8521s>; -+ tx_delay = <0x22>; -+ rx_delay = <0x12>; -+ -+ mdio { -+ /delete-node/ ethernet-phy@1; -+ -+ yt8521s: ethernet-phy@3 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <3>; -+ -+ motorcomm,clk-out-frequency-hz = <125000000>; -+ motorcomm,keep-pll-enabled; -+ motorcomm,auto-sleep-disabled; -+ -+ pinctrl-0 = <ð_phy_reset_pin>; -+ pinctrl-names = "default"; -+ reset-assert-us = <10000>; -+ reset-deassert-us = <50000>; -+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+}; diff --git a/target/linux/rockchip/patches-6.1/007-v6.3-arm64-dts-rockchip-rk3328-Add-Orange-Pi-R1-Plus.patch b/target/linux/rockchip/patches-6.1/007-v6.3-arm64-dts-rockchip-rk3328-Add-Orange-Pi-R1-Plus.patch deleted file mode 100644 index 4e48218b89..0000000000 --- a/target/linux/rockchip/patches-6.1/007-v6.3-arm64-dts-rockchip-rk3328-Add-Orange-Pi-R1-Plus.patch +++ /dev/null @@ -1,407 +0,0 @@ -From 51712e1d014aaaa4c6e1e7e84932d58b5c0f59ed Mon Sep 17 00:00:00 2001 -From: Chukun Pan -Date: Sat, 3 Dec 2022 15:41:49 +0800 -Subject: [PATCH] arm64: dts: rockchip: rk3328: Add Orange Pi R1 Plus - -Orange Pi R1 Plus is a Rockchip RK3328 based SBC by Xunlong. - -This device is similar to the NanoPi R2S, and has a 16MB -SPI NOR (mx25l12805d). The reset button is changed to -directly reset the power supply, another detail is that -both network ports have independent MAC addresses. - -Signed-off-by: Chukun Pan -Link: https://lore.kernel.org/r/20221203074149.11543-3-amadeus@jmu.edu.cn -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../dts/rockchip/rk3328-orangepi-r1-plus.dts | 373 ++++++++++++++++++ - 2 files changed, 374 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1 - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -@@ -0,0 +1,373 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Based on rk3328-nanopi-r2s.dts, which is: -+ * Copyright (c) 2020 David Bauer -+ */ -+ -+/dts-v1/; -+ -+#include -+#include -+#include "rk3328.dtsi" -+ -+/ { -+ model = "Xunlong Orange Pi R1 Plus"; -+ compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328"; -+ -+ aliases { -+ ethernet1 = &rtl8153; -+ mmc0 = &sdmmc; -+ }; -+ -+ chosen { -+ stdout-path = "serial2:1500000n8"; -+ }; -+ -+ gmac_clk: gmac-clock { -+ compatible = "fixed-clock"; -+ clock-frequency = <125000000>; -+ clock-output-names = "gmac_clkin"; -+ #clock-cells = <0>; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>; -+ pinctrl-names = "default"; -+ -+ led-0 { -+ function = LED_FUNCTION_LAN; -+ color = ; -+ gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led-1 { -+ function = LED_FUNCTION_STATUS; -+ color = ; -+ gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "heartbeat"; -+ }; -+ -+ led-2 { -+ function = LED_FUNCTION_WAN; -+ color = ; -+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>; -+ }; -+ }; -+ -+ vcc_sd: sdmmc-regulator { -+ compatible = "regulator-fixed"; -+ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>; -+ pinctrl-0 = <&sdmmc0m1_pin>; -+ pinctrl-names = "default"; -+ regulator-name = "vcc_sd"; -+ regulator-boot-on; -+ vin-supply = <&vcc_io>; -+ }; -+ -+ vcc_sys: vcc-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ }; -+ -+ vdd_5v_lan: vdd-5v-lan-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; -+ pinctrl-0 = <&lan_vdd_pin>; -+ pinctrl-names = "default"; -+ regulator-name = "vdd_5v_lan"; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc_sys>; -+ }; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vdd_arm>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vdd_arm>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vdd_arm>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vdd_arm>; -+}; -+ -+&display_subsystem { -+ status = "disabled"; -+}; -+ -+&gmac2io { -+ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>; -+ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>; -+ clock_in_out = "input"; -+ phy-handle = <&rtl8211e>; -+ phy-mode = "rgmii"; -+ phy-supply = <&vcc_io>; -+ pinctrl-0 = <&rgmiim1_pins>; -+ pinctrl-names = "default"; -+ snps,aal; -+ rx_delay = <0x18>; -+ tx_delay = <0x24>; -+ status = "okay"; -+ -+ mdio { -+ compatible = "snps,dwmac-mdio"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ rtl8211e: ethernet-phy@1 { -+ reg = <1>; -+ pinctrl-0 = <ð_phy_reset_pin>; -+ pinctrl-names = "default"; -+ reset-assert-us = <10000>; -+ reset-deassert-us = <50000>; -+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+}; -+ -+&i2c1 { -+ status = "okay"; -+ -+ rk805: pmic@18 { -+ compatible = "rockchip,rk805"; -+ reg = <0x18>; -+ interrupt-parent = <&gpio1>; -+ interrupts = <24 IRQ_TYPE_LEVEL_LOW>; -+ #clock-cells = <1>; -+ clock-output-names = "xin32k", "rk805-clkout2"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ pinctrl-0 = <&pmic_int_l>; -+ pinctrl-names = "default"; -+ rockchip,system-power-controller; -+ wakeup-source; -+ -+ vcc1-supply = <&vcc_sys>; -+ vcc2-supply = <&vcc_sys>; -+ vcc3-supply = <&vcc_sys>; -+ vcc4-supply = <&vcc_sys>; -+ vcc5-supply = <&vcc_io>; -+ vcc6-supply = <&vcc_sys>; -+ -+ regulators { -+ vdd_log: DCDC_REG1 { -+ regulator-name = "vdd_log"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1450000>; -+ regulator-ramp-delay = <12500>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1000000>; -+ }; -+ }; -+ -+ vdd_arm: DCDC_REG2 { -+ regulator-name = "vdd_arm"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1450000>; -+ regulator-ramp-delay = <12500>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <950000>; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-name = "vcc_ddr"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc_io: DCDC_REG4 { -+ regulator-name = "vcc_io"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcc_18: LDO_REG1 { -+ regulator-name = "vcc_18"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcc18_emmc: LDO_REG2 { -+ regulator-name = "vcc18_emmc"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vdd_10: LDO_REG3 { -+ regulator-name = "vdd_10"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1000000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1000000>; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+&io_domains { -+ pmuio-supply = <&vcc_io>; -+ vccio1-supply = <&vcc_io>; -+ vccio2-supply = <&vcc18_emmc>; -+ vccio3-supply = <&vcc_io>; -+ vccio4-supply = <&vcc_io>; -+ vccio5-supply = <&vcc_io>; -+ vccio6-supply = <&vcc_io>; -+ status = "okay"; -+}; -+ -+&pinctrl { -+ gmac2io { -+ eth_phy_reset_pin: eth-phy-reset-pin { -+ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ leds { -+ lan_led_pin: lan-led-pin { -+ rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ sys_led_pin: sys-led-pin { -+ rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wan_led_pin: wan-led-pin { -+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ lan { -+ lan_vdd_pin: lan-vdd-pin { -+ rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+}; -+ -+&pwm2 { -+ status = "okay"; -+}; -+ -+&sdmmc { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ disable-wp; -+ pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>; -+ pinctrl-names = "default"; -+ vmmc-supply = <&vcc_sd>; -+ status = "okay"; -+}; -+ -+&spi0 { -+ status = "okay"; -+ -+ flash@0 { -+ compatible = "jedec,spi-nor"; -+ reg = <0>; -+ spi-max-frequency = <50000000>; -+ }; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <0>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; -+ -+&u2phy { -+ status = "okay"; -+}; -+ -+&u2phy_host { -+ status = "okay"; -+}; -+ -+&u2phy_otg { -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb20_otg { -+ dr_mode = "host"; -+ status = "okay"; -+}; -+ -+&usbdrd3 { -+ dr_mode = "host"; -+ status = "okay"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ /* Second port is for USB 3.0 */ -+ rtl8153: device@2 { -+ compatible = "usbbda,8153"; -+ reg = <2>; -+ }; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; diff --git a/target/linux/rockchip/patches-6.1/008-v6.4-arm64-dts-rockchip-Add-Xunlong-OrangePi-R1-Plus-LTS.patch b/target/linux/rockchip/patches-6.1/008-v6.4-arm64-dts-rockchip-Add-Xunlong-OrangePi-R1-Plus-LTS.patch deleted file mode 100644 index 78d3d51a17..0000000000 --- a/target/linux/rockchip/patches-6.1/008-v6.4-arm64-dts-rockchip-Add-Xunlong-OrangePi-R1-Plus-LTS.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 387b3bbac5ea6a0a105d685237f033ffe0f184f1 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 25 Mar 2023 15:40:22 +0800 -Subject: [PATCH] arm64: dts: rockchip: Add Xunlong OrangePi R1 Plus LTS - -The OrangePi R1 Plus LTS is a minor variant of OrangePi R1 Plus with -the on-board NIC chip changed from rtl8211e to yt8531c, and otherwise -identical to OrangePi R1 Plus. - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230325074022.9818-5-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../rockchip/rk3328-orangepi-r1-plus-lts.dts | 40 +++++++++++++++++++ - 2 files changed, 41 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-ev - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus-lts.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts -@@ -0,0 +1,40 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * Copyright (c) 2016 Xunlong Software. Co., Ltd. -+ * (http://www.orangepi.org) -+ * -+ * Copyright (c) 2021-2023 Tianling Shen -+ */ -+ -+/dts-v1/; -+#include "rk3328-orangepi-r1-plus.dts" -+ -+/ { -+ model = "Xunlong Orange Pi R1 Plus LTS"; -+ compatible = "xunlong,orangepi-r1-plus-lts", "rockchip,rk3328"; -+}; -+ -+&gmac2io { -+ phy-handle = <&yt8531c>; -+ tx_delay = <0x19>; -+ rx_delay = <0x05>; -+ -+ mdio { -+ /delete-node/ ethernet-phy@1; -+ -+ yt8531c: ethernet-phy@0 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <0>; -+ -+ motorcomm,clk-out-frequency-hz = <125000000>; -+ motorcomm,keep-pll-enabled; -+ motorcomm,auto-sleep-disabled; -+ -+ pinctrl-0 = <ð_phy_reset_pin>; -+ pinctrl-names = "default"; -+ reset-assert-us = <15000>; -+ reset-deassert-us = <50000>; -+ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+}; diff --git a/target/linux/rockchip/patches-6.1/009-v6.4-arm64-dts-rockchip-Add-FriendlyElec-Nanopi-R5S.patch b/target/linux/rockchip/patches-6.1/009-v6.4-arm64-dts-rockchip-Add-FriendlyElec-Nanopi-R5S.patch deleted file mode 100644 index 3d502a65b6..0000000000 --- a/target/linux/rockchip/patches-6.1/009-v6.4-arm64-dts-rockchip-Add-FriendlyElec-Nanopi-R5S.patch +++ /dev/null @@ -1,754 +0,0 @@ -From c6629b9a6738a64507478527da6c7b83c10a6d2c Mon Sep 17 00:00:00 2001 -From: Vasily Khoruzhick -Date: Tue, 7 Mar 2023 22:32:40 -0800 -Subject: [PATCH] arm64: dts: rockchip: Add FriendlyElec Nanopi R5S - -FriendlyElec Nanopi R5S is an open-sourced mini IoT gateway device. - -Board Specifications -- Rockchip RK3568 -- 2 or 4GB LPDDR4X -- 8GB or 16GB eMMC, SD card slot -- GbE LAN (Native) -- 2x 2.5G LAN (PCIe) -- M.2 Connector -- HDMI 2.0, MIPI DSI/CSI -- 2xUSB 3.0 Host -- USB Type C PD, 5V/9V/12V -- GPIO: 12-pin 0.5mm FPC connector - -Based on Tianling Shen's work. - -Signed-off-by: Vasily Khoruzhick -Link: https://lore.kernel.org/r/20230308063240.107178-2-anarsoul@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3568-nanopi-r5s.dts | 713 ++++++++++++++++++ - 2 files changed, 714 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -74,4 +74,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-ro - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5s.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -@@ -0,0 +1,713 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. -+ * (http://www.friendlyelec.com) -+ * -+ * Copyright (c) 2023 Tianling Shen -+ */ -+ -+/dts-v1/; -+#include -+#include -+#include -+#include -+#include -+#include "rk3568.dtsi" -+ -+/ { -+ model = "FriendlyElec NanoPi R5S"; -+ compatible = "friendlyarm,nanopi-r5s", "rockchip,rk3568"; -+ -+ aliases { -+ ethernet0 = &gmac0; -+ mmc0 = &sdmmc0; -+ mmc1 = &sdhci; -+ }; -+ -+ chosen: chosen { -+ stdout-path = "serial2:1500000n8"; -+ }; -+ -+ hdmi-con { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ -+ gpio-leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&lan1_led_pin>, <&lan2_led_pin>, <&power_led_pin>, <&wan_led_pin>; -+ -+ led-lan1 { -+ color = ; -+ function = LED_FUNCTION_LAN; -+ function-enumerator = <1>; -+ gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led-lan2 { -+ color = ; -+ function = LED_FUNCTION_LAN; -+ function-enumerator = <2>; -+ gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ power_led: led-power { -+ color = ; -+ function = LED_FUNCTION_POWER; -+ linux,default-trigger = "heartbeat"; -+ gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led-wan { -+ color = ; -+ function = LED_FUNCTION_WAN; -+ gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; -+ }; -+ }; -+ -+ vdd_usbc: vdd-usbc-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vdd_usbc"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ }; -+ -+ vcc3v3_sys: vcc3v3-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vdd_usbc>; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vdd_usbc>; -+ }; -+ -+ vcc3v3_pcie: vcc3v3-pcie-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_pcie"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ enable-active-high; -+ gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; -+ startup-delay-us = <200000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc5v0_usb: vcc5v0-usb-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_usb"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vdd_usbc>; -+ }; -+ -+ vcc5v0_usb_host: vcc5v0-usb-host-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb_host_en>; -+ regulator-name = "vcc5v0_usb_host"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb_otg_en>; -+ regulator-name = "vcc5v0_usb_otg"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ pcie30_avdd0v9: pcie30-avdd0v9-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "pcie30_avdd0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ pcie30_avdd1v8: pcie30-avdd1v8-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "pcie30_avdd1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+}; -+ -+&combphy0 { -+ status = "okay"; -+}; -+ -+&combphy1 { -+ status = "okay"; -+}; -+ -+&combphy2 { -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&gmac0 { -+ assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>; -+ assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>; -+ assigned-clock-rates = <0>, <125000000>; -+ clock_in_out = "output"; -+ phy-handle = <&rgmii_phy0>; -+ phy-mode = "rgmii-id"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&gmac0_miim -+ &gmac0_tx_bus2 -+ &gmac0_rx_bus2 -+ &gmac0_rgmii_clk -+ &gmac0_rgmii_bus>; -+ snps,reset-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_LOW>; -+ snps,reset-active-low; -+ /* Reset time is 15ms, 50ms for rtl8211f */ -+ snps,reset-delays-us = <0 15000 50000>; -+ tx_delay = <0x3c>; -+ rx_delay = <0x2f>; -+ status = "okay"; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&hdmi { -+ avdd-0v9-supply = <&vdda0v9_image>; -+ avdd-1v8-supply = <&vcca1v8_image>; -+ status = "okay"; -+}; -+ -+&hdmi_in { -+ hdmi_in_vp0: endpoint { -+ remote-endpoint = <&vp0_out_hdmi>; -+ }; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ -+&hdmi_sound { -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ vdd_cpu: regulator@1c { -+ compatible = "tcs,tcs4525"; -+ reg = <0x1c>; -+ fcs,suspend-voltage-selector = <1>; -+ regulator-name = "vdd_cpu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1150000>; -+ regulator-ramp-delay = <2300>; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ rk809: pmic@20 { -+ compatible = "rockchip,rk809"; -+ reg = <0x20>; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ #clock-cells = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int>; -+ rockchip,system-power-controller; -+ vcc1-supply = <&vcc3v3_sys>; -+ vcc2-supply = <&vcc3v3_sys>; -+ vcc3-supply = <&vcc3v3_sys>; -+ vcc4-supply = <&vcc3v3_sys>; -+ vcc5-supply = <&vcc3v3_sys>; -+ vcc6-supply = <&vcc3v3_sys>; -+ vcc7-supply = <&vcc3v3_sys>; -+ vcc8-supply = <&vcc3v3_sys>; -+ vcc9-supply = <&vcc3v3_sys>; -+ wakeup-source; -+ -+ regulators { -+ vdd_logic: DCDC_REG1 { -+ regulator-name = "vdd_logic"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: DCDC_REG2 { -+ regulator-name = "vdd_gpu"; -+ regulator-always-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-name = "vcc_ddr"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vdd_npu: DCDC_REG4 { -+ regulator-name = "vdd_npu"; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_1v8: DCDC_REG5 { -+ regulator-name = "vcc_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_image: LDO_REG1 { -+ regulator-name = "vdda0v9_image"; -+ regulator-min-microvolt = <950000>; -+ regulator-max-microvolt = <950000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda_0v9: LDO_REG2 { -+ regulator-name = "vdda_0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_pmu: LDO_REG3 { -+ regulator-name = "vdda0v9_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ vccio_acodec: LDO_REG4 { -+ regulator-name = "vccio_acodec"; -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vccio_sd: LDO_REG5 { -+ regulator-name = "vccio_sd"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_pmu: LDO_REG6 { -+ regulator-name = "vcc3v3_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcca_1v8: LDO_REG7 { -+ regulator-name = "vcca_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcca1v8_pmu: LDO_REG8 { -+ regulator-name = "vcca1v8_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcca1v8_image: LDO_REG9 { -+ regulator-name = "vcca1v8_image"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_3v3: SWITCH_REG1 { -+ regulator-name = "vcc_3v3"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_sd: SWITCH_REG2 { -+ regulator-name = "vcc3v3_sd"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ }; -+ -+ }; -+}; -+ -+&i2c5 { -+ status = "okay"; -+ -+ hym8563: rtc@51 { -+ compatible = "haoyu,hym8563"; -+ reg = <0x51>; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ #clock-cells = <0>; -+ clock-output-names = "rtcic_32kout"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hym8563_int>; -+ wakeup-source; -+ }; -+}; -+ -+&i2s0_8ch { -+ status = "okay"; -+}; -+ -+&i2s1_8ch { -+ rockchip,trcm-sync-tx-only; -+ status = "okay"; -+}; -+ -+&mdio0 { -+ rgmii_phy0: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ pinctrl-0 = <ð_phy0_reset_pin>; -+ pinctrl-names = "default"; -+ reset-assert-us = <10000>; -+ reset-deassert-us = <50000>; -+ reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>; -+ }; -+}; -+ -+&pcie2x1 { -+ num-lanes = <1>; -+ reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; -+ status = "okay"; -+}; -+ -+&pcie30phy { -+ data-lanes = <1 2>; -+ status = "okay"; -+}; -+ -+&pcie3x1 { -+ num-lanes = <1>; -+ reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pcie>; -+ status = "okay"; -+}; -+ -+&pcie3x2 { -+ num-lanes = <1>; -+ num-ib-windows = <8>; -+ num-ob-windows = <8>; -+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pcie>; -+ status = "okay"; -+}; -+ -+&pinctrl { -+ gmac0 { -+ eth_phy0_reset_pin: eth-phy0-reset-pin { -+ rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>; -+ }; -+ }; -+ -+ gpio-leds { -+ lan1_led_pin: lan1-led-pin { -+ rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ lan2_led_pin: lan2-led-pin { -+ rockchip,pins = <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ power_led_pin: power-led-pin { -+ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wan_led_pin: wan-led-pin { -+ rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ hym8563 { -+ hym8563_int: hym8563-int { -+ rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int: pmic-int { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ usb { -+ vcc5v0_usb_host_en: vcc5v0-usb-host-en { -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vcc5v0_usb_otg_en: vcc5v0-usb-otg-en { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmuio1-supply = <&vcc3v3_pmu>; -+ pmuio2-supply = <&vcc3v3_pmu>; -+ vccio1-supply = <&vccio_acodec>; -+ vccio3-supply = <&vccio_sd>; -+ vccio4-supply = <&vcc_1v8>; -+ vccio5-supply = <&vcc_3v3>; -+ vccio6-supply = <&vcc_1v8>; -+ vccio7-supply = <&vcc_3v3>; -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcca_1v8>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ max-frequency = <200000000>; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; -+ status = "okay"; -+}; -+ -+&sdmmc0 { -+ max-frequency = <150000000>; -+ no-sdio; -+ no-mmc; -+ bus-width = <4>; -+ cap-mmc-highspeed; -+ cap-sd-highspeed; -+ disable-wp; -+ vmmc-supply = <&vcc3v3_sd>; -+ vqmmc-supply = <&vccio_sd>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; -+ status = "okay"; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <1>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usb_host0_xhci { -+ extcon = <&usb2phy0>; -+ dr_mode = "host"; -+ status = "okay"; -+}; -+ -+&usb_host1_ehci { -+ status = "okay"; -+}; -+ -+&usb_host1_ohci { -+ status = "okay"; -+}; -+ -+&usb_host1_xhci { -+ status = "okay"; -+}; -+ -+&usb2phy0 { -+ status = "okay"; -+}; -+ -+&usb2phy0_host { -+ phy-supply = <&vcc5v0_usb_host>; -+ status = "okay"; -+}; -+ -+&usb2phy0_otg { -+ status = "okay"; -+}; -+ -+&usb2phy1 { -+ status = "okay"; -+}; -+ -+&usb2phy1_host { -+ phy-supply = <&vcc5v0_usb_otg>; -+ status = "okay"; -+}; -+ -+&usb2phy1_otg { -+ status = "okay"; -+}; -+ -+&vop { -+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; -+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -+ status = "okay"; -+}; -+ -+&vop_mmu { -+ status = "okay"; -+}; -+ -+&vp0 { -+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { -+ reg = ; -+ remote-endpoint = <&hdmi_in_vp0>; -+ }; -+}; diff --git a/target/linux/rockchip/patches-6.1/010-v6.4-arm64-dts-rockchip-create-common-dtsi-for-NanoPi-R5-serie.patch b/target/linux/rockchip/patches-6.1/010-v6.4-arm64-dts-rockchip-create-common-dtsi-for-NanoPi-R5-serie.patch deleted file mode 100644 index cf9fe06ad0..0000000000 --- a/target/linux/rockchip/patches-6.1/010-v6.4-arm64-dts-rockchip-create-common-dtsi-for-NanoPi-R5-serie.patch +++ /dev/null @@ -1,1226 +0,0 @@ -From c8ec73b05a95d9f0969ae0f28dd8799a54fcdfc7 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 18 Mar 2023 16:37:41 +0800 -Subject: [PATCH] arm64: dts: rockchip: create common dtsi for NanoPi R5 series - -Create common dtsi for the FriendlyElec NanoPi R5 series. - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230318083745.6181-2-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - .../boot/dts/rockchip/rk3568-nanopi-r5s.dts | 575 +---------------- - .../boot/dts/rockchip/rk3568-nanopi-r5s.dtsi | 596 ++++++++++++++++++ - 2 files changed, 597 insertions(+), 574 deletions(-) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -@@ -7,12 +7,7 @@ - */ - - /dts-v1/; --#include --#include --#include --#include --#include --#include "rk3568.dtsi" -+#include "rk3568-nanopi-r5s.dtsi" - - / { - model = "FriendlyElec NanoPi R5S"; -@@ -20,23 +15,6 @@ - - aliases { - ethernet0 = &gmac0; -- mmc0 = &sdmmc0; -- mmc1 = &sdhci; -- }; -- -- chosen: chosen { -- stdout-path = "serial2:1500000n8"; -- }; -- -- hdmi-con { -- compatible = "hdmi-connector"; -- type = "a"; -- -- port { -- hdmi_con_in: endpoint { -- remote-endpoint = <&hdmi_out_con>; -- }; -- }; - }; - - gpio-leds { -@@ -71,130 +49,6 @@ - gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; - }; - }; -- -- vdd_usbc: vdd-usbc-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "vdd_usbc"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- }; -- -- vcc3v3_sys: vcc3v3-sys-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "vcc3v3_sys"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- vin-supply = <&vdd_usbc>; -- }; -- -- vcc5v0_sys: vcc5v0-sys-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "vcc5v0_sys"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&vdd_usbc>; -- }; -- -- vcc3v3_pcie: vcc3v3-pcie-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "vcc3v3_pcie"; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- enable-active-high; -- gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; -- startup-delay-us = <200000>; -- vin-supply = <&vcc5v0_sys>; -- }; -- -- vcc5v0_usb: vcc5v0-usb-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "vcc5v0_usb"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&vdd_usbc>; -- }; -- -- vcc5v0_usb_host: vcc5v0-usb-host-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&vcc5v0_usb_host_en>; -- regulator-name = "vcc5v0_usb_host"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&vcc5v0_usb>; -- }; -- -- vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { -- compatible = "regulator-fixed"; -- enable-active-high; -- gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; -- pinctrl-names = "default"; -- pinctrl-0 = <&vcc5v0_usb_otg_en>; -- regulator-name = "vcc5v0_usb_otg"; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&vcc5v0_usb>; -- }; -- -- pcie30_avdd0v9: pcie30-avdd0v9-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "pcie30_avdd0v9"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <900000>; -- regulator-max-microvolt = <900000>; -- vin-supply = <&vcc3v3_sys>; -- }; -- -- pcie30_avdd1v8: pcie30-avdd1v8-regulator { -- compatible = "regulator-fixed"; -- regulator-name = "pcie30_avdd1v8"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- vin-supply = <&vcc3v3_sys>; -- }; --}; -- --&combphy0 { -- status = "okay"; --}; -- --&combphy1 { -- status = "okay"; --}; -- --&combphy2 { -- status = "okay"; --}; -- --&cpu0 { -- cpu-supply = <&vdd_cpu>; --}; -- --&cpu1 { -- cpu-supply = <&vdd_cpu>; --}; -- --&cpu2 { -- cpu-supply = <&vdd_cpu>; --}; -- --&cpu3 { -- cpu-supply = <&vdd_cpu>; - }; - - &gmac0 { -@@ -219,292 +73,6 @@ - status = "okay"; - }; - --&gpu { -- mali-supply = <&vdd_gpu>; -- status = "okay"; --}; -- --&hdmi { -- avdd-0v9-supply = <&vdda0v9_image>; -- avdd-1v8-supply = <&vcca1v8_image>; -- status = "okay"; --}; -- --&hdmi_in { -- hdmi_in_vp0: endpoint { -- remote-endpoint = <&vp0_out_hdmi>; -- }; --}; -- --&hdmi_out { -- hdmi_out_con: endpoint { -- remote-endpoint = <&hdmi_con_in>; -- }; --}; -- --&hdmi_sound { -- status = "okay"; --}; -- --&i2c0 { -- status = "okay"; -- -- vdd_cpu: regulator@1c { -- compatible = "tcs,tcs4525"; -- reg = <0x1c>; -- fcs,suspend-voltage-selector = <1>; -- regulator-name = "vdd_cpu"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <800000>; -- regulator-max-microvolt = <1150000>; -- regulator-ramp-delay = <2300>; -- vin-supply = <&vcc5v0_sys>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- rk809: pmic@20 { -- compatible = "rockchip,rk809"; -- reg = <0x20>; -- interrupt-parent = <&gpio0>; -- interrupts = ; -- #clock-cells = <1>; -- pinctrl-names = "default"; -- pinctrl-0 = <&pmic_int>; -- rockchip,system-power-controller; -- vcc1-supply = <&vcc3v3_sys>; -- vcc2-supply = <&vcc3v3_sys>; -- vcc3-supply = <&vcc3v3_sys>; -- vcc4-supply = <&vcc3v3_sys>; -- vcc5-supply = <&vcc3v3_sys>; -- vcc6-supply = <&vcc3v3_sys>; -- vcc7-supply = <&vcc3v3_sys>; -- vcc8-supply = <&vcc3v3_sys>; -- vcc9-supply = <&vcc3v3_sys>; -- wakeup-source; -- -- regulators { -- vdd_logic: DCDC_REG1 { -- regulator-name = "vdd_logic"; -- regulator-always-on; -- regulator-boot-on; -- regulator-init-microvolt = <900000>; -- regulator-initial-mode = <0x2>; -- regulator-min-microvolt = <500000>; -- regulator-max-microvolt = <1350000>; -- regulator-ramp-delay = <6001>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdd_gpu: DCDC_REG2 { -- regulator-name = "vdd_gpu"; -- regulator-always-on; -- regulator-init-microvolt = <900000>; -- regulator-initial-mode = <0x2>; -- regulator-min-microvolt = <500000>; -- regulator-max-microvolt = <1350000>; -- regulator-ramp-delay = <6001>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_ddr: DCDC_REG3 { -- regulator-name = "vcc_ddr"; -- regulator-always-on; -- regulator-boot-on; -- regulator-initial-mode = <0x2>; -- -- regulator-state-mem { -- regulator-on-in-suspend; -- }; -- }; -- -- vdd_npu: DCDC_REG4 { -- regulator-name = "vdd_npu"; -- regulator-init-microvolt = <900000>; -- regulator-initial-mode = <0x2>; -- regulator-min-microvolt = <500000>; -- regulator-max-microvolt = <1350000>; -- regulator-ramp-delay = <6001>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_1v8: DCDC_REG5 { -- regulator-name = "vcc_1v8"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdda0v9_image: LDO_REG1 { -- regulator-name = "vdda0v9_image"; -- regulator-min-microvolt = <950000>; -- regulator-max-microvolt = <950000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdda_0v9: LDO_REG2 { -- regulator-name = "vdda_0v9"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <900000>; -- regulator-max-microvolt = <900000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vdda0v9_pmu: LDO_REG3 { -- regulator-name = "vdda0v9_pmu"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <900000>; -- regulator-max-microvolt = <900000>; -- -- regulator-state-mem { -- regulator-on-in-suspend; -- regulator-suspend-microvolt = <900000>; -- }; -- }; -- -- vccio_acodec: LDO_REG4 { -- regulator-name = "vccio_acodec"; -- regulator-always-on; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vccio_sd: LDO_REG5 { -- regulator-name = "vccio_sd"; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <3300000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc3v3_pmu: LDO_REG6 { -- regulator-name = "vcc3v3_pmu"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <3300000>; -- regulator-max-microvolt = <3300000>; -- -- regulator-state-mem { -- regulator-on-in-suspend; -- regulator-suspend-microvolt = <3300000>; -- }; -- }; -- -- vcca_1v8: LDO_REG7 { -- regulator-name = "vcca_1v8"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcca1v8_pmu: LDO_REG8 { -- regulator-name = "vcca1v8_pmu"; -- regulator-always-on; -- regulator-boot-on; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- -- regulator-state-mem { -- regulator-on-in-suspend; -- regulator-suspend-microvolt = <1800000>; -- }; -- }; -- -- vcca1v8_image: LDO_REG9 { -- regulator-name = "vcca1v8_image"; -- regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <1800000>; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc_3v3: SWITCH_REG1 { -- regulator-name = "vcc_3v3"; -- regulator-always-on; -- regulator-boot-on; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- -- vcc3v3_sd: SWITCH_REG2 { -- regulator-name = "vcc3v3_sd"; -- regulator-always-on; -- regulator-boot-on; -- -- regulator-state-mem { -- regulator-off-in-suspend; -- }; -- }; -- }; -- -- }; --}; -- --&i2c5 { -- status = "okay"; -- -- hym8563: rtc@51 { -- compatible = "haoyu,hym8563"; -- reg = <0x51>; -- interrupt-parent = <&gpio0>; -- interrupts = ; -- #clock-cells = <0>; -- clock-output-names = "rtcic_32kout"; -- pinctrl-names = "default"; -- pinctrl-0 = <&hym8563_int>; -- wakeup-source; -- }; --}; -- --&i2s0_8ch { -- status = "okay"; --}; -- --&i2s1_8ch { -- rockchip,trcm-sync-tx-only; -- status = "okay"; --}; -- - &mdio0 { - rgmii_phy0: ethernet-phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; -@@ -568,146 +136,5 @@ - rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; -- -- hym8563 { -- hym8563_int: hym8563-int { -- rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- -- pmic { -- pmic_int: pmic-int { -- rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -- }; -- }; -- -- usb { -- vcc5v0_usb_host_en: vcc5v0-usb-host-en { -- rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- -- vcc5v0_usb_otg_en: vcc5v0-usb-otg-en { -- rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; -- }; -- }; --}; -- --&pmu_io_domains { -- pmuio1-supply = <&vcc3v3_pmu>; -- pmuio2-supply = <&vcc3v3_pmu>; -- vccio1-supply = <&vccio_acodec>; -- vccio3-supply = <&vccio_sd>; -- vccio4-supply = <&vcc_1v8>; -- vccio5-supply = <&vcc_3v3>; -- vccio6-supply = <&vcc_1v8>; -- vccio7-supply = <&vcc_3v3>; -- status = "okay"; --}; -- --&saradc { -- vref-supply = <&vcca_1v8>; -- status = "okay"; --}; -- --&sdhci { -- bus-width = <8>; -- max-frequency = <200000000>; -- non-removable; -- pinctrl-names = "default"; -- pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; -- status = "okay"; --}; -- --&sdmmc0 { -- max-frequency = <150000000>; -- no-sdio; -- no-mmc; -- bus-width = <4>; -- cap-mmc-highspeed; -- cap-sd-highspeed; -- disable-wp; -- vmmc-supply = <&vcc3v3_sd>; -- vqmmc-supply = <&vccio_sd>; -- pinctrl-names = "default"; -- pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; -- status = "okay"; --}; -- --&tsadc { -- rockchip,hw-tshut-mode = <1>; -- rockchip,hw-tshut-polarity = <0>; -- status = "okay"; --}; -- --&uart2 { -- status = "okay"; --}; -- --&usb_host0_ehci { -- status = "okay"; --}; -- --&usb_host0_ohci { -- status = "okay"; --}; -- --&usb_host0_xhci { -- extcon = <&usb2phy0>; -- dr_mode = "host"; -- status = "okay"; --}; -- --&usb_host1_ehci { -- status = "okay"; --}; -- --&usb_host1_ohci { -- status = "okay"; - }; - --&usb_host1_xhci { -- status = "okay"; --}; -- --&usb2phy0 { -- status = "okay"; --}; -- --&usb2phy0_host { -- phy-supply = <&vcc5v0_usb_host>; -- status = "okay"; --}; -- --&usb2phy0_otg { -- status = "okay"; --}; -- --&usb2phy1 { -- status = "okay"; --}; -- --&usb2phy1_host { -- phy-supply = <&vcc5v0_usb_otg>; -- status = "okay"; --}; -- --&usb2phy1_otg { -- status = "okay"; --}; -- --&vop { -- assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; -- assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -- status = "okay"; --}; -- --&vop_mmu { -- status = "okay"; --}; -- --&vp0 { -- vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { -- reg = ; -- remote-endpoint = <&hdmi_in_vp0>; -- }; --}; ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -@@ -0,0 +1,596 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. -+ * (http://www.friendlyelec.com) -+ * -+ * Copyright (c) 2023 Tianling Shen -+ */ -+ -+/dts-v1/; -+#include -+#include -+#include -+#include -+#include -+#include "rk3568.dtsi" -+ -+/ { -+ aliases { -+ mmc0 = &sdmmc0; -+ mmc1 = &sdhci; -+ }; -+ -+ chosen: chosen { -+ stdout-path = "serial2:1500000n8"; -+ }; -+ -+ hdmi-con { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ -+ vdd_usbc: vdd-usbc-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vdd_usbc"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ }; -+ -+ vcc3v3_sys: vcc3v3-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vdd_usbc>; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vdd_usbc>; -+ }; -+ -+ vcc3v3_pcie: vcc3v3-pcie-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_pcie"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ enable-active-high; -+ gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; -+ startup-delay-us = <200000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc5v0_usb: vcc5v0-usb-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_usb"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vdd_usbc>; -+ }; -+ -+ vcc5v0_usb_host: vcc5v0-usb-host-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb_host_en>; -+ regulator-name = "vcc5v0_usb_host"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb_otg_en>; -+ regulator-name = "vcc5v0_usb_otg"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_usb>; -+ }; -+ -+ pcie30_avdd0v9: pcie30-avdd0v9-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "pcie30_avdd0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ pcie30_avdd1v8: pcie30-avdd1v8-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "pcie30_avdd1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+}; -+ -+&combphy0 { -+ status = "okay"; -+}; -+ -+&combphy1 { -+ status = "okay"; -+}; -+ -+&combphy2 { -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&hdmi { -+ avdd-0v9-supply = <&vdda0v9_image>; -+ avdd-1v8-supply = <&vcca1v8_image>; -+ status = "okay"; -+}; -+ -+&hdmi_in { -+ hdmi_in_vp0: endpoint { -+ remote-endpoint = <&vp0_out_hdmi>; -+ }; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ -+&hdmi_sound { -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ vdd_cpu: regulator@1c { -+ compatible = "tcs,tcs4525"; -+ reg = <0x1c>; -+ fcs,suspend-voltage-selector = <1>; -+ regulator-name = "vdd_cpu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1150000>; -+ regulator-ramp-delay = <2300>; -+ vin-supply = <&vcc5v0_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ rk809: pmic@20 { -+ compatible = "rockchip,rk809"; -+ reg = <0x20>; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ #clock-cells = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int>; -+ rockchip,system-power-controller; -+ vcc1-supply = <&vcc3v3_sys>; -+ vcc2-supply = <&vcc3v3_sys>; -+ vcc3-supply = <&vcc3v3_sys>; -+ vcc4-supply = <&vcc3v3_sys>; -+ vcc5-supply = <&vcc3v3_sys>; -+ vcc6-supply = <&vcc3v3_sys>; -+ vcc7-supply = <&vcc3v3_sys>; -+ vcc8-supply = <&vcc3v3_sys>; -+ vcc9-supply = <&vcc3v3_sys>; -+ wakeup-source; -+ -+ regulators { -+ vdd_logic: DCDC_REG1 { -+ regulator-name = "vdd_logic"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: DCDC_REG2 { -+ regulator-name = "vdd_gpu"; -+ regulator-always-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-name = "vcc_ddr"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vdd_npu: DCDC_REG4 { -+ regulator-name = "vdd_npu"; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_1v8: DCDC_REG5 { -+ regulator-name = "vcc_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_image: LDO_REG1 { -+ regulator-name = "vdda0v9_image"; -+ regulator-min-microvolt = <950000>; -+ regulator-max-microvolt = <950000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda_0v9: LDO_REG2 { -+ regulator-name = "vdda_0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_pmu: LDO_REG3 { -+ regulator-name = "vdda0v9_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ vccio_acodec: LDO_REG4 { -+ regulator-name = "vccio_acodec"; -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vccio_sd: LDO_REG5 { -+ regulator-name = "vccio_sd"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_pmu: LDO_REG6 { -+ regulator-name = "vcc3v3_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcca_1v8: LDO_REG7 { -+ regulator-name = "vcca_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcca1v8_pmu: LDO_REG8 { -+ regulator-name = "vcca1v8_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcca1v8_image: LDO_REG9 { -+ regulator-name = "vcca1v8_image"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_3v3: SWITCH_REG1 { -+ regulator-name = "vcc_3v3"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_sd: SWITCH_REG2 { -+ regulator-name = "vcc3v3_sd"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ }; -+ -+ }; -+}; -+ -+&i2c5 { -+ status = "okay"; -+ -+ hym8563: rtc@51 { -+ compatible = "haoyu,hym8563"; -+ reg = <0x51>; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ #clock-cells = <0>; -+ clock-output-names = "rtcic_32kout"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&hym8563_int>; -+ wakeup-source; -+ }; -+}; -+ -+&i2s0_8ch { -+ status = "okay"; -+}; -+ -+&i2s1_8ch { -+ rockchip,trcm-sync-tx-only; -+ status = "okay"; -+}; -+ -+&pcie30phy { -+ data-lanes = <1 2>; -+ status = "okay"; -+}; -+ -+&pinctrl { -+ hym8563 { -+ hym8563_int: hym8563-int { -+ rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int: pmic-int { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ usb { -+ vcc5v0_usb_host_en: vcc5v0-usb-host-en { -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vcc5v0_usb_otg_en: vcc5v0-usb-otg-en { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmuio1-supply = <&vcc3v3_pmu>; -+ pmuio2-supply = <&vcc3v3_pmu>; -+ vccio1-supply = <&vccio_acodec>; -+ vccio3-supply = <&vccio_sd>; -+ vccio4-supply = <&vcc_1v8>; -+ vccio5-supply = <&vcc_3v3>; -+ vccio6-supply = <&vcc_1v8>; -+ vccio7-supply = <&vcc_3v3>; -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcca_1v8>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ max-frequency = <200000000>; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; -+ status = "okay"; -+}; -+ -+&sdmmc0 { -+ max-frequency = <150000000>; -+ no-sdio; -+ no-mmc; -+ bus-width = <4>; -+ cap-mmc-highspeed; -+ cap-sd-highspeed; -+ disable-wp; -+ vmmc-supply = <&vcc3v3_sd>; -+ vqmmc-supply = <&vccio_sd>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; -+ status = "okay"; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <1>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usb_host0_xhci { -+ extcon = <&usb2phy0>; -+ dr_mode = "host"; -+ status = "okay"; -+}; -+ -+&usb_host1_ehci { -+ status = "okay"; -+}; -+ -+&usb_host1_ohci { -+ status = "okay"; -+}; -+ -+&usb_host1_xhci { -+ status = "okay"; -+}; -+ -+&usb2phy0 { -+ status = "okay"; -+}; -+ -+&usb2phy0_host { -+ phy-supply = <&vcc5v0_usb_host>; -+ status = "okay"; -+}; -+ -+&usb2phy0_otg { -+ status = "okay"; -+}; -+ -+&usb2phy1 { -+ status = "okay"; -+}; -+ -+&usb2phy1_host { -+ phy-supply = <&vcc5v0_usb_otg>; -+ status = "okay"; -+}; -+ -+&usb2phy1_otg { -+ status = "okay"; -+}; -+ -+&vop { -+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; -+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -+ status = "okay"; -+}; -+ -+&vop_mmu { -+ status = "okay"; -+}; -+ -+&vp0 { -+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { -+ reg = ; -+ remote-endpoint = <&hdmi_in_vp0>; -+ }; -+}; diff --git a/target/linux/rockchip/patches-6.1/011-v6.4-arm64-dts-rockchip-fix-gmac-support-for-NanoPi-R5S.patch b/target/linux/rockchip/patches-6.1/011-v6.4-arm64-dts-rockchip-fix-gmac-support-for-NanoPi-R5S.patch deleted file mode 100644 index 47f76d54e7..0000000000 --- a/target/linux/rockchip/patches-6.1/011-v6.4-arm64-dts-rockchip-fix-gmac-support-for-NanoPi-R5S.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 31425b1fadb2040b359e52ffc24c049a78d56c96 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 18 Mar 2023 16:37:44 +0800 -Subject: [PATCH] arm64: dts: rockchip: fix gmac support for NanoPi R5S - -- Changed phy-mode to rgmii. - -- Fixed pull type in pinctrl for gmac0. - -- Removed duplicate properties in mdio node. - These properties are defined in the gmac0 node already. - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230318083745.6181-5-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -@@ -57,7 +57,7 @@ - assigned-clock-rates = <0>, <125000000>; - clock_in_out = "output"; - phy-handle = <&rgmii_phy0>; -- phy-mode = "rgmii-id"; -+ phy-mode = "rgmii"; - pinctrl-names = "default"; - pinctrl-0 = <&gmac0_miim - &gmac0_tx_bus2 -@@ -79,9 +79,6 @@ - reg = <1>; - pinctrl-0 = <ð_phy0_reset_pin>; - pinctrl-names = "default"; -- reset-assert-us = <10000>; -- reset-deassert-us = <50000>; -- reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>; - }; - }; - -@@ -115,7 +112,7 @@ - &pinctrl { - gmac0 { - eth_phy0_reset_pin: eth-phy0-reset-pin { -- rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>; -+ rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - diff --git a/target/linux/rockchip/patches-6.1/012-v6.4-arm64-dts-rockchip-remove-I2S1-TDM-node-for-the-NanoPi-R5.patch b/target/linux/rockchip/patches-6.1/012-v6.4-arm64-dts-rockchip-remove-I2S1-TDM-node-for-the-NanoPi-R5.patch deleted file mode 100644 index 48021b226a..0000000000 --- a/target/linux/rockchip/patches-6.1/012-v6.4-arm64-dts-rockchip-remove-I2S1-TDM-node-for-the-NanoPi-R5.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 975e9bbad11950fc8276f1fa260d8bf2c341aa41 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 18 Mar 2023 16:37:45 +0800 -Subject: [PATCH] arm64: dts: rockchip: remove I2S1 TDM node for the NanoPi R5 - series - -This is for the audio output which does not exist on the boards. -Also disable regulator-always-on for vccio_acodec since it's only -used by the audio output. - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230318083745.6181-6-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi | 6 ------ - 1 file changed, 6 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -@@ -330,7 +330,6 @@ - - vccio_acodec: LDO_REG4 { - regulator-name = "vccio_acodec"; -- regulator-always-on; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - -@@ -441,11 +440,6 @@ - status = "okay"; - }; - --&i2s1_8ch { -- rockchip,trcm-sync-tx-only; -- status = "okay"; --}; -- - &pcie30phy { - data-lanes = <1 2>; - status = "okay"; diff --git a/target/linux/rockchip/patches-6.1/013-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R5C.patch b/target/linux/rockchip/patches-6.1/013-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R5C.patch deleted file mode 100644 index 0465d80cba..0000000000 --- a/target/linux/rockchip/patches-6.1/013-v6.4-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R5C.patch +++ /dev/null @@ -1,152 +0,0 @@ -From 05620031408ac6cfc6d5c048431827e49aa0ade1 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 18 Mar 2023 16:37:43 +0800 -Subject: [PATCH] arm64: dts: rockchip: Add FriendlyARM NanoPi R5C - -FriendlyARM NanoPi R5C is an open-sourced mini IoT gateway device. - -Specification: -- Rockchip RK3568 -- 1/4GB LPDDR4X RAM -- 8/32GB eMMC -- SD card slot -- M.2 Connector -- 2x USB 3.0 Port -- 2x 2500 Base-T (PCIe, r8125) -- HDMI 2.0 -- MIPI DSI/CSI -- USB Type C 5V - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230318083745.6181-4-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3568-nanopi-r5c.dts | 112 ++++++++++++++++++ - 2 files changed, 113 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -74,5 +74,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-ro - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5c.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5s.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -@@ -0,0 +1,112 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. -+ * (http://www.friendlyelec.com) -+ * -+ * Copyright (c) 2023 Tianling Shen -+ */ -+ -+/dts-v1/; -+#include "rk3568-nanopi-r5s.dtsi" -+ -+/ { -+ model = "FriendlyElec NanoPi R5C"; -+ compatible = "friendlyarm,nanopi-r5c", "rockchip,rk3568"; -+ -+ gpio-keys { -+ compatible = "gpio-keys"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&reset_button_pin>; -+ -+ button-reset { -+ debounce-interval = <50>; -+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>; -+ label = "reset"; -+ linux,code = ; -+ }; -+ }; -+ -+ gpio-leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&lan_led_pin>, <&power_led_pin>, <&wan_led_pin>, <&wlan_led_pin>; -+ -+ led-lan { -+ color = ; -+ function = LED_FUNCTION_LAN; -+ gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ power_led: led-power { -+ color = ; -+ function = LED_FUNCTION_POWER; -+ linux,default-trigger = "heartbeat"; -+ gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led-wan { -+ color = ; -+ function = LED_FUNCTION_WAN; -+ gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led-wlan { -+ color = ; -+ function = LED_FUNCTION_WLAN; -+ gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; -+ }; -+ }; -+}; -+ -+&pcie2x1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie20_reset_pin>; -+ reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>; -+ status = "okay"; -+}; -+ -+&pcie3x1 { -+ num-lanes = <1>; -+ reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pcie>; -+ status = "okay"; -+}; -+ -+&pcie3x2 { -+ num-lanes = <1>; -+ reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pcie>; -+ status = "okay"; -+}; -+ -+&pinctrl { -+ gpio-leds { -+ lan_led_pin: lan-led-pin { -+ rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ power_led_pin: power-led-pin { -+ rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wan_led_pin: wan-led-pin { -+ rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wlan_led_pin: wlan-led-pin { -+ rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pcie { -+ pcie20_reset_pin: pcie20-reset-pin { -+ rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ rockchip-key { -+ reset_button_pin: reset-button-pin { -+ rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+}; diff --git a/target/linux/rockchip/patches-6.1/014-v6.4-arm64-dts-rockchip-fix-button-reset-pin-for-nanopi-r5c.patch b/target/linux/rockchip/patches-6.1/014-v6.4-arm64-dts-rockchip-fix-button-reset-pin-for-nanopi-r5c.patch deleted file mode 100644 index 0e59f0275b..0000000000 --- a/target/linux/rockchip/patches-6.1/014-v6.4-arm64-dts-rockchip-fix-button-reset-pin-for-nanopi-r5c.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 5325593377f07de31f7e473a9677a28a04c891f3 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Thu, 11 May 2023 00:18:50 +0800 -Subject: [PATCH] arm64: dts: rockchip: fix button reset pin for nanopi r5c - -The reset pin was wrongly assigned due to a copy/paste error, -fix it to match actual gpio pin. - -While at it, remove a blank line from nanopi r5s dts. - -Fixes: 05620031408a ("arm64: dts: rockchip: Add FriendlyARM NanoPi R5C") -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230510161850.4866-1-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts | 2 +- - arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts | 1 - - 2 files changed, 1 insertion(+), 2 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -@@ -106,7 +106,7 @@ - - rockchip-key { - reset_button_pin: reset-button-pin { -- rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; -+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - }; ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -@@ -134,4 +134,3 @@ - }; - }; - }; -- diff --git a/target/linux/rockchip/patches-6.1/015-v6.8-arm64-dts-rockchip-configure-eth-pad-driver-strength-for-.patch b/target/linux/rockchip/patches-6.1/015-v6.8-arm64-dts-rockchip-configure-eth-pad-driver-strength-for-.patch deleted file mode 100644 index 01efaa3a9d..0000000000 --- a/target/linux/rockchip/patches-6.1/015-v6.8-arm64-dts-rockchip-configure-eth-pad-driver-strength-for-.patch +++ /dev/null @@ -1,33 +0,0 @@ -From fc5a80a432607d05e85bba37971712405f75c546 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 16 Dec 2023 12:07:23 +0800 -Subject: [PATCH] arm64: dts: rockchip: configure eth pad driver strength - for orangepi r1 plus lts - -The default strength is not enough to provide stable connection -under 3.3v LDO voltage. - -Fixes: 387b3bbac5ea ("arm64: dts: rockchip: Add Xunlong OrangePi R1 Plus LTS") -Cc: stable@vger.kernel.org # 6.6+ -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20231216040723.17864-1-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts -@@ -26,9 +26,11 @@ - compatible = "ethernet-phy-ieee802.3-c22"; - reg = <0>; - -+ motorcomm,auto-sleep-disabled; - motorcomm,clk-out-frequency-hz = <125000000>; - motorcomm,keep-pll-enabled; -- motorcomm,auto-sleep-disabled; -+ motorcomm,rx-clk-drv-microamp = <5020>; -+ motorcomm,rx-data-drv-microamp = <5020>; - - pinctrl-0 = <ð_phy_reset_pin>; - pinctrl-names = "default"; diff --git a/target/linux/rockchip/patches-6.1/016-v6.3-arm64-dts-rockchip-Add-Radxa-Compute-Module-3-IO-board.patch b/target/linux/rockchip/patches-6.1/016-v6.3-arm64-dts-rockchip-Add-Radxa-Compute-Module-3-IO-board.patch deleted file mode 100644 index b4a68d1558..0000000000 --- a/target/linux/rockchip/patches-6.1/016-v6.3-arm64-dts-rockchip-Add-Radxa-Compute-Module-3-IO-board.patch +++ /dev/null @@ -1,233 +0,0 @@ -From 096ebfb74b19f2d4bdcbc33ae02e857ff4b3e0a0 Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Thu, 12 Jan 2023 16:29:02 +0530 -Subject: [PATCH] arm64: dts: rockchip: Add Radxa Compute Module 3 IO board - -Radxa Compute Module 3(CM3) IO board is an application board from Radxa -and is compatible with Raspberry Pi CM4 IO form factor. - -Specification: -- 1x HDMI, -- 2x MIPI DSI -- 2x MIPI CSI2 -- 1x eDP -- 1x PCIe card -- 2x SATA -- 2x USB 2.0 Host -- 1x USB 3.0 -- 1x USB 2.0 OTG -- Phone jack -- microSD slot -- 40-pin GPIO expansion header -- 12V DC - -Radxa CM3 needs to mount on top of this IO board in order to create -complete Radxa CM3 IO board platform. - -Add support for Radxa CM3 IO Board. - -Co-developed-by: FUKAUMI Naoki -Signed-off-by: FUKAUMI Naoki -Co-developed-by: Manoj Sai -Signed-off-by: Manoj Sai -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230112105902.192852-3-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 179 ++++++++++++++++++ - 2 files changed, 180 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -70,6 +70,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pi - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -0,0 +1,179 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2022 Radxa Limited -+ * Copyright (c) 2022 Amarula Solutions(India) -+ */ -+ -+/dts-v1/; -+#include -+#include "rk3566.dtsi" -+#include "rk3566-radxa-cm3.dtsi" -+ -+/ { -+ model = "Radxa Compute Module 3(CM3) IO Board"; -+ compatible = "radxa,radxa-cm3-io", "radxa,radxa-cm3", "rockchip,rk3566"; -+ -+ aliases { -+ mmc1 = &sdmmc0; -+ }; -+ -+ chosen: chosen { -+ stdout-path = "serial2:1500000n8"; -+ }; -+ -+ hdmi-con { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ led-1 { -+ gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>; -+ color = ; -+ function = LED_FUNCTION_ACTIVITY; -+ linux,default-trigger = "heartbeat"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pi_nled_activity>; -+ }; -+ }; -+ -+ vcc5v0_usb30: vcc5v0-usb30-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_usb30"; -+ enable-active-high; -+ gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vcc5v0_usb30_en_h>; -+ regulator-always-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc_sys>; -+ }; -+ -+ vcca1v8_image: vcca1v8-image-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcca1v8_image"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc_1v8_p>; -+ }; -+ -+ vdda0v9_image: vdda0v9-image-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcca0v9_image"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vdda_0v9>; -+ }; -+}; -+ -+&combphy1 { -+ status = "okay"; -+}; -+ -+&hdmi { -+ avdd-0v9-supply = <&vdda0v9_image>; -+ avdd-1v8-supply = <&vcca1v8_image>; -+ status = "okay"; -+}; -+ -+&hdmi_in { -+ hdmi_in_vp0: endpoint { -+ remote-endpoint = <&vp0_out_hdmi>; -+ }; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ -+&hdmi_sound { -+ status = "okay"; -+}; -+ -+&pinctrl { -+ leds { -+ pi_nled_activity: pi-nled-activity { -+ rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ sdcard { -+ sdmmc_pwren: sdmmc-pwren { -+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ usb { -+ vcc5v0_usb30_en_h: vcc5v0-host-en-h { -+ rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&sdmmc0 { -+ bus-width = <4>; -+ cap-mmc-highspeed; -+ cap-sd-highspeed; -+ disable-wp; -+ vqmmc-supply = <&vccio_sd>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_pwren>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb2phy0_host { -+ phy-supply = <&vcc5v0_usb30>; -+ status = "okay"; -+}; -+ -+&usb2phy1_host { -+ status = "okay"; -+}; -+ -+&usb2phy1_otg { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host1_xhci { -+ status = "okay"; -+}; -+ -+&vop { -+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; -+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; -+ status = "okay"; -+}; -+ -+&vop_mmu { -+ status = "okay"; -+}; -+ -+&vp0 { -+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { -+ reg = ; -+ remote-endpoint = <&hdmi_in_vp0>; -+ }; -+}; diff --git a/target/linux/rockchip/patches-6.1/016-v6.5-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C-Plus.patch b/target/linux/rockchip/patches-6.1/016-v6.5-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C-Plus.patch deleted file mode 100644 index d0a0aa1b69..0000000000 --- a/target/linux/rockchip/patches-6.1/016-v6.5-arm64-dts-rockchip-Add-FriendlyARM-NanoPi-R2C-Plus.patch +++ /dev/null @@ -1,63 +0,0 @@ -From d211665c5a833873ee37e501af58adbf028e6b5f Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Sat, 13 May 2023 21:53:07 +0800 -Subject: [PATCH] arm64: dts: rockchip: Add FriendlyARM NanoPi R2C Plus - -The NanoPi R2C Plus is a small variant of NanoPi R2C with a on-board -eMMC flash (8G) included. - -Signed-off-by: Tianling Shen -Link: https://lore.kernel.org/r/20230513135307.26554-2-cnsztl@gmail.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3328-nanopi-r2c-plus.dts | 33 ++++++++++++++++++++++ - 2 files changed, 34 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2c-plus.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -11,6 +11,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-od - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c-plus.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus-lts.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2c-plus.dts -@@ -0,0 +1,33 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+/* -+ * Copyright (c) 2021 FriendlyElec Computer Tech. Co., Ltd. -+ * (http://www.friendlyarm.com) -+ * -+ * Copyright (c) 2023 Tianling Shen -+ */ -+ -+/dts-v1/; -+#include "rk3328-nanopi-r2c.dts" -+ -+/ { -+ model = "FriendlyElec NanoPi R2C Plus"; -+ compatible = "friendlyarm,nanopi-r2c-plus", "rockchip,rk3328"; -+ -+ aliases { -+ mmc1 = &emmc; -+ }; -+}; -+ -+&emmc { -+ bus-width = <8>; -+ cap-mmc-highspeed; -+ max-frequency = <150000000>; -+ mmc-ddr-1_8v; -+ mmc-hs200-1_8v; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; -+ vmmc-supply = <&vcc_io_33>; -+ vqmmc-supply = <&vcc18_emmc>; -+ status = "okay"; -+}; diff --git a/target/linux/rockchip/patches-6.1/017-v6.3-arm64-dts-rockchip-Enable-Ethernet-for-Radxa-CM3-IO.patch b/target/linux/rockchip/patches-6.1/017-v6.3-arm64-dts-rockchip-Enable-Ethernet-for-Radxa-CM3-IO.patch deleted file mode 100644 index 305b5702d5..0000000000 --- a/target/linux/rockchip/patches-6.1/017-v6.3-arm64-dts-rockchip-Enable-Ethernet-for-Radxa-CM3-IO.patch +++ /dev/null @@ -1,131 +0,0 @@ -From cc52bfc04726a574fc4440bbbe0c710890e7040a Mon Sep 17 00:00:00 2001 -From: Manoj Sai -Date: Wed, 25 Jan 2023 21:40:22 +0530 -Subject: [PATCH] arm64: dts: rockchip: Enable Ethernet for Radxa CM3 IO - -Add ethernet nodes for enabling gmac1 on the Radxa CM3 IO board. - -Signed-off-by: Manoj Sai -Link: https://lore.kernel.org/r/20230125161023.12115-1-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - .../boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 93 +++++++++++++++++++ - 1 file changed, 93 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -21,6 +21,13 @@ - stdout-path = "serial2:1500000n8"; - }; - -+ gmac1_clkin: external-gmac1-clock { -+ compatible = "fixed-clock"; -+ clock-frequency = <125000000>; -+ clock-output-names = "gmac1_clkin"; -+ #clock-cells = <0>; -+ }; -+ - hdmi-con { - compatible = "hdmi-connector"; - type = "a"; -@@ -83,6 +90,29 @@ - status = "okay"; - }; - -+&gmac1 { -+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; -+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>; -+ assigned-clock-rates = <0>, <125000000>; -+ clock_in_out = "input"; -+ phy-handle = <&rgmii_phy1>; -+ phy-mode = "rgmii"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&gmac1m0_miim -+ &gmac1m0_tx_bus2 -+ &gmac1m0_rx_bus2 -+ &gmac1m0_rgmii_clk -+ &gmac1m0_rgmii_bus -+ &gmac1m0_clkinout>; -+ snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; -+ snps,reset-active-low; -+ /* Reset time is 20ms, 100ms for rtl8211f */ -+ snps,reset-delays-us = <0 20000 100000>; -+ tx_delay = <0x46>; -+ rx_delay = <0x2e>; -+ status = "okay"; -+}; -+ - &hdmi { - avdd-0v9-supply = <&vdda0v9_image>; - avdd-1v8-supply = <&vcca1v8_image>; -@@ -105,7 +135,70 @@ - status = "okay"; - }; - -+&mdio1 { -+ rgmii_phy1: ethernet-phy@0 { -+ compatible="ethernet-phy-ieee802.3-c22"; -+ reg= <0x0>; -+ }; -+}; -+ - &pinctrl { -+ gmac1 { -+ gmac1m0_miim: gmac1m0-miim { -+ rockchip,pins = -+ /* gmac1_mdcm0 */ -+ <3 RK_PC4 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_mdiom0 */ -+ <3 RK_PC5 3 &pcfg_pull_none_drv_level_15>; -+ }; -+ -+ gmac1m0_rx_bus2: gmac1m0-rx-bus2 { -+ rockchip,pins = -+ /* gmac1_rxd0m0 */ -+ <3 RK_PB1 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_rxd1m0 */ -+ <3 RK_PB2 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_rxdvcrsm0 */ -+ <3 RK_PB3 3 &pcfg_pull_none_drv_level_15>; -+ }; -+ -+ gmac1m0_tx_bus2: gmac1m0-tx-bus2 { -+ rockchip,pins = -+ /* gmac1_txd0m0 */ -+ <3 RK_PB5 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_txd1m0 */ -+ <3 RK_PB6 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_txenm0 */ -+ <3 RK_PB7 3 &pcfg_pull_none_drv_level_15>; -+ }; -+ -+ gmac1m0_rgmii_clk: gmac1m0-rgmii-clk { -+ rockchip,pins = -+ /* gmac1_rxclkm0 */ -+ <3 RK_PA7 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_txclkm0 */ -+ <3 RK_PA6 3 &pcfg_pull_none_drv_level_15>; -+ }; -+ -+ gmac1m0_rgmii_bus: gmac1m0-rgmii-bus { -+ rockchip,pins = -+ /* gmac1_rxd2m0 */ -+ <3 RK_PA4 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_rxd3m0 */ -+ <3 RK_PA5 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_txd2m0 */ -+ <3 RK_PA2 3 &pcfg_pull_none_drv_level_15>, -+ /* gmac1_txd3m0 */ -+ <3 RK_PA3 3 &pcfg_pull_none_drv_level_15>; -+ }; -+ -+ gmac1m0_clkinout: gmac1m0-clkinout { -+ rockchip,pins = -+ /* gmac1_mclkinoutm0 */ -+ <3 RK_PC0 3 &pcfg_pull_none_drv_level_15>; -+ }; -+ }; -+ - leds { - pi_nled_activity: pi-nled-activity { - rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; diff --git a/target/linux/rockchip/patches-6.1/018-v6.3-arm64-dts-rockchip-Add-rk3566-based-Radxa-Compute-Module-3.patch b/target/linux/rockchip/patches-6.1/018-v6.3-arm64-dts-rockchip-Add-rk3566-based-Radxa-Compute-Module-3.patch deleted file mode 100644 index e53f7fa7e0..0000000000 --- a/target/linux/rockchip/patches-6.1/018-v6.3-arm64-dts-rockchip-Add-rk3566-based-Radxa-Compute-Module-3.patch +++ /dev/null @@ -1,386 +0,0 @@ -From 7469ab529bcad50490f6ff651c3e4f03bfa88fe0 Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Thu, 12 Jan 2023 16:29:01 +0530 -Subject: [PATCH] arm64: dts: rockchip: Add rk3566 based Radxa Compute Module 3 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Radxa Compute Module 3(CM3) is one of the modules from a series -System On Module based on the Radxa ROCK 3 series and is compatible -with Raspberry Pi CM4 pinout and form factor. - -Specification: -- Rockchip RK3566 -- up to 8GB LPDDR4 -- up to 128GB high performance eMMC -- Optional wireless LAN, 2.4GHz and 5.0GHz IEEE 802.11b/g/n/ac wireless, - BT 5.0, BLE with onboard and external antenna. -- Gigabit Ethernet PHY - -Radxa CM3 needs to mount on top of this IO board in order to create -complete Radxa CM3 IO board platform. - -Since Radxa CM3 is compatible with Raspberry Pi CM4 pinout so it is -possible to mount Radxa CM3 on top of the Rasberry Pi CM4 IO board. - -Add support for Radxa CM3. - -Co-developed-by: FUKAUMI Naoki -Signed-off-by: FUKAUMI Naoki -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230112105902.192852-2-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - .../boot/dts/rockchip/rk3566-radxa-cm3.dtsi | 345 ++++++++++++++++++ - 1 file changed, 345 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi - ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -@@ -0,0 +1,345 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (c) 2022 Radxa Limited -+ * Copyright (c) 2022 Amarula Solutions(India) -+ */ -+ -+#include -+#include -+ -+/ { -+ compatible = "radxa,radxa-cm3", "rockchip,rk3566"; -+ -+ aliases { -+ mmc0 = &sdhci; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ led-0 { -+ gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; -+ color = ; -+ function = LED_FUNCTION_STATUS; -+ linux,default-trigger = "timer"; -+ default-state = "on"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&user_led2>; -+ }; -+ }; -+ -+ vcc_sys: vcc-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ }; -+ -+ vcc_1v8: vcc-1v8-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc_1v8_p>; -+ }; -+ -+ vcc_3v3: vcc-3v3-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc_3v3"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ vcca_1v8: vcca-1v8-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcca_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc_1v8_p>; -+ }; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu_npu>; -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ vdd_cpu: regulator@1c { -+ compatible = "tcs,tcs4525"; -+ reg = <0x1c>; -+ fcs,suspend-voltage-selector = <1>; -+ regulator-name = "vdd_cpu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1390000>; -+ regulator-ramp-delay = <2300>; -+ vin-supply = <&vcc_sys>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ rk817: pmic@20 { -+ compatible = "rockchip,rk817"; -+ reg = <0x20>; -+ #clock-cells = <1>; -+ clock-output-names = "rk817-clkout1", "rk817-clkout2"; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int_l>; -+ rockchip,system-power-controller; -+ wakeup-source; -+ -+ vcc1-supply = <&vcc_sys>; -+ vcc2-supply = <&vcc_sys>; -+ vcc3-supply = <&vcc_sys>; -+ vcc4-supply = <&vcc_sys>; -+ vcc5-supply = <&vcc_sys>; -+ vcc6-supply = <&vcc_sys>; -+ vcc7-supply = <&vcc_sys>; -+ -+ regulators { -+ vdd_logic: DCDC_REG1 { -+ regulator-name = "vdd_logic"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ vdd_gpu_npu: DCDC_REG2 { -+ regulator-name = "vdd_gpu_npu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-name = "vcc_ddr"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_sys: DCDC_REG4 { -+ regulator-name = "vcc3v3_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcca1v8_pmu: LDO_REG1 { -+ regulator-name = "vcca1v8_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vdda_0v9: LDO_REG2 { -+ regulator-name = "vdda_0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_pmu: LDO_REG3 { -+ regulator-name = "vdda0v9_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ vccio_acodec: LDO_REG4 { -+ regulator-name = "vccio_acodec"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vccio_sd: LDO_REG5 { -+ regulator-name = "vccio_sd"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_pmu: LDO_REG6 { -+ regulator-name = "vcc3v3_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcc_1v8_p: LDO_REG7 { -+ regulator-name = "vcc_1v8_p"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc1v8_dvp: LDO_REG8 { -+ regulator-name = "vcc1v8_dvp"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc2v8_dvp: LDO_REG9 { -+ regulator-name = "vcc2v8_dvp"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ }; -+ }; -+}; -+ -+&pinctrl { -+ pmic { -+ pmic_int_l: pmic-int-l { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ leds { -+ user_led2: user-led2 { -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmuio1-supply = <&vcc3v3_pmu>; -+ pmuio2-supply = <&vcc_3v3>; -+ vccio1-supply = <&vccio_acodec>; -+ vccio2-supply = <&vcc_1v8>; -+ vccio3-supply = <&vccio_sd>; -+ vccio4-supply = <&vcc_1v8>; -+ vccio5-supply = <&vcc_3v3>; -+ vccio6-supply = <&vcc_3v3>; -+ vccio7-supply = <&vcc_3v3>; -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcca_1v8>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ max-frequency = <200000000>; -+ mmc-hs200-1_8v; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; -+ vmmc-supply = <&vcc_3v3>; -+ vqmmc-supply = <&vcc_1v8>; -+ status = "okay"; -+}; -+ -+&usb2phy0 { -+ status = "okay"; -+}; -+ -+&usb2phy1 { -+ status = "okay"; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <1>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; diff --git a/target/linux/rockchip/patches-6.1/019-v6.3-arm64-dts-rockchip-Enable-WiFi-BT-support-for-Radxa-CM3.patch b/target/linux/rockchip/patches-6.1/019-v6.3-arm64-dts-rockchip-Enable-WiFi-BT-support-for-Radxa-CM3.patch deleted file mode 100644 index 9855b9e1a6..0000000000 --- a/target/linux/rockchip/patches-6.1/019-v6.3-arm64-dts-rockchip-Enable-WiFi-BT-support-for-Radxa-CM3.patch +++ /dev/null @@ -1,134 +0,0 @@ -From af5a803bf212e077e5fb7a1d4cf6be02f74a74ca Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Wed, 25 Jan 2023 21:40:23 +0530 -Subject: [PATCH] arm64: dts: rockchip: rk3566: Enable WiFi, BT support for - Radxa CM3 - -Radxa Compute Module 3 has an onboard AW_CM256SM WiFi/BT module. - -Add nodes for enabling it. - -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230125161023.12115-2-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - .../boot/dts/rockchip/rk3566-radxa-cm3.dtsi | 80 +++++++++++++++++++ - 1 file changed, 80 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -@@ -66,6 +66,15 @@ - regulator-max-microvolt = <1800000>; - vin-supply = <&vcc_1v8_p>; - }; -+ -+ sdio_pwrseq: pwrseq-sdio { -+ compatible = "mmc-pwrseq-simple"; -+ clocks = <&rk817 1>; -+ clock-names = "ext_clock"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_reg_on_h>; -+ reset-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_LOW>; -+ }; - }; - - &cpu0 { -@@ -287,6 +296,20 @@ - }; - - &pinctrl { -+ bluetooth { -+ bt_host_wake_h: bt-host-wake-h { -+ rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_reg_on_h: bt-reg-on-h { -+ rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ bt_wake_host_h: bt-wake-host-h { -+ rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ - pmic { - pmic_int_l: pmic-int-l { - rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -@@ -298,6 +321,16 @@ - rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; -+ -+ wifi { -+ wifi_reg_on_h: wifi-reg-on-h { -+ rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ wifi_host_wake_h: wifi-host-wake-h { -+ rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; - }; - - &pmu_io_domains { -@@ -318,6 +351,34 @@ - status = "okay"; - }; - -+&sdmmc1 { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ bus-width = <4>; -+ disable-wp; -+ cap-sd-highspeed; -+ cap-sdio-irq; -+ keep-power-in-suspend; -+ mmc-pwrseq = <&sdio_pwrseq>; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd>; -+ sd-uhs-sdr104; -+ vmmc-supply = <&vcc_3v3>; -+ vqmmc-supply = <&vcc_1v8>; -+ status = "okay"; -+ -+ wifi@1 { -+ compatible = "brcm,bcm43455-fmac"; -+ reg = <1>; -+ interrupt-parent = <&gpio2>; -+ interrupts = ; -+ interrupt-names = "host-wake"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_host_wake_h>; -+ }; -+}; -+ - &sdhci { - bus-width = <8>; - max-frequency = <200000000>; -@@ -330,6 +391,25 @@ - status = "okay"; - }; - -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1m0_ctsn &uart1m0_rtsn &uart1m0_xfer>; -+ status = "okay"; -+ -+ bluetooth { -+ compatible = "brcm,bcm4345c5"; -+ clocks = <&rk817 1>; -+ clock-names = "lpo"; -+ device-wakeup-gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_HIGH>; -+ host-wakeup-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; -+ reset-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_LOW>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&bt_host_wake_h &bt_reg_on_h &bt_wake_host_h>; -+ vbat-supply = <&vcc_3v3>; -+ vddio-supply = <&vcc_1v8>; -+ }; -+}; -+ - &usb2phy0 { - status = "okay"; - }; diff --git a/target/linux/rockchip/patches-6.1/020-v6.4-arm64-dts-rockchip-Enable-USB-OTG-for-rk3566-Radxa-CM3.patch b/target/linux/rockchip/patches-6.1/020-v6.4-arm64-dts-rockchip-Enable-USB-OTG-for-rk3566-Radxa-CM3.patch deleted file mode 100644 index bfd6dbe0db..0000000000 --- a/target/linux/rockchip/patches-6.1/020-v6.4-arm64-dts-rockchip-Enable-USB-OTG-for-rk3566-Radxa-CM3.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 477ed3ade6a46e445b4e2348b710c51df4f6f4b1 Mon Sep 17 00:00:00 2001 -From: Manoj Sai -Date: Thu, 23 Feb 2023 19:29:29 +0530 -Subject: [PATCH] arm64: dts: rockchip: Enable USB OTG for rk3566 Radxa CM3 - -Enable USB OTG support for Radxa Compute Module 3 IO Board - -Signed-off-by: Manoj Sai -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230223135929.630787-1-abbaraju.manojsai@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -254,6 +254,14 @@ - status = "okay"; - }; - -+&usb2phy0_otg { -+ status = "okay"; -+}; -+ -+&usb_host0_xhci { -+ status = "okay"; -+}; -+ - &vop { - assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; - assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; diff --git a/target/linux/rockchip/patches-6.1/021-v6.3-arm64-dts-rockchip-Fix-compatible-for-Radxa-CM3.patch b/target/linux/rockchip/patches-6.1/021-v6.3-arm64-dts-rockchip-Fix-compatible-for-Radxa-CM3.patch deleted file mode 100644 index e7e3ea0100..0000000000 --- a/target/linux/rockchip/patches-6.1/021-v6.3-arm64-dts-rockchip-Fix-compatible-for-Radxa-CM3.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 8f19828844f20b22182719cf53be64f8c955aee8 Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Mon, 23 Jan 2023 12:46:50 +0530 -Subject: [PATCH] arm64: dts: rockchip: Fix compatible for Radxa CM3 - -The compatible string "radxa,radxa-cm3" referring the product name -as "Radxa Radxa CM3" but the actual product name is "Radxa CM3". - -Fix the compatible strings. - -Fixes: 24a28d3eb07d ("dt-bindings: arm: rockchip: Add Radxa Compute Module 3") -Fixes: 7469ab529bca ("arm64: dts: rockchip: Add rk3566 based Radxa Compute Module 3") -Fixes: 096ebfb74b19 ("arm64: dts: rockchip: Add Radxa Compute Module 3 IO board") -Suggested-by: Krzysztof Kozlowski -Signed-off-by: Jagan Teki -Acked-by: Krzysztof Kozlowski -Link: https://lore.kernel.org/r/20230123071654.73139-1-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 2 +- - arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -11,7 +11,7 @@ - - / { - model = "Radxa Compute Module 3(CM3) IO Board"; -- compatible = "radxa,radxa-cm3-io", "radxa,radxa-cm3", "rockchip,rk3566"; -+ compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566"; - - aliases { - mmc1 = &sdmmc0; ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -@@ -8,7 +8,7 @@ - #include - - / { -- compatible = "radxa,radxa-cm3", "rockchip,rk3566"; -+ compatible = "radxa,cm3", "rockchip,rk3566"; - - aliases { - mmc0 = &sdhci; diff --git a/target/linux/rockchip/patches-6.1/022-v6.5-arm64-dts-rockchip-minor-whitespace-cleanup-around.patch b/target/linux/rockchip/patches-6.1/022-v6.5-arm64-dts-rockchip-minor-whitespace-cleanup-around.patch deleted file mode 100644 index 8342c14ea4..0000000000 --- a/target/linux/rockchip/patches-6.1/022-v6.5-arm64-dts-rockchip-minor-whitespace-cleanup-around.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f99a75f11f46a24dabb33e90893eebf61dca0566 Mon Sep 17 00:00:00 2001 -From: Krzysztof Kozlowski -Date: Sun, 2 Jul 2023 20:52:42 +0200 -Subject: [PATCH] arm64: dts: rockchip: minor whitespace cleanup around '=' - -The DTS code coding style expects exactly one space before and after '=' -sign. - -Signed-off-by: Krzysztof Kozlowski -Link: https://lore.kernel.org/r/20230702185242.44421-1-krzysztof.kozlowski@linaro.org -Signed-off-by: Heiko Stuebner ---- - .../boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -137,8 +137,8 @@ - - &mdio1 { - rgmii_phy1: ethernet-phy@0 { -- compatible="ethernet-phy-ieee802.3-c22"; -- reg= <0x0>; -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <0x0>; - }; - }; - diff --git a/target/linux/rockchip/patches-6.1/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch b/target/linux/rockchip/patches-6.1/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch deleted file mode 100644 index fb5015cf6e..0000000000 --- a/target/linux/rockchip/patches-6.1/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 36d9b3ae708e865cdab95692db5a24c5d975383d Mon Sep 17 00:00:00 2001 -From: Dragan Simic -Date: Tue, 12 Dec 2023 09:01:39 +0100 -Subject: [PATCH] arm64: dts: rockchip: Add ethernet0 alias to the dts for - RK3566 boards - -Add ethernet0 alias to the board dts files for a few supported RK3566 boards -that had it missing. Also, remove the ethernet0 alias from one RK3566 SoM -dtsi file, which doesn't enable the GMAC, and add the ethernet0 alias back to -the dependent board dts files, which actually enable the GMAC. - -Signed-off-by: Dragan Simic -Link: https://lore.kernel.org/r/d2a272e0ae0fff0adfab8bb0238243b11d348799.1702368023.git.dsimic@manjaro.org -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 1 + - 1 files changed, 1 insertions(+), 0 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -14,6 +14,7 @@ - compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566"; - - aliases { -+ ethernet0 = &gmac1; - mmc1 = &sdmmc0; - }; - diff --git a/target/linux/rockchip/patches-6.1/024-v6.3-arm64-dts-rockchip-Add-Radxa-CM3I-E25.patch b/target/linux/rockchip/patches-6.1/024-v6.3-arm64-dts-rockchip-Add-Radxa-CM3I-E25.patch deleted file mode 100644 index 354c546d7e..0000000000 --- a/target/linux/rockchip/patches-6.1/024-v6.3-arm64-dts-rockchip-Add-Radxa-CM3I-E25.patch +++ /dev/null @@ -1,689 +0,0 @@ -From 2bf2f4d9f673013a58109626b87329310537a611 Mon Sep 17 00:00:00 2001 -From: Chukun Pan -Date: Fri, 9 Dec 2022 18:25:24 +0800 -Subject: [PATCH] arm64: dts: rockchip: Add Radxa CM3I E25 - -Radxa E25 is a network application carrier board for the Radxa CM3 -Industrial (CM3I) SoM, which is based on the Rockchip RK3568 SoC. - -It has the following features: - -- MicroSD card socket, on board eMMC flash -- 2x 2.5GbE Realtek RTL8125B Ethernet transceiver -- 1x USB Type-C port (Power and Serial console) -- 1x USB 3.0 OTG port -- mini PCIe socket (USB or PCIe) -- ngff PCIe socket (USB or SATA) -- 1x User LED and 16x RGB LEDs -- 26-pin expansion header - -Signed-off-by: Chukun Pan -Link: https://lore.kernel.org/r/20221209102524.129367-3-amadeus@jmu.edu.cn -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/Makefile | 1 + - .../boot/dts/rockchip/rk3568-radxa-cm3i.dtsi | 416 ++++++++++++++++++ - .../boot/dts/rockchip/rk3568-radxa-e25.dts | 229 ++++++++++ - 3 files changed, 646 insertions(+) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-radxa-cm3i.dtsi - create mode 100644 arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts - ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -78,4 +78,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bp - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5c.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5s.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-radxa-e25.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-cm3i.dtsi -@@ -0,0 +1,416 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+ -+#include -+#include -+#include -+#include "rk3568.dtsi" -+ -+/ { -+ model = "Radxa CM3 Industrial Board"; -+ compatible = "radxa,cm3i", "rockchip,rk3568"; -+ -+ aliases { -+ mmc0 = &sdhci; -+ }; -+ -+ chosen { -+ stdout-path = "serial2:115200n8"; -+ }; -+ -+ gpio-leds { -+ compatible = "gpio-leds"; -+ -+ led_user: led-0 { -+ gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; -+ function = LED_FUNCTION_HEARTBEAT; -+ color = ; -+ linux,default-trigger = "heartbeat"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&led_user_en>; -+ }; -+ }; -+ -+ pcie30_avdd0v9: pcie30-avdd0v9-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "pcie30_avdd0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ pcie30_avdd1v8: pcie30-avdd1v8-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "pcie30_avdd1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ vin-supply = <&vcc3v3_sys>; -+ }; -+ -+ vcc3v3_sys: vcc3v3-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc3v3_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v_input>; -+ }; -+ -+ vcc5v0_sys: vcc5v0-sys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v0_sys"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v_input>; -+ }; -+ -+ /* labeled +5v_input in schematic */ -+ vcc5v_input: vcc5v-input-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc5v_input"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ }; -+}; -+ -+&combphy0 { -+ status = "okay"; -+}; -+ -+&combphy1 { -+ status = "okay"; -+}; -+ -+&combphy2 { -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu2 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&cpu3 { -+ cpu-supply = <&vdd_cpu>; -+}; -+ -+&display_subsystem { -+ status = "disabled"; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ vdd_cpu: regulator@1c { -+ compatible = "tcs,tcs4525"; -+ reg = <0x1c>; -+ fcs,suspend-voltage-selector = <1>; -+ regulator-name = "vdd_cpu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1150000>; -+ regulator-ramp-delay = <2300>; -+ vin-supply = <&vcc5v_input>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ rk809: pmic@20 { -+ compatible = "rockchip,rk809"; -+ reg = <0x20>; -+ interrupt-parent = <&gpio0>; -+ interrupts = ; -+ #clock-cells = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_int>; -+ rockchip,system-power-controller; -+ wakeup-source; -+ -+ vcc1-supply = <&vcc3v3_sys>; -+ vcc2-supply = <&vcc3v3_sys>; -+ vcc3-supply = <&vcc3v3_sys>; -+ vcc4-supply = <&vcc3v3_sys>; -+ vcc5-supply = <&vcc3v3_sys>; -+ vcc6-supply = <&vcc3v3_sys>; -+ vcc7-supply = <&vcc3v3_sys>; -+ vcc8-supply = <&vcc3v3_sys>; -+ vcc9-supply = <&vcc3v3_sys>; -+ -+ regulators { -+ vdd_logic: DCDC_REG1 { -+ regulator-name = "vdd_logic"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: DCDC_REG2 { -+ regulator-name = "vdd_gpu"; -+ regulator-always-on; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_ddr: DCDC_REG3 { -+ regulator-name = "vcc_ddr"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-initial-mode = <0x2>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ }; -+ -+ vdd_npu: DCDC_REG4 { -+ regulator-name = "vdd_npu"; -+ regulator-init-microvolt = <900000>; -+ regulator-initial-mode = <0x2>; -+ regulator-min-microvolt = <500000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <6001>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_1v8: DCDC_REG5 { -+ regulator-name = "vcc_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_image: LDO_REG1 { -+ regulator-name = "vdda0v9_image"; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda_0v9: LDO_REG2 { -+ regulator-name = "vdda_0v9"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdda0v9_pmu: LDO_REG3 { -+ regulator-name = "vdda0v9_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <900000>; -+ regulator-max-microvolt = <900000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <900000>; -+ }; -+ }; -+ -+ vccio_acodec: LDO_REG4 { -+ regulator-name = "vccio_acodec"; -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vccio_sd: LDO_REG5 { -+ regulator-name = "vccio_sd"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_pmu: LDO_REG6 { -+ regulator-name = "vcc3v3_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ }; -+ -+ vcca_1v8: LDO_REG7 { -+ regulator-name = "vcca_1v8"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcca1v8_pmu: LDO_REG8 { -+ regulator-name = "vcca1v8_pmu"; -+ regulator-always-on; -+ regulator-boot-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <1800000>; -+ }; -+ }; -+ -+ vcca1v8_image: LDO_REG9 { -+ regulator-name = "vcca1v8_image"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc_3v3: SWITCH_REG1 { -+ regulator-name = "vcc_3v3"; -+ regulator-always-on; -+ regulator-boot-on; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vcc3v3_sd: SWITCH_REG2 { -+ regulator-name = "vcc3v3_sd"; -+ -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+&pinctrl { -+ leds { -+ led_user_en: led_user_en { -+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ pmic { -+ pmic_int: pmic_int { -+ rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+}; -+ -+&pmu_io_domains { -+ pmuio1-supply = <&vcc3v3_pmu>; -+ pmuio2-supply = <&vcc3v3_pmu>; -+ vccio1-supply = <&vccio_acodec>; -+ vccio2-supply = <&vcc_1v8>; -+ vccio3-supply = <&vccio_sd>; -+ vccio4-supply = <&vcc_1v8>; -+ vccio5-supply = <&vcc_3v3>; -+ vccio6-supply = <&vcc_1v8>; -+ vccio7-supply = <&vcc_3v3>; -+ status = "okay"; -+}; -+ -+&saradc { -+ vref-supply = <&vcca_1v8>; -+ status = "okay"; -+}; -+ -+&sdhci { -+ bus-width = <8>; -+ max-frequency = <200000000>; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; -+ vmmc-supply = <&vcc_3v3>; -+ vqmmc-supply = <&vcc_1v8>; -+ status = "okay"; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <1>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; -+ -+&uart2 { -+ status = "okay"; -+}; -+ -+&usb2phy0 { -+ status = "okay"; -+}; -+ -+&usb2phy1 { -+ status = "okay"; -+}; -+ -+&usb_host0_xhci { -+ extcon = <&usb2phy0>; -+}; ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -0,0 +1,229 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+ -+/dts-v1/; -+#include "rk3568-radxa-cm3i.dtsi" -+ -+/ { -+ model = "Radxa E25"; -+ compatible = "radxa,e25", "rockchip,rk3568"; -+ -+ aliases { -+ mmc0 = &sdmmc0; -+ mmc1 = &sdhci; -+ }; -+ -+ pwm-leds { -+ compatible = "pwm-leds-multicolor"; -+ -+ multi-led { -+ color = ; -+ max-brightness = <255>; -+ -+ led-red { -+ color = ; -+ pwms = <&pwm1 0 1000000 0>; -+ }; -+ -+ led-green { -+ color = ; -+ pwms = <&pwm2 0 1000000 0>; -+ }; -+ -+ led-blue { -+ color = ; -+ pwms = <&pwm12 0 1000000 0>; -+ }; -+ }; -+ }; -+ -+ vbus_typec: vbus-typec-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&vbus_typec_en>; -+ regulator-name = "vbus_typec"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc3v3_minipcie: vcc3v3-minipcie-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&minipcie_enable_h>; -+ regulator-name = "vcc3v3_minipcie"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ vcc3v3_ngff: vcc3v3-ngff-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ngffpcie_enable_h>; -+ regulator-name = "vcc3v3_ngff"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+ -+ /* actually fed by vcc5v0_sys, dependent -+ * on pi6c clock generator -+ */ -+ vcc3v3_pcie30x1: vcc3v3-pcie30x1-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie30x1_enable_h>; -+ regulator-name = "vcc3v3_pcie30x1"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc3v3_pi6c_05>; -+ }; -+ -+ vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { -+ compatible = "regulator-fixed"; -+ enable-active-high; -+ gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie_enable_h>; -+ regulator-name = "vcc3v3_pcie"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc5v0_sys>; -+ }; -+}; -+ -+&pcie2x1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie20_reset_h>; -+ reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pi6c_05>; -+ status = "okay"; -+}; -+ -+&pcie30phy { -+ data-lanes = <1 2>; -+ status = "okay"; -+}; -+ -+&pcie3x1 { -+ num-lanes = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie30x1m0_pins>; -+ reset-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pcie30x1>; -+ status = "okay"; -+}; -+ -+&pcie3x2 { -+ num-lanes = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pcie30x2_reset_h>; -+ reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; -+ vpcie3v3-supply = <&vcc3v3_pi6c_05>; -+ status = "okay"; -+}; -+ -+&pinctrl { -+ pcie { -+ pcie20_reset_h: pcie20-reset-h { -+ rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie30x1_enable_h: pcie30x1-enable-h { -+ rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie30x2_reset_h: pcie30x2-reset-h { -+ rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ pcie_enable_h: pcie-enable-h { -+ rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ usb { -+ minipcie_enable_h: minipcie-enable-h { -+ rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ ngffpcie_enable_h: ngffpcie-enable-h { -+ rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ vbus_typec_en: vbus_typec_en { -+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&pwm1 { -+ status = "okay"; -+}; -+ -+&pwm2 { -+ status = "okay"; -+}; -+ -+&pwm12 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwm12m1_pins>; -+ status = "okay"; -+}; -+ -+&sdmmc0 { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; -+ /* Also used in pcie30x1_clkreqnm0 */ -+ disable-wp; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>; -+ sd-uhs-sdr104; -+ vmmc-supply = <&vcc3v3_sd>; -+ vqmmc-supply = <&vccio_sd>; -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ status = "okay"; -+}; -+ -+&usb_host0_ohci { -+ status = "okay"; -+}; -+ -+&usb_host0_xhci { -+ status = "okay"; -+}; -+ -+&usb_host1_ehci { -+ status = "okay"; -+}; -+ -+&usb_host1_ohci { -+ status = "okay"; -+}; -+ -+&usb2phy0_otg { -+ phy-supply = <&vbus_typec>; -+ status = "okay"; -+}; -+ -+&usb2phy1_host { -+ phy-supply = <&vcc3v3_minipcie>; -+ status = "okay"; -+}; -+ -+&usb2phy1_otg { -+ phy-supply = <&vcc3v3_ngff>; -+ status = "okay"; -+}; diff --git a/target/linux/rockchip/patches-6.1/025-v6.3-arm64-dts-rockchip-Update-eMMC-SD.patch b/target/linux/rockchip/patches-6.1/025-v6.3-arm64-dts-rockchip-Update-eMMC-SD.patch deleted file mode 100644 index e556e2eb42..0000000000 --- a/target/linux/rockchip/patches-6.1/025-v6.3-arm64-dts-rockchip-Update-eMMC-SD.patch +++ /dev/null @@ -1,48 +0,0 @@ -From c80992abd2877590059e9cb254213c16824e2106 Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Wed, 18 Jan 2023 13:34:53 +0530 -Subject: [PATCH] arm64: dts: rockchip: Update eMMC, SD aliases for Radxa SoM - boards - -Radxa has produced Compute Modules like RK3399pro VMARC and CM3i with -onboarding eMMC flash, so the eMMC is the primary MMC device. - -On the other hand, Rockchip boot orders start from eMMC from an MMC -device perspective. - -Mark, the eMMC has mmc0 to satisfy the above two conditions. - -Reported-by: FUKAUMI Naoki -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230118080454.11643-1-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3399pro-vmarc-som.dtsi | 4 ++-- - arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts | 3 +-- - 2 files changed, 3 insertions(+), 4 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3399pro-vmarc-som.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3399pro-vmarc-som.dtsi -@@ -13,8 +13,8 @@ - compatible = "vamrs,rk3399pro-vmarc-som", "rockchip,rk3399pro"; - - aliases { -- mmc0 = &sdmmc; -- mmc1 = &sdhci; -+ mmc0 = &sdhci; -+ mmc1 = &sdmmc; - }; - - vcc3v3_pcie: vcc-pcie-regulator { ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -8,8 +8,7 @@ - compatible = "radxa,e25", "rockchip,rk3568"; - - aliases { -- mmc0 = &sdmmc0; -- mmc1 = &sdhci; -+ mmc1 = &sdmmc0; - }; - - pwm-leds { diff --git a/target/linux/rockchip/patches-6.1/026-v6.3-arm64-dts-rockchip-Add-missing-CM3i.patch b/target/linux/rockchip/patches-6.1/026-v6.3-arm64-dts-rockchip-Add-missing-CM3i.patch deleted file mode 100644 index c1f1a09219..0000000000 --- a/target/linux/rockchip/patches-6.1/026-v6.3-arm64-dts-rockchip-Add-missing-CM3i.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c4d2b02d63ee38b381fbc886c02eecfec4f981cc Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Mon, 23 Jan 2023 12:46:51 +0530 -Subject: [PATCH] arm64: dts: rockchip: Add missing CM3i fallback compatible - for Radxa E25 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In order to function the Radxa E25 Carrier board, it is mandatory to -mount the Radxa CM3i module.  - -Add Radxa CM3i compatible as fallback compatible to string to satisfy -the Module and Carrier board topology. - -Fixes: 2bf2f4d9f673 ("arm64: dts: rockchip: Add Radxa CM3I E25") -Cc: Chukun Pan -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230123071654.73139-2-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -5,7 +5,7 @@ - - / { - model = "Radxa E25"; -- compatible = "radxa,e25", "rockchip,rk3568"; -+ compatible = "radxa,e25", "radxa,cm3i", "rockchip,rk3568"; - - aliases { - mmc1 = &sdmmc0; diff --git a/target/linux/rockchip/patches-6.1/027-v6.3-arm64-dts-rockchip-Correct-the-model-name-for-Radxa-E25.patch b/target/linux/rockchip/patches-6.1/027-v6.3-arm64-dts-rockchip-Correct-the-model-name-for-Radxa-E25.patch deleted file mode 100644 index 84e87bae05..0000000000 --- a/target/linux/rockchip/patches-6.1/027-v6.3-arm64-dts-rockchip-Correct-the-model-name-for-Radxa-E25.patch +++ /dev/null @@ -1,28 +0,0 @@ -From ef9134d9bbce071c9e4ebdcbb6f8fb1a5dd0a67e Mon Sep 17 00:00:00 2001 -From: Jagan Teki -Date: Mon, 23 Jan 2023 12:46:53 +0530 -Subject: [PATCH] arm64: dts: rockchip: Correct the model name for Radxa E25 - -Radxa E25 is a Carrier board, so update the model name for Radxa E25 -as suggested by the Radxa website. - -Fixes: 2bf2f4d9f673 ("arm64: dts: rockchip: Add Radxa CM3I E25") -Cc: Chukun Pan -Signed-off-by: Jagan Teki -Link: https://lore.kernel.org/r/20230123071654.73139-4-jagan@amarulasolutions.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -4,7 +4,7 @@ - #include "rk3568-radxa-cm3i.dtsi" - - / { -- model = "Radxa E25"; -+ model = "Radxa E25 Carrier Board"; - compatible = "radxa,e25", "radxa,cm3i", "rockchip,rk3568"; - - aliases { diff --git a/target/linux/rockchip/patches-6.1/028-v6.6-arm64-dts-rockchip-Fix-PCIe-regulators-on-Radxa-E25.patch b/target/linux/rockchip/patches-6.1/028-v6.6-arm64-dts-rockchip-Fix-PCIe-regulators-on-Radxa-E25.patch deleted file mode 100644 index da02c4c001..0000000000 --- a/target/linux/rockchip/patches-6.1/028-v6.6-arm64-dts-rockchip-Fix-PCIe-regulators-on-Radxa-E25.patch +++ /dev/null @@ -1,79 +0,0 @@ -From a87852e37f782257ebc57cc44a0d3fbf806471f6 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 24 Jul 2023 14:52:16 +0000 -Subject: [PATCH] arm64: dts: rockchip: Fix PCIe regulators on Radxa E25 - -Despite its name, the regulator vcc3v3_pcie30x1 has nothing to do with -pcie30x1. Instead, it supply power to VBAT1-5 on the M.2 KEY B port as -seen on page 8 of the schematic [1]. - -pcie30x1 is used for the mini PCIe slot, and as seen on page 9 the -vcc3v3_minipcie regulator is instead related to pcie30x1. - -The M.2 KEY B port can be used for WWAN USB2 modules or SATA drives. - -Use correct regulator vcc3v3_minipcie for pcie30x1. - -[1] https://dl.radxa.com/cm3p/e25/radxa-e25-v1.4-sch.pdf - -Fixes: 2bf2f4d9f673 ("arm64: dts: rockchip: Add Radxa CM3I E25") -Signed-off-by: Jonas Karlman -Link: https://lore.kernel.org/r/20230724145213.3833099-1-jonas@kwiboo.se -Signed-off-by: Heiko Stuebner ---- - .../arm64/boot/dts/rockchip/rk3568-radxa-e25.dts | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -47,6 +47,9 @@ - vin-supply = <&vcc5v0_sys>; - }; - -+ /* actually fed by vcc5v0_sys, dependent -+ * on pi6c clock generator -+ */ - vcc3v3_minipcie: vcc3v3-minipcie-regulator { - compatible = "regulator-fixed"; - enable-active-high; -@@ -54,9 +57,9 @@ - pinctrl-names = "default"; - pinctrl-0 = <&minipcie_enable_h>; - regulator-name = "vcc3v3_minipcie"; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- vin-supply = <&vcc5v0_sys>; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ vin-supply = <&vcc3v3_pi6c_05>; - }; - - vcc3v3_ngff: vcc3v3-ngff-regulator { -@@ -71,9 +74,6 @@ - vin-supply = <&vcc5v0_sys>; - }; - -- /* actually fed by vcc5v0_sys, dependent -- * on pi6c clock generator -- */ - vcc3v3_pcie30x1: vcc3v3-pcie30x1-regulator { - compatible = "regulator-fixed"; - enable-active-high; -@@ -83,7 +83,7 @@ - regulator-name = "vcc3v3_pcie30x1"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; -- vin-supply = <&vcc3v3_pi6c_05>; -+ vin-supply = <&vcc5v0_sys>; - }; - - vcc3v3_pi6c_05: vcc3v3-pi6c-05-regulator { -@@ -117,7 +117,7 @@ - pinctrl-names = "default"; - pinctrl-0 = <&pcie30x1m0_pins>; - reset-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; -- vpcie3v3-supply = <&vcc3v3_pcie30x1>; -+ vpcie3v3-supply = <&vcc3v3_minipcie>; - status = "okay"; - }; - diff --git a/target/linux/rockchip/patches-6.1/029-v6.6-arm64-dts-rockchip-Enable-SATA-on-Radxa-E25.patch b/target/linux/rockchip/patches-6.1/029-v6.6-arm64-dts-rockchip-Enable-SATA-on-Radxa-E25.patch deleted file mode 100644 index c0abdeb267..0000000000 --- a/target/linux/rockchip/patches-6.1/029-v6.6-arm64-dts-rockchip-Enable-SATA-on-Radxa-E25.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 2bdfe84fbd57a4ed9fd65a67210442559ce078f0 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 24 Jul 2023 14:52:16 +0000 -Subject: [PATCH] arm64: dts: rockchip: Enable SATA on Radxa E25 - -The M.2 KEY B port can be used for WWAN USB2 modules or SATA drives. - -Enable sata1 node to fix use of SATA drives on the M.2 slot. - -Fixes: 2bf2f4d9f673 ("arm64: dts: rockchip: Add Radxa CM3I E25") -Signed-off-by: Jonas Karlman -Link: https://lore.kernel.org/r/20230724145213.3833099-1-jonas@kwiboo.se -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -99,6 +99,10 @@ - }; - }; - -+&combphy1 { -+ phy-supply = <&vcc3v3_pcie30x1>; -+}; -+ - &pcie2x1 { - pinctrl-names = "default"; - pinctrl-0 = <&pcie20_reset_h>; -@@ -178,6 +182,10 @@ - status = "okay"; - }; - -+&sata1 { -+ status = "okay"; -+}; -+ - &sdmmc0 { - bus-width = <4>; - cap-sd-highspeed; diff --git a/target/linux/rockchip/patches-6.1/030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch b/target/linux/rockchip/patches-6.1/030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch deleted file mode 100644 index 9be609f661..0000000000 --- a/target/linux/rockchip/patches-6.1/030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 437644753208092f642b7669c69da606aa07dfb4 Mon Sep 17 00:00:00 2001 -From: Tim Lunn -Date: Wed, 14 Feb 2024 15:07:30 +1100 -Subject: [PATCH] arm64: dts: rockchip: adjust vendor on Banana Pi R2 Pro board - -Adjust compatible string to match the board vendor of Sinovoip - -Signed-off-by: Tim Lunn -Reviewed-by: Dragan Simic -Acked-by: Conor Dooley -Link: https://lore.kernel.org/r/20240214040731.3069111-4-tim@feathertop.org -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts -@@ -13,7 +13,7 @@ - - / { - model = "Bananapi-R2 Pro (RK3568) DDR4 Board"; -- compatible = "rockchip,rk3568-bpi-r2pro", "rockchip,rk3568"; -+ compatible = "sinovoip,rk3568-bpi-r2pro", "rockchip,rk3568"; - - aliases { - ethernet0 = &gmac0; diff --git a/target/linux/rockchip/patches-6.1/031-v6.10arm64-dts-rockchip-set-PHY-address-of-MT7531-switch-.patch b/target/linux/rockchip/patches-6.1/031-v6.10arm64-dts-rockchip-set-PHY-address-of-MT7531-switch-.patch deleted file mode 100644 index 6a5622b813..0000000000 --- a/target/linux/rockchip/patches-6.1/031-v6.10arm64-dts-rockchip-set-PHY-address-of-MT7531-switch-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From a2ac2a1b02590a22a236c43c455f421cdede45f5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ar=C4=B1n=C3=A7=20=C3=9CNAL?= -Date: Thu, 14 Mar 2024 15:24:35 +0300 -Subject: [PATCH] arm64: dts: rockchip: set PHY address of MT7531 switch to - 0x1f -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The MT7531 switch listens on PHY address 0x1f on an MDIO bus. I've got two -findings that support this. There's no bootstrapping option to change the -PHY address of the switch. The Linux driver hardcodes 0x1f as the PHY -address of the switch. So the reg property on the device tree is currently -ignored by the Linux driver. - -Therefore, describe the correct PHY address on Banana Pi BPI-R2 Pro that -has this switch. - -Signed-off-by: Arınç ÜNAL -Fixes: c1804463e5c6 ("arm64: dts: rockchip: Add mt7531 dsa node to BPI-R2-Pro board") -Link: https://lore.kernel.org/r/20240314-for-rockchip-mt7531-phy-address-v1-1-743b5873358f@arinc9.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts -@@ -521,9 +521,9 @@ - #address-cells = <1>; - #size-cells = <0>; - -- switch@0 { -+ switch@1f { - compatible = "mediatek,mt7531"; -- reg = <0>; -+ reg = <0x1f>; - - ports { - #address-cells = <1>; diff --git a/target/linux/rockchip/patches-6.1/032-v6.10-arm64-dts-rockchip-regulator-for-sd-needs-to-be-alwa.patch b/target/linux/rockchip/patches-6.1/032-v6.10-arm64-dts-rockchip-regulator-for-sd-needs-to-be-alwa.patch deleted file mode 100644 index dca18f5c58..0000000000 --- a/target/linux/rockchip/patches-6.1/032-v6.10-arm64-dts-rockchip-regulator-for-sd-needs-to-be-alwa.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 433d54818f64a2fe0562f8c04c7a81f562368515 Mon Sep 17 00:00:00 2001 -From: Jose Ignacio Tornos Martinez -Date: Tue, 5 Mar 2024 15:32:18 +0100 -Subject: [PATCH] arm64: dts: rockchip: regulator for sd needs to be always on - for BPI-R2Pro - -With default dts configuration for BPI-R2Pro, the regulator for sd card is -powered off when reboot is commanded, and the only solution to detect the -sd card again, and therefore, allow rebooting from there, is to do a -hardware reset. - -Configure the regulator for sd to be always on for BPI-R2Pro in order to -avoid this issue. - -Fixes: f901aaadaa2a ("arm64: dts: rockchip: Add Bananapi R2 Pro") -Signed-off-by: Jose Ignacio Tornos Martinez -Link: https://lore.kernel.org/r/20240305143222.189413-1-jtornosm@redhat.com -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts -@@ -412,6 +412,8 @@ - - vccio_sd: LDO_REG5 { - regulator-name = "vccio_sd"; -+ regulator-always-on; -+ regulator-boot-on; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - diff --git a/target/linux/rockchip/patches-6.1/100-rockchip-use-system-LED-for-OpenWrt.patch b/target/linux/rockchip/patches-6.1/100-rockchip-use-system-LED-for-OpenWrt.patch deleted file mode 100644 index 683e5347f7..0000000000 --- a/target/linux/rockchip/patches-6.1/100-rockchip-use-system-LED-for-OpenWrt.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 6731d2c9039fbe1ecf21915eab3acee0a999508a Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Fri, 10 Jul 2020 21:38:20 +0200 -Subject: [PATCH] rockchip: use system LED for OpenWrt - -Use the SYS LED on the casing for showing system status. - -This patch is kept separate from the NanoPi R2S support patch, as i plan -on submitting the device support upstream. - -Signed-off-by: David Bauer ---- - arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -6,6 +6,7 @@ - /dts-v1/; - - #include -+#include - #include - #include "rk3328.dtsi" - -@@ -16,6 +17,11 @@ - aliases { - ethernet1 = &rtl8153; - mmc0 = &sdmmc; -+ -+ led-boot = &sys_led; -+ led-failsafe = &sys_led; -+ led-running = &sys_led; -+ led-upgrade = &sys_led; - }; - - chosen { -@@ -48,19 +54,22 @@ - pinctrl-names = "default"; - - lan_led: led-0 { -+ color = ; -+ function = LED_FUNCTION_LAN; - gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; -- label = "nanopi-r2s:green:lan"; - }; - - sys_led: led-1 { -+ color = ; -+ function = LED_FUNCTION_STATUS; - gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; -- label = "nanopi-r2s:red:sys"; - default-state = "on"; - }; - - wan_led: led-2 { -+ color = ; -+ function = LED_FUNCTION_WAN; - gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>; -- label = "nanopi-r2s:green:wan"; - }; - }; - ---- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -@@ -13,6 +13,11 @@ - aliases { - mmc0 = &sdmmc; - mmc1 = &emmc; -+ -+ led-boot = &power_led; -+ led-failsafe = &power_led; -+ led-running = &power_led; -+ led-upgrade = &power_led; - }; - - chosen { diff --git a/target/linux/rockchip/patches-6.1/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch b/target/linux/rockchip/patches-6.1/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch deleted file mode 100644 index eeef0df014..0000000000 --- a/target/linux/rockchip/patches-6.1/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 2795c8b31a686bdb8338f9404d18ef7a154f0d75 Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Sun, 26 Jul 2020 13:32:59 +0200 -Subject: [PATCH] arm64: rockchip: add OF node for USB eth on NanoPi R2S - -This adds the OF node for the USB3 ethernet adapter on the FriendlyARM -NanoPi R2S. Add the correct value for the RTL8153 LED configuration -register to match the blink behavior of the other port on the device. - -Signed-off-by: David Bauer ---- - arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 7 +++++++ - 1 file changed, 1 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -406,6 +406,7 @@ - rtl8153: device@2 { - compatible = "usbbda,8153"; - reg = <2>; -+ realtek,led-data = <0x87>; - }; - }; - diff --git a/target/linux/rockchip/patches-6.1/105-nanopi-r4s-sd-signalling.patch b/target/linux/rockchip/patches-6.1/105-nanopi-r4s-sd-signalling.patch deleted file mode 100644 index b3c941821a..0000000000 --- a/target/linux/rockchip/patches-6.1/105-nanopi-r4s-sd-signalling.patch +++ /dev/null @@ -1,36 +0,0 @@ -From: David Bauer -Subject: arm64: dts: rockchip: disable UHS modes for NanoPi R4S - -The NanoPi R4S leaves the SD card in 1.8V signalling when rebooting -while U-Boot requires the card to be in 3.3V mode. - -Remove UHS support from the SD controller so the card remains in 3.3V -mode. This reduces transfer speeds but ensures a reboot whether from -userspace or following a kernel panic is always working. - -Signed-off-by: David Bauer - ---- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -@@ -335,7 +335,6 @@ - sd-uhs-sdr12; - sd-uhs-sdr25; - sd-uhs-sdr50; -- sd-uhs-sdr104; - vmmc-supply = <&vcc_sd>; - vqmmc-supply = <&vcc_sdio>; - status = "okay"; ---- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -112,6 +112,11 @@ - status = "disabled"; - }; - -+&sdmmc { -+ /delete-property/ sd-uhs-sdr104; -+ cap-sd-highspeed; -+}; -+ - &u2phy0_host { - phy-supply = <&vdd_5v>; - }; diff --git a/target/linux/rockchip/patches-6.1/106-r4s-openwrt-leds.patch b/target/linux/rockchip/patches-6.1/106-r4s-openwrt-leds.patch deleted file mode 100644 index d7579d61e9..0000000000 --- a/target/linux/rockchip/patches-6.1/106-r4s-openwrt-leds.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -19,6 +19,13 @@ - model = "FriendlyElec NanoPi R4S"; - compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399"; - -+ aliases { -+ led-boot = &sys_led; -+ led-failsafe = &sys_led; -+ led-running = &sys_led; -+ led-upgrade = &sys_led; -+ }; -+ - /delete-node/ display-subsystem; - - gpio-leds { diff --git a/target/linux/rockchip/patches-6.1/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch b/target/linux/rockchip/patches-6.1/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch deleted file mode 100644 index 3aff37d096..0000000000 --- a/target/linux/rockchip/patches-6.1/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d2166e3b3680bd2b206aebf1e1ce4c0d346f3c50 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Fri, 19 May 2023 12:10:52 +0800 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for Orange Pi R1 - Plus - -Add OpenWrt's LED aliases for showing system status. - -Signed-off-by: Tianling Shen ---- - .../dts/rockchip/rk3328-orangepi-r1-plus.dts | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -@@ -17,6 +17,11 @@ - aliases { - ethernet1 = &rtl8153; - mmc0 = &sdmmc; -+ -+ led-boot = &status_led; -+ led-failsafe = &status_led; -+ led-running = &status_led; -+ led-upgrade = &status_led; - }; - - chosen { -@@ -41,11 +46,10 @@ - gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; - }; - -- led-1 { -+ status_led: led-1 { - function = LED_FUNCTION_STATUS; - color = ; - gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; -- linux,default-trigger = "heartbeat"; - }; - - led-2 { diff --git a/target/linux/rockchip/patches-6.1/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch b/target/linux/rockchip/patches-6.1/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch deleted file mode 100644 index af8f8b16ba..0000000000 --- a/target/linux/rockchip/patches-6.1/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch +++ /dev/null @@ -1,24 +0,0 @@ -From b46a530d12ada422b9d5b2b97059e0d3ed950b40 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Fri, 19 May 2023 12:38:04 +0800 -Subject: [PATCH] arm64: dts: rockchip: add LED configuration to Orange Pi R1 - Plus - -Add the correct value for the RTL8153 LED configuration register to -match the blink behavior of the other port on the device. - -Signed-off-by: Tianling Shen ---- - arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -@@ -365,6 +365,7 @@ - rtl8153: device@2 { - compatible = "usbbda,8153"; - reg = <2>; -+ realtek,led-data = <0x87>; - }; - }; - diff --git a/target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch b/target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch deleted file mode 100644 index 1a80dadd48..0000000000 --- a/target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts -@@ -15,6 +15,13 @@ - model = "FriendlyElec NanoPC-T4"; - compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399"; - -+ aliases { -+ led-boot = &status_led; -+ led-failsafe = &status_led; -+ led-running = &status_led; -+ led-upgrade = &status_led; -+ }; -+ - vcc12v0_sys: vcc12v0-sys { - compatible = "regulator-fixed"; - regulator-always-on; diff --git a/target/linux/rockchip/patches-6.1/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch b/target/linux/rockchip/patches-6.1/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch deleted file mode 100644 index c22fdd52b8..0000000000 --- a/target/linux/rockchip/patches-6.1/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Tue Jun 20 16:45:27 2023 +0800 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for NanoPi R5 - series - -Add OpenWrt's LED aliases for showing system status. - -Signed-off-by: Tianling Shen ---- - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -@@ -40,7 +40,6 @@ - power_led: led-power { - color = ; - function = LED_FUNCTION_POWER; -- linux,default-trigger = "heartbeat"; - gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; - }; - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -@@ -39,7 +39,6 @@ - power_led: led-power { - color = ; - function = LED_FUNCTION_POWER; -- linux,default-trigger = "heartbeat"; - gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; - }; - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -@@ -18,6 +18,11 @@ - aliases { - mmc0 = &sdmmc0; - mmc1 = &sdhci; -+ -+ led-boot = &power_led; -+ led-failsafe = &power_led; -+ led-running = &power_led; -+ led-upgrade = &power_led; - }; - - chosen: chosen { diff --git a/target/linux/rockchip/patches-6.1/111-radxa-cm3-io-add-led-aliases.patch b/target/linux/rockchip/patches-6.1/111-radxa-cm3-io-add-led-aliases.patch deleted file mode 100644 index c8183a2b8a..0000000000 --- a/target/linux/rockchip/patches-6.1/111-radxa-cm3-io-add-led-aliases.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Marius Durbaca -Date: Tue Feb 20 15:05:27 2024 +0200 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for Radxa -CM3 IO board - -Add OpenWrt's LED aliases for showing system status. - -Suggested-by: Tianling Shen -Signed-off-by: Marius Durbaca ---- - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -16,6 +16,10 @@ - aliases { - ethernet0 = &gmac1; - mmc1 = &sdmmc0; -+ led-boot = &status_led; -+ led-failsafe = &status_led; -+ led-running = &status_led; -+ led-upgrade = &status_led; - }; - - chosen: chosen { ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -@@ -17,7 +17,7 @@ - leds { - compatible = "gpio-leds"; - -- led-0 { -+ status_led: led-0 { - gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; - color = ; - function = LED_FUNCTION_STATUS; diff --git a/target/linux/rockchip/patches-6.1/112-radxa-e25-add-led-aliases.patch b/target/linux/rockchip/patches-6.1/112-radxa-e25-add-led-aliases.patch deleted file mode 100644 index 75038c7f39..0000000000 --- a/target/linux/rockchip/patches-6.1/112-radxa-e25-add-led-aliases.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Marius Durbaca -Date: Tue Feb 27 16:25:27 2024 +0200 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for Radxa -E25 - -Add OpenWrt's LED aliases for showing system status. - -Signed-off-by: Marius Durbaca ---- - ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -9,6 +9,10 @@ - - aliases { - mmc1 = &sdmmc0; -+ led-boot = &led_user; -+ led-failsafe = &led_user; -+ led-running = &led_user; -+ led-upgrade = &led_user; - }; - - pwm-leds { diff --git a/target/linux/rockchip/patches-6.1/300-hwrng-add-Rockchip-SoC-hwrng-driver.patch b/target/linux/rockchip/patches-6.1/300-hwrng-add-Rockchip-SoC-hwrng-driver.patch deleted file mode 100644 index 6a2d35889b..0000000000 --- a/target/linux/rockchip/patches-6.1/300-hwrng-add-Rockchip-SoC-hwrng-driver.patch +++ /dev/null @@ -1,339 +0,0 @@ -From patchwork Sat Nov 12 14:10:58 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Aurelien Jarno -X-Patchwork-Id: 13041222 -Return-Path: - -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -From: Aurelien Jarno -To: Olivia Mackall , - Herbert Xu , - Rob Herring , - Krzysztof Kozlowski , - Heiko Stuebner , - Philipp Zabel , - Lin Jinhan -Cc: linux-crypto@vger.kernel.org (open list:HARDWARE RANDOM NUMBER GENERATOR - CORE), - devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE - BINDINGS), - linux-arm-kernel@lists.infradead.org (moderated list:ARM/Rockchip SoC - support), - linux-rockchip@lists.infradead.org (open list:ARM/Rockchip SoC support), - linux-kernel@vger.kernel.org (open list), - Aurelien Jarno -Subject: [PATCH v1 2/3] hwrng: add Rockchip SoC hwrng driver -Date: Sat, 12 Nov 2022 15:10:58 +0100 -Message-Id: <20221112141059.3802506-3-aurelien@aurel32.net> -In-Reply-To: <20221112141059.3802506-1-aurelien@aurel32.net> -References: <20221112141059.3802506-1-aurelien@aurel32.net> -MIME-Version: 1.0 -List-Id: - -Rockchip SoCs used to have a random number generator as part of their -crypto device, and support for it has to be added to the corresponding -driver. However newer Rockchip SoCs like the RK356x have an independent -True Random Number Generator device. This patch adds a driver for it, -greatly inspired from the downstream driver. - -The TRNG device does not seem to have a signal conditionner and the FIPS -140-2 test returns a lot of failures. They can be reduced by increasing -RK_RNG_SAMPLE_CNT, in a tradeoff between quality and speed. This value -has been adjusted to get ~90% of successes and the quality value has -been set accordingly. - -Signed-off-by: Aurelien Jarno ---- - drivers/char/hw_random/Kconfig | 14 ++ - drivers/char/hw_random/Makefile | 1 + - drivers/char/hw_random/rockchip-rng.c | 251 ++++++++++++++++++++++++++ - 3 files changed, 266 insertions(+) - create mode 100644 drivers/char/hw_random/rockchip-rng.c - ---- a/drivers/char/hw_random/Kconfig -+++ b/drivers/char/hw_random/Kconfig -@@ -549,6 +549,20 @@ config HW_RANDOM_CN10K - To compile this driver as a module, choose M here. - The module will be called cn10k_rng. If unsure, say Y. - -+config HW_RANDOM_ROCKCHIP -+ tristate "Rockchip True Random Number Generator" -+ depends on HW_RANDOM && (ARCH_ROCKCHIP || COMPILE_TEST) -+ depends on HAS_IOMEM -+ default HW_RANDOM -+ help -+ This driver provides kernel-side support for the True Random Number -+ Generator hardware found on some Rockchip SoC like RK3566 or RK3568. -+ -+ To compile this driver as a module, choose M here: the -+ module will be called rockchip-rng. -+ -+ If unsure, say Y. -+ - endif # HW_RANDOM - - config UML_RANDOM ---- a/drivers/char/hw_random/Makefile -+++ b/drivers/char/hw_random/Makefile -@@ -47,3 +47,4 @@ obj-$(CONFIG_HW_RANDOM_XIPHERA) += xiphe - obj-$(CONFIG_HW_RANDOM_ARM_SMCCC_TRNG) += arm_smccc_trng.o - obj-$(CONFIG_HW_RANDOM_CN10K) += cn10k-rng.o - obj-$(CONFIG_HW_RANDOM_POLARFIRE_SOC) += mpfs-rng.o -+obj-$(CONFIG_HW_RANDOM_ROCKCHIP) += rockchip-rng.o ---- /dev/null -+++ b/drivers/char/hw_random/rockchip-rng.c -@@ -0,0 +1,251 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * rockchip-rng.c True Random Number Generator driver for Rockchip SoCs -+ * -+ * Copyright (c) 2018, Fuzhou Rockchip Electronics Co., Ltd. -+ * Copyright (c) 2022, Aurelien Jarno -+ * Authors: -+ * Lin Jinhan -+ * Aurelien Jarno -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define RK_RNG_AUTOSUSPEND_DELAY 100 -+#define RK_RNG_MAX_BYTE 32 -+#define RK_RNG_POLL_PERIOD_US 100 -+#define RK_RNG_POLL_TIMEOUT_US 10000 -+ -+/* -+ * TRNG collects osc ring output bit every RK_RNG_SAMPLE_CNT time. The value is -+ * a tradeoff between speed and quality and has been adjusted to get a quality -+ * of ~900 (~90% of FIPS 140-2 successes). -+ */ -+#define RK_RNG_SAMPLE_CNT 1000 -+ -+/* TRNG registers from RK3568 TRM-Part2, section 5.4.1 */ -+#define TRNG_RST_CTL 0x0004 -+#define TRNG_RNG_CTL 0x0400 -+#define TRNG_RNG_CTL_LEN_64_BIT (0x00 << 4) -+#define TRNG_RNG_CTL_LEN_128_BIT (0x01 << 4) -+#define TRNG_RNG_CTL_LEN_192_BIT (0x02 << 4) -+#define TRNG_RNG_CTL_LEN_256_BIT (0x03 << 4) -+#define TRNG_RNG_CTL_OSC_RING_SPEED_0 (0x00 << 2) -+#define TRNG_RNG_CTL_OSC_RING_SPEED_1 (0x01 << 2) -+#define TRNG_RNG_CTL_OSC_RING_SPEED_2 (0x02 << 2) -+#define TRNG_RNG_CTL_OSC_RING_SPEED_3 (0x03 << 2) -+#define TRNG_RNG_CTL_ENABLE BIT(1) -+#define TRNG_RNG_CTL_START BIT(0) -+#define TRNG_RNG_SAMPLE_CNT 0x0404 -+#define TRNG_RNG_DOUT_0 0x0410 -+#define TRNG_RNG_DOUT_1 0x0414 -+#define TRNG_RNG_DOUT_2 0x0418 -+#define TRNG_RNG_DOUT_3 0x041c -+#define TRNG_RNG_DOUT_4 0x0420 -+#define TRNG_RNG_DOUT_5 0x0424 -+#define TRNG_RNG_DOUT_6 0x0428 -+#define TRNG_RNG_DOUT_7 0x042c -+ -+struct rk_rng { -+ struct hwrng rng; -+ void __iomem *base; -+ struct reset_control *rst; -+ int clk_num; -+ struct clk_bulk_data *clk_bulks; -+}; -+ -+/* The mask determine the bits that are updated */ -+static void rk_rng_write_ctl(struct rk_rng *rng, u32 val, u32 mask) -+{ -+ writel_relaxed((mask << 16) | val, rng->base + TRNG_RNG_CTL); -+} -+ -+static int rk_rng_init(struct hwrng *rng) -+{ -+ struct rk_rng *rk_rng = container_of(rng, struct rk_rng, rng); -+ u32 reg; -+ int ret; -+ -+ /* start clocks */ -+ ret = clk_bulk_prepare_enable(rk_rng->clk_num, rk_rng->clk_bulks); -+ if (ret < 0) { -+ dev_err((struct device *) rk_rng->rng.priv, -+ "Failed to enable clks %d\n", ret); -+ return ret; -+ } -+ -+ /* set the sample period */ -+ writel(RK_RNG_SAMPLE_CNT, rk_rng->base + TRNG_RNG_SAMPLE_CNT); -+ -+ /* set osc ring speed and enable it */ -+ reg = TRNG_RNG_CTL_LEN_256_BIT | -+ TRNG_RNG_CTL_OSC_RING_SPEED_0 | -+ TRNG_RNG_CTL_ENABLE; -+ rk_rng_write_ctl(rk_rng, reg, 0xffff); -+ -+ return 0; -+} -+ -+static void rk_rng_cleanup(struct hwrng *rng) -+{ -+ struct rk_rng *rk_rng = container_of(rng, struct rk_rng, rng); -+ u32 reg; -+ -+ /* stop TRNG */ -+ reg = 0; -+ rk_rng_write_ctl(rk_rng, reg, 0xffff); -+ -+ /* stop clocks */ -+ clk_bulk_disable_unprepare(rk_rng->clk_num, rk_rng->clk_bulks); -+} -+ -+static int rk_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) -+{ -+ struct rk_rng *rk_rng = container_of(rng, struct rk_rng, rng); -+ u32 reg; -+ int ret = 0; -+ int i; -+ -+ pm_runtime_get_sync((struct device *) rk_rng->rng.priv); -+ -+ /* Start collecting random data */ -+ reg = TRNG_RNG_CTL_START; -+ rk_rng_write_ctl(rk_rng, reg, reg); -+ -+ ret = readl_poll_timeout(rk_rng->base + TRNG_RNG_CTL, reg, -+ !(reg & TRNG_RNG_CTL_START), -+ RK_RNG_POLL_PERIOD_US, -+ RK_RNG_POLL_TIMEOUT_US); -+ if (ret < 0) -+ goto out; -+ -+ /* Read random data stored in big endian in the registers */ -+ ret = min_t(size_t, max, RK_RNG_MAX_BYTE); -+ for (i = 0; i < ret; i += 4) { -+ reg = readl_relaxed(rk_rng->base + TRNG_RNG_DOUT_0 + i); -+ *(u32 *)(buf + i) = be32_to_cpu(reg); -+ } -+ -+out: -+ pm_runtime_mark_last_busy((struct device *) rk_rng->rng.priv); -+ pm_runtime_put_sync_autosuspend((struct device *) rk_rng->rng.priv); -+ -+ return ret; -+} -+ -+static int rk_rng_probe(struct platform_device *pdev) -+{ -+ struct device *dev = &pdev->dev; -+ struct rk_rng *rk_rng; -+ int ret; -+ -+ rk_rng = devm_kzalloc(dev, sizeof(struct rk_rng), GFP_KERNEL); -+ if (!rk_rng) -+ return -ENOMEM; -+ -+ rk_rng->base = devm_platform_ioremap_resource(pdev, 0); -+ if (IS_ERR(rk_rng->base)) -+ return PTR_ERR(rk_rng->base); -+ -+ rk_rng->clk_num = devm_clk_bulk_get_all(dev, &rk_rng->clk_bulks); -+ if (rk_rng->clk_num < 0) -+ return dev_err_probe(dev, rk_rng->clk_num, -+ "Failed to get clks property\n"); -+ -+ rk_rng->rst = devm_reset_control_array_get(&pdev->dev, false, false); -+ if (IS_ERR(rk_rng->rst)) -+ return dev_err_probe(dev, PTR_ERR(rk_rng->rst), -+ "Failed to get reset property\n"); -+ -+ reset_control_assert(rk_rng->rst); -+ udelay(2); -+ reset_control_deassert(rk_rng->rst); -+ -+ platform_set_drvdata(pdev, rk_rng); -+ -+ rk_rng->rng.name = dev_driver_string(dev); -+#ifndef CONFIG_PM -+ rk_rng->rng.init = rk_rng_init; -+ rk_rng->rng.cleanup = rk_rng_cleanup; -+#endif -+ rk_rng->rng.read = rk_rng_read; -+ rk_rng->rng.priv = (unsigned long) dev; -+ rk_rng->rng.quality = 900; -+ -+ pm_runtime_set_autosuspend_delay(dev, RK_RNG_AUTOSUSPEND_DELAY); -+ pm_runtime_use_autosuspend(dev); -+ pm_runtime_enable(dev); -+ -+ ret = devm_hwrng_register(dev, &rk_rng->rng); -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, "Failed to register Rockchip hwrng\n"); -+ -+ dev_info(&pdev->dev, "Registered Rockchip hwrng\n"); -+ -+ return 0; -+} -+ -+static int rk_rng_remove(struct platform_device *pdev) -+{ -+ pm_runtime_disable(&pdev->dev); -+ -+ return 0; -+} -+ -+#ifdef CONFIG_PM -+static int rk_rng_runtime_suspend(struct device *dev) -+{ -+ struct rk_rng *rk_rng = dev_get_drvdata(dev); -+ -+ rk_rng_cleanup(&rk_rng->rng); -+ -+ return 0; -+} -+ -+static int rk_rng_runtime_resume(struct device *dev) -+{ -+ struct rk_rng *rk_rng = dev_get_drvdata(dev); -+ -+ return rk_rng_init(&rk_rng->rng); -+} -+#endif -+ -+static const struct dev_pm_ops rk_rng_pm_ops = { -+ SET_RUNTIME_PM_OPS(rk_rng_runtime_suspend, -+ rk_rng_runtime_resume, NULL) -+ SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, -+ pm_runtime_force_resume) -+}; -+ -+static const struct of_device_id rk_rng_dt_match[] = { -+ { -+ .compatible = "rockchip,rk3568-rng", -+ }, -+ {}, -+}; -+ -+MODULE_DEVICE_TABLE(of, rk_rng_dt_match); -+ -+static struct platform_driver rk_rng_driver = { -+ .driver = { -+ .name = "rockchip-rng", -+ .pm = &rk_rng_pm_ops, -+ .of_match_table = rk_rng_dt_match, -+ }, -+ .probe = rk_rng_probe, -+ .remove = rk_rng_remove, -+}; -+ -+module_platform_driver(rk_rng_driver); -+ -+MODULE_DESCRIPTION("Rockchip True Random Number Generator driver"); -+MODULE_AUTHOR("Lin Jinhan , Aurelien Jarno "); -+MODULE_LICENSE("GPL v2"); diff --git a/target/linux/rockchip/patches-6.1/301-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch b/target/linux/rockchip/patches-6.1/301-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch deleted file mode 100644 index bb34ba76e0..0000000000 --- a/target/linux/rockchip/patches-6.1/301-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch +++ /dev/null @@ -1,56 +0,0 @@ -From patchwork Sat Nov 12 14:10:59 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Aurelien Jarno -X-Patchwork-Id: 13041221 -From: Aurelien Jarno -To: Olivia Mackall , - Herbert Xu , - Rob Herring , - Krzysztof Kozlowski , - Heiko Stuebner , - Philipp Zabel , - Lin Jinhan -Cc: linux-crypto@vger.kernel.org (open list:HARDWARE RANDOM NUMBER GENERATOR - CORE), - devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE - BINDINGS), - linux-arm-kernel@lists.infradead.org (moderated list:ARM/Rockchip SoC - support), - linux-rockchip@lists.infradead.org (open list:ARM/Rockchip SoC support), - linux-kernel@vger.kernel.org (open list), - Aurelien Jarno -Subject: [PATCH v1 3/3] arm64: dts: rockchip: add DT entry for RNG to RK356x -Date: Sat, 12 Nov 2022 15:10:59 +0100 -Message-Id: <20221112141059.3802506-4-aurelien@aurel32.net> -In-Reply-To: <20221112141059.3802506-1-aurelien@aurel32.net> -References: <20221112141059.3802506-1-aurelien@aurel32.net> -MIME-Version: 1.0 -List-Id: - -Enable the just added Rockchip RNG driver for RK356x SoCs. - -Signed-off-by: Aurelien Jarno ---- - arch/arm64/boot/dts/rockchip/rk356x.dtsi | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi -@@ -1773,6 +1773,15 @@ - }; - }; - -+ rng: rng@fe388000 { -+ compatible = "rockchip,rk3568-rng"; -+ reg = <0x0 0xfe388000 0x0 0x4000>; -+ clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>; -+ clock-names = "trng_clk", "trng_hclk"; -+ resets = <&cru SRST_TRNG_NS>; -+ reset-names = "reset"; -+ }; -+ - pinctrl: pinctrl { - compatible = "rockchip,rk3568-pinctrl"; - rockchip,grf = <&grf>; From d03b567b668d14020396def542c0fc829c65d208 Mon Sep 17 00:00:00 2001 From: Sean Khan Date: Mon, 6 May 2024 12:09:09 -0400 Subject: [PATCH 13/40] tools: mold: update to 2.31.0 New: - mold is now up to 10% faster when linking very large, debug info-enabled executables such as Blender (~1.8 GiB) or Clang (~3.8 GiB), thanks to several improvements we've made to the string merging algorithm. (53ebcd8, d714301, 40f6b17, c9faf3d) - -z start-stop-visibility=hidden is now supported so that linker-synthesized __start_ and __stop_ symbols can be completely hidden from other ELF modules. Previously, only -z start-stop-visibility=protected was supported. (99a5b15) - -Bsymbolic-non-weak and -Bsymbolic-non-weak-functions options are now supported for compatibility with LLVM lld. Just like lld, these options control which symbols are exported as dynamic symbols. -Bsymbolic-non-weak makes the linker to export only weak symbols, whereas -Bsymbolic-non-weak-functions makes it to export only weak function symbols. (7d17aa8) Bug fixes and compatibility improvements: - Previously, if a linker script contains a newline character in the beginning four bytes of a file, it was not recognized as a linker script by mold. Now, mold allows newlines at the beginning of a file. (ea054cc) - Under rare circumstances, the INPUT linker script command may have found a different file than GNU ld would. Now, mold's behavior aligns with GNU ld's. (163975d) - Previously, the --repro option produced corrupted tar files. Now the bug has been fixed. (32c4a09) - mold generally guarantees that its output is reproducible, meaning that if you run the linker with the exact same command line options and input files, the output is guaranteed to be bit-for-bit identical to the previous outputs. However, under rare circumstances, it might produce different output due to a bug. It's reported that this nondeterminism caused random crashes for some programs (#1247). This bug has been fixed. (6463a7c) - mold no longer sets the address of the .text section as the entry point address if --entry option is not given, just like LLVM lld. (020b1a7) - [RISC-V] __global_pointer$ symbol is now exported from executables as required by the processor-specific ABI. (3df7c8e) - [ARM32] --long-plt option is now recognized as known option by mold. mold ignores the option, though, because the PLTs generated by our linker is always long. (d432e98) Release Notes: https://github.com/rui314/mold/releases/tag/v2.31.0 Signed-off-by: Sean Khan Link: https://github.com/openwrt/openwrt/pull/15403 Signed-off-by: Robert Marko --- tools/mold/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/mold/Makefile b/tools/mold/Makefile index b2a3231e67..7a7e2321b1 100644 --- a/tools/mold/Makefile +++ b/tools/mold/Makefile @@ -3,12 +3,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mold -PKG_VERSION:=2.30.0 +PKG_VERSION:=2.31.0 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL_FILE:=v$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/rui314/mold/archive/refs/tags -PKG_HASH:=6e5178ccafe828fdb4ba0dd841d083ff6004d3cb41e56485143eb64c716345fd +PKG_HASH:=3dc3af83a5d22a4b29971bfad17261851d426961c665480e2ca294e5c74aa1e5 include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/cmake.mk From 9001014a24e4211a83246653b96721b79f4a92f7 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Thu, 9 May 2024 16:32:03 +0200 Subject: [PATCH 14/40] generic: 6.6: backport patch adding support for rgmii-id in stmmac-ipq806x Backport patch merged upstream for rgmii-id support in stmmac-ipq806x. This is needed for some device that directly connets PHY to the gmac port and require rgmii-id phy-modes. Signed-off-by: Christian Marangi --- ...-ipq806x-account-for-rgmii-txid-rxid.patch | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 target/linux/generic/backport-6.6/740-v6.10-net-stmmac-dwmac-ipq806x-account-for-rgmii-txid-rxid.patch diff --git a/target/linux/generic/backport-6.6/740-v6.10-net-stmmac-dwmac-ipq806x-account-for-rgmii-txid-rxid.patch b/target/linux/generic/backport-6.6/740-v6.10-net-stmmac-dwmac-ipq806x-account-for-rgmii-txid-rxid.patch new file mode 100644 index 0000000000..ab8e9ffab5 --- /dev/null +++ b/target/linux/generic/backport-6.6/740-v6.10-net-stmmac-dwmac-ipq806x-account-for-rgmii-txid-rxid.patch @@ -0,0 +1,68 @@ +From abb45a2477f533cd4aab3085defdff131e2e8c4f Mon Sep 17 00:00:00 2001 +From: Christian Marangi +Date: Mon, 6 May 2024 14:32:46 +0200 +Subject: [PATCH] net: stmmac: dwmac-ipq806x: account for rgmii-txid/rxid/id + phy-mode + +Currently the ipq806x dwmac driver is almost always used attached to the +CPU port of a switch and phy-mode was always set to "rgmii" or "sgmii". + +Some device came up with a special configuration where the PHY is +directly attached to the GMAC port and in those case phy-mode needs to +be set to "rgmii-id" to make the PHY correctly work and receive packets. + +Since the driver supports only "rgmii" and "sgmii" mode, when "rgmii-id" +(or variants) mode is set, the mode is rejected and probe fails. + +Add support also for these phy-modes to correctly setup PHYs that requires +delay applied to tx/rx. + +Signed-off-by: Christian Marangi +Reviewed-by: Andrew Lunn +Signed-off-by: David S. Miller +--- + drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c +@@ -171,6 +171,9 @@ static int ipq806x_gmac_set_speed(struct + + switch (gmac->phy_mode) { + case PHY_INTERFACE_MODE_RGMII: ++ case PHY_INTERFACE_MODE_RGMII_ID: ++ case PHY_INTERFACE_MODE_RGMII_RXID: ++ case PHY_INTERFACE_MODE_RGMII_TXID: + div = get_clk_div_rgmii(gmac, speed); + clk_bits = NSS_COMMON_CLK_GATE_RGMII_RX_EN(gmac->id) | + NSS_COMMON_CLK_GATE_RGMII_TX_EN(gmac->id); +@@ -412,6 +415,9 @@ static int ipq806x_gmac_probe(struct pla + val |= NSS_COMMON_GMAC_CTL_CSYS_REQ; + switch (gmac->phy_mode) { + case PHY_INTERFACE_MODE_RGMII: ++ case PHY_INTERFACE_MODE_RGMII_ID: ++ case PHY_INTERFACE_MODE_RGMII_RXID: ++ case PHY_INTERFACE_MODE_RGMII_TXID: + val |= NSS_COMMON_GMAC_CTL_PHY_IFACE_SEL; + break; + case PHY_INTERFACE_MODE_SGMII: +@@ -427,6 +433,9 @@ static int ipq806x_gmac_probe(struct pla + val &= ~(1 << NSS_COMMON_CLK_SRC_CTRL_OFFSET(gmac->id)); + switch (gmac->phy_mode) { + case PHY_INTERFACE_MODE_RGMII: ++ case PHY_INTERFACE_MODE_RGMII_ID: ++ case PHY_INTERFACE_MODE_RGMII_RXID: ++ case PHY_INTERFACE_MODE_RGMII_TXID: + val |= NSS_COMMON_CLK_SRC_CTRL_RGMII(gmac->id) << + NSS_COMMON_CLK_SRC_CTRL_OFFSET(gmac->id); + break; +@@ -444,6 +453,9 @@ static int ipq806x_gmac_probe(struct pla + val |= NSS_COMMON_CLK_GATE_PTP_EN(gmac->id); + switch (gmac->phy_mode) { + case PHY_INTERFACE_MODE_RGMII: ++ case PHY_INTERFACE_MODE_RGMII_ID: ++ case PHY_INTERFACE_MODE_RGMII_RXID: ++ case PHY_INTERFACE_MODE_RGMII_TXID: + val |= NSS_COMMON_CLK_GATE_RGMII_RX_EN(gmac->id) | + NSS_COMMON_CLK_GATE_RGMII_TX_EN(gmac->id); + break; From f230d00e64187ad7c2d91dc8275e9fba28bb9df5 Mon Sep 17 00:00:00 2001 From: Konstantin Demin Date: Mon, 6 May 2024 16:20:16 +0300 Subject: [PATCH 15/40] dropbear: bump to 2024.85 - update dropbear to latest stable 2024.85; for the changes see https://matt.ucc.asn.au/dropbear/CHANGES - drop cherry-picked patches (merged in release 2024.84) - refresh remaining patches Tested-by: Stijn Segers Signed-off-by: Konstantin Demin --- package/network/services/dropbear/Makefile | 12 +- .../services/dropbear/files/dropbear.init | 4 +- .../001-add-if-DROPBEAR_RSA-guards.patch | 104 --------- .../patches/002-fix-y2038-issues.patch | 198 ---------------- .../patches/003-fix-DROPBEAR_DSS.patch | 25 -- ...rs-s-own-gid-in-pty-permission-check.patch | 24 -- .../patches/005-const-parameter-mp_int.patch | 123 ---------- ...pbearkey-add-missing-break-in-switch.patch | 21 -- ...7-fix-building-only-client-or-server.patch | 29 --- ...e-rsa-signatures-when-no-rsa-hostkey.patch | 94 -------- ...-rather-than-fprintf-in-segv-handler.patch | 27 --- .../patches/010-remove-SO_LINGER.patch | 39 ---- .../011-add-option-to-bind-to-interface.patch | 147 ------------ ...add-ifdef-guards-for-SO_BINDTODEVICE.patch | 50 ---- ...ake-banner-reading-failure-non-fatal.patch | 74 ------ ...nore-unsupported-command-line-option.patch | 60 ----- ...ommath-fix-possible-integer-overflow.patch | 121 ---------- ...-svr-tcpfwd-Fix-noremotetcp-behavior.patch | 35 --- .../017-Don-t-try-to-shutdown-a-pty.patch | 32 --- ...-dropbearkey-add-alias-to-ssh-keygen.patch | 33 --- .../019-Allow-inetd-with-non-syslog.patch | 34 --- .../020-Fix-test-for-multiuser-kernels.patch | 33 --- .../021-Implement-Strict-KEX-mode.patch | 216 ------------------ .../dropbear/patches/100-pubkey_path.patch | 4 +- .../dropbear/patches/110-change_user.patch | 6 +- .../patches/130-ssh_ignore_x_args.patch | 6 +- .../dropbear/patches/140-disable_assert.patch | 4 +- .../dropbear/patches/160-lto-jobserver.patch | 4 +- .../600-allow-blank-root-password.patch | 4 +- .../patches/900-configure-hardening.patch | 2 +- .../patches/901-bundled-libs-cflags.patch | 2 +- ...nkey-fix-use-of-rsa-sha2-256-pubkeys.patch | 4 +- 32 files changed, 26 insertions(+), 1545 deletions(-) delete mode 100644 package/network/services/dropbear/patches/001-add-if-DROPBEAR_RSA-guards.patch delete mode 100644 package/network/services/dropbear/patches/002-fix-y2038-issues.patch delete mode 100644 package/network/services/dropbear/patches/003-fix-DROPBEAR_DSS.patch delete mode 100644 package/network/services/dropbear/patches/004-allow-users-s-own-gid-in-pty-permission-check.patch delete mode 100644 package/network/services/dropbear/patches/005-const-parameter-mp_int.patch delete mode 100644 package/network/services/dropbear/patches/006-dropbearkey-add-missing-break-in-switch.patch delete mode 100644 package/network/services/dropbear/patches/007-fix-building-only-client-or-server.patch delete mode 100644 package/network/services/dropbear/patches/008-disable-rsa-signatures-when-no-rsa-hostkey.patch delete mode 100644 package/network/services/dropbear/patches/009-use-write-rather-than-fprintf-in-segv-handler.patch delete mode 100644 package/network/services/dropbear/patches/010-remove-SO_LINGER.patch delete mode 100644 package/network/services/dropbear/patches/011-add-option-to-bind-to-interface.patch delete mode 100644 package/network/services/dropbear/patches/012-add-ifdef-guards-for-SO_BINDTODEVICE.patch delete mode 100644 package/network/services/dropbear/patches/013-make-banner-reading-failure-non-fatal.patch delete mode 100644 package/network/services/dropbear/patches/014-dropbearkey-ignore-unsupported-command-line-option.patch delete mode 100644 package/network/services/dropbear/patches/015-libtommath-fix-possible-integer-overflow.patch delete mode 100644 package/network/services/dropbear/patches/016-src-svr-tcpfwd-Fix-noremotetcp-behavior.patch delete mode 100644 package/network/services/dropbear/patches/017-Don-t-try-to-shutdown-a-pty.patch delete mode 100644 package/network/services/dropbear/patches/018-dropbearkey-add-alias-to-ssh-keygen.patch delete mode 100644 package/network/services/dropbear/patches/019-Allow-inetd-with-non-syslog.patch delete mode 100644 package/network/services/dropbear/patches/020-Fix-test-for-multiuser-kernels.patch delete mode 100644 package/network/services/dropbear/patches/021-Implement-Strict-KEX-mode.patch diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile index abb46157ea..3812602b35 100644 --- a/package/network/services/dropbear/Makefile +++ b/package/network/services/dropbear/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dropbear -PKG_VERSION:=2022.83 -PKG_RELEASE:=2 +PKG_VERSION:=2024.85 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:= \ https://matt.ucc.asn.au/dropbear/releases/ \ https://dropbear.nl/mirror/releases/ -PKG_HASH:=bc5a121ffbc94b5171ad5ebe01be42746d50aa797c9549a4639894a16749443b +PKG_HASH:=86b036c433a69d89ce51ebae335d65c47738ccf90d13e5eb0fea832e556da502 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE libtomcrypt/LICENSE libtommath/LICENSE @@ -103,7 +103,7 @@ CONFIGURE_ARGS += \ ############################################################################## # # option,value - add option to localoptions.h -# !!option,value - replace option in sysoptions.h +# !!option,value - replace option in src/sysoptions.h # ############################################################################## @@ -132,7 +132,7 @@ DB_OPT_COMMON = \ ############################################################################## # # option,config,enabled,disabled = add option to localoptions.h -# !!option,config,enabled,disabled = replace option in sysoptions.h +# !!option,config,enabled,disabled = replace option in src/sysoptions.h # # option := (config) ? enabled : disabled # @@ -164,7 +164,7 @@ TARGET_CFLAGS += -DARGTYPE=3 xsedx:=$(shell printf '\027') db_opt_add =echo '\#define $(1) $(2)' >> $(PKG_BUILD_DIR)/localoptions.h -db_opt_replace =$(ESED) '/^\#define $(1) .*$$$$/{h;:a;$$$$!n;/^\#.+$$$$/bb;/^$$$$/bb;H;ba;:b;x;s$(xsedx)^.+$$$$$(xsedx)\#define $(1) $(2)$(xsedx)p;x};p' -n $(PKG_BUILD_DIR)/sysoptions.h +db_opt_replace =$(ESED) '/^\#define $(1) .*$$$$/{h;:a;$$$$!n;/^\#.+$$$$/bb;/^$$$$/bb;H;ba;:b;x;s$(xsedx)^.+$$$$$(xsedx)\#define $(1) $(2)$(xsedx)p;x};p' -n $(PKG_BUILD_DIR)/src/sysoptions.h define Build/Configure/dropbear_headers $(strip $(foreach s,$(DB_OPT_COMMON), \ diff --git a/package/network/services/dropbear/files/dropbear.init b/package/network/services/dropbear/files/dropbear.init index 21570987c4..708fabd326 100755 --- a/package/network/services/dropbear/files/dropbear.init +++ b/package/network/services/dropbear/files/dropbear.init @@ -261,7 +261,7 @@ dropbear_instance() esac local c=0 - # sysoptions.h + # src/sysoptions.h local DROPBEAR_MAX_PORTS=10 local a n if_ipaddrs @@ -341,7 +341,7 @@ dropbear_instance() # ref: validate_section_dropbear() # default receive window size is 24576 (DEFAULT_RECV_WINDOW in default_options.h) - # sysoptions.h + # src/sysoptions.h local MAX_RECV_WINDOW=10485760 if [ "${RecvWindowSize}" -gt ${MAX_RECV_WINDOW} ] ; then # separate logging is required because syslog misses dropbear's message diff --git a/package/network/services/dropbear/patches/001-add-if-DROPBEAR_RSA-guards.patch b/package/network/services/dropbear/patches/001-add-if-DROPBEAR_RSA-guards.patch deleted file mode 100644 index ad1a20c520..0000000000 --- a/package/network/services/dropbear/patches/001-add-if-DROPBEAR_RSA-guards.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 36a03132634a17c667c0fac0a8e1519b3d1b71c6 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Mon, 28 Nov 2022 21:12:23 +0800 -Subject: Add #if DROPBEAR_RSA guards - -Fixes building with DROPBEAR_RSA disabled. -Closes #197 ---- - signkey.c | 8 +++++++- - signkey.h | 2 ++ - sysoptions.h | 5 +---- - 3 files changed, 10 insertions(+), 5 deletions(-) - ---- a/signkey.c -+++ b/signkey.c -@@ -120,6 +120,7 @@ enum signkey_type signkey_type_from_name - /* Special case for rsa-sha2-256. This could be generalised if more - signature names are added that aren't 1-1 with public key names */ - const char* signature_name_from_type(enum signature_type type, unsigned int *namelen) { -+#if DROPBEAR_RSA - #if DROPBEAR_RSA_SHA256 - if (type == DROPBEAR_SIGNATURE_RSA_SHA256) { - if (namelen) { -@@ -136,11 +137,13 @@ const char* signature_name_from_type(enu - return SSH_SIGNKEY_RSA; - } - #endif -+#endif /* DROPBEAR_RSA */ - return signkey_name_from_type((enum signkey_type)type, namelen); - } - - /* Returns DROPBEAR_SIGNATURE_NONE if none match */ - enum signature_type signature_type_from_name(const char* name, unsigned int namelen) { -+#if DROPBEAR_RSA - #if DROPBEAR_RSA_SHA256 - if (namelen == strlen(SSH_SIGNATURE_RSA_SHA256) - && memcmp(name, SSH_SIGNATURE_RSA_SHA256, namelen) == 0) { -@@ -153,10 +156,11 @@ enum signature_type signature_type_from_ - return DROPBEAR_SIGNATURE_RSA_SHA1; - } - #endif -+#endif /* DROPBEAR_RSA */ - return (enum signature_type)signkey_type_from_name(name, namelen); - } - --/* Returns the signature type from a key type. Must not be called -+/* Returns the signature type from a key type. Must not be called - with RSA keytype */ - enum signature_type signature_type_from_signkey(enum signkey_type keytype) { - #if DROPBEAR_RSA -@@ -167,6 +171,7 @@ enum signature_type signature_type_from_ - } - - enum signkey_type signkey_type_from_signature(enum signature_type sigtype) { -+#if DROPBEAR_RSA - #if DROPBEAR_RSA_SHA256 - if (sigtype == DROPBEAR_SIGNATURE_RSA_SHA256) { - return DROPBEAR_SIGNKEY_RSA; -@@ -177,6 +182,7 @@ enum signkey_type signkey_type_from_sign - return DROPBEAR_SIGNKEY_RSA; - } - #endif -+#endif /* DROPBEAR_RSA */ - assert((int)sigtype < (int)DROPBEAR_SIGNKEY_NUM_NAMED); - return (enum signkey_type)sigtype; - } ---- a/signkey.h -+++ b/signkey.h -@@ -79,12 +79,14 @@ enum signature_type { - DROPBEAR_SIGNATURE_SK_ED25519 = DROPBEAR_SIGNKEY_SK_ED25519, - #endif - #endif -+#if DROPBEAR_RSA - #if DROPBEAR_RSA_SHA1 - DROPBEAR_SIGNATURE_RSA_SHA1 = 100, /* ssh-rsa signature (sha1) */ - #endif - #if DROPBEAR_RSA_SHA256 - DROPBEAR_SIGNATURE_RSA_SHA256 = 101, /* rsa-sha2-256 signature. has a ssh-rsa key */ - #endif -+#endif /* DROPBEAR_RSA */ - DROPBEAR_SIGNATURE_NONE = DROPBEAR_SIGNKEY_NONE, - }; - ---- a/sysoptions.h -+++ b/sysoptions.h -@@ -137,7 +137,7 @@ - - /* Debian doesn't define this in system headers */ - #if !defined(LTM_DESC) && (DROPBEAR_ECC) --#define LTM_DESC -+#define LTM_DESC - #endif - - #define DROPBEAR_ECC_256 (DROPBEAR_ECC) -@@ -151,9 +151,6 @@ - * signing operations slightly slower. */ - #define DROPBEAR_RSA_BLINDING 1 - --#ifndef DROPBEAR_RSA_SHA1 --#define DROPBEAR_RSA_SHA1 DROPBEAR_RSA --#endif - #ifndef DROPBEAR_RSA_SHA256 - #define DROPBEAR_RSA_SHA256 DROPBEAR_RSA - #endif diff --git a/package/network/services/dropbear/patches/002-fix-y2038-issues.patch b/package/network/services/dropbear/patches/002-fix-y2038-issues.patch deleted file mode 100644 index 0654e3b98b..0000000000 --- a/package/network/services/dropbear/patches/002-fix-y2038-issues.patch +++ /dev/null @@ -1,198 +0,0 @@ -From ec2215726cffb976019d08ebf569edd2229e9dba Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Thu, 1 Dec 2022 11:34:43 +0800 -Subject: Fix y2038 issues with time_t conversion - -These changes were identified by building with and without --D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 -on 32-bit arm, logging warnings to files. --Wconversion was added to CFLAGS in both builds. - -Then a "diff -I Wconversion log1 log2" shows new warnings that appear -with the 64-bit time_t. There are a few false positives that have been -fixed for quietness. - -struct logininfo and struct wtmp are still problematic, those will -need to be handled by libc. ---- - common-session.c | 43 +++++++++++++++++++++++++++---------------- - dbutil.c | 2 +- - loginrec.c | 2 ++ - loginrec.h | 4 ++-- - runopts.h | 4 ++-- - svr-auth.c | 2 +- - 6 files changed, 35 insertions(+), 22 deletions(-) - ---- a/common-session.c -+++ b/common-session.c -@@ -519,15 +519,24 @@ static void send_msg_keepalive() { - ses.last_packet_time_idle = old_time_idle; - } - -+/* Returns the difference in seconds, clamped to LONG_MAX */ -+static long elapsed(time_t now, time_t prev) { -+ time_t del = now - prev; -+ if (del > LONG_MAX) { -+ return LONG_MAX; -+ } -+ return (long)del; -+} -+ - /* Check all timeouts which are required. Currently these are the time for - * user authentication, and the automatic rekeying. */ - static void checktimeouts() { - - time_t now; - now = monotonic_now(); -- -+ - if (IS_DROPBEAR_SERVER && ses.connect_time != 0 -- && now - ses.connect_time >= AUTH_TIMEOUT) { -+ && elapsed(now, ses.connect_time) >= AUTH_TIMEOUT) { - dropbear_close("Timeout before auth"); - } - -@@ -537,45 +546,47 @@ static void checktimeouts() { - } - - if (!ses.kexstate.sentkexinit -- && (now - ses.kexstate.lastkextime >= KEX_REKEY_TIMEOUT -+ && (elapsed(now, ses.kexstate.lastkextime) >= KEX_REKEY_TIMEOUT - || ses.kexstate.datarecv+ses.kexstate.datatrans >= KEX_REKEY_DATA)) { - TRACE(("rekeying after timeout or max data reached")) - send_msg_kexinit(); - } -- -+ - if (opts.keepalive_secs > 0 && ses.authstate.authdone) { - /* Avoid sending keepalives prior to auth - those are - not valid pre-auth packet types */ - - /* Send keepalives if we've been idle */ -- if (now - ses.last_packet_time_any_sent >= opts.keepalive_secs) { -+ if (elapsed(now, ses.last_packet_time_any_sent) >= opts.keepalive_secs) { - send_msg_keepalive(); - } - - /* Also send an explicit keepalive message to trigger a response - if the remote end hasn't sent us anything */ -- if (now - ses.last_packet_time_keepalive_recv >= opts.keepalive_secs -- && now - ses.last_packet_time_keepalive_sent >= opts.keepalive_secs) { -+ if (elapsed(now, ses.last_packet_time_keepalive_recv) >= opts.keepalive_secs -+ && elapsed(now, ses.last_packet_time_keepalive_sent) >= opts.keepalive_secs) { - send_msg_keepalive(); - } - -- if (now - ses.last_packet_time_keepalive_recv -+ if (elapsed(now, ses.last_packet_time_keepalive_recv) - >= opts.keepalive_secs * DEFAULT_KEEPALIVE_LIMIT) { - dropbear_exit("Keepalive timeout"); - } - } - -- if (opts.idle_timeout_secs > 0 -- && now - ses.last_packet_time_idle >= opts.idle_timeout_secs) { -+ if (opts.idle_timeout_secs > 0 -+ && elapsed(now, ses.last_packet_time_idle) >= opts.idle_timeout_secs) { - dropbear_close("Idle timeout"); - } - } - --static void update_timeout(long limit, long now, long last_event, long * timeout) { -- TRACE2(("update_timeout limit %ld, now %ld, last %ld, timeout %ld", -- limit, now, last_event, *timeout)) -+static void update_timeout(long limit, time_t now, time_t last_event, long * timeout) { -+ TRACE2(("update_timeout limit %ld, now %llu, last %llu, timeout %ld", -+ limit, -+ (unsigned long long)now, -+ (unsigned long long)last_event, *timeout)) - if (last_event > 0 && limit > 0) { -- *timeout = MIN(*timeout, last_event+limit-now); -+ *timeout = MIN(*timeout, elapsed(now, last_event) + limit); - TRACE2(("new timeout %ld", *timeout)) - } - } -@@ -584,7 +595,7 @@ static long select_timeout() { - /* determine the minimum timeout that might be required, so - as to avoid waking when unneccessary */ - long timeout = KEX_REKEY_TIMEOUT; -- long now = monotonic_now(); -+ time_t now = monotonic_now(); - - if (!ses.kexstate.sentkexinit) { - update_timeout(KEX_REKEY_TIMEOUT, now, ses.kexstate.lastkextime, &timeout); -@@ -596,7 +607,7 @@ static long select_timeout() { - } - - if (ses.authstate.authdone) { -- update_timeout(opts.keepalive_secs, now, -+ update_timeout(opts.keepalive_secs, now, - MAX(ses.last_packet_time_keepalive_recv, ses.last_packet_time_keepalive_sent), - &timeout); - } ---- a/dbutil.c -+++ b/dbutil.c -@@ -724,7 +724,7 @@ void gettime_wrapper(struct timespec *no - /* Fallback for everything else - this will sometimes go backwards */ - gettimeofday(&tv, NULL); - now->tv_sec = tv.tv_sec; -- now->tv_nsec = 1000*tv.tv_usec; -+ now->tv_nsec = 1000*(long)tv.tv_usec; - } - - /* second-resolution monotonic timestamp */ ---- a/loginrec.c -+++ b/loginrec.c -@@ -459,6 +459,7 @@ line_abbrevname(char *dst, const char *s - void - set_utmp_time(struct logininfo *li, struct utmp *ut) - { -+ /* struct utmp in glibc isn't y2038 safe yet */ - # ifdef HAVE_STRUCT_UTMP_UT_TV - ut->ut_tv.tv_sec = li->tv_sec; - ut->ut_tv.tv_usec = li->tv_usec; -@@ -1272,6 +1273,7 @@ lastlog_construct(struct logininfo *li, - (void)line_stripname(last->ll_line, li->line, sizeof(last->ll_line)); - strlcpy(last->ll_host, li->hostname, - MIN_SIZEOF(last->ll_host, li->hostname)); -+ /* struct lastlog in glibc isn't y2038 safe yet */ - last->ll_time = li->tv_sec; - } - ---- a/loginrec.h -+++ b/loginrec.h -@@ -139,8 +139,8 @@ struct logininfo { - /* struct timeval (sys/time.h) isn't always available, if it isn't we'll - * use time_t's value as tv_sec and set tv_usec to 0 - */ -- unsigned int tv_sec; -- unsigned int tv_usec; -+ time_t tv_sec; -+ suseconds_t tv_usec; - union login_netinfo hostaddr; /* caller's host address(es) */ - }; /* struct logininfo */ - ---- a/runopts.h -+++ b/runopts.h -@@ -39,8 +39,8 @@ typedef struct runopts { - int listen_fwd_all; - #endif - unsigned int recv_window; -- time_t keepalive_secs; /* Time between sending keepalives. 0 is off */ -- time_t idle_timeout_secs; /* Exit if no traffic is sent/received in this time */ -+ long keepalive_secs; /* Time between sending keepalives. 0 is off */ -+ long idle_timeout_secs; /* Exit if no traffic is sent/received in this time */ - int usingsyslog; - - #ifndef DISABLE_ZLIB ---- a/svr-auth.c -+++ b/svr-auth.c -@@ -389,7 +389,7 @@ void send_msg_userauth_failure(int parti - Beware of integer overflow if increasing these values */ - const unsigned int mindelay = 250000000; - const unsigned int vardelay = 100000000; -- unsigned int rand_delay; -+ suseconds_t rand_delay; - struct timespec delay; - - gettime_wrapper(&delay); diff --git a/package/network/services/dropbear/patches/003-fix-DROPBEAR_DSS.patch b/package/network/services/dropbear/patches/003-fix-DROPBEAR_DSS.patch deleted file mode 100644 index 6789800e12..0000000000 --- a/package/network/services/dropbear/patches/003-fix-DROPBEAR_DSS.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c043efb47c3173072fa636ca0da0d19875d4511f Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Tue, 6 Dec 2022 22:34:11 +0800 -Subject: Fix so DROPBEAR_DSS is only forced for fuzzing - -Regression from 787391ea3b5af2acf5e3c83372510f0c79477ad7, -was missing fuzzing conditional ---- - sysoptions.h | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/sysoptions.h -+++ b/sysoptions.h -@@ -380,9 +380,11 @@ - #endif - - /* Fuzzing expects all key types to be enabled */ -+#if DROPBEAR_FUZZ - #if defined(DROPBEAR_DSS) - #undef DROPBEAR_DSS - #endif - #define DROPBEAR_DSS 1 -+#endif - - /* no include guard for this file */ diff --git a/package/network/services/dropbear/patches/004-allow-users-s-own-gid-in-pty-permission-check.patch b/package/network/services/dropbear/patches/004-allow-users-s-own-gid-in-pty-permission-check.patch deleted file mode 100644 index bcb43aed2a..0000000000 --- a/package/network/services/dropbear/patches/004-allow-users-s-own-gid-in-pty-permission-check.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 860721558837441ab45019858e710a2625ffa46e Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Wed, 7 Dec 2022 13:04:10 +0800 -Subject: Allow users's own gid in pty permission check - -This allows non-root Dropbear to work even without devpts gid=5 mount -option on Linux. ---- - sshpty.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/sshpty.c -+++ b/sshpty.c -@@ -380,7 +380,9 @@ pty_setowner(struct passwd *pw, const ch - tty_name, strerror(errno)); - } - -- if (st.st_uid != pw->pw_uid || st.st_gid != gid) { -+ /* Allow either "tty" gid or user's own gid. On Linux with openpty() -+ * this varies depending on the devpts mount options */ -+ if (st.st_uid != pw->pw_uid || !(st.st_gid == gid || st.st_gid == pw->pw_gid)) { - if (chown(tty_name, pw->pw_uid, gid) < 0) { - if (errno == EROFS && - (st.st_uid == pw->pw_uid || st.st_uid == 0)) { diff --git a/package/network/services/dropbear/patches/005-const-parameter-mp_int.patch b/package/network/services/dropbear/patches/005-const-parameter-mp_int.patch deleted file mode 100644 index 0d23c9c416..0000000000 --- a/package/network/services/dropbear/patches/005-const-parameter-mp_int.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 01415ef8269e594a647f67ea0729ca8b590679de Mon Sep 17 00:00:00 2001 -From: Francois Perrad -Date: Thu, 22 Dec 2022 10:19:54 +0100 -Subject: const parameter mp_int - ---- - bignum.c | 2 +- - bignum.h | 2 +- - buffer.c | 2 +- - buffer.h | 2 +- - dbrandom.c | 2 +- - dbrandom.h | 2 +- - dbutil.c | 2 +- - dbutil.h | 2 +- - genrsa.c | 4 ++-- - 9 files changed, 10 insertions(+), 10 deletions(-) - ---- a/bignum.c -+++ b/bignum.c -@@ -93,7 +93,7 @@ void bytes_to_mp(mp_int *mp, const unsig - - /* hash the ssh representation of the mp_int mp */ - void hash_process_mp(const struct ltc_hash_descriptor *hash_desc, -- hash_state *hs, mp_int *mp) { -+ hash_state *hs, const mp_int *mp) { - buffer * buf; - - buf = buf_new(512 + 20); /* max buffer is a 4096 bit key, ---- a/bignum.h -+++ b/bignum.h -@@ -33,6 +33,6 @@ void m_mp_alloc_init_multi(mp_int **mp, - void m_mp_free_multi(mp_int **mp, ...) ATTRIB_SENTINEL; - void bytes_to_mp(mp_int *mp, const unsigned char* bytes, unsigned int len); - void hash_process_mp(const struct ltc_hash_descriptor *hash_desc, -- hash_state *hs, mp_int *mp); -+ hash_state *hs, const mp_int *mp); - - #endif /* DROPBEAR_BIGNUM_H_ */ ---- a/buffer.c -+++ b/buffer.c -@@ -299,7 +299,7 @@ void buf_putbytes(buffer *buf, const uns - - /* for our purposes we only need positive (or 0) numbers, so will - * fail if we get negative numbers */ --void buf_putmpint(buffer* buf, mp_int * mp) { -+void buf_putmpint(buffer* buf, const mp_int * mp) { - size_t written; - unsigned int len, pad = 0; - TRACE2(("enter buf_putmpint")) ---- a/buffer.h -+++ b/buffer.h -@@ -65,7 +65,7 @@ void buf_putint(buffer* buf, unsigned in - void buf_putstring(buffer* buf, const char* str, unsigned int len); - void buf_putbufstring(buffer *buf, const buffer* buf_str); - void buf_putbytes(buffer *buf, const unsigned char *bytes, unsigned int len); --void buf_putmpint(buffer* buf, mp_int * mp); -+void buf_putmpint(buffer* buf, const mp_int * mp); - int buf_getmpint(buffer* buf, mp_int* mp); - unsigned int buf_getint(buffer* buf); - ---- a/dbrandom.c -+++ b/dbrandom.c -@@ -347,7 +347,7 @@ void genrandom(unsigned char* buf, unsig - * rand must be an initialised *mp_int for the result. - * the result rand satisfies: 0 < rand < max - * */ --void gen_random_mpint(mp_int *max, mp_int *rand) { -+void gen_random_mpint(const mp_int *max, mp_int *rand) { - - unsigned char *randbuf = NULL; - unsigned int len = 0; ---- a/dbrandom.h -+++ b/dbrandom.h -@@ -30,6 +30,6 @@ - void seedrandom(void); - void genrandom(unsigned char* buf, unsigned int len); - void addrandom(const unsigned char * buf, unsigned int len); --void gen_random_mpint(mp_int *max, mp_int *rand); -+void gen_random_mpint(const mp_int *max, mp_int *rand); - - #endif /* DROPBEAR_RANDOM_H_ */ ---- a/dbutil.c -+++ b/dbutil.c -@@ -442,7 +442,7 @@ void printhex(const char * label, const - } - } - --void printmpint(const char *label, mp_int *mp) { -+void printmpint(const char *label, const mp_int *mp) { - buffer *buf = buf_new(1000); - buf_putmpint(buf, mp); - fprintf(stderr, "%d bits ", mp_count_bits(mp)); ---- a/dbutil.h -+++ b/dbutil.h -@@ -53,7 +53,7 @@ void dropbear_trace3(const char* format, - void dropbear_trace4(const char* format, ...) ATTRIB_PRINTF(1,2); - void dropbear_trace5(const char* format, ...) ATTRIB_PRINTF(1,2); - void printhex(const char * label, const unsigned char * buf, int len); --void printmpint(const char *label, mp_int *mp); -+void printmpint(const char *label, const mp_int *mp); - void debug_start_net(void); - extern int debug_trace; - #endif ---- a/genrsa.c -+++ b/genrsa.c -@@ -34,7 +34,7 @@ - #if DROPBEAR_RSA - - static void getrsaprime(mp_int* prime, mp_int *primeminus, -- mp_int* rsa_e, unsigned int size_bytes); -+ const mp_int* rsa_e, unsigned int size_bytes); - - /* mostly taken from libtomcrypt's rsa key generation routine */ - dropbear_rsa_key * gen_rsa_priv_key(unsigned int size) { -@@ -89,7 +89,7 @@ dropbear_rsa_key * gen_rsa_priv_key(unsi - - /* return a prime suitable for p or q */ - static void getrsaprime(mp_int* prime, mp_int *primeminus, -- mp_int* rsa_e, unsigned int size_bytes) { -+ const mp_int* rsa_e, unsigned int size_bytes) { - - unsigned char *buf; - int trials; diff --git a/package/network/services/dropbear/patches/006-dropbearkey-add-missing-break-in-switch.patch b/package/network/services/dropbear/patches/006-dropbearkey-add-missing-break-in-switch.patch deleted file mode 100644 index c7011021c1..0000000000 --- a/package/network/services/dropbear/patches/006-dropbearkey-add-missing-break-in-switch.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 39d955c49f31fc155e885447ee2be61c869d8c2d Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Tue, 3 Jan 2023 22:05:14 +0800 -Subject: Add missing break in switch - -Has no effect on execution, the fallthrough does nothing -Closes #208 ---- - dropbearkey.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/dropbearkey.c -+++ b/dropbearkey.c -@@ -139,6 +139,7 @@ static void check_signkey_bits(enum sign - dropbear_exit("DSS keys have a fixed size of 1024 bits\n"); - exit(EXIT_FAILURE); - } -+ break; - #endif - default: - (void)0; /* quiet, compiler. ecdsa handles checks itself */ diff --git a/package/network/services/dropbear/patches/007-fix-building-only-client-or-server.patch b/package/network/services/dropbear/patches/007-fix-building-only-client-or-server.patch deleted file mode 100644 index 5fcfaad180..0000000000 --- a/package/network/services/dropbear/patches/007-fix-building-only-client-or-server.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7a53c7f0f4b3eb23e002819553cb45558642c01d Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Wed, 4 Jan 2023 20:32:23 +0800 -Subject: Fix building only client or server - -Regressed when -Wundef was added - -Fixes #210 ---- - sysoptions.h | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/sysoptions.h -+++ b/sysoptions.h -@@ -10,6 +10,14 @@ - #define LOCAL_IDENT "SSH-2.0-dropbear_" DROPBEAR_VERSION - #define PROGNAME "dropbear" - -+#ifndef DROPBEAR_CLIENT -+#define DROPBEAR_CLIENT 0 -+#endif -+ -+#ifndef DROPBEAR_SERVER -+#define DROPBEAR_SERVER 0 -+#endif -+ - /* Spec recommends after one hour or 1 gigabyte of data. One hour - * is a bit too verbose, so we try 8 hours */ - #ifndef KEX_REKEY_TIMEOUT diff --git a/package/network/services/dropbear/patches/008-disable-rsa-signatures-when-no-rsa-hostkey.patch b/package/network/services/dropbear/patches/008-disable-rsa-signatures-when-no-rsa-hostkey.patch deleted file mode 100644 index 4f675234ff..0000000000 --- a/package/network/services/dropbear/patches/008-disable-rsa-signatures-when-no-rsa-hostkey.patch +++ /dev/null @@ -1,94 +0,0 @@ -From a113381c12a2da3c9b7bd594f47a1b2657bdfdf2 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Sun, 12 Feb 2023 22:44:32 +0800 -Subject: Disable rsa signatures when no rsa hostkey - -Otherwise Dropbear will offer RSA as a hostkey signature option, but the -session will exit with an assertion or NULL pointer dereference once -that algorithm is negotiated. - -This likely regressed in 2020.79 when signature vs key type enums were -split, for rsa-sha256. - -Fixes #219 on github ---- - svr-runopts.c | 21 +++++++++++---------- - 1 file changed, 11 insertions(+), 10 deletions(-) - ---- a/svr-runopts.c -+++ b/svr-runopts.c -@@ -505,11 +505,11 @@ static void addportandaddress(const char - svr_opts.portcount++; - } - --static void disablekey(int type) { -+static void disablekey(enum signature_type type) { - int i; - TRACE(("Disabling key type %d", type)) - for (i = 0; sigalgs[i].name != NULL; i++) { -- if (sigalgs[i].val == type) { -+ if ((int)sigalgs[i].val == (int)type) { - sigalgs[i].usable = 0; - break; - } -@@ -624,7 +624,8 @@ void load_all_hostkeys() { - - #if DROPBEAR_RSA - if (!svr_opts.delay_hostkey && !svr_opts.hostkey->rsakey) { -- disablekey(DROPBEAR_SIGNKEY_RSA); -+ disablekey(DROPBEAR_SIGNATURE_RSA_SHA256); -+ disablekey(DROPBEAR_SIGNATURE_RSA_SHA1); - } else { - any_keys = 1; - } -@@ -632,7 +633,7 @@ void load_all_hostkeys() { - - #if DROPBEAR_DSS - if (!svr_opts.delay_hostkey && !svr_opts.hostkey->dsskey) { -- disablekey(DROPBEAR_SIGNKEY_DSS); -+ disablekey(DROPBEAR_SIGNATURE_DSS); - } else { - any_keys = 1; - } -@@ -666,35 +667,35 @@ void load_all_hostkeys() { - #if DROPBEAR_ECC_256 - if (!svr_opts.hostkey->ecckey256 - && (!svr_opts.delay_hostkey || loaded_any_ecdsa || ECDSA_DEFAULT_SIZE != 256 )) { -- disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP256); -+ disablekey(DROPBEAR_SIGNATURE_ECDSA_NISTP256); - } - #endif - #if DROPBEAR_ECC_384 - if (!svr_opts.hostkey->ecckey384 - && (!svr_opts.delay_hostkey || loaded_any_ecdsa || ECDSA_DEFAULT_SIZE != 384 )) { -- disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP384); -+ disablekey(DROPBEAR_SIGNATURE_ECDSA_NISTP384); - } - #endif - #if DROPBEAR_ECC_521 - if (!svr_opts.hostkey->ecckey521 - && (!svr_opts.delay_hostkey || loaded_any_ecdsa || ECDSA_DEFAULT_SIZE != 521 )) { -- disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP521); -+ disablekey(DROPBEAR_SIGNATURE_ECDSA_NISTP521); - } - #endif - #endif /* DROPBEAR_ECDSA */ - - #if DROPBEAR_ED25519 - if (!svr_opts.delay_hostkey && !svr_opts.hostkey->ed25519key) { -- disablekey(DROPBEAR_SIGNKEY_ED25519); -+ disablekey(DROPBEAR_SIGNATURE_ED25519); - } else { - any_keys = 1; - } - #endif - #if DROPBEAR_SK_ECDSA -- disablekey(DROPBEAR_SIGNKEY_SK_ECDSA_NISTP256); -+ disablekey(DROPBEAR_SIGNATURE_SK_ECDSA_NISTP256); - #endif - #if DROPBEAR_SK_ED25519 -- disablekey(DROPBEAR_SIGNKEY_SK_ED25519); -+ disablekey(DROPBEAR_SIGNATURE_SK_ED25519); - #endif - - if (!any_keys) { diff --git a/package/network/services/dropbear/patches/009-use-write-rather-than-fprintf-in-segv-handler.patch b/package/network/services/dropbear/patches/009-use-write-rather-than-fprintf-in-segv-handler.patch deleted file mode 100644 index e1538a4c1f..0000000000 --- a/package/network/services/dropbear/patches/009-use-write-rather-than-fprintf-in-segv-handler.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3292b8c6f1e5fcc405fa0f7a20e90a60f74037b2 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Sun, 12 Feb 2023 23:00:00 +0800 -Subject: Use write() rather than fprintf() in segv handler - -fprintf isn't guaranteed safe (though hasn't had any problems reported). ---- - svr-main.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- a/svr-main.c -+++ b/svr-main.c -@@ -420,8 +420,12 @@ static void sigchld_handler(int UNUSED(u - - /* catch any segvs */ - static void sigsegv_handler(int UNUSED(unused)) { -- fprintf(stderr, "Aiee, segfault! You should probably report " -- "this as a bug to the developer\n"); -+ int i; -+ const char *msg = "Aiee, segfault! You should probably report " -+ "this as a bug to the developer\n"; -+ i = write(STDERR_FILENO, msg, strlen(msg)); -+ /* ignore short writes */ -+ (void)i; - _exit(EXIT_FAILURE); - } - diff --git a/package/network/services/dropbear/patches/010-remove-SO_LINGER.patch b/package/network/services/dropbear/patches/010-remove-SO_LINGER.patch deleted file mode 100644 index 12b1843ee2..0000000000 --- a/package/network/services/dropbear/patches/010-remove-SO_LINGER.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5040f21cb4ee6ade966e60c6d5a3c270d03de1f1 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Mon, 1 May 2023 22:05:43 +0800 -Subject: Remove SO_LINGER - -It could cause channels to take up to 5 seconds to close(), which would block -the entire process. On busy TCP forwarding sessions this would result in -channels seeming stuck and new connections not being accepted. - -We don't need to monitor for flushing failures since we can't report errors, so -SO_LINGER wasn't useful. - -Thanks to GektorUA for reporting and testing - -Fixes #230 ---- - netio.c | 4 ---- - 1 file changed, 4 deletions(-) - ---- a/netio.c -+++ b/netio.c -@@ -472,7 +472,6 @@ int dropbear_listen(const char* address, - struct addrinfo hints, *res = NULL, *res0 = NULL; - int err; - unsigned int nsock; -- struct linger linger; - int val; - int sock; - uint16_t *allocated_lport_p = NULL; -@@ -551,9 +550,6 @@ int dropbear_listen(const char* address, - val = 1; - /* set to reuse, quick timeout */ - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void*) &val, sizeof(val)); -- linger.l_onoff = 1; -- linger.l_linger = 5; -- setsockopt(sock, SOL_SOCKET, SO_LINGER, (void*)&linger, sizeof(linger)); - - #if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) - if (res->ai_family == AF_INET6) { diff --git a/package/network/services/dropbear/patches/011-add-option-to-bind-to-interface.patch b/package/network/services/dropbear/patches/011-add-option-to-bind-to-interface.patch deleted file mode 100644 index d1c1fa4cce..0000000000 --- a/package/network/services/dropbear/patches/011-add-option-to-bind-to-interface.patch +++ /dev/null @@ -1,147 +0,0 @@ -From fb64db9eac3fdc6434f2dc7b5ea407fe5df76e6f Mon Sep 17 00:00:00 2001 -From: Diederik De Coninck -Date: Tue, 11 Apr 2023 15:38:04 +0200 -Subject: Add option to bind to interface - ---- - netio.c | 13 +++++++++++-- - netio.h | 2 +- - runopts.h | 1 + - svr-main.c | 2 +- - svr-runopts.c | 9 +++++++++ - svr-tcpfwd.c | 1 + - tcp-accept.c | 2 +- - tcpfwd.h | 1 + - 8 files changed, 26 insertions(+), 5 deletions(-) - ---- a/netio.c -+++ b/netio.c -@@ -467,7 +467,7 @@ int get_sock_port(int sock) { - * failure, if errstring wasn't NULL, it'll be a newly malloced error - * string.*/ - int dropbear_listen(const char* address, const char* port, -- int *socks, unsigned int sockcount, char **errstring, int *maxfd) { -+ int *socks, unsigned int sockcount, char **errstring, int *maxfd, const char* interface) { - - struct addrinfo hints, *res = NULL, *res0 = NULL; - int err; -@@ -497,7 +497,11 @@ int dropbear_listen(const char* address, - TRACE(("dropbear_listen: local loopback")) - } else { - if (address[0] == '\0') { -- TRACE(("dropbear_listen: all interfaces")) -+ if (interface) { -+ TRACE(("dropbear_listen: %s", interface)) -+ } else { -+ TRACE(("dropbear_listen: all interfaces")) -+ } - address = NULL; - } - hints.ai_flags = AI_PASSIVE; -@@ -551,6 +555,11 @@ int dropbear_listen(const char* address, - /* set to reuse, quick timeout */ - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void*) &val, sizeof(val)); - -+ if(interface && setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, interface, strlen(interface)) < 0) { -+ dropbear_log(LOG_WARNING, "Couldn't set SO_BINDTODEVICE"); -+ TRACE(("Failed setsockopt with errno failure, %d %s", errno, strerror(errno))) -+ } -+ - #if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) - if (res->ai_family == AF_INET6) { - int on = 1; ---- a/netio.h -+++ b/netio.h -@@ -19,7 +19,7 @@ void get_socket_address(int fd, char **l - void getaddrstring(struct sockaddr_storage* addr, - char **ret_host, char **ret_port, int host_lookup); - int dropbear_listen(const char* address, const char* port, -- int *socks, unsigned int sockcount, char **errstring, int *maxfd); -+ int *socks, unsigned int sockcount, char **errstring, int *maxfd, const char* interface); - - struct dropbear_progress_connection; - ---- a/runopts.h -+++ b/runopts.h -@@ -128,6 +128,7 @@ typedef struct svr_runopts { - char * pidfile; - - char * forced_command; -+ char* interface; - - #if DROPBEAR_PLUGIN - /* malloced */ ---- a/svr-main.c -+++ b/svr-main.c -@@ -488,7 +488,7 @@ static size_t listensockets(int *socks, - - nsock = dropbear_listen(svr_opts.addresses[i], svr_opts.ports[i], &socks[sockpos], - sockcount - sockpos, -- &errstring, maxfd); -+ &errstring, maxfd, svr_opts.interface); - - if (nsock < 0) { - dropbear_log(LOG_WARNING, "Failed listening on '%s': %s", ---- a/svr-runopts.c -+++ b/svr-runopts.c -@@ -98,6 +98,8 @@ static void printhelp(const char * progn - " (default port is %s if none specified)\n" - "-P PidFile Create pid file PidFile\n" - " (default %s)\n" -+ "-l \n" -+ " interface to bind on\n" - #if INETD_MODE - "-i Start for inetd\n" - #endif -@@ -265,6 +267,9 @@ void svr_getopts(int argc, char ** argv) - case 'P': - next = &svr_opts.pidfile; - break; -+ case 'l': -+ next = &svr_opts.interface; -+ break; - #if DO_MOTD - /* motd is displayed by default, -m turns it off */ - case 'm': -@@ -438,6 +443,10 @@ void svr_getopts(int argc, char ** argv) - dropbear_log(LOG_INFO, "Forced command set to '%s'", svr_opts.forced_command); - } - -+ if (svr_opts.interface) { -+ dropbear_log(LOG_INFO, "Binding to interface '%s'", svr_opts.interface); -+ } -+ - if (reexec_fd_arg) { - if (m_str_to_uint(reexec_fd_arg, &svr_opts.reexec_childpipe) == DROPBEAR_FAILURE - || svr_opts.reexec_childpipe < 0) { ---- a/svr-tcpfwd.c -+++ b/svr-tcpfwd.c -@@ -205,6 +205,7 @@ static int svr_remotetcpreq(int *allocat - tcpinfo->listenport = port; - tcpinfo->chantype = &svr_chan_tcpremote; - tcpinfo->tcp_type = forwarded; -+ tcpinfo->interface = svr_opts.interface; - - tcpinfo->request_listenaddr = request_addr; - if (!opts.listen_fwd_all || (strcmp(request_addr, "localhost") == 0) ) { ---- a/tcp-accept.c -+++ b/tcp-accept.c -@@ -117,7 +117,7 @@ int listen_tcpfwd(struct TCPListener* tc - snprintf(portstring, sizeof(portstring), "%u", tcpinfo->listenport); - - nsocks = dropbear_listen(tcpinfo->listenaddr, portstring, socks, -- DROPBEAR_MAX_SOCKS, &errstring, &ses.maxfd); -+ DROPBEAR_MAX_SOCKS, &errstring, &ses.maxfd, tcpinfo->interface); - if (nsocks < 0) { - dropbear_log(LOG_INFO, "TCP forward failed: %s", errstring); - m_free(errstring); ---- a/tcpfwd.h -+++ b/tcpfwd.h -@@ -42,6 +42,7 @@ struct TCPListener { - unsigned int listenport; - /* The address that the remote host asked to listen on */ - char *request_listenaddr; -+ char* interface; - - const struct ChanType *chantype; - enum {direct, forwarded} tcp_type; diff --git a/package/network/services/dropbear/patches/012-add-ifdef-guards-for-SO_BINDTODEVICE.patch b/package/network/services/dropbear/patches/012-add-ifdef-guards-for-SO_BINDTODEVICE.patch deleted file mode 100644 index 11f902bf90..0000000000 --- a/package/network/services/dropbear/patches/012-add-ifdef-guards-for-SO_BINDTODEVICE.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 031d09b47912b2401f4934667c0b6f857ede61ee Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Tue, 18 Jul 2023 23:20:16 +0800 -Subject: Add ifdef guards for SO_BINDTODEVICE - ---- - netio.c | 2 ++ - svr-runopts.c | 4 ++++ - 2 files changed, 6 insertions(+) - ---- a/netio.c -+++ b/netio.c -@@ -555,10 +555,12 @@ int dropbear_listen(const char* address, - /* set to reuse, quick timeout */ - setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void*) &val, sizeof(val)); - -+#ifdef SO_BINDTODEVICE - if(interface && setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, interface, strlen(interface)) < 0) { - dropbear_log(LOG_WARNING, "Couldn't set SO_BINDTODEVICE"); - TRACE(("Failed setsockopt with errno failure, %d %s", errno, strerror(errno))) - } -+#endif - - #if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) - if (res->ai_family == AF_INET6) { ---- a/svr-runopts.c -+++ b/svr-runopts.c -@@ -98,8 +98,10 @@ static void printhelp(const char * progn - " (default port is %s if none specified)\n" - "-P PidFile Create pid file PidFile\n" - " (default %s)\n" -+#ifdef SO_BINDTODEVICE - "-l \n" - " interface to bind on\n" -+#endif - #if INETD_MODE - "-i Start for inetd\n" - #endif -@@ -267,9 +269,11 @@ void svr_getopts(int argc, char ** argv) - case 'P': - next = &svr_opts.pidfile; - break; -+#ifdef SO_BINDTODEVICE - case 'l': - next = &svr_opts.interface; - break; -+#endif - #if DO_MOTD - /* motd is displayed by default, -m turns it off */ - case 'm': diff --git a/package/network/services/dropbear/patches/013-make-banner-reading-failure-non-fatal.patch b/package/network/services/dropbear/patches/013-make-banner-reading-failure-non-fatal.patch deleted file mode 100644 index 531215c757..0000000000 --- a/package/network/services/dropbear/patches/013-make-banner-reading-failure-non-fatal.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 62a06cd95f58060a59359f8769c3f35cd680d4fd Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Sun, 23 Jul 2023 21:01:48 +0800 -Subject: Make banner reading failure non-fatal - ---- - svr-runopts.c | 45 ++++++++++++++++++++++++++++----------------- - 1 file changed, 28 insertions(+), 17 deletions(-) - ---- a/svr-runopts.c -+++ b/svr-runopts.c -@@ -38,6 +38,7 @@ static void printhelp(const char * progn - static void addportandaddress(const char* spec); - static void loadhostkey(const char *keyfile, int fatal_duplicate); - static void addhostkey(const char *keyfile); -+static void load_banner(); - - static void printhelp(const char * progname) { - -@@ -382,23 +383,7 @@ void svr_getopts(int argc, char ** argv) - } - - if (svr_opts.bannerfile) { -- struct stat buf; -- if (stat(svr_opts.bannerfile, &buf) != 0) { -- dropbear_exit("Error opening banner file '%s'", -- svr_opts.bannerfile); -- } -- -- if (buf.st_size > MAX_BANNER_SIZE) { -- dropbear_exit("Banner file too large, max is %d bytes", -- MAX_BANNER_SIZE); -- } -- -- svr_opts.banner = buf_new(buf.st_size); -- if (buf_readfile(svr_opts.banner, svr_opts.bannerfile)!=DROPBEAR_SUCCESS) { -- dropbear_exit("Error reading banner file '%s'", -- svr_opts.bannerfile); -- } -- buf_setpos(svr_opts.banner, 0); -+ load_banner(); - } - - #ifdef HAVE_GETGROUPLIST -@@ -715,3 +700,29 @@ void load_all_hostkeys() { - dropbear_exit("No hostkeys available. 'dropbear -R' may be useful or run dropbearkey."); - } - } -+ -+static void load_banner() { -+ struct stat buf; -+ if (stat(svr_opts.bannerfile, &buf) != 0) { -+ dropbear_log(LOG_WARNING, "Error opening banner file '%s'", -+ svr_opts.bannerfile); -+ return; -+ } -+ -+ if (buf.st_size > MAX_BANNER_SIZE) { -+ dropbear_log(LOG_WARNING, "Banner file too large, max is %d bytes", -+ MAX_BANNER_SIZE); -+ return; -+ } -+ -+ svr_opts.banner = buf_new(buf.st_size); -+ if (buf_readfile(svr_opts.banner, svr_opts.bannerfile) != DROPBEAR_SUCCESS) { -+ dropbear_log(LOG_WARNING, "Error reading banner file '%s'", -+ svr_opts.bannerfile); -+ buf_free(svr_opts.banner); -+ svr_opts.banner = NULL; -+ return; -+ } -+ buf_setpos(svr_opts.banner, 0); -+ -+} diff --git a/package/network/services/dropbear/patches/014-dropbearkey-ignore-unsupported-command-line-option.patch b/package/network/services/dropbear/patches/014-dropbearkey-ignore-unsupported-command-line-option.patch deleted file mode 100644 index ff130f8be0..0000000000 --- a/package/network/services/dropbear/patches/014-dropbearkey-ignore-unsupported-command-line-option.patch +++ /dev/null @@ -1,60 +0,0 @@ -From ec26975d442163b66d1646a48e022bc8c2f1607a Mon Sep 17 00:00:00 2001 -From: Sergey Ponomarev -Date: Sun, 27 Aug 2023 00:07:05 +0300 -Subject: dropbearkey.c Ignore unsupported command line options - -To generate non interactively a key with OpenSSH the simplest command is: - -ssh-keygen -t ed25519 -q -N '' -f ~/.ssh/id_ed25519 - -The command has two options -q quiet and -N passphrase which aren't supported by the dropbearkey. - -To improve interoperability add explicit ignoring of the -q and -N with empty passphrase. -Also ignore the -v even if the DEBUG_TRACE is not set. - -Signed-off-by: Sergey Ponomarev ---- - dropbearkey.c | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - ---- a/dropbearkey.c -+++ b/dropbearkey.c -@@ -159,6 +159,7 @@ int main(int argc, char ** argv) { - enum signkey_type keytype = DROPBEAR_SIGNKEY_NONE; - char * typetext = NULL; - char * sizetext = NULL; -+ char * passphrase = NULL; - unsigned int bits = 0, genbits; - int printpub = 0; - -@@ -194,11 +195,16 @@ int main(int argc, char ** argv) { - printhelp(argv[0]); - exit(EXIT_SUCCESS); - break; --#if DEBUG_TRACE - case 'v': -+#if DEBUG_TRACE - debug_trace = DROPBEAR_VERBOSE_LEVEL; -- break; - #endif -+ break; -+ case 'q': -+ break; /* quiet is default */ -+ case 'N': -+ next = &passphrase; -+ break; - default: - fprintf(stderr, "Unknown argument %s\n", argv[i]); - printhelp(argv[0]); -@@ -266,6 +272,11 @@ int main(int argc, char ** argv) { - check_signkey_bits(keytype, bits);; - } - -+ if (passphrase && *passphrase != '\0') { -+ fprintf(stderr, "Only empty passphrase is supported\n"); -+ exit(EXIT_FAILURE); -+ } -+ - genbits = signkey_generate_get_bits(keytype, bits); - fprintf(stderr, "Generating %u bit %s key, this may take a while...\n", genbits, typetext); - if (signkey_generate(keytype, bits, filename, 0) == DROPBEAR_FAILURE) diff --git a/package/network/services/dropbear/patches/015-libtommath-fix-possible-integer-overflow.patch b/package/network/services/dropbear/patches/015-libtommath-fix-possible-integer-overflow.patch deleted file mode 100644 index f39417adb7..0000000000 --- a/package/network/services/dropbear/patches/015-libtommath-fix-possible-integer-overflow.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 3b576d95dcf791d7b945e75f639da8f89c1685a2 Mon Sep 17 00:00:00 2001 -From: czurnieden -Date: Tue, 9 May 2023 17:17:12 +0200 -Subject: Fix possible integer overflow - ---- - libtommath/bn_mp_2expt.c | 4 ++++ - libtommath/bn_mp_grow.c | 4 ++++ - libtommath/bn_mp_init_size.c | 5 +++++ - libtommath/bn_mp_mul_2d.c | 4 ++++ - libtommath/bn_s_mp_mul_digs.c | 4 ++++ - libtommath/bn_s_mp_mul_digs_fast.c | 4 ++++ - libtommath/bn_s_mp_mul_high_digs.c | 4 ++++ - libtommath/bn_s_mp_mul_high_digs_fast.c | 4 ++++ - 8 files changed, 33 insertions(+) - ---- a/libtommath/bn_mp_2expt.c -+++ b/libtommath/bn_mp_2expt.c -@@ -12,6 +12,10 @@ mp_err mp_2expt(mp_int *a, int b) - { - mp_err err; - -+ if (b < 0) { -+ return MP_VAL; -+ } -+ - /* zero a as per default */ - mp_zero(a); - ---- a/libtommath/bn_mp_grow.c -+++ b/libtommath/bn_mp_grow.c -@@ -9,6 +9,10 @@ mp_err mp_grow(mp_int *a, int size) - int i; - mp_digit *tmp; - -+ if (size < 0) { -+ return MP_VAL; -+ } -+ - /* if the alloc size is smaller alloc more ram */ - if (a->alloc < size) { - /* reallocate the array a->dp ---- a/libtommath/bn_mp_init_size.c -+++ b/libtommath/bn_mp_init_size.c -@@ -6,6 +6,11 @@ - /* init an mp_init for a given size */ - mp_err mp_init_size(mp_int *a, int size) - { -+ -+ if (size < 0) { -+ return MP_VAL; -+ } -+ - size = MP_MAX(MP_MIN_PREC, size); - - /* alloc mem */ ---- a/libtommath/bn_mp_mul_2d.c -+++ b/libtommath/bn_mp_mul_2d.c -@@ -9,6 +9,10 @@ mp_err mp_mul_2d(const mp_int *a, int b, - mp_digit d; - mp_err err; - -+ if (b < 0) { -+ return MP_VAL; -+ } -+ - /* copy */ - if (a != c) { - if ((err = mp_copy(a, c)) != MP_OKAY) { ---- a/libtommath/bn_s_mp_mul_digs.c -+++ b/libtommath/bn_s_mp_mul_digs.c -@@ -16,6 +16,10 @@ mp_err s_mp_mul_digs(const mp_int *a, co - mp_word r; - mp_digit tmpx, *tmpt, *tmpy; - -+ if (digs < 0) { -+ return MP_VAL; -+ } -+ - /* can we use the fast multiplier? */ - if ((digs < MP_WARRAY) && - (MP_MIN(a->used, b->used) < MP_MAXFAST)) { ---- a/libtommath/bn_s_mp_mul_digs_fast.c -+++ b/libtommath/bn_s_mp_mul_digs_fast.c -@@ -26,6 +26,10 @@ mp_err s_mp_mul_digs_fast(const mp_int * - mp_digit W[MP_WARRAY]; - mp_word _W; - -+ if (digs < 0) { -+ return MP_VAL; -+ } -+ - /* grow the destination as required */ - if (c->alloc < digs) { - if ((err = mp_grow(c, digs)) != MP_OKAY) { ---- a/libtommath/bn_s_mp_mul_high_digs.c -+++ b/libtommath/bn_s_mp_mul_high_digs.c -@@ -15,6 +15,10 @@ mp_err s_mp_mul_high_digs(const mp_int * - mp_word r; - mp_digit tmpx, *tmpt, *tmpy; - -+ if (digs < 0) { -+ return MP_VAL; -+ } -+ - /* can we use the fast multiplier? */ - if (MP_HAS(S_MP_MUL_HIGH_DIGS_FAST) - && ((a->used + b->used + 1) < MP_WARRAY) ---- a/libtommath/bn_s_mp_mul_high_digs_fast.c -+++ b/libtommath/bn_s_mp_mul_high_digs_fast.c -@@ -19,6 +19,10 @@ mp_err s_mp_mul_high_digs_fast(const mp_ - mp_digit W[MP_WARRAY]; - mp_word _W; - -+ if (digs < 0) { -+ return MP_VAL; -+ } -+ - /* grow the destination as required */ - pa = a->used + b->used; - if (c->alloc < pa) { diff --git a/package/network/services/dropbear/patches/016-src-svr-tcpfwd-Fix-noremotetcp-behavior.patch b/package/network/services/dropbear/patches/016-src-svr-tcpfwd-Fix-noremotetcp-behavior.patch deleted file mode 100644 index b6933120e6..0000000000 --- a/package/network/services/dropbear/patches/016-src-svr-tcpfwd-Fix-noremotetcp-behavior.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3cf8344769eda55e26eee53c1898b2c66544f188 Mon Sep 17 00:00:00 2001 -From: Justin Chen -Date: Fri, 8 Sep 2023 11:35:18 -0700 -Subject: src: svr-tcpfwd: Fix noremotetcp behavior - -If noremotetcp is set, we should still reply with -send_msg_request_failed. This matches the behavior -of !DROPBEAR_SVR_REMOTETCPFWD. - -We were seeing keepalive packets being ignored when -the "-k" option was used. ---- - svr-tcpfwd.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/svr-tcpfwd.c -+++ b/svr-tcpfwd.c -@@ -79,14 +79,14 @@ void recv_msg_global_request_remotetcp() - - TRACE(("enter recv_msg_global_request_remotetcp")) - -+ reqname = buf_getstring(ses.payload, &namelen); -+ wantreply = buf_getbool(ses.payload); -+ - if (svr_opts.noremotetcp || !svr_pubkey_allows_tcpfwd()) { - TRACE(("leave recv_msg_global_request_remotetcp: remote tcp forwarding disabled")) - goto out; - } - -- reqname = buf_getstring(ses.payload, &namelen); -- wantreply = buf_getbool(ses.payload); -- - if (namelen > MAX_NAME_LEN) { - TRACE(("name len is wrong: %d", namelen)) - goto out; diff --git a/package/network/services/dropbear/patches/017-Don-t-try-to-shutdown-a-pty.patch b/package/network/services/dropbear/patches/017-Don-t-try-to-shutdown-a-pty.patch deleted file mode 100644 index 603c61d6fb..0000000000 --- a/package/network/services/dropbear/patches/017-Don-t-try-to-shutdown-a-pty.patch +++ /dev/null @@ -1,32 +0,0 @@ -From e28ba1b9975eab48799aa3ed77d3cd91627d7b27 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Sat, 9 Dec 2023 23:10:41 +0800 -Subject: Don't try to shutdown() a pty - -shutdown() of a pty doesn't work (ENOTSOCK), so we should close -it instead. - -This will ensure that PTY controlling terminals are closed when a -session exits, including when multiple sessions run over a single SSH -connection. In the normal case of a single session, the PTY controlling -terminal would be closed when the Dropbear server process exits anyway. - -This possibly fixes #264 on github - -It is possible that there could be subtle changes to PTY flushing -behaviour, though nothing caught by tests at present. ---- - svr-chansession.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/svr-chansession.c -+++ b/svr-chansession.c -@@ -910,7 +910,7 @@ static int ptycommand(struct Channel *ch - channel->readfd = chansess->master; - /* don't need to set stderr here */ - ses.maxfd = MAX(ses.maxfd, chansess->master); -- channel->bidir_fd = 1; -+ channel->bidir_fd = 0; - - setnonblocking(chansess->master); - diff --git a/package/network/services/dropbear/patches/018-dropbearkey-add-alias-to-ssh-keygen.patch b/package/network/services/dropbear/patches/018-dropbearkey-add-alias-to-ssh-keygen.patch deleted file mode 100644 index 9c70c3141c..0000000000 --- a/package/network/services/dropbear/patches/018-dropbearkey-add-alias-to-ssh-keygen.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 806586b585806cbe32013bcd3af3847278972060 Mon Sep 17 00:00:00 2001 -From: Sergey Ponomarev -Date: Sun, 10 Dec 2023 10:31:56 +0200 -Subject: dropbearkey: add alias to ssh-keygen - -The dropbearkey is partially compatible with ssh-keygen and can be used as an alias. - -Closes: #263 ---- - dbmulti.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- a/dbmulti.c -+++ b/dbmulti.c -@@ -41,7 +41,8 @@ static int runprog(const char *multipath - } - #endif - #ifdef DBMULTI_dropbearkey -- if (strcmp(progname, "dropbearkey") == 0) { -+ if (strcmp(progname, "dropbearkey") == 0 -+ || strcmp(progname, "ssh-keygen") == 0) { - return dropbearkey_main(argc, argv); - } - #endif -@@ -88,7 +89,7 @@ int main(int argc, char ** argv) { - "'dbclient' or 'ssh' - the Dropbear client\n" - #endif - #ifdef DBMULTI_dropbearkey -- "'dropbearkey' - the key generator\n" -+ "'dropbearkey' or 'ssh-keygen' - the key generator\n" - #endif - #ifdef DBMULTI_dropbearconvert - "'dropbearconvert' - the key converter\n" diff --git a/package/network/services/dropbear/patches/019-Allow-inetd-with-non-syslog.patch b/package/network/services/dropbear/patches/019-Allow-inetd-with-non-syslog.patch deleted file mode 100644 index 3544f2123c..0000000000 --- a/package/network/services/dropbear/patches/019-Allow-inetd-with-non-syslog.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 383cc8c97a9420aad9cf93d88e77ec636b183a9d Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Mon, 11 Dec 2023 23:18:09 +0800 -Subject: Allow inetd with non-syslog - -An inetd-alike should be able to distinguish stdout and stderr, so -it's a valid configuration. - -Fixes #218 on github ---- - svr-runopts.c | 12 ------------ - 1 file changed, 12 deletions(-) - ---- a/svr-runopts.c -+++ b/svr-runopts.c -@@ -443,18 +443,6 @@ void svr_getopts(int argc, char ** argv) - } - } - --#if INETD_MODE -- if (svr_opts.inetdmode && ( -- opts.usingsyslog == 0 --#if DEBUG_TRACE -- || debug_trace --#endif -- )) { -- /* log output goes to stderr which would get sent over the inetd network socket */ -- dropbear_exit("Dropbear inetd mode is incompatible with debug -v or non-syslog"); -- } --#endif -- - if (svr_opts.multiauthmethod && svr_opts.noauthpass) { - dropbear_exit("-t and -s are incompatible"); - } diff --git a/package/network/services/dropbear/patches/020-Fix-test-for-multiuser-kernels.patch b/package/network/services/dropbear/patches/020-Fix-test-for-multiuser-kernels.patch deleted file mode 100644 index 8d016faa9c..0000000000 --- a/package/network/services/dropbear/patches/020-Fix-test-for-multiuser-kernels.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9ac650401ffc2fb05c9328d26e76a5e7ae39152a Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Mon, 11 Dec 2023 23:31:22 +0800 -Subject: Fix test for multiuser kernels - -getuid() succeeds even on non-multiuser kernels. Instead -getgroups() is a valid test. - -Fixes #214 on github ---- - common-session.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - ---- a/common-session.c -+++ b/common-session.c -@@ -71,10 +71,13 @@ void common_session_init(int sock_in, in - #if !DROPBEAR_SVR_MULTIUSER - /* A sanity check to prevent an accidental configuration option - leaving multiuser systems exposed */ -- errno = 0; -- getuid(); -- if (errno != ENOSYS) { -- dropbear_exit("Non-multiuser Dropbear requires a non-multiuser kernel"); -+ { -+ int ret; -+ errno = 0; -+ ret = getgroups(0, NULL); -+ if (!(ret == -1 && errno == ENOSYS)) { -+ dropbear_exit("Non-multiuser Dropbear requires a non-multiuser kernel"); -+ } - } - #endif - diff --git a/package/network/services/dropbear/patches/021-Implement-Strict-KEX-mode.patch b/package/network/services/dropbear/patches/021-Implement-Strict-KEX-mode.patch deleted file mode 100644 index d490d9545a..0000000000 --- a/package/network/services/dropbear/patches/021-Implement-Strict-KEX-mode.patch +++ /dev/null @@ -1,216 +0,0 @@ -From 6e43be5c7b99dbee49dc72b6f989f29fdd7e9356 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Mon, 20 Nov 2023 14:02:47 +0800 -Subject: Implement Strict KEX mode - -As specified by OpenSSH with kex-strict-c-v00@openssh.com and -kex-strict-s-v00@openssh.com. ---- - cli-session.c | 11 +++++++++++ - common-algo.c | 6 ++++++ - common-kex.c | 26 +++++++++++++++++++++++++- - kex.h | 3 +++ - process-packet.c | 34 +++++++++++++++++++--------------- - ssh.h | 4 ++++ - svr-session.c | 3 +++ - 7 files changed, 71 insertions(+), 16 deletions(-) - ---- a/cli-session.c -+++ b/cli-session.c -@@ -46,6 +46,7 @@ static void cli_finished(void) ATTRIB_NO - static void recv_msg_service_accept(void); - static void cli_session_cleanup(void); - static void recv_msg_global_request_cli(void); -+static void cli_algos_initialise(void); - - struct clientsession cli_ses; /* GLOBAL */ - -@@ -117,6 +118,7 @@ void cli_session(int sock_in, int sock_o - } - - chaninitialise(cli_chantypes); -+ cli_algos_initialise(); - - /* Set up cli_ses vars */ - cli_session_init(proxy_cmd_pid); -@@ -487,3 +489,12 @@ void cli_dropbear_log(int priority, cons - fflush(stderr); - } - -+static void cli_algos_initialise(void) { -+ algo_type *algo; -+ for (algo = sshkex; algo->name; algo++) { -+ if (strcmp(algo->name, SSH_STRICT_KEX_S) == 0) { -+ algo->usable = 0; -+ } -+ } -+} -+ ---- a/common-algo.c -+++ b/common-algo.c -@@ -308,6 +308,12 @@ algo_type sshkex[] = { - {SSH_EXT_INFO_C, 0, NULL, 1, NULL}, - #endif - #endif -+#if DROPBEAR_CLIENT -+ {SSH_STRICT_KEX_C, 0, NULL, 1, NULL}, -+#endif -+#if DROPBEAR_SERVER -+ {SSH_STRICT_KEX_S, 0, NULL, 1, NULL}, -+#endif - {NULL, 0, NULL, 0, NULL} - }; - ---- a/common-kex.c -+++ b/common-kex.c -@@ -183,6 +183,10 @@ void send_msg_newkeys() { - gen_new_keys(); - switch_keys(); - -+ if (ses.kexstate.strict_kex) { -+ ses.transseq = 0; -+ } -+ - TRACE(("leave send_msg_newkeys")) - } - -@@ -193,7 +197,11 @@ void recv_msg_newkeys() { - - ses.kexstate.recvnewkeys = 1; - switch_keys(); -- -+ -+ if (ses.kexstate.strict_kex) { -+ ses.recvseq = 0; -+ } -+ - TRACE(("leave recv_msg_newkeys")) - } - -@@ -550,6 +558,10 @@ void recv_msg_kexinit() { - - ses.kexstate.recvkexinit = 1; - -+ if (ses.kexstate.strict_kex && !ses.kexstate.donefirstkex && ses.recvseq != 1) { -+ dropbear_exit("First packet wasn't kexinit"); -+ } -+ - TRACE(("leave recv_msg_kexinit")) - } - -@@ -859,6 +871,18 @@ static void read_kex_algos() { - } - #endif - -+ if (!ses.kexstate.donefirstkex) { -+ const char* strict_name; -+ if (IS_DROPBEAR_CLIENT) { -+ strict_name = SSH_STRICT_KEX_S; -+ } else { -+ strict_name = SSH_STRICT_KEX_C; -+ } -+ if (buf_has_algo(ses.payload, strict_name) == DROPBEAR_SUCCESS) { -+ ses.kexstate.strict_kex = 1; -+ } -+ } -+ - algo = buf_match_algo(ses.payload, sshkex, kexguess2, &goodguess); - allgood &= goodguess; - if (algo == NULL || algo->data == NULL) { ---- a/kex.h -+++ b/kex.h -@@ -83,6 +83,9 @@ struct KEXState { - - unsigned our_first_follows_matches : 1; - -+ /* Boolean indicating that strict kex mode is in use */ -+ unsigned int strict_kex; -+ - time_t lastkextime; /* time of the last kex */ - unsigned int datatrans; /* data transmitted since last kex */ - unsigned int datarecv; /* data received since last kex */ ---- a/process-packet.c -+++ b/process-packet.c -@@ -44,6 +44,7 @@ void process_packet() { - - unsigned char type; - unsigned int i; -+ unsigned int first_strict_kex = ses.kexstate.strict_kex && !ses.kexstate.donefirstkex; - time_t now; - - TRACE2(("enter process_packet")) -@@ -54,22 +55,24 @@ void process_packet() { - now = monotonic_now(); - ses.last_packet_time_keepalive_recv = now; - -- /* These packets we can receive at any time */ -- switch(type) { - -- case SSH_MSG_IGNORE: -- goto out; -- case SSH_MSG_DEBUG: -- goto out; -- -- case SSH_MSG_UNIMPLEMENTED: -- /* debugging XXX */ -- TRACE(("SSH_MSG_UNIMPLEMENTED")) -- goto out; -- -- case SSH_MSG_DISCONNECT: -- /* TODO cleanup? */ -- dropbear_close("Disconnect received"); -+ if (type == SSH_MSG_DISCONNECT) { -+ /* Allowed at any time */ -+ dropbear_close("Disconnect received"); -+ } -+ -+ /* These packets may be received at any time, -+ except during first kex with strict kex */ -+ if (!first_strict_kex) { -+ switch(type) { -+ case SSH_MSG_IGNORE: -+ goto out; -+ case SSH_MSG_DEBUG: -+ goto out; -+ case SSH_MSG_UNIMPLEMENTED: -+ TRACE(("SSH_MSG_UNIMPLEMENTED")) -+ goto out; -+ } - } - - /* Ignore these packet types so that keepalives don't interfere with -@@ -98,7 +101,8 @@ void process_packet() { - if (type >= 1 && type <= 49 - && type != SSH_MSG_SERVICE_REQUEST - && type != SSH_MSG_SERVICE_ACCEPT -- && type != SSH_MSG_KEXINIT) -+ && type != SSH_MSG_KEXINIT -+ && !first_strict_kex) - { - TRACE(("unknown allowed packet during kexinit")) - recv_unimplemented(); ---- a/ssh.h -+++ b/ssh.h -@@ -100,6 +100,10 @@ - #define SSH_EXT_INFO_C "ext-info-c" - #define SSH_SERVER_SIG_ALGS "server-sig-algs" - -+/* OpenSSH strict KEX feature */ -+#define SSH_STRICT_KEX_S "kex-strict-s-v00@openssh.com" -+#define SSH_STRICT_KEX_C "kex-strict-c-v00@openssh.com" -+ - /* service types */ - #define SSH_SERVICE_USERAUTH "ssh-userauth" - #define SSH_SERVICE_USERAUTH_LEN 12 ---- a/svr-session.c -+++ b/svr-session.c -@@ -370,6 +370,9 @@ static void svr_algos_initialise(void) { - algo->usable = 0; - } - #endif -+ if (strcmp(algo->name, SSH_STRICT_KEX_C) == 0) { -+ algo->usable = 0; -+ } - } - } - diff --git a/package/network/services/dropbear/patches/100-pubkey_path.patch b/package/network/services/dropbear/patches/100-pubkey_path.patch index b1075f8464..0ecca900b4 100644 --- a/package/network/services/dropbear/patches/100-pubkey_path.patch +++ b/package/network/services/dropbear/patches/100-pubkey_path.patch @@ -1,5 +1,5 @@ ---- a/svr-authpubkey.c -+++ b/svr-authpubkey.c +--- a/src/svr-authpubkey.c ++++ b/src/svr-authpubkey.c @@ -78,6 +78,13 @@ static void send_msg_userauth_pk_ok(cons const unsigned char* keyblob, unsigned int keybloblen); static int checkfileperm(char * filename); diff --git a/package/network/services/dropbear/patches/110-change_user.patch b/package/network/services/dropbear/patches/110-change_user.patch index 04d1df3fde..9cb073cf94 100644 --- a/package/network/services/dropbear/patches/110-change_user.patch +++ b/package/network/services/dropbear/patches/110-change_user.patch @@ -1,6 +1,6 @@ ---- a/svr-chansession.c -+++ b/svr-chansession.c -@@ -985,12 +985,12 @@ static void execchild(const void *user_d +--- a/src/svr-chansession.c ++++ b/src/svr-chansession.c +@@ -987,12 +987,12 @@ static void execchild(const void *user_d /* We can only change uid/gid as root ... */ if (getuid() == 0) { diff --git a/package/network/services/dropbear/patches/130-ssh_ignore_x_args.patch b/package/network/services/dropbear/patches/130-ssh_ignore_x_args.patch index a26f33dfbc..de0e5f2725 100644 --- a/package/network/services/dropbear/patches/130-ssh_ignore_x_args.patch +++ b/package/network/services/dropbear/patches/130-ssh_ignore_x_args.patch @@ -1,6 +1,6 @@ ---- a/cli-runopts.c -+++ b/cli-runopts.c -@@ -329,6 +329,10 @@ void cli_getopts(int argc, char ** argv) +--- a/src/cli-runopts.c ++++ b/src/cli-runopts.c +@@ -340,6 +340,10 @@ void cli_getopts(int argc, char ** argv) case 'z': opts.disable_ip_tos = 1; break; diff --git a/package/network/services/dropbear/patches/140-disable_assert.patch b/package/network/services/dropbear/patches/140-disable_assert.patch index af01573dee..eb590a3895 100644 --- a/package/network/services/dropbear/patches/140-disable_assert.patch +++ b/package/network/services/dropbear/patches/140-disable_assert.patch @@ -1,5 +1,5 @@ ---- a/dbutil.h -+++ b/dbutil.h +--- a/src/dbutil.h ++++ b/src/dbutil.h @@ -80,7 +80,11 @@ int m_snprintf(char *str, size_t size, c #define DEF_MP_INT(X) mp_int X = {0, 0, 0, NULL} diff --git a/package/network/services/dropbear/patches/160-lto-jobserver.patch b/package/network/services/dropbear/patches/160-lto-jobserver.patch index fd80b986ae..1f3b298f35 100644 --- a/package/network/services/dropbear/patches/160-lto-jobserver.patch +++ b/package/network/services/dropbear/patches/160-lto-jobserver.patch @@ -1,6 +1,6 @@ --- a/Makefile.in +++ b/Makefile.in -@@ -200,17 +200,17 @@ dropbearkey: $(dropbearkeyobjs) +@@ -220,17 +220,17 @@ dropbearkey: $(dropbearkeyobjs) dropbearconvert: $(dropbearconvertobjs) dropbear: $(HEADERS) $(LIBTOM_DEPS) Makefile @@ -22,7 +22,7 @@ # multi-binary compilation. -@@ -221,7 +221,7 @@ ifeq ($(MULTI),1) +@@ -241,7 +241,7 @@ ifeq ($(MULTI),1) endif dropbearmulti$(EXEEXT): $(HEADERS) $(MULTIOBJS) $(LIBTOM_DEPS) Makefile diff --git a/package/network/services/dropbear/patches/600-allow-blank-root-password.patch b/package/network/services/dropbear/patches/600-allow-blank-root-password.patch index 07ae022763..e72458dd6e 100644 --- a/package/network/services/dropbear/patches/600-allow-blank-root-password.patch +++ b/package/network/services/dropbear/patches/600-allow-blank-root-password.patch @@ -1,5 +1,5 @@ ---- a/svr-auth.c -+++ b/svr-auth.c +--- a/src/svr-auth.c ++++ b/src/svr-auth.c @@ -124,7 +124,7 @@ void recv_msg_userauth_request() { AUTH_METHOD_NONE_LEN) == 0) { TRACE(("recv_msg_userauth_request: 'none' request")) diff --git a/package/network/services/dropbear/patches/900-configure-hardening.patch b/package/network/services/dropbear/patches/900-configure-hardening.patch index 5dc84849be..746694f48d 100644 --- a/package/network/services/dropbear/patches/900-configure-hardening.patch +++ b/package/network/services/dropbear/patches/900-configure-hardening.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -87,54 +87,6 @@ AC_ARG_ENABLE(harden, +@@ -86,54 +86,6 @@ AC_ARG_ENABLE(harden, if test "$hardenbuild" -eq 1; then AC_MSG_NOTICE(Checking for available hardened build flags:) diff --git a/package/network/services/dropbear/patches/901-bundled-libs-cflags.patch b/package/network/services/dropbear/patches/901-bundled-libs-cflags.patch index a9a441ce76..4da01c9edb 100644 --- a/package/network/services/dropbear/patches/901-bundled-libs-cflags.patch +++ b/package/network/services/dropbear/patches/901-bundled-libs-cflags.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -45,11 +45,8 @@ fi +@@ -44,11 +44,8 @@ fi # LTM_CFLAGS is given to ./configure by the user, # DROPBEAR_LTM_CFLAGS is substituted in the LTM Makefile.in DROPBEAR_LTM_CFLAGS="$LTM_CFLAGS" diff --git a/package/network/services/dropbear/patches/910-signkey-fix-use-of-rsa-sha2-256-pubkeys.patch b/package/network/services/dropbear/patches/910-signkey-fix-use-of-rsa-sha2-256-pubkeys.patch index 059177a1c5..43dd1426b1 100644 --- a/package/network/services/dropbear/patches/910-signkey-fix-use-of-rsa-sha2-256-pubkeys.patch +++ b/package/network/services/dropbear/patches/910-signkey-fix-use-of-rsa-sha2-256-pubkeys.patch @@ -19,8 +19,8 @@ Signed-off-by: Petr Štetiar signkey.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---- a/signkey.c -+++ b/signkey.c +--- a/src/signkey.c ++++ b/src/signkey.c @@ -652,10 +652,18 @@ int buf_verify(buffer * buf, sign_key *k sigtype = signature_type_from_name(type_name, type_name_len); m_free(type_name); From 2cd414c33e511235db6d339e1268faf9749a14e1 Mon Sep 17 00:00:00 2001 From: Konstantin Demin Date: Mon, 6 May 2024 16:20:16 +0300 Subject: [PATCH 16/40] dropbear: clarify DROPBEAR_MODERN_ONLY option don't mention SHA1 in order to not confuse users - SHA1 support is already disabled (except RSA-SHA1 signagures). ref: https://github.com/openwrt/openwrt/issues/15281 Signed-off-by: Konstantin Demin --- package/network/services/dropbear/Config.in | 1 - 1 file changed, 1 deletion(-) diff --git a/package/network/services/dropbear/Config.in b/package/network/services/dropbear/Config.in index 7ffe7684d4..0d012b21b0 100644 --- a/package/network/services/dropbear/Config.in +++ b/package/network/services/dropbear/Config.in @@ -186,7 +186,6 @@ config DROPBEAR_MODERN_ONLY and disables: - AES - RSA - - SHA1 Reduces binary size by about 64 kB (MIPS) from default configuration. From 9dae0ac0bc61385b77639fa1397c0fc302a0abeb Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Thu, 9 May 2024 13:11:16 +0200 Subject: [PATCH 17/40] mediatek: correct address of MT753x switch IC Continuation of commit 8b66f1a. Set the switch address on the MDIO bus to 31. This is required for all boards currently working with the mt7530 DSA driver. Fixes: #15419 Signed-off-by: Mieczyslaw Nalewaj --- target/linux/mediatek/dts/mt7622-netgear-wax206.dts | 4 ++-- target/linux/mediatek/dts/mt7623a-unielec-u7623-02.dtsi | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/target/linux/mediatek/dts/mt7622-netgear-wax206.dts b/target/linux/mediatek/dts/mt7622-netgear-wax206.dts index ce1cd46d2d..524a498740 100644 --- a/target/linux/mediatek/dts/mt7622-netgear-wax206.dts +++ b/target/linux/mediatek/dts/mt7622-netgear-wax206.dts @@ -143,13 +143,13 @@ #address-cells = <1>; #size-cells = <0>; - switch@0 { + switch@1f { compatible = "mediatek,mt7531"; + reg = <31>; #interrupt-cells = <1>; interrupt-controller; interrupt-parent = <&pio>; interrupts = <53 IRQ_TYPE_LEVEL_HIGH>; - reg = <0>; reset-gpios = <&pio 54 GPIO_ACTIVE_HIGH>; ports { diff --git a/target/linux/mediatek/dts/mt7623a-unielec-u7623-02.dtsi b/target/linux/mediatek/dts/mt7623a-unielec-u7623-02.dtsi index a4e443a0fb..fedf8b8596 100644 --- a/target/linux/mediatek/dts/mt7623a-unielec-u7623-02.dtsi +++ b/target/linux/mediatek/dts/mt7623a-unielec-u7623-02.dtsi @@ -121,17 +121,16 @@ #address-cells = <1>; #size-cells = <0>; - mt7530: switch@0 { - compatible = "mediatek,mt7530"; + mt7530: switch@1f { }; }; }; &mt7530 { compatible = "mediatek,mt7530"; + reg = <31>; #address-cells = <1>; #size-cells = <0>; - reg = <0>; pinctrl-names = "default"; mediatek,mcm; resets = <ðsys 2>; From 8d7fa0918143cf09049d4631a0cdef7962554147 Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Sat, 27 Apr 2024 07:41:51 +0200 Subject: [PATCH 18/40] ramips: rename include file to a more suitable name Rename from mt7621_dlink_dir-xx60-a1.dtsi to mt7621_dlink_dir_nand_128m.dtsi and associated group name when creating the mt7621.mk image Co-authored-by: Alan Luck Signed-off-by: Mieczyslaw Nalewaj --- .../linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts | 2 +- .../linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts | 2 +- .../linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts | 2 +- .../linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts | 2 +- ...x60-a1.dtsi => mt7621_dlink_dir_nand_128m.dtsi} | 0 target/linux/ramips/image/mt7621.mk | 14 +++++++------- 6 files changed, 11 insertions(+), 11 deletions(-) rename target/linux/ramips/dts/{mt7621_dlink_dir-xx60-a1.dtsi => mt7621_dlink_dir_nand_128m.dtsi} (100%) diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts index 13883f9f74..531076216d 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts @@ -2,7 +2,7 @@ #include -#include "mt7621_dlink_dir-xx60-a1.dtsi" +#include "mt7621_dlink_dir_nand_128m.dtsi" / { compatible = "dlink,dir-1960-a1", "mediatek,mt7621-soc"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts index d4b8069a33..fd25b94e8d 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "mt7621_dlink_dir-xx60-a1.dtsi" +#include "mt7621_dlink_dir_nand_128m.dtsi" / { compatible = "dlink,dir-2640-a1", "mediatek,mt7621-soc"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts index a4590cb35f..d8c347198b 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "mt7621_dlink_dir-xx60-a1.dtsi" +#include "mt7621_dlink_dir_nand_128m.dtsi" / { compatible = "dlink,dir-2660-a1", "mediatek,mt7621-soc"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts index 4bb35a948d..0bcfa022fa 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "mt7621_dlink_dir-xx60-a1.dtsi" +#include "mt7621_dlink_dir_nand_128m.dtsi" / { compatible = "dlink,dir-3040-a1", "mediatek,mt7621-soc"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi b/target/linux/ramips/dts/mt7621_dlink_dir_nand_128m.dtsi similarity index 100% rename from target/linux/ramips/dts/mt7621_dlink_dir-xx60-a1.dtsi rename to target/linux/ramips/dts/mt7621_dlink_dir_nand_128m.dtsi diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 10e7857614..dbb69e0fae 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -742,7 +742,7 @@ define Device/dlink_dir-8xx-r1 check-size | append-metadata endef -define Device/dlink_dir-xx60-a1 +define Device/dlink_dir_nand_128m $(Device/nand) IMAGE_SIZE := 40960k DEVICE_VENDOR := D-Link @@ -763,35 +763,35 @@ endef TARGET_DEVICES += dlink_dir-1935-a1 define Device/dlink_dir-1960-a1 - $(Device/dlink_dir-xx60-a1) + $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-1960 DEVICE_VARIANT := A1 endef TARGET_DEVICES += dlink_dir-1960-a1 define Device/dlink_dir-2640-a1 - $(Device/dlink_dir-xx60-a1) + $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-2640 DEVICE_VARIANT := A1 endef TARGET_DEVICES += dlink_dir-2640-a1 define Device/dlink_dir-2660-a1 - $(Device/dlink_dir-xx60-a1) + $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-2660 DEVICE_VARIANT := A1 endef TARGET_DEVICES += dlink_dir-2660-a1 define Device/dlink_dir-3040-a1 - $(Device/dlink_dir-xx60-a1) + $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-3040 DEVICE_VARIANT := A1 endef TARGET_DEVICES += dlink_dir-3040-a1 define Device/dlink_dir-3060-a1 - $(Device/dlink_dir-xx60-a1) + $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-3060 DEVICE_VARIANT := A1 endef @@ -806,7 +806,7 @@ endef TARGET_DEVICES += dlink_dir-853-a1 define Device/dlink_dir-853-a3 - $(Device/dlink_dir-xx60-a1) + $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-853 DEVICE_VARIANT := A3 IMAGES += factory.bin From d646ea8a00aab7998e4d7bf80ba256cd65347d2c Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Wed, 8 May 2024 20:32:03 +0200 Subject: [PATCH 19/40] ramips: use function/color syntax for some dlink dir routers Abandoning the label and using the function/color syntax for some dlink dir series routers: dir-1960-a1, dir-2660-a1, dir-2640-a1, dir-3040-a1 and dir-3060-a1 Signed-off-by: Mieczyslaw Nalewaj --- .../ramips/dts/mt7621_dlink_dir-1960-a1.dts | 2 - .../ramips/dts/mt7621_dlink_dir-2640-a1.dts | 12 ++++-- .../ramips/dts/mt7621_dlink_dir-2660-a1.dts | 12 ++++-- .../ramips/dts/mt7621_dlink_dir-3040-a1.dts | 14 +++--- .../ramips/dts/mt7621_dlink_dir-3060-a1.dts | 43 ++++++++++++------- .../dts/mt7621_dlink_dir_nand_128m.dtsi | 14 +++--- .../mt7621/base-files/etc/board.d/01_leds | 6 +-- .../etc/uci-defaults/04_led_migration | 7 +++ 8 files changed, 68 insertions(+), 42 deletions(-) diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts index 531076216d..a818400342 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-1960-a1.dts @@ -1,7 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include - #include "mt7621_dlink_dir_nand_128m.dtsi" / { diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts index fd25b94e8d..ba7b9a88dc 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-2640-a1.dts @@ -8,15 +8,19 @@ }; &leds { - usb2_white { - label = "white:usb2"; + led-4 { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <2>; gpios = <&gpio 13 GPIO_ACTIVE_LOW>; trigger-sources = <&ehci_port2>; linux,default-trigger = "usbport"; }; - usb3_white { - label = "white:usb3"; + led-5 { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <3>; gpios = <&gpio 14 GPIO_ACTIVE_LOW>; trigger-sources = <&xhci_ehci_port1>; linux,default-trigger = "usbport"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts index d8c347198b..2ee0b8a5c3 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-2660-a1.dts @@ -8,15 +8,19 @@ }; &leds { - usb2_white { - label = "white:usb2"; + led-4 { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <2>; gpios = <&gpio 13 GPIO_ACTIVE_LOW>; trigger-sources = <&ehci_port2>; linux,default-trigger = "usbport"; }; - usb3_white { - label = "white:usb3"; + led-5 { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <3>; gpios = <&gpio 14 GPIO_ACTIVE_LOW>; trigger-sources = <&xhci_ehci_port1>; linux,default-trigger = "usbport"; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts index 0bcfa022fa..5044ba3bdc 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-3040-a1.dts @@ -12,32 +12,32 @@ }; &leds { - usb2_white { + led-4 { function = LED_FUNCTION_USB; color = ; - function-enumerator = <0>; + function-enumerator = <2>; gpios = <&gpio 13 GPIO_ACTIVE_LOW>; trigger-sources = <&ehci_port2>; linux,default-trigger = "usbport"; }; - usb3_white { + led-5 { function = LED_FUNCTION_USB; color = ; - function-enumerator = <1>; + function-enumerator = <3>; gpios = <&gpio 14 GPIO_ACTIVE_LOW>; trigger-sources = <&xhci_ehci_port1>; linux,default-trigger = "usbport"; }; - wlan2g { + led-6 { function = LED_FUNCTION_WLAN_2GHZ; color = ; gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; linux,default-trigger = "phy0radio"; }; - wlan5glb { + led-7 { function = LED_FUNCTION_WLAN_5GHZ; color = ; function-enumerator = <0>; @@ -45,7 +45,7 @@ linux,default-trigger = "phy1radio"; }; - wlan5ghb { + led-8 { function = LED_FUNCTION_WLAN_5GHZ; color = ; function-enumerator = <1>; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-3060-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-3060-a1.dts index f581095a81..89e1189cf7 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir-3060-a1.dts +++ b/target/linux/ramips/dts/mt7621_dlink_dir-3060-a1.dts @@ -37,56 +37,67 @@ leds { compatible = "gpio-leds"; - led_power_orange: power_orange { + led_power_orange: led-0 { function = LED_FUNCTION_POWER; color = ; gpios = <&gpio 8 GPIO_ACTIVE_LOW>; }; - led_power_white: power_white { + led_power_white: led-1 { function = LED_FUNCTION_POWER; color = ; gpios = <&gpio 16 GPIO_ACTIVE_LOW>; }; - led_net_orange: net_orange { - label = "orange:net"; + led_net_orange: led-2 { + function = LED_FUNCTION_WAN; + color = ; gpios = <&gpio 4 GPIO_ACTIVE_LOW>; }; - net_white { - label = "white:net"; + led-3 { + function = LED_FUNCTION_WAN; + color = ; gpios = <&gpio 3 GPIO_ACTIVE_LOW>; }; - usb2_white { - label = "white:usb2"; + led-4 { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <2>; gpios = <&gpio 13 GPIO_ACTIVE_LOW>; trigger-sources = <&ehci_port2>; linux,default-trigger = "usbport"; }; - usb3_white { - label = "white:usb3"; + led-5 { + function = LED_FUNCTION_USB; + color = ; + function-enumerator = <3>; gpios = <&gpio 14 GPIO_ACTIVE_LOW>; trigger-sources = <&xhci_ehci_port1>; linux,default-trigger = "usbport"; }; - wlan2g { - label = "white:wlan2g"; + led-6 { + function = LED_FUNCTION_WLAN_2GHZ; + color = ; gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; linux,default-trigger = "phy0radio"; }; - wlan5glb { - label = "white:wlan5glb"; + led-7 { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; + function-enumerator = <0>; gpios = <&gpio 9 GPIO_ACTIVE_HIGH>; linux,default-trigger = "phy1radio"; }; - wlan5ghb { - label = "white:wlan5ghb"; + led-8 { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; + function-enumerator = <1>; gpios = <&gpio 5 GPIO_ACTIVE_HIGH>; linux,default-trigger = "phy2radio"; }; diff --git a/target/linux/ramips/dts/mt7621_dlink_dir_nand_128m.dtsi b/target/linux/ramips/dts/mt7621_dlink_dir_nand_128m.dtsi index d5adb8728c..147d64c4b0 100644 --- a/target/linux/ramips/dts/mt7621_dlink_dir_nand_128m.dtsi +++ b/target/linux/ramips/dts/mt7621_dlink_dir_nand_128m.dtsi @@ -34,25 +34,27 @@ leds: leds { compatible = "gpio-leds"; - led_power_orange: power_orange { + led_power_orange: led-0 { function = LED_FUNCTION_POWER; color = ; gpios = <&gpio 8 GPIO_ACTIVE_LOW>; }; - led_power_white: power_white { + led_power_white: led-1 { function = LED_FUNCTION_POWER; color = ; gpios = <&gpio 16 GPIO_ACTIVE_LOW>; }; - led_net_orange: net_orange { - label = "orange:net"; + led_net_orange: led-2 { + function = LED_FUNCTION_WAN; + color = ; gpios = <&gpio 4 GPIO_ACTIVE_LOW>; }; - net_white { - label = "white:net"; + led-3 { + function = LED_FUNCTION_WAN; + color = ; gpios = <&gpio 3 GPIO_ACTIVE_LOW>; }; }; diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index 6848bebd00..d8beee9f0e 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -94,12 +94,12 @@ dlink,dap-x1860-a1) dlink,dir-1960-a1|\ dlink,dir-2640-a1|\ dlink,dir-2660-a1) - ucidef_set_led_netdev "wan" "wan" "white:net" "wan" + ucidef_set_led_netdev "wan" "wan" "white:wan" "wan" ;; dlink,dir-3040-a1|\ dlink,dir-3060-a1) - ucidef_set_led_netdev "net_white" "WAN Link" "white:net" "wan" "link" - ucidef_set_led_netdev "net_orange" "WAN Activity" "orange:net" "wan" "tx rx" + ucidef_set_led_netdev "net_white" "WAN Link" "white:wan" "wan" "link" + ucidef_set_led_netdev "net_orange" "WAN Activity" "orange:wan" "wan" "tx rx" ;; dlink,dir-853-a1|\ dlink,dir-853-a3) diff --git a/target/linux/ramips/mt7621/base-files/etc/uci-defaults/04_led_migration b/target/linux/ramips/mt7621/base-files/etc/uci-defaults/04_led_migration index b595ae6fd1..30860346f4 100644 --- a/target/linux/ramips/mt7621/base-files/etc/uci-defaults/04_led_migration +++ b/target/linux/ramips/mt7621/base-files/etc/uci-defaults/04_led_migration @@ -4,6 +4,13 @@ board=$(board_name) case "$board" in +dlink,dir-1960-a1|\ +dlink,dir-2640-a1|\ +dlink,dir-2660-a1|\ +dlink,dir-3040-a1|\ +dlink,dir-3060-a1) + migrate_leds ':net=:wan' + ;; tplink,archer-a6-v3|\ tplink,archer-c6-v3) migrate_leds ':wifi2g$=:wlan-2' ':wifi5g$=:wlan-5' From 474b108dfe79dd9a068bd8a592ee1b8a75d525e4 Mon Sep 17 00:00:00 2001 From: Mieczyslaw Nalewaj Date: Mon, 29 Apr 2024 19:10:59 +0200 Subject: [PATCH 20/40] ramips: use led, function/color syntax for some tp-link archer routers Setting the LED name and abandoning the label and using the function/color syntax for some TP-Link Archer series routers: Archer C2 v1, Archer C20 v1, Archer C20i and Archer C50 v1 Signed-off-by: Mieczyslaw Nalewaj --- .../dts/mt7620a_tplink_archer-c2-v1.dts | 10 ++++----- .../dts/mt7620a_tplink_archer-c20-v1.dts | 22 ++++++++++--------- .../ramips/dts/mt7620a_tplink_archer-c20i.dts | 10 ++++----- .../dts/mt7620a_tplink_archer-c50-v1.dts | 22 ++++++++++--------- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/target/linux/ramips/dts/mt7620a_tplink_archer-c2-v1.dts b/target/linux/ramips/dts/mt7620a_tplink_archer-c2-v1.dts index 10756e3b3c..b134398f44 100644 --- a/target/linux/ramips/dts/mt7620a_tplink_archer-c2-v1.dts +++ b/target/linux/ramips/dts/mt7620a_tplink_archer-c2-v1.dts @@ -19,13 +19,13 @@ leds { compatible = "gpio-leds"; - lan { + led-0 { function = LED_FUNCTION_LAN; color = ; gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; }; - usb { + led-1 { function = LED_FUNCTION_USB; color = ; gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; @@ -33,19 +33,19 @@ linux,default-trigger = "usbport"; }; - led_wps: wps { + led_wps: led-2 { function = LED_FUNCTION_WPS; color = ; gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; }; - wan { + led-3 { function = LED_FUNCTION_WAN; color = ; gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; }; - wlan { + led-4 { function = LED_FUNCTION_WLAN; color = ; gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; diff --git a/target/linux/ramips/dts/mt7620a_tplink_archer-c20-v1.dts b/target/linux/ramips/dts/mt7620a_tplink_archer-c20-v1.dts index 285e27c357..6b49fa6793 100644 --- a/target/linux/ramips/dts/mt7620a_tplink_archer-c20-v1.dts +++ b/target/linux/ramips/dts/mt7620a_tplink_archer-c20-v1.dts @@ -16,20 +16,20 @@ leds { compatible = "gpio-leds"; - lan { + led-0 { function = LED_FUNCTION_LAN; color = ; gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; }; - led_power: power { + led_power: led-1 { function = LED_FUNCTION_POWER; color = ; gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; default-state = "keep"; }; - usb { + led-2 { function = LED_FUNCTION_USB; color = ; gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; @@ -37,31 +37,33 @@ linux,default-trigger = "usbport"; }; - wan { + led-3 { function = LED_FUNCTION_WAN; color = ; gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>; }; - wan_orange { + led-4 { function = LED_FUNCTION_WAN; color = ; gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>; }; - wlan5g { - label = "blue:wlan5g"; + led-5 { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; gpios = <&gpio0 17 GPIO_ACTIVE_LOW>; linux,default-trigger = "phy0tpt"; }; - wlan2g { - label = "blue:wlan2g"; + led-6 { + function = LED_FUNCTION_WLAN_2GHZ; + color = ; gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; linux,default-trigger = "phy1tpt"; }; - wps { + led-7 { function = LED_FUNCTION_WPS; color = ; gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; diff --git a/target/linux/ramips/dts/mt7620a_tplink_archer-c20i.dts b/target/linux/ramips/dts/mt7620a_tplink_archer-c20i.dts index 12141a6e59..0e461ceba5 100644 --- a/target/linux/ramips/dts/mt7620a_tplink_archer-c20i.dts +++ b/target/linux/ramips/dts/mt7620a_tplink_archer-c20i.dts @@ -17,13 +17,13 @@ leds { compatible = "gpio-leds"; - lan { + led-0 { function = LED_FUNCTION_LAN; color = ; gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; }; - usb { + led-1 { function = LED_FUNCTION_USB; color = ; gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; @@ -31,19 +31,19 @@ linux,default-trigger = "usbport"; }; - led_wps: wps { + led_wps: led-2 { function = LED_FUNCTION_WPS; color = ; gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; }; - wan { + led-3 { function = LED_FUNCTION_WAN; color = ; gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; }; - wlan { + led-4 { function = LED_FUNCTION_WLAN; color = ; gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; diff --git a/target/linux/ramips/dts/mt7620a_tplink_archer-c50-v1.dts b/target/linux/ramips/dts/mt7620a_tplink_archer-c50-v1.dts index 97b803470d..8581bbe49b 100644 --- a/target/linux/ramips/dts/mt7620a_tplink_archer-c50-v1.dts +++ b/target/linux/ramips/dts/mt7620a_tplink_archer-c50-v1.dts @@ -16,20 +16,20 @@ leds { compatible = "gpio-leds"; - lan { + led-0 { function = LED_FUNCTION_LAN; color = ; gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; }; - led_power: power { + led_power: led-1 { function = LED_FUNCTION_POWER; color = ; gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; default-state = "on"; }; - usb { + led-2 { function = LED_FUNCTION_USB; color = ; gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; @@ -37,31 +37,33 @@ linux,default-trigger = "usbport"; }; - wan { + led-3 { function = LED_FUNCTION_WAN; color = ; gpios = <&gpio0 17 GPIO_ACTIVE_LOW>; }; - wan_orange { + led-4 { function = LED_FUNCTION_WAN; color = ; gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; }; - wlan5g { - label = "green:wlan5g"; + led-5 { + function = LED_FUNCTION_WLAN_5GHZ; + color = ; gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; linux,default-trigger = "phy0tpt"; }; - wlan2g { - label = "green:wlan2g"; + led-6 { + function = LED_FUNCTION_WLAN_2GHZ; + color = ; gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; linux,default-trigger = "phy1tpt"; }; - wps { + led-7 { function = LED_FUNCTION_WPS; color = ; gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; From 30e8fd73ec54865ea7db4e6e08560e6a16dd4272 Mon Sep 17 00:00:00 2001 From: Alan Luck Date: Sat, 27 Apr 2024 19:25:49 +1000 Subject: [PATCH 21/40] ramips: Add support for D-Link DIR-2150-A1 Hardware Specification: SoC: Mediatek MT7621DAT (MIPS1004Kc 880 MHz, dual core) RAM: 128 MB Storage: 128 MB NAND flash Ethernet: 5x 10/100/1000 Mbps LAN1,LAN2,LAN3,LAN4 & WAN Wireless: 2.4GHz: Mediatek MT7603EN up to 300Mbps (802.11b/g/n MIMO 2x2) Wireless: 5GHz: Mediatek MT7615N up to 1733Mbps (802.11n/ac MU-MIMO 4x4) LEDs: Power (white & amber), Internet (white & amber) LEDs: 2.4G (White), 5Ghz (White) Buttons: WPS, Reset MAC Table Label xx:xx:xx:xx:xx:EB LAN xx:xx:xx:xx:xx:EB 2.4Ghz xx:xx:xx:xx:xx:EC 5Ghz xx:xx:xx:xx:xx:ED WAN xx:xx:xx:xx:xx:EE Flash instructions: D-Link normal OEM firmware update page 1. upload OpenWRT factory.bin like any D-Link upgrade image D-Link Recovery GUI: 1. Push and hold reset button (on the bottom of the device) until power led starts flashing (about 10 secs or so) while plugging in the power cable. 2. Give it ~30 seconds, to boot the recovery mode GUI 3. Connect your client computer to LAN1 of the device 4. Set your client IP address manually to 192.168.0.2 / 255.255.255.0 5. Call the recovery page for the device at http://192.168.0.1/ 6. Use the provided emergency web GUI to upload the recovery.bin to the device Firefox on Windows in a Private Window (incognito) works me Internet Explorer mode in Microsoft Edge works for others seems to not work in Linux or virtual machine on Linux for most some see success using 'curl -v -i -F "firmware=@file.bin" 192.168.0.1' Thanks to @frkca and @rodneyrod for testing and pushing for its creation Signed-off-by: Alan Luck --- target/linux/ramips/dts/mt7621_dlink_dir-2150-a1.dts | 8 ++++++++ target/linux/ramips/image/mt7621.mk | 10 ++++++++++ .../linux/ramips/mt7621/base-files/etc/board.d/01_leds | 1 + .../ramips/mt7621/base-files/lib/upgrade/platform.sh | 1 + 4 files changed, 20 insertions(+) create mode 100755 target/linux/ramips/dts/mt7621_dlink_dir-2150-a1.dts diff --git a/target/linux/ramips/dts/mt7621_dlink_dir-2150-a1.dts b/target/linux/ramips/dts/mt7621_dlink_dir-2150-a1.dts new file mode 100755 index 0000000000..90a76de8ff --- /dev/null +++ b/target/linux/ramips/dts/mt7621_dlink_dir-2150-a1.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7621_dlink_dir_nand_128m.dtsi" + +/ { + compatible = "dlink,dir-2150-a1", "mediatek,mt7621-soc"; + model = "D-Link DIR-2150 A1"; +}; diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index dbb69e0fae..4c6b7057d5 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -769,6 +769,16 @@ define Device/dlink_dir-1960-a1 endef TARGET_DEVICES += dlink_dir-1960-a1 +define Device/dlink_dir-2150-a1 + $(Device/dlink_dir_nand_128m) + DEVICE_MODEL := DIR-2150 + DEVICE_VARIANT := A1 + DEVICE_PACKAGES += kmod-mt7603 -kmod-usb3 -kmod-usb-ledtrig-usbport + IMAGES += factory.bin + IMAGE/factory.bin := $$(IMAGE/recovery.bin) | dlink-sge-image $$(DEVICE_MODEL) +endef +TARGET_DEVICES += dlink_dir-2150-a1 + define Device/dlink_dir-2640-a1 $(Device/dlink_dir_nand_128m) DEVICE_MODEL := DIR-2640 diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds index d8beee9f0e..36c7d9e97a 100644 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/01_leds @@ -92,6 +92,7 @@ dlink,dap-x1860-a1) ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan1" "76" "100" ;; dlink,dir-1960-a1|\ +dlink,dir-2150-a1|\ dlink,dir-2640-a1|\ dlink,dir-2660-a1) ucidef_set_led_netdev "wan" "wan" "white:wan" "wan" diff --git a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh index 93fbc470ad..258bb1fe96 100755 --- a/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/mt7621/base-files/lib/upgrade/platform.sh @@ -71,6 +71,7 @@ platform_do_upgrade() { dlink,covr-x1860-a1|\ dlink,dap-x1860-a1|\ dlink,dir-1960-a1|\ + dlink,dir-2150-a1|\ dlink,dir-2640-a1|\ dlink,dir-2660-a1|\ dlink,dir-3040-a1|\ From 63b8d98dd0d2f7797ea5b5f25978590982bbbb5d Mon Sep 17 00:00:00 2001 From: Luis Mita Date: Tue, 7 May 2024 11:48:37 -0400 Subject: [PATCH 22/40] mediatek: add support for Cudy TR3000 v1 Hardware: - SoC: MediaTek MT7981B - CPU: 2x 1.3 GHz Cortex-A53 - Flash: 128 MiB SPI NAND - RAM: 512 MiB - WLAN: 2.4 GHz, 5 GHz (MediaTek MT7976CN, 802.11ax) - Ethernet: 1x 10/100/1000/2500 Mbps RTL8221B WAN, 1x10/100/1000 Mbps MT7981 LAN - USB 3.0 port - Buttons: 1 Reset button, 1 slider button - LEDs: 1x Red, 1x White - Serial console: internal test points, 115200 8n1 - Power: 5 VDC, 3 A MAC addresses: +---------+-------------------+-----------+ | | MAC | Algorithm | +---------+-------------------+-----------+ | WAN | 80:af:ca:xx:xx:x1 | label+1 | | LAN | 80:af:ca:xx:xx:x0 | label | | WLAN 2g | 80:af:ca:xx:xx:x0 | label | | WLAN 5g | 82:af:ca:xx:xx:x0 | | +---------+-------------------+-----------+ Installation: The installation must be done via TFTP by disassembling the router. On other occasions Cudy has distributed intermediate firmware to make installation easier, and so I recommend checking the Wiki for this device if there is a more convenient solution than the one below. To install using TFTP: 1. Connect to UART. 2. With the router off, press the RESET button. While the router is turning on, the button should continue to be pressed for at least 5 seconds. 3. A u-boot shell will automatically open. 4. Connect to LAN and set your IP to 192.168.1.88/24. Configure a TFTP server and an OpenWrt initramfs-kernel.bin firmware file. 5. Run these steps in u-boot using the name of your file. setenv bootfile initramfs-kernel.bin tftpboot bootm 6. If you can reach LuCI or SSH now, just use the sysupgrade image with the 'Keep settings' option turned off. Signed-off-by: Luis Mita --- .../lib/preinit/05_set_preinit_iface | 1 + .../mediatek/dts/mt7981b-cudy-tr3000-v1.dts | 232 ++++++++++++++++++ .../filogic/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 1 + target/linux/mediatek/image/filogic.mk | 17 ++ 5 files changed, 252 insertions(+) create mode 100644 target/linux/mediatek/dts/mt7981b-cudy-tr3000-v1.dts diff --git a/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface b/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface index 2bff09b2b2..9351ffd492 100644 --- a/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface +++ b/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface @@ -5,6 +5,7 @@ set_preinit_iface() { ip link set lan up ifname=lan ;; + cudy,tr3000-v1|\ glinet,gl-mt3000) ip link set eth1 up ifname=eth1 diff --git a/target/linux/mediatek/dts/mt7981b-cudy-tr3000-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-tr3000-v1.dts new file mode 100644 index 0000000000..2d18af860e --- /dev/null +++ b/target/linux/mediatek/dts/mt7981b-cudy-tr3000-v1.dts @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) + +/dts-v1/; + +#include + +#include "mt7981.dtsi" + +/ { + model = "Cudy TR3000 v1"; + compatible = "cudy,tr3000-v1", "mediatek,mt7981-spim-snand-rfb"; + + aliases { + label-mac-device = &gmac1; + led-boot = &led_status; + led-failsafe = &led_status; + led-running = &led_status; + led-upgrade = &led_status; + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + gpio-keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&pio 1 GPIO_ACTIVE_LOW>; + }; + + mode { + label = "mode"; + linux,input-type = ; + linux,code = ; + gpios = <&pio 0 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_status: led_0 { + function = LED_FUNCTION_POWER; + color = ; + gpios = <&pio 11 GPIO_ACTIVE_LOW>; + }; + + led_1 { + function = LED_FUNCTION_STATUS; + color = ; + gpios = <&pio 10 GPIO_ACTIVE_LOW>; + }; + + }; + + usb_vbus: regulator-usb { + compatible = "regulator-fixed"; + + regulator-name = "usb-vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + + gpio = <&pio 9 GPIO_ACTIVE_LOW>; + regulator-boot-on; + }; +}; + +&uart0 { + status = "okay"; +}; + +&watchdog { + status = "okay"; +}; + +ð { + pinctrl-names = "default"; + pinctrl-0 = <&mdio_pins>; + + status = "okay"; + + gmac0: mac@0 { + compatible = "mediatek,eth-mac"; + reg = <0>; + phy-mode = "2500base-x"; + phy-handle = <&phy1>; + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_bdinfo_de00 1>; + }; + + gmac1: mac@1 { + compatible = "mediatek,eth-mac"; + reg = <1>; + phy-mode = "gmii"; + phy-handle = <&int_gbe_phy>; + nvmem-cell-names = "mac-address"; + nvmem-cells = <&macaddr_bdinfo_de00 0>; + }; +}; + +&mdio_bus { + phy1: phy@1 { + reg = <1>; + compatible = "ethernet-phy-ieee802.3-c45"; + phy-mode = "2500base-x"; + reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>; + interrupts = <38 IRQ_TYPE_LEVEL_LOW>; + reset-assert-us = <100000>; + reset-deassert-us = <100000>; + realtek,aldps-enable; + }; +}; + +&spi0 { + pinctrl-names = "default"; + pinctrl-0 = <&spi0_flash_pins>; + status = "okay"; + + spi_nand: flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi-nand"; + reg = <0>; + spi-max-frequency = <52000000>; + + spi-cal-enable; + spi-cal-mode = "read-data"; + spi-cal-datalen = <7>; + spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>; + spi-cal-addrlen = <5>; + spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>; + + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + mediatek,nmbm; + mediatek,bmt-max-ratio = <1>; + mediatek,bmt-max-reserved-blocks = <64>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "BL2"; + reg = <0x00000 0x0100000>; + read-only; + }; + + partition@100000 { + label = "u-boot-env"; + reg = <0x0100000 0x0080000>; + read-only; + }; + + factory: partition@180000 { + label = "Factory"; + reg = <0x180000 0x0200000>; + read-only; + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + eeprom_factory_0: eeprom@0 { + reg = <0x0 0x1000>; + }; + }; + }; + + partition@380000 { + label = "bdinfo"; + reg = <0x380000 0x0040000>; + read-only; + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_bdinfo_de00: macaddr@de00 { + compatible = "mac-base"; + reg = <0xde00 0x6>; + #nvmem-cell-cells = <1>; + }; + }; + + }; + + partition@3C0000 { + label = "FIP"; + reg = <0x3C0000 0x0200000>; + read-only; + }; + + partition@580000 { + label = "ubi"; + reg = <0x5C0000 0x4000000>; + compatible = "linux,ubi"; + }; + }; + }; +}; + + +&pio { + spi0_flash_pins: spi0-pins { + mux { + function = "spi"; + groups = "spi0", "spi0_wp_hold"; + }; + }; +}; + +&usb_phy { + status = "okay"; +}; + +&xhci { + status = "okay"; + vbus-supply = <&usb_vbus>; +}; + +&wifi { + status = "okay"; + nvmem-cells = <&eeprom_factory_0>; + nvmem-cell-names = "eeprom"; +}; diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network index a161a86462..648ecb9289 100644 --- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network +++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network @@ -56,6 +56,7 @@ mediatek_setup_interfaces() dlink,aquila-pro-ai-m30-a1) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" internet ;; + cudy,tr3000-v1|\ glinet,gl-mt2500|\ glinet,gl-mt3000|\ glinet,gl-x3000|\ diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac index 0c5f66c029..75c3d25ed9 100644 --- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac +++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac @@ -69,6 +69,7 @@ case "$board" in addr=$(mtd_get_mac_binary "Factory" 0x8000) [ "$PHYNBR" = "1" ] && macaddr_add $addr 1 > /sys${DEVPATH}/macaddress ;; + cudy,tr3000-v1|\ cudy,re3000-v1) addr=$(mtd_get_mac_binary bdinfo 0xde00) [ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk index 13426f4f3a..dbe027265a 100644 --- a/target/linux/mediatek/image/filogic.mk +++ b/target/linux/mediatek/image/filogic.mk @@ -485,6 +485,23 @@ define Device/cudy_re3000-v1 endef TARGET_DEVICES += cudy_re3000-v1 +define Device/cudy_tr3000-v1 + DEVICE_VENDOR := Cudy + DEVICE_MODEL := TR3000 + DEVICE_VARIANT := v1 + DEVICE_DTS := mt7981b-cudy-tr3000-v1 + DEVICE_DTS_DIR := ../dts + SUPPORTED_DEVICES += R47 + UBINIZE_OPTS := -E 5 + BLOCKSIZE := 128k + PAGESIZE := 2048 + IMAGE_SIZE := 65536k + KERNEL_IN_UBI := 1 + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata + DEVICE_PACKAGES := kmod-usb3 kmod-mt7981-firmware mt7981-wo-firmware +endef +TARGET_DEVICES += cudy_tr3000-v1 + define Device/cudy_wr3000-v1 DEVICE_VENDOR := Cudy DEVICE_MODEL := WR3000 From 24693ac7e54d913153ec6e89a13903937e33ff4d Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Mon, 29 Apr 2024 20:26:17 +0000 Subject: [PATCH 23/40] ath79: fix build error for downstream gpio drivers Initialize fwnode instead of the deprecated of_node. Signed-off-by: Shiji Yang --- target/linux/ath79/files/drivers/gpio/gpio-latch.c | 4 ++-- target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/linux/ath79/files/drivers/gpio/gpio-latch.c b/target/linux/ath79/files/drivers/gpio/gpio-latch.c index 68f9290b2a..5518184caa 100644 --- a/target/linux/ath79/files/drivers/gpio/gpio-latch.c +++ b/target/linux/ath79/files/drivers/gpio/gpio-latch.c @@ -110,7 +110,7 @@ static int gpio_latch_probe(struct platform_device *pdev) struct gpio_latch_chip *glc; struct gpio_chip *gc; struct device *dev = &pdev->dev; - struct device_node *of_node = dev->of_node; + struct fwnode_handle *fwnode = dev->fwnode; int i, n; glc = devm_kzalloc(dev, sizeof(*glc), GFP_KERNEL); @@ -158,7 +158,7 @@ static int gpio_latch_probe(struct platform_device *pdev) gc->get = gpio_latch_get; gc->set = gpio_latch_set; gc->direction_output = gpio_latch_direction_output; - gc->of_node = of_node; + gc->fwnode = fwnode; platform_set_drvdata(pdev, glc); diff --git a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c index ee8359e774..8996b2a906 100644 --- a/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c +++ b/target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c @@ -144,7 +144,7 @@ static int gpio_rb91x_key_probe(struct platform_device *pdev) struct gpio_rb91x_key *drvdata; struct gpio_chip *gc; struct device *dev = &pdev->dev; - struct device_node *of_node = dev->of_node; + struct fwnode_handle *fwnode = dev->fwnode; int r; drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); @@ -172,7 +172,7 @@ static int gpio_rb91x_key_probe(struct platform_device *pdev) gc->set = gpio_rb91x_key_set; gc->direction_output = gpio_rb91x_key_direction_output; gc->direction_input = gpio_rb91x_key_direction_input; - gc->of_node = of_node; + gc->fwnode = fwnode; platform_set_drvdata(pdev, drvdata); From e155e3bd093109744f77f884fa731e51fb2edb42 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 24/40] ath79: add MikroTik suffix to the local GPIO latch driver The upcoming 6.6 kernel will introduce a new upstream generic "gpio-latch" driver. It will conflict with the downstream MikroTik GPIO latch driver. Let's rename it to avoid any potential issues. Signed-off-by: Shiji Yang --- target/linux/ath79/config-6.1 | 2 +- target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi | 2 +- .../drivers/gpio/{gpio-latch.c => gpio-latch-mikrotik.c} | 2 +- target/linux/ath79/mikrotik/config-default | 2 +- target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) rename target/linux/ath79/files/drivers/gpio/{gpio-latch.c => gpio-latch-mikrotik.c} (98%) diff --git a/target/linux/ath79/config-6.1 b/target/linux/ath79/config-6.1 index f2a6969aa1..87f520228f 100644 --- a/target/linux/ath79/config-6.1 +++ b/target/linux/ath79/config-6.1 @@ -81,7 +81,7 @@ CONFIG_GPIO_74X164=y CONFIG_GPIO_ATH79=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_GENERIC=y -# CONFIG_GPIO_LATCH is not set +# CONFIG_GPIO_LATCH_MIKROTIK is not set # CONFIG_GPIO_RB91X_KEY is not set CONFIG_HARDWARE_WATCHPOINTS=y CONFIG_HAS_DMA=y diff --git a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi index 5f9d8e42fb..0c98a6634e 100644 --- a/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi +++ b/target/linux/ath79/dts/ar9342_mikrotik_routerboard-911g.dtsi @@ -22,7 +22,7 @@ }; gpio_latch: gpio_latch { - compatible = "gpio-latch"; + compatible = "gpio-latch-mikrotik"; gpio-controller; #gpio-cells = <2>; gpios = <&gpio 0 GPIO_ACTIVE_HIGH>, diff --git a/target/linux/ath79/files/drivers/gpio/gpio-latch.c b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c similarity index 98% rename from target/linux/ath79/files/drivers/gpio/gpio-latch.c rename to target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c index 5518184caa..8f53974e46 100644 --- a/target/linux/ath79/files/drivers/gpio/gpio-latch.c +++ b/target/linux/ath79/files/drivers/gpio/gpio-latch-mikrotik.c @@ -15,7 +15,7 @@ #include #include -#define GPIO_LATCH_DRIVER_NAME "gpio-latch" +#define GPIO_LATCH_DRIVER_NAME "gpio-latch-mikrotik" #define GPIO_LATCH_LINES 9 struct gpio_latch_chip { diff --git a/target/linux/ath79/mikrotik/config-default b/target/linux/ath79/mikrotik/config-default index a231188c83..3fe5cd4979 100644 --- a/target/linux/ath79/mikrotik/config-default +++ b/target/linux/ath79/mikrotik/config-default @@ -3,7 +3,7 @@ CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_ZSTD=y -CONFIG_GPIO_LATCH=y +CONFIG_GPIO_LATCH_MIKROTIK=y CONFIG_GPIO_RB4XX=y CONFIG_GPIO_RB91X_KEY=y CONFIG_GPIO_WATCHDOG=y diff --git a/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch b/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch index 768ab6fb49..677428fa65 100644 --- a/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch +++ b/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch @@ -33,7 +33,7 @@ Tested-by: Koen Vandeputte If unsure, say N. -+config GPIO_LATCH ++config GPIO_LATCH_MIKROTIK + tristate "MikroTik RouterBOARD GPIO latch support" + depends on ATH79 + help @@ -59,7 +59,7 @@ Tested-by: Koen Vandeputte obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o -+obj-$(CONFIG_GPIO_LATCH) += gpio-latch.o ++obj-$(CONFIG_GPIO_LATCH_MIKROTIK) += gpio-latch-mikrotik.o obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o obj-$(CONFIG_GPIO_LOONGSON) += gpio-loongson.o From 7d01a0b436ac242e618f86d4eede141968e2e2f8 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 25/40] ath79: rename patches directory and kernel config from 6.1 to 6.6 This is preparation for 6.6 kernel support. Renaming files allows us to better track their git history. Signed-off-by: Shiji Yang --- target/linux/ath79/{config-6.1 => config-6.6} | 0 .../010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch | 0 .../100-reset-ath79-read-back-reset-register.patch | 0 ...300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch | 0 .../301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch | 0 .../310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch | 0 .../311-MIPS-pci-ar71xx-convert-to-OF.patch | 0 .../312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch | 0 .../313-MIPS-pci-ar724x-convert-to-OF.patch | 0 .../314-MIPS-ath79-remove-irq-code-from-pci.patch | 0 .../315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch | 0 .../316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch | 0 .../{patches-6.1 => patches-6.6}/330-missing-registers.patch | 0 .../331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch | 0 .../{patches-6.1 => patches-6.6}/332-ath79-sgmii-config.patch | 0 .../340-register_gpio_driver_earlier.patch | 0 .../350-MIPS-ath79-ath9k-exports.patch | 0 .../351-MIPS-ath79-common-exports.patch | 0 .../360-MIPS-ath79-export-UART1-reference-clock.patch | 0 .../370-MIPS-ath79-sanitize-symbols.patch | 0 .../400-mtd-nor-support-mtd-name-from-device-tree.patch | 0 .../410-mtd-cybertan-trx-parser.patch | 0 .../420-drivers-link-spi-before-mtd.patch | 0 .../{patches-6.1 => patches-6.6}/430-mtd-ar934x-nand-driver.patch | 0 .../{patches-6.1 => patches-6.6}/700-phy-add-ath79-usb-phys.patch | 0 .../701-usb-add-more-OF-quirk-properties.patch | 0 .../710-net-use-downstream-ag71xx.patch | 0 .../720-mdio_bitbang_ignore_ta_value.patch | 0 ...721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch | 0 .../730-ar8216-make-reg-access-atomic.patch | 0 .../800-leds-add-reset-controller-based-driver.patch | 0 .../810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch | 0 .../{patches-6.1 => patches-6.6}/900-unaligned_access_hacks.patch | 0 .../ath79/{patches-6.1 => patches-6.6}/910-mikrotik-rb4xx.patch | 0 .../ath79/{patches-6.1 => patches-6.6}/911-mikrotik-rb91x.patch | 0 35 files changed, 0 insertions(+), 0 deletions(-) rename target/linux/ath79/{config-6.1 => config-6.6} (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/100-reset-ath79-read-back-reset-register.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/311-MIPS-pci-ar71xx-convert-to-OF.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/313-MIPS-pci-ar724x-convert-to-OF.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/314-MIPS-ath79-remove-irq-code-from-pci.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/330-missing-registers.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/332-ath79-sgmii-config.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/340-register_gpio_driver_earlier.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/350-MIPS-ath79-ath9k-exports.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/351-MIPS-ath79-common-exports.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/360-MIPS-ath79-export-UART1-reference-clock.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/370-MIPS-ath79-sanitize-symbols.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/400-mtd-nor-support-mtd-name-from-device-tree.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/410-mtd-cybertan-trx-parser.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/420-drivers-link-spi-before-mtd.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/430-mtd-ar934x-nand-driver.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/700-phy-add-ath79-usb-phys.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/701-usb-add-more-OF-quirk-properties.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/710-net-use-downstream-ag71xx.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/720-mdio_bitbang_ignore_ta_value.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/730-ar8216-make-reg-access-atomic.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/800-leds-add-reset-controller-based-driver.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/900-unaligned_access_hacks.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/910-mikrotik-rb4xx.patch (100%) rename target/linux/ath79/{patches-6.1 => patches-6.6}/911-mikrotik-rb91x.patch (100%) diff --git a/target/linux/ath79/config-6.1 b/target/linux/ath79/config-6.6 similarity index 100% rename from target/linux/ath79/config-6.1 rename to target/linux/ath79/config-6.6 diff --git a/target/linux/ath79/patches-6.1/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch b/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch similarity index 100% rename from target/linux/ath79/patches-6.1/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch rename to target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch diff --git a/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch b/target/linux/ath79/patches-6.6/100-reset-ath79-read-back-reset-register.patch similarity index 100% rename from target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch rename to target/linux/ath79/patches-6.6/100-reset-ath79-read-back-reset-register.patch diff --git a/target/linux/ath79/patches-6.1/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch b/target/linux/ath79/patches-6.6/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch similarity index 100% rename from target/linux/ath79/patches-6.1/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch rename to target/linux/ath79/patches-6.6/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch diff --git a/target/linux/ath79/patches-6.1/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch b/target/linux/ath79/patches-6.6/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch similarity index 100% rename from target/linux/ath79/patches-6.1/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch rename to target/linux/ath79/patches-6.6/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch diff --git a/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch b/target/linux/ath79/patches-6.6/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch similarity index 100% rename from target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch rename to target/linux/ath79/patches-6.6/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch diff --git a/target/linux/ath79/patches-6.1/311-MIPS-pci-ar71xx-convert-to-OF.patch b/target/linux/ath79/patches-6.6/311-MIPS-pci-ar71xx-convert-to-OF.patch similarity index 100% rename from target/linux/ath79/patches-6.1/311-MIPS-pci-ar71xx-convert-to-OF.patch rename to target/linux/ath79/patches-6.6/311-MIPS-pci-ar71xx-convert-to-OF.patch diff --git a/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch b/target/linux/ath79/patches-6.6/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch similarity index 100% rename from target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch rename to target/linux/ath79/patches-6.6/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch diff --git a/target/linux/ath79/patches-6.1/313-MIPS-pci-ar724x-convert-to-OF.patch b/target/linux/ath79/patches-6.6/313-MIPS-pci-ar724x-convert-to-OF.patch similarity index 100% rename from target/linux/ath79/patches-6.1/313-MIPS-pci-ar724x-convert-to-OF.patch rename to target/linux/ath79/patches-6.6/313-MIPS-pci-ar724x-convert-to-OF.patch diff --git a/target/linux/ath79/patches-6.1/314-MIPS-ath79-remove-irq-code-from-pci.patch b/target/linux/ath79/patches-6.6/314-MIPS-ath79-remove-irq-code-from-pci.patch similarity index 100% rename from target/linux/ath79/patches-6.1/314-MIPS-ath79-remove-irq-code-from-pci.patch rename to target/linux/ath79/patches-6.6/314-MIPS-ath79-remove-irq-code-from-pci.patch diff --git a/target/linux/ath79/patches-6.1/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch b/target/linux/ath79/patches-6.6/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch similarity index 100% rename from target/linux/ath79/patches-6.1/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch rename to target/linux/ath79/patches-6.6/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch diff --git a/target/linux/ath79/patches-6.1/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch b/target/linux/ath79/patches-6.6/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch similarity index 100% rename from target/linux/ath79/patches-6.1/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch rename to target/linux/ath79/patches-6.6/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch diff --git a/target/linux/ath79/patches-6.1/330-missing-registers.patch b/target/linux/ath79/patches-6.6/330-missing-registers.patch similarity index 100% rename from target/linux/ath79/patches-6.1/330-missing-registers.patch rename to target/linux/ath79/patches-6.6/330-missing-registers.patch diff --git a/target/linux/ath79/patches-6.1/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch b/target/linux/ath79/patches-6.6/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch similarity index 100% rename from target/linux/ath79/patches-6.1/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch rename to target/linux/ath79/patches-6.6/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch diff --git a/target/linux/ath79/patches-6.1/332-ath79-sgmii-config.patch b/target/linux/ath79/patches-6.6/332-ath79-sgmii-config.patch similarity index 100% rename from target/linux/ath79/patches-6.1/332-ath79-sgmii-config.patch rename to target/linux/ath79/patches-6.6/332-ath79-sgmii-config.patch diff --git a/target/linux/ath79/patches-6.1/340-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch similarity index 100% rename from target/linux/ath79/patches-6.1/340-register_gpio_driver_earlier.patch rename to target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch diff --git a/target/linux/ath79/patches-6.1/350-MIPS-ath79-ath9k-exports.patch b/target/linux/ath79/patches-6.6/350-MIPS-ath79-ath9k-exports.patch similarity index 100% rename from target/linux/ath79/patches-6.1/350-MIPS-ath79-ath9k-exports.patch rename to target/linux/ath79/patches-6.6/350-MIPS-ath79-ath9k-exports.patch diff --git a/target/linux/ath79/patches-6.1/351-MIPS-ath79-common-exports.patch b/target/linux/ath79/patches-6.6/351-MIPS-ath79-common-exports.patch similarity index 100% rename from target/linux/ath79/patches-6.1/351-MIPS-ath79-common-exports.patch rename to target/linux/ath79/patches-6.6/351-MIPS-ath79-common-exports.patch diff --git a/target/linux/ath79/patches-6.1/360-MIPS-ath79-export-UART1-reference-clock.patch b/target/linux/ath79/patches-6.6/360-MIPS-ath79-export-UART1-reference-clock.patch similarity index 100% rename from target/linux/ath79/patches-6.1/360-MIPS-ath79-export-UART1-reference-clock.patch rename to target/linux/ath79/patches-6.6/360-MIPS-ath79-export-UART1-reference-clock.patch diff --git a/target/linux/ath79/patches-6.1/370-MIPS-ath79-sanitize-symbols.patch b/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch similarity index 100% rename from target/linux/ath79/patches-6.1/370-MIPS-ath79-sanitize-symbols.patch rename to target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch diff --git a/target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch similarity index 100% rename from target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch rename to target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch diff --git a/target/linux/ath79/patches-6.1/410-mtd-cybertan-trx-parser.patch b/target/linux/ath79/patches-6.6/410-mtd-cybertan-trx-parser.patch similarity index 100% rename from target/linux/ath79/patches-6.1/410-mtd-cybertan-trx-parser.patch rename to target/linux/ath79/patches-6.6/410-mtd-cybertan-trx-parser.patch diff --git a/target/linux/ath79/patches-6.1/420-drivers-link-spi-before-mtd.patch b/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch similarity index 100% rename from target/linux/ath79/patches-6.1/420-drivers-link-spi-before-mtd.patch rename to target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch diff --git a/target/linux/ath79/patches-6.1/430-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch similarity index 100% rename from target/linux/ath79/patches-6.1/430-mtd-ar934x-nand-driver.patch rename to target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch diff --git a/target/linux/ath79/patches-6.1/700-phy-add-ath79-usb-phys.patch b/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch similarity index 100% rename from target/linux/ath79/patches-6.1/700-phy-add-ath79-usb-phys.patch rename to target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch diff --git a/target/linux/ath79/patches-6.1/701-usb-add-more-OF-quirk-properties.patch b/target/linux/ath79/patches-6.6/701-usb-add-more-OF-quirk-properties.patch similarity index 100% rename from target/linux/ath79/patches-6.1/701-usb-add-more-OF-quirk-properties.patch rename to target/linux/ath79/patches-6.6/701-usb-add-more-OF-quirk-properties.patch diff --git a/target/linux/ath79/patches-6.1/710-net-use-downstream-ag71xx.patch b/target/linux/ath79/patches-6.6/710-net-use-downstream-ag71xx.patch similarity index 100% rename from target/linux/ath79/patches-6.1/710-net-use-downstream-ag71xx.patch rename to target/linux/ath79/patches-6.6/710-net-use-downstream-ag71xx.patch diff --git a/target/linux/ath79/patches-6.1/720-mdio_bitbang_ignore_ta_value.patch b/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch similarity index 100% rename from target/linux/ath79/patches-6.1/720-mdio_bitbang_ignore_ta_value.patch rename to target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch diff --git a/target/linux/ath79/patches-6.1/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch b/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch similarity index 100% rename from target/linux/ath79/patches-6.1/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch rename to target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch diff --git a/target/linux/ath79/patches-6.1/730-ar8216-make-reg-access-atomic.patch b/target/linux/ath79/patches-6.6/730-ar8216-make-reg-access-atomic.patch similarity index 100% rename from target/linux/ath79/patches-6.1/730-ar8216-make-reg-access-atomic.patch rename to target/linux/ath79/patches-6.6/730-ar8216-make-reg-access-atomic.patch diff --git a/target/linux/ath79/patches-6.1/800-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch similarity index 100% rename from target/linux/ath79/patches-6.1/800-leds-add-reset-controller-based-driver.patch rename to target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch diff --git a/target/linux/ath79/patches-6.1/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch b/target/linux/ath79/patches-6.6/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch similarity index 100% rename from target/linux/ath79/patches-6.1/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch rename to target/linux/ath79/patches-6.6/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch diff --git a/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch similarity index 100% rename from target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch rename to target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch diff --git a/target/linux/ath79/patches-6.1/910-mikrotik-rb4xx.patch b/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch similarity index 100% rename from target/linux/ath79/patches-6.1/910-mikrotik-rb4xx.patch rename to target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch diff --git a/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch b/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch similarity index 100% rename from target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch rename to target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch From d123330aa93a2d09f7dff039a2351d947d4fd8f7 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 26/40] ath79: restore kernel 6.1 config files and patches Copy patches and kernel configs from kernel 6.6 to restore the default 6.1 kernel support files. Signed-off-by: Shiji Yang --- target/linux/ath79/config-6.1 | 215 +++++ ...-ath79-Convert-to-immutable-irq_chip.patch | 60 ++ ...reset-ath79-read-back-reset-register.patch | 33 + ...9-intc-add-irq-cascade-driver-for-QC.patch | 168 ++++ ...ip-irq-ath79-cpu-drop-OF-init-helper.patch | 23 + ...ngs-PCI-qcom-ar7100-adds-binding-doc.patch | 57 ++ .../311-MIPS-pci-ar71xx-convert-to-OF.patch | 206 ++++ ...ngs-PCI-qcom-ar7240-adds-binding-doc.patch | 61 ++ .../313-MIPS-pci-ar724x-convert-to-OF.patch | 213 ++++ ...-MIPS-ath79-remove-irq-code-from-pci.patch | 149 +++ ...ci-ar724x-add-QCA9550-reset-sequence.patch | 130 +++ ...ath79-swizzle-pci-address-for-ar71xx.patch | 109 +++ .../patches-6.1/330-missing-registers.patch | 20 + ...9-add-missing-QCA955x-GMAC-registers.patch | 90 ++ .../patches-6.1/332-ath79-sgmii-config.patch | 30 + .../340-register_gpio_driver_earlier.patch | 26 + .../350-MIPS-ath79-ath9k-exports.patch | 36 + .../351-MIPS-ath79-common-exports.patch | 26 + ...S-ath79-export-UART1-reference-clock.patch | 67 ++ .../370-MIPS-ath79-sanitize-symbols.patch | 93 ++ ...or-support-mtd-name-from-device-tree.patch | 53 + .../410-mtd-cybertan-trx-parser.patch | 45 + .../420-drivers-link-spi-before-mtd.patch | 20 + .../430-mtd-ar934x-nand-driver.patch | 34 + .../700-phy-add-ath79-usb-phys.patch | 333 +++++++ ...701-usb-add-more-OF-quirk-properties.patch | 24 + .../710-net-use-downstream-ag71xx.patch | 42 + .../720-mdio_bitbang_ignore_ta_value.patch | 44 + ...-prevent-rescheduling-during-command.patch | 61 ++ .../730-ar8216-make-reg-access-atomic.patch | 59 ++ ...ds-add-reset-controller-based-driver.patch | 186 ++++ ...he-abused-interrupt-map-on-pcie-node.patch | 33 + .../900-unaligned_access_hacks.patch | 909 ++++++++++++++++++ .../patches-6.1/910-mikrotik-rb4xx.patch | 121 +++ .../patches-6.1/911-mikrotik-rb91x.patch | 96 ++ 35 files changed, 3872 insertions(+) create mode 100644 target/linux/ath79/config-6.1 create mode 100644 target/linux/ath79/patches-6.1/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch create mode 100644 target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch create mode 100644 target/linux/ath79/patches-6.1/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch create mode 100644 target/linux/ath79/patches-6.1/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch create mode 100644 target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch create mode 100644 target/linux/ath79/patches-6.1/311-MIPS-pci-ar71xx-convert-to-OF.patch create mode 100644 target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch create mode 100644 target/linux/ath79/patches-6.1/313-MIPS-pci-ar724x-convert-to-OF.patch create mode 100644 target/linux/ath79/patches-6.1/314-MIPS-ath79-remove-irq-code-from-pci.patch create mode 100644 target/linux/ath79/patches-6.1/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch create mode 100644 target/linux/ath79/patches-6.1/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch create mode 100644 target/linux/ath79/patches-6.1/330-missing-registers.patch create mode 100644 target/linux/ath79/patches-6.1/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch create mode 100644 target/linux/ath79/patches-6.1/332-ath79-sgmii-config.patch create mode 100644 target/linux/ath79/patches-6.1/340-register_gpio_driver_earlier.patch create mode 100644 target/linux/ath79/patches-6.1/350-MIPS-ath79-ath9k-exports.patch create mode 100644 target/linux/ath79/patches-6.1/351-MIPS-ath79-common-exports.patch create mode 100644 target/linux/ath79/patches-6.1/360-MIPS-ath79-export-UART1-reference-clock.patch create mode 100644 target/linux/ath79/patches-6.1/370-MIPS-ath79-sanitize-symbols.patch create mode 100644 target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch create mode 100644 target/linux/ath79/patches-6.1/410-mtd-cybertan-trx-parser.patch create mode 100644 target/linux/ath79/patches-6.1/420-drivers-link-spi-before-mtd.patch create mode 100644 target/linux/ath79/patches-6.1/430-mtd-ar934x-nand-driver.patch create mode 100644 target/linux/ath79/patches-6.1/700-phy-add-ath79-usb-phys.patch create mode 100644 target/linux/ath79/patches-6.1/701-usb-add-more-OF-quirk-properties.patch create mode 100644 target/linux/ath79/patches-6.1/710-net-use-downstream-ag71xx.patch create mode 100644 target/linux/ath79/patches-6.1/720-mdio_bitbang_ignore_ta_value.patch create mode 100644 target/linux/ath79/patches-6.1/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch create mode 100644 target/linux/ath79/patches-6.1/730-ar8216-make-reg-access-atomic.patch create mode 100644 target/linux/ath79/patches-6.1/800-leds-add-reset-controller-based-driver.patch create mode 100644 target/linux/ath79/patches-6.1/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch create mode 100644 target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch create mode 100644 target/linux/ath79/patches-6.1/910-mikrotik-rb4xx.patch create mode 100644 target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch diff --git a/target/linux/ath79/config-6.1 b/target/linux/ath79/config-6.1 new file mode 100644 index 0000000000..87f520228f --- /dev/null +++ b/target/linux/ath79/config-6.1 @@ -0,0 +1,215 @@ +CONFIG_AG71XX=y +# CONFIG_AG71XX_DEBUG is not set +CONFIG_AG71XX_DEBUG_FS=y +CONFIG_AR8216_PHY=y +CONFIG_AR8216_PHY_LEDS=y +CONFIG_ARCH_32BIT_OFF_T=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_ARCH_MMAP_RND_BITS_MAX=15 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15 +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_AT803X_PHY=y +CONFIG_ATH79=y +CONFIG_ATH79_WDT=y +CONFIG_BLK_MQ_PCI=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_CC_NO_ARRAY_BOUNDS=y +CONFIG_CEVT_R4K=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMDLINE="rootfstype=squashfs,jffs2" +CONFIG_CMDLINE_BOOL=y +# CONFIG_CMDLINE_OVERRIDE is not set +CONFIG_COMMON_CLK=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_CPU_BIG_ENDIAN=y +CONFIG_CPU_GENERIC_DUMP_TLB=y +CONFIG_CPU_HAS_DIEI=y +CONFIG_CPU_HAS_PREFETCH=y +CONFIG_CPU_HAS_RIXI=y +CONFIG_CPU_HAS_SYNC=y +CONFIG_CPU_MIPS32=y +CONFIG_CPU_MIPS32_R2=y +CONFIG_CPU_MIPSR2=y +CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y +CONFIG_CPU_R4K_CACHE_TLB=y +CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_HIGHMEM=y +CONFIG_CPU_SUPPORTS_MSA=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2 +CONFIG_CRYPTO_LIB_SHA1=y +CONFIG_CRYPTO_LIB_UTILS=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CSRC_R4K=y +CONFIG_DEBUG_INFO=y +CONFIG_DMA_NONCOHERENT=y +CONFIG_DTC=y +CONFIG_EARLY_PRINTK=y +CONFIG_ETHERNET_PACKET_MANGLE=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y +CONFIG_FIXED_PHY=y +CONFIG_FWNODE_MDIO=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FW_LOADER_SYSFS=y +CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_LIB_ASHLDI3=y +CONFIG_GENERIC_LIB_ASHRDI3=y +CONFIG_GENERIC_LIB_CMPDI2=y +CONFIG_GENERIC_LIB_LSHRDI3=y +CONFIG_GENERIC_LIB_UCMPDI2=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_74X164=y +CONFIG_GPIO_ATH79=y +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_GENERIC=y +# CONFIG_GPIO_LATCH_MIKROTIK is not set +# CONFIG_GPIO_RB91X_KEY is not set +CONFIG_HARDWARE_WATCHPOINTS=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HZ_PERIODIC=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_MIPS_CPU=y +CONFIG_IRQ_WORK=y +CONFIG_LEDS_GPIO=y +# CONFIG_LEDS_RESET is not set +CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_DEVRES=y +CONFIG_MDIO_GPIO=y +CONFIG_MEMFD_CREATE=y +# CONFIG_MFD_RB4XX_CPLD is not set +CONFIG_MFD_SYSCON=y +CONFIG_MIGRATION=y +CONFIG_MIPS=y +CONFIG_MIPS_ASID_BITS=8 +CONFIG_MIPS_ASID_SHIFT=0 +CONFIG_MIPS_CLOCK_VSYSCALL=y +# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set +# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set +CONFIG_MIPS_CMDLINE_FROM_DTB=y +CONFIG_MIPS_L1_CACHE_SHIFT=5 +CONFIG_MIPS_LD_CAN_LINK_VDSO=y +# CONFIG_MIPS_NO_APPENDED_DTB is not set +CONFIG_MIPS_RAW_APPENDED_DTB=y +CONFIG_MIPS_SPRAM=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_CFI_I2 is not set +# CONFIG_MTD_CFI_INTELEXT is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set +CONFIG_MTD_PARSER_CYBERTAN=y +# CONFIG_MTD_PARSER_TPLINK_SAFELOADER is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_SPLIT_ELF_FW=y +CONFIG_MTD_SPLIT_LZMA_FW=y +CONFIG_MTD_SPLIT_SEAMA_FW=y +CONFIG_MTD_SPLIT_TPLINK_FW=y +CONFIG_MTD_SPLIT_UIMAGE_FW=y +CONFIG_MTD_SPLIT_WRGG_FW=y +CONFIG_MTD_VIRT_CONCAT=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_KM=y +CONFIG_NET_SELFTESTS=y +CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y +CONFIG_NVMEM=y +CONFIG_NVMEM_LAYOUTS=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y +CONFIG_PAGE_POOL=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PCI=y +CONFIG_PCI_AR71XX=y +CONFIG_PCI_AR724X=y +CONFIG_PCI_DISABLE_COMMON_QUIRKS=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DRIVERS_LEGACY=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PHYLIB=y +CONFIG_PHYLIB_LEDS=y +# CONFIG_PHY_AR7100_USB is not set +# CONFIG_PHY_AR7200_USB is not set +# CONFIG_PHY_ATH79_USB is not set +CONFIG_PINCTRL=y +CONFIG_PREEMPT_NONE_BUILD=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_QCOM_NET_PHYLIB=y +CONFIG_RANDSTRUCT_NONE=y +CONFIG_RATIONAL=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_RESET_ATH79=y +CONFIG_RESET_CONTROLLER=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +CONFIG_SERIAL_AR933X=y +CONFIG_SERIAL_AR933X_CONSOLE=y +CONFIG_SERIAL_AR933X_NR_UARTS=2 +CONFIG_SERIAL_MCTRL_GPIO=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SPI=y +CONFIG_SPI_AR934X=y +CONFIG_SPI_ATH79=y +CONFIG_SPI_BITBANG=y +CONFIG_SPI_GPIO=y +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y +# CONFIG_SPI_RB4XX is not set +CONFIG_SRCU=y +CONFIG_SWCONFIG=y +CONFIG_SWCONFIG_LEDS=y +CONFIG_SWPHY=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYS_HAS_CPU_MIPS32_R2=y +CONFIG_SYS_HAS_EARLY_PRINTK=y +CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y +CONFIG_SYS_SUPPORTS_ARBIT_HZ=y +CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y +CONFIG_SYS_SUPPORTS_MIPS16=y +CONFIG_SYS_SUPPORTS_ZBOOT=y +CONFIG_SYS_SUPPORTS_ZBOOT_UART_PROM=y +CONFIG_TARGET_ISA_REV=2 +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TINY_SRCU=y +CONFIG_USB_SUPPORT=y +CONFIG_USE_OF=y +CONFIG_ZBOOT_LOAD_ADDRESS=0x0 diff --git a/target/linux/ath79/patches-6.1/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch b/target/linux/ath79/patches-6.1/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch new file mode 100644 index 0000000000..942380fc7b --- /dev/null +++ b/target/linux/ath79/patches-6.1/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch @@ -0,0 +1,60 @@ +From b11ce7e48121a02ceedec9f4dfcab4f2bee8f35f Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Thu, 9 Mar 2023 08:45:54 +0100 +Subject: gpio: ath79: Convert to immutable irq_chip + +Convert the driver to immutable irq-chip with a bit of +intuition. + +Cc: Marc Zyngier +Acked-by: Marc Zyngier +Signed-off-by: Linus Walleij +Signed-off-by: Bartosz Golaszewski +--- + drivers/gpio/gpio-ath79.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/drivers/gpio/gpio-ath79.c ++++ b/drivers/gpio/gpio-ath79.c +@@ -71,6 +71,7 @@ static void ath79_gpio_irq_unmask(struct + u32 mask = BIT(irqd_to_hwirq(data)); + unsigned long flags; + ++ gpiochip_enable_irq(&ctrl->gc, irqd_to_hwirq(data)); + raw_spin_lock_irqsave(&ctrl->lock, flags); + ath79_gpio_update_bits(ctrl, AR71XX_GPIO_REG_INT_MASK, mask, mask); + raw_spin_unlock_irqrestore(&ctrl->lock, flags); +@@ -85,6 +86,7 @@ static void ath79_gpio_irq_mask(struct i + raw_spin_lock_irqsave(&ctrl->lock, flags); + ath79_gpio_update_bits(ctrl, AR71XX_GPIO_REG_INT_MASK, mask, 0); + raw_spin_unlock_irqrestore(&ctrl->lock, flags); ++ gpiochip_disable_irq(&ctrl->gc, irqd_to_hwirq(data)); + } + + static void ath79_gpio_irq_enable(struct irq_data *data) +@@ -169,13 +171,15 @@ static int ath79_gpio_irq_set_type(struc + return 0; + } + +-static struct irq_chip ath79_gpio_irqchip = { ++static const struct irq_chip ath79_gpio_irqchip = { + .name = "gpio-ath79", + .irq_enable = ath79_gpio_irq_enable, + .irq_disable = ath79_gpio_irq_disable, + .irq_mask = ath79_gpio_irq_mask, + .irq_unmask = ath79_gpio_irq_unmask, + .irq_set_type = ath79_gpio_irq_set_type, ++ .flags = IRQCHIP_IMMUTABLE, ++ GPIOCHIP_IRQ_RESOURCE_HELPERS, + }; + + static void ath79_gpio_irq_handler(struct irq_desc *desc) +@@ -274,7 +278,7 @@ static int ath79_gpio_probe(struct platf + /* Optional interrupt setup */ + if (!np || of_property_read_bool(np, "interrupt-controller")) { + girq = &ctrl->gc.irq; +- girq->chip = &ath79_gpio_irqchip; ++ gpio_irq_chip_set_chip(girq, &ath79_gpio_irqchip); + girq->parent_handler = ath79_gpio_irq_handler; + girq->num_parents = 1; + girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents), diff --git a/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch b/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch new file mode 100644 index 0000000000..7aa501514d --- /dev/null +++ b/target/linux/ath79/patches-6.1/100-reset-ath79-read-back-reset-register.patch @@ -0,0 +1,33 @@ +From 661edfc3dab943a67c8821353b63cc23057f7ce9 Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Tue, 9 Jan 2024 20:48:46 +0100 +Subject: [PATCH] reset: ath79: read back reset register + +Read back the reset register in order to flush the cache. This fixes +spurious reboot hangs on TP-Link TL-WDR3600 and TL-WDR4300 with Zentel +DRAM chips. + +This issue was fixed in the past, but switching to the reset-driver +specific implementation removed the old fix. + +Link: https://github.com/freifunk-gluon/gluon/issues/2904 +Link: https://github.com/openwrt/openwrt/issues/13043 +Link: https://dev.archive.openwrt.org/ticket/17839 +Link: f8a7bfe1cb2c ("MIPS: ath79: fix system restart") + +Signed-off-by: David Bauer +--- + drivers/reset/reset-ath79.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/reset/reset-ath79.c ++++ b/drivers/reset/reset-ath79.c +@@ -37,6 +37,8 @@ static int ath79_reset_update(struct res + else + val &= ~BIT(id); + writel(val, ath79_reset->base); ++ /* Flush cache */ ++ readl(ath79_reset->base); + spin_unlock_irqrestore(&ath79_reset->lock, flags); + + return 0; diff --git a/target/linux/ath79/patches-6.1/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch b/target/linux/ath79/patches-6.1/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch new file mode 100644 index 0000000000..ceda511c21 --- /dev/null +++ b/target/linux/ath79/patches-6.1/300-irqchip-irq-ath79-intc-add-irq-cascade-driver-for-QC.patch @@ -0,0 +1,168 @@ +From f3eacff2310a60348a755c50a8da6fc251fc8587 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Tue, 6 Mar 2018 09:55:13 +0100 +Subject: [PATCH 07/33] irqchip/irq-ath79-intc: add irq cascade driver for + QCA9556 SoCs + +Signed-off-by: John Crispin +--- + drivers/irqchip/Makefile | 1 + + drivers/irqchip/irq-ath79-intc.c | 142 +++++++++++++++++++++++++++++++++++++++ + 2 files changed, 143 insertions(+) + create mode 100644 drivers/irqchip/irq-ath79-intc.c + +--- a/drivers/irqchip/Makefile ++++ b/drivers/irqchip/Makefile +@@ -4,6 +4,7 @@ obj-$(CONFIG_IRQCHIP) += irqchip.o + obj-$(CONFIG_AL_FIC) += irq-al-fic.o + obj-$(CONFIG_ALPINE_MSI) += irq-alpine-msi.o + obj-$(CONFIG_ATH79) += irq-ath79-cpu.o ++obj-$(CONFIG_ATH79) += irq-ath79-intc.o + obj-$(CONFIG_ATH79) += irq-ath79-misc.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o + obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2836.o +--- /dev/null ++++ b/drivers/irqchip/irq-ath79-intc.c +@@ -0,0 +1,142 @@ ++/* ++ * Atheros AR71xx/AR724x/AR913x specific interrupt handling ++ * ++ * Copyright (C) 2018 John Crispin ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define ATH79_MAX_INTC_CASCADE 3 ++ ++struct ath79_intc { ++ struct irq_chip chip; ++ u32 irq; ++ u32 pending_mask; ++ u32 int_status; ++ u32 irq_mask[ATH79_MAX_INTC_CASCADE]; ++ u32 irq_wb_chan[ATH79_MAX_INTC_CASCADE]; ++}; ++ ++static void ath79_intc_irq_handler(struct irq_desc *desc) ++{ ++ struct irq_domain *domain = irq_desc_get_handler_data(desc); ++ struct ath79_intc *intc = domain->host_data; ++ u32 pending; ++ ++ pending = ath79_reset_rr(intc->int_status); ++ pending &= intc->pending_mask; ++ ++ if (pending) { ++ int i; ++ ++ for (i = 0; i < domain->hwirq_max; i++) ++ if (pending & intc->irq_mask[i]) { ++ if (intc->irq_wb_chan[i] != 0xffffffff) ++ ath79_ddr_wb_flush(intc->irq_wb_chan[i]); ++ generic_handle_irq(irq_find_mapping(domain, i)); ++ } ++ } else { ++ spurious_interrupt(); ++ } ++} ++ ++static void ath79_intc_irq_enable(struct irq_data *d) ++{ ++ struct ath79_intc *intc = d->domain->host_data; ++ enable_irq(intc->irq); ++} ++ ++static void ath79_intc_irq_disable(struct irq_data *d) ++{ ++ struct ath79_intc *intc = d->domain->host_data; ++ disable_irq(intc->irq); ++} ++ ++static int ath79_intc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw) ++{ ++ struct ath79_intc *intc = d->host_data; ++ ++ irq_set_chip_and_handler(irq, &intc->chip, handle_level_irq); ++ ++ return 0; ++} ++ ++static const struct irq_domain_ops ath79_irq_domain_ops = { ++ .xlate = irq_domain_xlate_onecell, ++ .map = ath79_intc_map, ++}; ++ ++static int __init ath79_intc_of_init( ++ struct device_node *node, struct device_node *parent) ++{ ++ struct irq_domain *domain; ++ struct ath79_intc *intc; ++ int cnt, cntwb, i, err; ++ ++ cnt = of_property_count_u32_elems(node, "qca,pending-bits"); ++ if (cnt > ATH79_MAX_INTC_CASCADE) ++ panic("Too many INTC pending bits\n"); ++ ++ intc = kzalloc(sizeof(*intc), GFP_KERNEL); ++ if (!intc) ++ panic("Failed to allocate INTC memory\n"); ++ intc->chip = dummy_irq_chip; ++ intc->chip.name = "INTC"; ++ intc->chip.irq_disable = ath79_intc_irq_disable; ++ intc->chip.irq_enable = ath79_intc_irq_enable; ++ ++ if (of_property_read_u32(node, "qca,int-status-addr", &intc->int_status) < 0) { ++ panic("Missing address of interrupt status register\n"); ++ } ++ ++ of_property_read_u32_array(node, "qca,pending-bits", intc->irq_mask, cnt); ++ for (i = 0; i < cnt; i++) { ++ intc->pending_mask |= intc->irq_mask[i]; ++ intc->irq_wb_chan[i] = 0xffffffff; ++ } ++ ++ cntwb = of_count_phandle_with_args( ++ node, "qca,ddr-wb-channels", "#qca,ddr-wb-channel-cells"); ++ ++ for (i = 0; i < cntwb; i++) { ++ struct of_phandle_args args; ++ u32 irq = i; ++ ++ of_property_read_u32_index( ++ node, "qca,ddr-wb-channel-interrupts", i, &irq); ++ if (irq >= ATH79_MAX_INTC_CASCADE) ++ continue; ++ ++ err = of_parse_phandle_with_args( ++ node, "qca,ddr-wb-channels", ++ "#qca,ddr-wb-channel-cells", ++ i, &args); ++ if (err) ++ return err; ++ ++ intc->irq_wb_chan[irq] = args.args[0]; ++ } ++ ++ intc->irq = irq_of_parse_and_map(node, 0); ++ if (!intc->irq) ++ panic("Failed to get INTC IRQ"); ++ ++ domain = irq_domain_add_linear(node, cnt, &ath79_irq_domain_ops, intc); ++ irq_set_chained_handler_and_data(intc->irq, ath79_intc_irq_handler, domain); ++ ++ return 0; ++} ++IRQCHIP_DECLARE(ath79_intc, "qca,ar9340-intc", ++ ath79_intc_of_init); diff --git a/target/linux/ath79/patches-6.1/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch b/target/linux/ath79/patches-6.1/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch new file mode 100644 index 0000000000..13117d9a8e --- /dev/null +++ b/target/linux/ath79/patches-6.1/301-irqchip-irq-ath79-cpu-drop-OF-init-helper.patch @@ -0,0 +1,23 @@ +From e029f998594f151008ecbfa024e2957edd2a5189 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Tue, 6 Mar 2018 09:58:19 +0100 +Subject: [PATCH 08/33] irqchip/irq-ath79-cpu: drop !OF init helper + +Signed-off-by: John Crispin +--- + drivers/irqchip/irq-ath79-cpu.c | 7 ------- + 1 file changed, 7 deletions(-) + +--- a/drivers/irqchip/irq-ath79-cpu.c ++++ b/drivers/irqchip/irq-ath79-cpu.c +@@ -85,10 +85,3 @@ static int __init ar79_cpu_intc_of_init( + } + IRQCHIP_DECLARE(ar79_cpu_intc, "qca,ar7100-cpu-intc", + ar79_cpu_intc_of_init); +- +-void __init ath79_cpu_irq_init(unsigned irq_wb_chan2, unsigned irq_wb_chan3) +-{ +- irq_wb_chan[2] = irq_wb_chan2; +- irq_wb_chan[3] = irq_wb_chan3; +- mips_cpu_irq_init(); +-} diff --git a/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch b/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch new file mode 100644 index 0000000000..cf0a75c791 --- /dev/null +++ b/target/linux/ath79/patches-6.1/310-dt-bindings-PCI-qcom-ar7100-adds-binding-doc.patch @@ -0,0 +1,57 @@ +From 4a4f869ec58ed8910b9b2e68d0eee50957e9bb20 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Mon, 25 Jun 2018 15:52:10 +0200 +Subject: [PATCH 17/33] dt-bindings: PCI: qcom,ar7100: adds binding doc + +With the driver being converted from platform_data to pure OF, we need to +also add some docs. + +Cc: Rob Herring +Cc: devicetree@vger.kernel.org +Signed-off-by: John Crispin +--- + .../devicetree/bindings/pci/qcom,ar7100-pci.txt | 38 ++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + create mode 100644 Documentation/devicetree/bindings/pci/qcom,ar7100-pci.txt + +--- /dev/null ++++ b/Documentation/devicetree/bindings/pci/qcom,ar7100-pci.txt +@@ -0,0 +1,38 @@ ++* Qualcomm Atheros AR7100 PCI express root complex ++ ++Required properties: ++- compatible: should contain "qcom,ar7100-pci" to identify the core. ++- reg: Should contain the register ranges as listed in the reg-names property. ++- reg-names: Definition: Must include the following entries ++ - "cfg_base" IO Memory ++- #address-cells: set to <3> ++- #size-cells: set to <2> ++- ranges: ranges for the PCI memory and I/O regions ++- interrupt-map-mask and interrupt-map: standard PCI ++ properties to define the mapping of the PCIe interface to interrupt ++ numbers. ++- #interrupt-cells: set to <1> ++- interrupt-controller: define to enable the builtin IRQ cascade. ++ ++Optional properties: ++- interrupt-parent: phandle to the MIPS IRQ controller ++ ++* Example for ar7100 ++ pcie@180c0000 { ++ compatible = "qca,ar7100-pci"; ++ #address-cells = <3>; ++ #size-cells = <2>; ++ bus-range = <0x0 0x0>; ++ reg = <0x17010000 0x100>; ++ reg-names = "cfg_base"; ++ ranges = <0x2000000 0 0x10000000 0x10000000 0 0x07000000 ++ 0x1000000 0 0x00000000 0x00000000 0 0x00000001>; ++ interrupt-parent = <&cpuintc>; ++ interrupts = <2>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ ++ interrupt-map-mask = <0 0 0 1>; ++ interrupt-map = <0 0 0 0 &pcie0 0>; ++ }; diff --git a/target/linux/ath79/patches-6.1/311-MIPS-pci-ar71xx-convert-to-OF.patch b/target/linux/ath79/patches-6.1/311-MIPS-pci-ar71xx-convert-to-OF.patch new file mode 100644 index 0000000000..9a315aed0b --- /dev/null +++ b/target/linux/ath79/patches-6.1/311-MIPS-pci-ar71xx-convert-to-OF.patch @@ -0,0 +1,206 @@ +From 1855ab6b1d27f5b38a648baf57ff6a534afec26d Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Sat, 23 Jun 2018 15:07:23 +0200 +Subject: [PATCH 18/33] MIPS: pci-ar71xx: convert to OF + +With the ath79 target getting converted to pure OF, we can drop all the +platform data code and add the missing OF bits to the driver. We also add +a irq domain for the PCI/e controllers cascade, thus making it usable from +dts files. + +Signed-off-by: John Crispin +--- + arch/mips/pci/pci-ar71xx.c | 82 +++++++++++++++++++++++----------------------- + 1 file changed, 41 insertions(+), 41 deletions(-) + +--- a/arch/mips/pci/pci-ar71xx.c ++++ b/arch/mips/pci/pci-ar71xx.c +@@ -15,8 +15,11 @@ + #include + #include + #include ++#include + #include + #include ++#include ++#include + + #include + #include +@@ -46,12 +49,13 @@ + #define AR71XX_PCI_IRQ_COUNT 5 + + struct ar71xx_pci_controller { ++ struct device_node *np; + void __iomem *cfg_base; + int irq; +- int irq_base; + struct pci_controller pci_ctrl; + struct resource io_res; + struct resource mem_res; ++ struct irq_domain *domain; + }; + + /* Byte lane enable bits */ +@@ -225,29 +229,30 @@ static struct pci_ops ar71xx_pci_ops = { + + static void ar71xx_pci_irq_handler(struct irq_desc *desc) + { +- struct ar71xx_pci_controller *apc; + void __iomem *base = ath79_reset_base; ++ struct irq_chip *chip = irq_desc_get_chip(desc); ++ struct ar71xx_pci_controller *apc = irq_desc_get_handler_data(desc); + u32 pending; + +- apc = irq_desc_get_handler_data(desc); +- ++ chained_irq_enter(chip, desc); + pending = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_STATUS) & + __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); + + if (pending & AR71XX_PCI_INT_DEV0) +- generic_handle_irq(apc->irq_base + 0); ++ generic_handle_irq(irq_linear_revmap(apc->domain, 1)); + + else if (pending & AR71XX_PCI_INT_DEV1) +- generic_handle_irq(apc->irq_base + 1); ++ generic_handle_irq(irq_linear_revmap(apc->domain, 2)); + + else if (pending & AR71XX_PCI_INT_DEV2) +- generic_handle_irq(apc->irq_base + 2); ++ generic_handle_irq(irq_linear_revmap(apc->domain, 3)); + + else if (pending & AR71XX_PCI_INT_CORE) +- generic_handle_irq(apc->irq_base + 4); ++ generic_handle_irq(irq_linear_revmap(apc->domain, 4)); + + else + spurious_interrupt(); ++ chained_irq_exit(chip, desc); + } + + static void ar71xx_pci_irq_unmask(struct irq_data *d) +@@ -258,7 +263,7 @@ static void ar71xx_pci_irq_unmask(struct + u32 t; + + apc = irq_data_get_irq_chip_data(d); +- irq = d->irq - apc->irq_base; ++ irq = irq_linear_revmap(apc->domain, d->irq); + + t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); + __raw_writel(t | (1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE); +@@ -275,7 +280,7 @@ static void ar71xx_pci_irq_mask(struct i + u32 t; + + apc = irq_data_get_irq_chip_data(d); +- irq = d->irq - apc->irq_base; ++ irq = irq_linear_revmap(apc->domain, d->irq); + + t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); + __raw_writel(t & ~(1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE); +@@ -291,24 +296,31 @@ static struct irq_chip ar71xx_pci_irq_ch + .irq_mask_ack = ar71xx_pci_irq_mask, + }; + ++static int ar71xx_pci_irq_map(struct irq_domain *d, ++ unsigned int irq, irq_hw_number_t hw) ++{ ++ struct ar71xx_pci_controller *apc = d->host_data; ++ ++ irq_set_chip_and_handler(irq, &ar71xx_pci_irq_chip, handle_level_irq); ++ irq_set_chip_data(irq, apc); ++ ++ return 0; ++} ++ ++static const struct irq_domain_ops ar71xx_pci_domain_ops = { ++ .xlate = irq_domain_xlate_onecell, ++ .map = ar71xx_pci_irq_map, ++}; ++ + static void ar71xx_pci_irq_init(struct ar71xx_pci_controller *apc) + { + void __iomem *base = ath79_reset_base; +- int i; + + __raw_writel(0, base + AR71XX_RESET_REG_PCI_INT_ENABLE); + __raw_writel(0, base + AR71XX_RESET_REG_PCI_INT_STATUS); + +- BUILD_BUG_ON(ATH79_PCI_IRQ_COUNT < AR71XX_PCI_IRQ_COUNT); +- +- apc->irq_base = ATH79_PCI_IRQ_BASE; +- for (i = apc->irq_base; +- i < apc->irq_base + AR71XX_PCI_IRQ_COUNT; i++) { +- irq_set_chip_and_handler(i, &ar71xx_pci_irq_chip, +- handle_level_irq); +- irq_set_chip_data(i, apc); +- } +- ++ apc->domain = irq_domain_add_linear(apc->np, AR71XX_PCI_IRQ_COUNT, ++ &ar71xx_pci_domain_ops, apc); + irq_set_chained_handler_and_data(apc->irq, ar71xx_pci_irq_handler, + apc); + } +@@ -325,10 +337,14 @@ static void ar71xx_pci_reset(void) + mdelay(100); + } + ++static const struct of_device_id ar71xx_pci_ids[] = { ++ { .compatible = "qca,ar7100-pci" }, ++ {}, ++}; ++ + static int ar71xx_pci_probe(struct platform_device *pdev) + { + struct ar71xx_pci_controller *apc; +- struct resource *res; + u32 t; + + apc = devm_kzalloc(&pdev->dev, sizeof(struct ar71xx_pci_controller), +@@ -345,26 +361,6 @@ static int ar71xx_pci_probe(struct platf + if (apc->irq < 0) + return -EINVAL; + +- res = platform_get_resource_byname(pdev, IORESOURCE_IO, "io_base"); +- if (!res) +- return -EINVAL; +- +- apc->io_res.parent = res; +- apc->io_res.name = "PCI IO space"; +- apc->io_res.start = res->start; +- apc->io_res.end = res->end; +- apc->io_res.flags = IORESOURCE_IO; +- +- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mem_base"); +- if (!res) +- return -EINVAL; +- +- apc->mem_res.parent = res; +- apc->mem_res.name = "PCI memory space"; +- apc->mem_res.start = res->start; +- apc->mem_res.end = res->end; +- apc->mem_res.flags = IORESOURCE_MEM; +- + ar71xx_pci_reset(); + + /* setup COMMAND register */ +@@ -377,9 +373,11 @@ static int ar71xx_pci_probe(struct platf + + ar71xx_pci_irq_init(apc); + ++ apc->np = pdev->dev.of_node; + apc->pci_ctrl.pci_ops = &ar71xx_pci_ops; + apc->pci_ctrl.mem_resource = &apc->mem_res; + apc->pci_ctrl.io_resource = &apc->io_res; ++ pci_load_of_ranges(&apc->pci_ctrl, pdev->dev.of_node); + + register_pci_controller(&apc->pci_ctrl); + +@@ -390,6 +388,7 @@ static struct platform_driver ar71xx_pci + .probe = ar71xx_pci_probe, + .driver = { + .name = "ar71xx-pci", ++ .of_match_table = of_match_ptr(ar71xx_pci_ids), + }, + }; + diff --git a/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch b/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch new file mode 100644 index 0000000000..a32c9bdcde --- /dev/null +++ b/target/linux/ath79/patches-6.1/312-dt-bindings-PCI-qcom-ar7240-adds-binding-doc.patch @@ -0,0 +1,61 @@ +From ea27764bc3ef2a05decf3ae05edffc289cd0d93c Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Mon, 25 Jun 2018 15:52:02 +0200 +Subject: [PATCH 19/33] dt-bindings: PCI: qcom,ar7240: adds binding doc + +With the driver being converted from platform_data to pure OF, we need to +also add some docs. + +Cc: Rob Herring +Cc: devicetree@vger.kernel.org +Signed-off-by: John Crispin +--- + .../devicetree/bindings/pci/qcom,ar7240-pci.txt | 42 ++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + create mode 100644 Documentation/devicetree/bindings/pci/qcom,ar7240-pci.txt + +--- /dev/null ++++ b/Documentation/devicetree/bindings/pci/qcom,ar7240-pci.txt +@@ -0,0 +1,42 @@ ++* Qualcomm Atheros AR724X PCI express root complex ++ ++Required properties: ++- compatible: should contain "qcom,ar7240-pci" to identify the core. ++- reg: Should contain the register ranges as listed in the reg-names property. ++- reg-names: Definition: Must include the following entries ++ - "crp_base" Configuration registers ++ - "ctrl_base" Control registers ++ - "cfg_base" IO Memory ++- #address-cells: set to <3> ++- #size-cells: set to <2> ++- ranges: ranges for the PCI memory and I/O regions ++- interrupt-map-mask and interrupt-map: standard PCI ++ properties to define the mapping of the PCIe interface to interrupt ++ numbers. ++- #interrupt-cells: set to <1> ++- interrupt-parent: phandle to the MIPS IRQ controller ++ ++Optional properties: ++- interrupt-controller: define to enable the builtin IRQ cascade. ++ ++* Example for qca9557 ++ pcie@180c0000 { ++ compatible = "qcom,ar7240-pci"; ++ #address-cells = <3>; ++ #size-cells = <2>; ++ bus-range = <0x0 0x0>; ++ reg = <0x180c0000 0x1000>, ++ <0x180f0000 0x100>, ++ <0x14000000 0x1000>; ++ reg-names = "crp_base", "ctrl_base", "cfg_base"; ++ ranges = <0x2000000 0 0x10000000 0x10000000 0 0x04000000 ++ 0x1000000 0 0x00000000 0x00000000 0 0x00000001>; ++ interrupt-parent = <&intc2>; ++ interrupts = <1>; ++ ++ interrupt-controller; ++ #interrupt-cells = <1>; ++ ++ interrupt-map-mask = <0 0 0 1>; ++ interrupt-map = <0 0 0 0 &pcie0 0>; ++ }; diff --git a/target/linux/ath79/patches-6.1/313-MIPS-pci-ar724x-convert-to-OF.patch b/target/linux/ath79/patches-6.1/313-MIPS-pci-ar724x-convert-to-OF.patch new file mode 100644 index 0000000000..7927c1cbf5 --- /dev/null +++ b/target/linux/ath79/patches-6.1/313-MIPS-pci-ar724x-convert-to-OF.patch @@ -0,0 +1,213 @@ +From a522ee0199d5d3ea114ca2e211f6ac398d3e8e0b Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Sat, 23 Jun 2018 15:07:37 +0200 +Subject: [PATCH 20/33] MIPS: pci-ar724x: convert to OF + +With the ath79 target getting converted to pure OF, we can drop all the +platform data code and add the missing OF bits to the driver. We also add +a irq domain for the PCI/e controllers cascade, thus making it usable from +dts files. + +Signed-off-by: John Crispin +--- + arch/mips/pci/pci-ar724x.c | 88 ++++++++++++++++++++++------------------------ + 1 file changed, 42 insertions(+), 46 deletions(-) + +--- a/arch/mips/pci/pci-ar724x.c ++++ b/arch/mips/pci/pci-ar724x.c +@@ -11,8 +11,11 @@ + #include + #include + #include ++#include + #include + #include ++#include ++#include + + #define AR724X_PCI_REG_APP 0x00 + #define AR724X_PCI_REG_RESET 0x18 +@@ -42,17 +45,20 @@ struct ar724x_pci_controller { + void __iomem *crp_base; + + int irq; +- int irq_base; + + bool link_up; + bool bar0_is_cached; + u32 bar0_value; + ++ struct device_node *np; + struct pci_controller pci_controller; ++ struct irq_domain *domain; + struct resource io_res; + struct resource mem_res; + }; + ++static struct irq_chip ar724x_pci_irq_chip; ++ + static inline bool ar724x_pci_check_link(struct ar724x_pci_controller *apc) + { + u32 reset; +@@ -228,35 +234,31 @@ static struct pci_ops ar724x_pci_ops = { + + static void ar724x_pci_irq_handler(struct irq_desc *desc) + { +- struct ar724x_pci_controller *apc; +- void __iomem *base; ++ struct irq_chip *chip = irq_desc_get_chip(desc); ++ struct ar724x_pci_controller *apc = irq_desc_get_handler_data(desc); + u32 pending; + +- apc = irq_desc_get_handler_data(desc); +- base = apc->ctrl_base; +- +- pending = __raw_readl(base + AR724X_PCI_REG_INT_STATUS) & +- __raw_readl(base + AR724X_PCI_REG_INT_MASK); ++ chained_irq_enter(chip, desc); ++ pending = __raw_readl(apc->ctrl_base + AR724X_PCI_REG_INT_STATUS) & ++ __raw_readl(apc->ctrl_base + AR724X_PCI_REG_INT_MASK); + + if (pending & AR724X_PCI_INT_DEV0) +- generic_handle_irq(apc->irq_base + 0); +- ++ generic_handle_irq(irq_linear_revmap(apc->domain, 1)); + else + spurious_interrupt(); ++ chained_irq_exit(chip, desc); + } + + static void ar724x_pci_irq_unmask(struct irq_data *d) + { + struct ar724x_pci_controller *apc; + void __iomem *base; +- int offset; + u32 t; + + apc = irq_data_get_irq_chip_data(d); + base = apc->ctrl_base; +- offset = apc->irq_base - d->irq; + +- switch (offset) { ++ switch (irq_linear_revmap(apc->domain, d->irq)) { + case 0: + t = __raw_readl(base + AR724X_PCI_REG_INT_MASK); + __raw_writel(t | AR724X_PCI_INT_DEV0, +@@ -270,14 +272,12 @@ static void ar724x_pci_irq_mask(struct i + { + struct ar724x_pci_controller *apc; + void __iomem *base; +- int offset; + u32 t; + + apc = irq_data_get_irq_chip_data(d); + base = apc->ctrl_base; +- offset = apc->irq_base - d->irq; + +- switch (offset) { ++ switch (irq_linear_revmap(apc->domain, d->irq)) { + case 0: + t = __raw_readl(base + AR724X_PCI_REG_INT_MASK); + __raw_writel(t & ~AR724X_PCI_INT_DEV0, +@@ -302,26 +302,34 @@ static struct irq_chip ar724x_pci_irq_ch + .irq_mask_ack = ar724x_pci_irq_mask, + }; + ++static int ar724x_pci_irq_map(struct irq_domain *d, ++ unsigned int irq, irq_hw_number_t hw) ++{ ++ struct ar724x_pci_controller *apc = d->host_data; ++ ++ irq_set_chip_and_handler(irq, &ar724x_pci_irq_chip, handle_level_irq); ++ irq_set_chip_data(irq, apc); ++ ++ return 0; ++} ++ ++static const struct irq_domain_ops ar724x_pci_domain_ops = { ++ .xlate = irq_domain_xlate_onecell, ++ .map = ar724x_pci_irq_map, ++}; ++ + static void ar724x_pci_irq_init(struct ar724x_pci_controller *apc, + int id) + { + void __iomem *base; +- int i; + + base = apc->ctrl_base; + + __raw_writel(0, base + AR724X_PCI_REG_INT_MASK); + __raw_writel(0, base + AR724X_PCI_REG_INT_STATUS); + +- apc->irq_base = ATH79_PCI_IRQ_BASE + (id * AR724X_PCI_IRQ_COUNT); +- +- for (i = apc->irq_base; +- i < apc->irq_base + AR724X_PCI_IRQ_COUNT; i++) { +- irq_set_chip_and_handler(i, &ar724x_pci_irq_chip, +- handle_level_irq); +- irq_set_chip_data(i, apc); +- } +- ++ apc->domain = irq_domain_add_linear(apc->np, 2, ++ &ar724x_pci_domain_ops, apc); + irq_set_chained_handler_and_data(apc->irq, ar724x_pci_irq_handler, + apc); + } +@@ -360,7 +368,6 @@ static void ar724x_pci_hw_init(struct ar + static int ar724x_pci_probe(struct platform_device *pdev) + { + struct ar724x_pci_controller *apc; +- struct resource *res; + int id; + + id = pdev->id; +@@ -388,29 +395,11 @@ static int ar724x_pci_probe(struct platf + if (apc->irq < 0) + return -EINVAL; + +- res = platform_get_resource_byname(pdev, IORESOURCE_IO, "io_base"); +- if (!res) +- return -EINVAL; +- +- apc->io_res.parent = res; +- apc->io_res.name = "PCI IO space"; +- apc->io_res.start = res->start; +- apc->io_res.end = res->end; +- apc->io_res.flags = IORESOURCE_IO; +- +- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mem_base"); +- if (!res) +- return -EINVAL; +- +- apc->mem_res.parent = res; +- apc->mem_res.name = "PCI memory space"; +- apc->mem_res.start = res->start; +- apc->mem_res.end = res->end; +- apc->mem_res.flags = IORESOURCE_MEM; +- ++ apc->np = pdev->dev.of_node; + apc->pci_controller.pci_ops = &ar724x_pci_ops; + apc->pci_controller.io_resource = &apc->io_res; + apc->pci_controller.mem_resource = &apc->mem_res; ++ pci_load_of_ranges(&apc->pci_controller, pdev->dev.of_node); + + /* + * Do the full PCIE Root Complex Initialization Sequence if the PCIe +@@ -432,10 +421,16 @@ static int ar724x_pci_probe(struct platf + return 0; + } + ++static const struct of_device_id ar724x_pci_ids[] = { ++ { .compatible = "qcom,ar7240-pci" }, ++ {}, ++}; ++ + static struct platform_driver ar724x_pci_driver = { + .probe = ar724x_pci_probe, + .driver = { + .name = "ar724x-pci", ++ .of_match_table = of_match_ptr(ar724x_pci_ids), + }, + }; + diff --git a/target/linux/ath79/patches-6.1/314-MIPS-ath79-remove-irq-code-from-pci.patch b/target/linux/ath79/patches-6.1/314-MIPS-ath79-remove-irq-code-from-pci.patch new file mode 100644 index 0000000000..01549eec68 --- /dev/null +++ b/target/linux/ath79/patches-6.1/314-MIPS-ath79-remove-irq-code-from-pci.patch @@ -0,0 +1,149 @@ +From: John Crispin +Subject: ath79: fix remove irq code from pci driver patch + +This patch got mangled in the void while rebasing it. + +Submitted-by: John Crispin +--- + arch/mips/pci/pci-ar71xx.c | 107 ------------------ + 1 file changed, 141 deletions(-) + +--- a/arch/mips/pci/pci-ar71xx.c ++++ b/arch/mips/pci/pci-ar71xx.c +@@ -51,11 +51,9 @@ + struct ar71xx_pci_controller { + struct device_node *np; + void __iomem *cfg_base; +- int irq; + struct pci_controller pci_ctrl; + struct resource io_res; + struct resource mem_res; +- struct irq_domain *domain; + }; + + /* Byte lane enable bits */ +@@ -227,104 +225,6 @@ static struct pci_ops ar71xx_pci_ops = { + .write = ar71xx_pci_write_config, + }; + +-static void ar71xx_pci_irq_handler(struct irq_desc *desc) +-{ +- void __iomem *base = ath79_reset_base; +- struct irq_chip *chip = irq_desc_get_chip(desc); +- struct ar71xx_pci_controller *apc = irq_desc_get_handler_data(desc); +- u32 pending; +- +- chained_irq_enter(chip, desc); +- pending = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_STATUS) & +- __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); +- +- if (pending & AR71XX_PCI_INT_DEV0) +- generic_handle_irq(irq_linear_revmap(apc->domain, 1)); +- +- else if (pending & AR71XX_PCI_INT_DEV1) +- generic_handle_irq(irq_linear_revmap(apc->domain, 2)); +- +- else if (pending & AR71XX_PCI_INT_DEV2) +- generic_handle_irq(irq_linear_revmap(apc->domain, 3)); +- +- else if (pending & AR71XX_PCI_INT_CORE) +- generic_handle_irq(irq_linear_revmap(apc->domain, 4)); +- +- else +- spurious_interrupt(); +- chained_irq_exit(chip, desc); +-} +- +-static void ar71xx_pci_irq_unmask(struct irq_data *d) +-{ +- struct ar71xx_pci_controller *apc; +- unsigned int irq; +- void __iomem *base = ath79_reset_base; +- u32 t; +- +- apc = irq_data_get_irq_chip_data(d); +- irq = irq_linear_revmap(apc->domain, d->irq); +- +- t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); +- __raw_writel(t | (1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE); +- +- /* flush write */ +- __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); +-} +- +-static void ar71xx_pci_irq_mask(struct irq_data *d) +-{ +- struct ar71xx_pci_controller *apc; +- unsigned int irq; +- void __iomem *base = ath79_reset_base; +- u32 t; +- +- apc = irq_data_get_irq_chip_data(d); +- irq = irq_linear_revmap(apc->domain, d->irq); +- +- t = __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); +- __raw_writel(t & ~(1 << irq), base + AR71XX_RESET_REG_PCI_INT_ENABLE); +- +- /* flush write */ +- __raw_readl(base + AR71XX_RESET_REG_PCI_INT_ENABLE); +-} +- +-static struct irq_chip ar71xx_pci_irq_chip = { +- .name = "AR71XX PCI", +- .irq_mask = ar71xx_pci_irq_mask, +- .irq_unmask = ar71xx_pci_irq_unmask, +- .irq_mask_ack = ar71xx_pci_irq_mask, +-}; +- +-static int ar71xx_pci_irq_map(struct irq_domain *d, +- unsigned int irq, irq_hw_number_t hw) +-{ +- struct ar71xx_pci_controller *apc = d->host_data; +- +- irq_set_chip_and_handler(irq, &ar71xx_pci_irq_chip, handle_level_irq); +- irq_set_chip_data(irq, apc); +- +- return 0; +-} +- +-static const struct irq_domain_ops ar71xx_pci_domain_ops = { +- .xlate = irq_domain_xlate_onecell, +- .map = ar71xx_pci_irq_map, +-}; +- +-static void ar71xx_pci_irq_init(struct ar71xx_pci_controller *apc) +-{ +- void __iomem *base = ath79_reset_base; +- +- __raw_writel(0, base + AR71XX_RESET_REG_PCI_INT_ENABLE); +- __raw_writel(0, base + AR71XX_RESET_REG_PCI_INT_STATUS); +- +- apc->domain = irq_domain_add_linear(apc->np, AR71XX_PCI_IRQ_COUNT, +- &ar71xx_pci_domain_ops, apc); +- irq_set_chained_handler_and_data(apc->irq, ar71xx_pci_irq_handler, +- apc); +-} +- + static void ar71xx_pci_reset(void) + { + ath79_device_reset_set(AR71XX_RESET_PCI_BUS | AR71XX_RESET_PCI_CORE); +@@ -357,10 +257,6 @@ static int ar71xx_pci_probe(struct platf + if (IS_ERR(apc->cfg_base)) + return PTR_ERR(apc->cfg_base); + +- apc->irq = platform_get_irq(pdev, 0); +- if (apc->irq < 0) +- return -EINVAL; +- + ar71xx_pci_reset(); + + /* setup COMMAND register */ +@@ -371,8 +267,6 @@ static int ar71xx_pci_probe(struct platf + /* clear bus errors */ + ar71xx_pci_check_error(apc, 1); + +- ar71xx_pci_irq_init(apc); +- + apc->np = pdev->dev.of_node; + apc->pci_ctrl.pci_ops = &ar71xx_pci_ops; + apc->pci_ctrl.mem_resource = &apc->mem_res; diff --git a/target/linux/ath79/patches-6.1/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch b/target/linux/ath79/patches-6.1/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch new file mode 100644 index 0000000000..375dec8ba2 --- /dev/null +++ b/target/linux/ath79/patches-6.1/315-MIPS-pci-ar724x-add-QCA9550-reset-sequence.patch @@ -0,0 +1,130 @@ +From: David Bauer +Date: Sat, 11 Apr 2020 14:03:12 +0200 +Subject: MIPS: pci-ar724x: add QCA9550 reset sequence + +The QCA9550 family of SoCs have a slightly different reset +sequence compared to older chips. + +Normally the bootloader performs this sequence, however +some bootloader implementation expect the operating system +to clear the reset. + +Also get the resets from OF to support handling of the second +PCIe root-complex on the QCA9558. + +Signed-off-by: David Bauer + +--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h ++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h +@@ -390,6 +390,7 @@ + #define QCA955X_PLL_CPU_CONFIG_REG 0x00 + #define QCA955X_PLL_DDR_CONFIG_REG 0x04 + #define QCA955X_PLL_CLK_CTRL_REG 0x08 ++#define QCA955X_PLL_PCIE_CONFIG_REG 0x0c + #define QCA955X_PLL_ETH_XMII_CONTROL_REG 0x28 + #define QCA955X_PLL_ETH_SGMII_CONTROL_REG 0x48 + #define QCA955X_PLL_ETH_SGMII_SERDES_REG 0x4c +@@ -475,6 +476,9 @@ + #define QCA956X_PLL_CLK_CTRL_CPU_DDRCLK_FROM_CPUPLL BIT(21) + #define QCA956X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) + ++#define QCA955X_PLL_PCIE_CONFIG_PLL_PWD BIT(30) ++#define QCA955X_PLL_PCIE_CONFIG_PLL_BYPASS BIT(16) ++ + #define QCA956X_PLL_SWITCH_CLOCK_SPARE_I2C_CLK_SELB BIT(5) + #define QCA956X_PLL_SWITCH_CLOCK_SPARE_MDIO_CLK_SEL0_1 BIT(6) + #define QCA956X_PLL_SWITCH_CLOCK_SPARE_UART1_CLK_SEL BIT(7) +--- a/arch/mips/pci/pci-ar724x.c ++++ b/arch/mips/pci/pci-ar724x.c +@@ -8,6 +8,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -55,6 +56,9 @@ struct ar724x_pci_controller { + struct irq_domain *domain; + struct resource io_res; + struct resource mem_res; ++ ++ struct reset_control *hc_reset; ++ struct reset_control *phy_reset; + }; + + static struct irq_chip ar724x_pci_irq_chip; +@@ -340,18 +344,30 @@ static void ar724x_pci_hw_init(struct ar + int wait = 0; + + /* deassert PCIe host controller and PCIe PHY reset */ +- ath79_device_reset_clear(AR724X_RESET_PCIE); +- ath79_device_reset_clear(AR724X_RESET_PCIE_PHY); ++ reset_control_deassert(apc->hc_reset); ++ reset_control_deassert(apc->phy_reset); + +- /* remove the reset of the PCIE PLL */ +- ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG); +- ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_RESET; +- ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl); +- +- /* deassert bypass for the PCIE PLL */ +- ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG); +- ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS; +- ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl); ++ if (of_device_is_compatible(apc->np, "qcom,qca9550-pci")) { ++ /* remove the reset of the PCIE PLL */ ++ ppl = ath79_pll_rr(QCA955X_PLL_PCIE_CONFIG_REG); ++ ppl &= ~QCA955X_PLL_PCIE_CONFIG_PLL_PWD; ++ ath79_pll_wr(QCA955X_PLL_PCIE_CONFIG_REG, ppl); ++ ++ /* deassert bypass for the PCIE PLL */ ++ ppl = ath79_pll_rr(QCA955X_PLL_PCIE_CONFIG_REG); ++ ppl &= ~QCA955X_PLL_PCIE_CONFIG_PLL_BYPASS; ++ ath79_pll_wr(QCA955X_PLL_PCIE_CONFIG_REG, ppl); ++ } else { ++ /* remove the reset of the PCIE PLL */ ++ ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG); ++ ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_RESET; ++ ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl); ++ ++ /* deassert bypass for the PCIE PLL */ ++ ppl = ath79_pll_rr(AR724X_PLL_REG_PCIE_CONFIG); ++ ppl &= ~AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS; ++ ath79_pll_wr(AR724X_PLL_REG_PCIE_CONFIG, ppl); ++ } + + /* set PCIE Application Control to ready */ + app = __raw_readl(apc->ctrl_base + AR724X_PCI_REG_APP); +@@ -395,6 +411,14 @@ static int ar724x_pci_probe(struct platf + if (apc->irq < 0) + return -EINVAL; + ++ apc->hc_reset = devm_reset_control_get_exclusive(&pdev->dev, "hc"); ++ if (IS_ERR(apc->hc_reset)) ++ return PTR_ERR(apc->hc_reset); ++ ++ apc->phy_reset = devm_reset_control_get_exclusive(&pdev->dev, "phy"); ++ if (IS_ERR(apc->phy_reset)) ++ return PTR_ERR(apc->phy_reset); ++ + apc->np = pdev->dev.of_node; + apc->pci_controller.pci_ops = &ar724x_pci_ops; + apc->pci_controller.io_resource = &apc->io_res; +@@ -405,7 +429,7 @@ static int ar724x_pci_probe(struct platf + * Do the full PCIE Root Complex Initialization Sequence if the PCIe + * host controller is in reset. + */ +- if (ath79_reset_rr(AR724X_RESET_REG_RESET_MODULE) & AR724X_RESET_PCIE) ++ if (reset_control_status(apc->hc_reset)) + ar724x_pci_hw_init(apc); + + apc->link_up = ar724x_pci_check_link(apc); +@@ -423,6 +447,7 @@ static int ar724x_pci_probe(struct platf + + static const struct of_device_id ar724x_pci_ids[] = { + { .compatible = "qcom,ar7240-pci" }, ++ { .compatible = "qcom,qca9550-pci" }, + {}, + }; + diff --git a/target/linux/ath79/patches-6.1/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch b/target/linux/ath79/patches-6.1/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch new file mode 100644 index 0000000000..1e2715b84c --- /dev/null +++ b/target/linux/ath79/patches-6.1/316-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch @@ -0,0 +1,109 @@ +From: Gabor Juhos +Subject: [PATCH] ar71xx: swizzle address for PCI byte/word access on AR71xx + +Closes #11683. + +SVN-Revision: 32639 +--- + .../mips/include/asm/mach-ath79/mangle-port.h | 111 ++++++++++++++++++ + 1 file changed, 111 insertions(+) + create mode 100644 arch/mips/include/asm/mach-ath79/mangle-port.h + +--- /dev/null ++++ b/arch/mips/include/asm/mach-ath79/mangle-port.h +@@ -0,0 +1,37 @@ ++/* ++ * Copyright (C) 2012 Gabor Juhos ++ * ++ * This file was derived from: inlude/asm-mips/mach-generic/mangle-port.h ++ * Copyright (C) 2003, 2004 Ralf Baechle ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#ifndef __ASM_MACH_ATH79_MANGLE_PORT_H ++#define __ASM_MACH_ATH79_MANGLE_PORT_H ++ ++#ifdef CONFIG_PCI_AR71XX ++extern unsigned long (ath79_pci_swizzle_b)(unsigned long port); ++extern unsigned long (ath79_pci_swizzle_w)(unsigned long port); ++#else ++#define ath79_pci_swizzle_b(port) (port) ++#define ath79_pci_swizzle_w(port) (port) ++#endif ++ ++#define __swizzle_addr_b(port) ath79_pci_swizzle_b(port) ++#define __swizzle_addr_w(port) ath79_pci_swizzle_w(port) ++#define __swizzle_addr_l(port) (port) ++#define __swizzle_addr_q(port) (port) ++ ++# define ioswabb(a, x) (x) ++# define __mem_ioswabb(a, x) (x) ++# define ioswabw(a, x) (x) ++# define __mem_ioswabw(a, x) cpu_to_le16(x) ++# define ioswabl(a, x) (x) ++# define __mem_ioswabl(a, x) cpu_to_le32(x) ++# define ioswabq(a, x) (x) ++# define __mem_ioswabq(a, x) cpu_to_le64(x) ++ ++#endif /* __ASM_MACH_ATH79_MANGLE_PORT_H */ +--- a/arch/mips/pci/pci-ar71xx.c ++++ b/arch/mips/pci/pci-ar71xx.c +@@ -68,6 +68,45 @@ static const u32 ar71xx_pci_read_mask[8] + 0, 0xff, 0xffff, 0, 0xffffffff, 0, 0, 0 + }; + ++static unsigned long (*__ath79_pci_swizzle_b)(unsigned long port); ++static unsigned long (*__ath79_pci_swizzle_w)(unsigned long port); ++ ++static inline bool ar71xx_is_pci_addr(unsigned long port) ++{ ++ unsigned long phys = CPHYSADDR(port); ++ ++ return (phys >= AR71XX_PCI_MEM_BASE && ++ phys < AR71XX_PCI_MEM_BASE + AR71XX_PCI_MEM_SIZE); ++} ++ ++static unsigned long ar71xx_pci_swizzle_b(unsigned long port) ++{ ++ return ar71xx_is_pci_addr(port) ? port ^ 3 : port; ++} ++ ++static unsigned long ar71xx_pci_swizzle_w(unsigned long port) ++{ ++ return ar71xx_is_pci_addr(port) ? port ^ 2 : port; ++} ++ ++unsigned long ath79_pci_swizzle_b(unsigned long port) ++{ ++ if (__ath79_pci_swizzle_b) ++ return __ath79_pci_swizzle_b(port); ++ ++ return port; ++} ++EXPORT_SYMBOL(ath79_pci_swizzle_b); ++ ++unsigned long ath79_pci_swizzle_w(unsigned long port) ++{ ++ if (__ath79_pci_swizzle_w) ++ return __ath79_pci_swizzle_w(port); ++ ++ return port; ++} ++EXPORT_SYMBOL(ath79_pci_swizzle_w); ++ + static inline u32 ar71xx_pci_get_ble(int where, int size, int local) + { + u32 t; +@@ -275,6 +314,9 @@ static int ar71xx_pci_probe(struct platf + + register_pci_controller(&apc->pci_ctrl); + ++ __ath79_pci_swizzle_b = ar71xx_pci_swizzle_b; ++ __ath79_pci_swizzle_w = ar71xx_pci_swizzle_w; ++ + return 0; + } + diff --git a/target/linux/ath79/patches-6.1/330-missing-registers.patch b/target/linux/ath79/patches-6.1/330-missing-registers.patch new file mode 100644 index 0000000000..74789437ec --- /dev/null +++ b/target/linux/ath79/patches-6.1/330-missing-registers.patch @@ -0,0 +1,20 @@ +From: Christian Lamparter +Subject: [PATCH] ath79: gmac: add parsers for rxd(v)- and tx(d|en)-delay for + + ath79: gmac: add parsers for rxd(v)- and tx(d|en)-delay for AR9344 + + Signed-off-by: Christian Lamparter + +--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h ++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h +@@ -1231,6 +1231,10 @@ + #define AR934X_ETH_CFG_RDV_DELAY BIT(16) + #define AR934X_ETH_CFG_RDV_DELAY_MASK 0x3 + #define AR934X_ETH_CFG_RDV_DELAY_SHIFT 16 ++#define AR934X_ETH_CFG_TXD_DELAY_MASK 0x3 ++#define AR934X_ETH_CFG_TXD_DELAY_SHIFT 18 ++#define AR934X_ETH_CFG_TXE_DELAY_MASK 0x3 ++#define AR934X_ETH_CFG_TXE_DELAY_SHIFT 20 + + /* + * QCA953X GMAC Interface diff --git a/target/linux/ath79/patches-6.1/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch b/target/linux/ath79/patches-6.1/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch new file mode 100644 index 0000000000..c2f228dfe1 --- /dev/null +++ b/target/linux/ath79/patches-6.1/331-MIPS-ath79-add-missing-QCA955x-GMAC-registers.patch @@ -0,0 +1,90 @@ +From 60efe35257b063ce584968f9f80b437030ce6ba6 Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Mon, 18 Mar 2019 00:54:06 +0100 +Subject: [PATCH] MIPS: ath79: add missing QCA955x GMAC registers + +This adds missing GMAC register definitions for the Qualcomm Atheros +QCA955X series MIPS SoCs. + +They originate from the platforms U-Boot code and the AVM FRITZ!WLAN +Repeater 450E's GPL tarball. + +Signed-off-by: David Bauer +--- + .../mips/include/asm/mach-ath79/ar71xx_regs.h | 54 +++++++++++++++++++ + 1 file changed, 54 insertions(+) + +--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h ++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h +@@ -1251,7 +1251,12 @@ + */ + + #define QCA955X_GMAC_REG_ETH_CFG 0x00 ++#define QCA955X_GMAC_REG_SGMII_RESET 0x14 + #define QCA955X_GMAC_REG_SGMII_SERDES 0x18 ++#define QCA955X_GMAC_REG_MR_AN_CONTROL 0x1c ++#define QCA955X_GMAC_REG_MR_AN_STATUS 0x20 ++#define QCA955X_GMAC_REG_SGMII_CONFIG 0x34 ++#define QCA955X_GMAC_REG_SGMII_DEBUG 0x58 + + #define QCA955X_ETH_CFG_RGMII_EN BIT(0) + #define QCA955X_ETH_CFG_MII_GE0 BIT(1) +@@ -1273,9 +1278,58 @@ + #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 + #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 + ++#define QCA955X_SGMII_RESET_RX_CLK_N_RESET 0 ++#define QCA955X_SGMII_RESET_RX_CLK_N BIT(0) ++#define QCA955X_SGMII_RESET_TX_CLK_N BIT(1) ++#define QCA955X_SGMII_RESET_RX_125M_N BIT(2) ++#define QCA955X_SGMII_RESET_TX_125M_N BIT(3) ++#define QCA955X_SGMII_RESET_HW_RX_125M_N BIT(4) ++ + #define QCA955X_SGMII_SERDES_LOCK_DETECT_STATUS BIT(15) + #define QCA955X_SGMII_SERDES_RES_CALIBRATION_SHIFT 23 + #define QCA955X_SGMII_SERDES_RES_CALIBRATION_MASK 0xf ++ ++#define QCA955X_MR_AN_CONTROL_SPEED_SEL1 BIT(6) ++#define QCA955X_MR_AN_CONTROL_DUPLEX_MODE BIT(8) ++#define QCA955X_MR_AN_CONTROL_RESTART_AN BIT(9) ++#define QCA955X_MR_AN_CONTROL_POWER_DOWN BIT(11) ++#define QCA955X_MR_AN_CONTROL_AN_ENABLE BIT(12) ++#define QCA955X_MR_AN_CONTROL_SPEED_SEL0 BIT(13) ++#define QCA955X_MR_AN_CONTROL_LOOPBACK BIT(14) ++#define QCA955X_MR_AN_CONTROL_PHY_RESET BIT(15) ++ ++#define QCA955X_MR_AN_STATUS_EXT_CAP BIT(0) ++#define QCA955X_MR_AN_STATUS_LINK_UP BIT(2) ++#define QCA955X_MR_AN_STATUS_AN_ABILITY BIT(3) ++#define QCA955X_MR_AN_STATUS_REMOTE_FAULT BIT(4) ++#define QCA955X_MR_AN_STATUS_AN_COMPLETE BIT(5) ++#define QCA955X_MR_AN_STATUS_NO_PREAMBLE BIT(6) ++#define QCA955X_MR_AN_STATUS_BASE_PAGE BIT(7) ++ ++#define QCA955X_SGMII_CONFIG_MODE_CTRL_SHIFT 0 ++#define QCA955X_SGMII_CONFIG_MODE_CTRL_MASK 0x7 ++#define QCA955X_SGMII_CONFIG_ENABLE_SGMII_TX_PAUSE BIT(3) ++#define QCA955X_SGMII_CONFIG_MR_REG4_CHANGED BIT(4) ++#define QCA955X_SGMII_CONFIG_FORCE_SPEED BIT(5) ++#define QCA955X_SGMII_CONFIG_SPEED_SHIFT 6 ++#define QCA955X_SGMII_CONFIG_SPEED_MASK 0xc0 ++#define QCA955X_SGMII_CONFIG_REMOTE_PHY_LOOPBACK BIT(8) ++#define QCA955X_SGMII_CONFIG_NEXT_PAGE_LOADED BIT(9) ++#define QCA955X_SGMII_CONFIG_MDIO_ENABLE BIT(10) ++#define QCA955X_SGMII_CONFIG_MDIO_PULSE BIT(11) ++#define QCA955X_SGMII_CONFIG_MDIO_COMPLETE BIT(12) ++#define QCA955X_SGMII_CONFIG_PRBS_ENABLE BIT(13) ++#define QCA955X_SGMII_CONFIG_BERT_ENABLE BIT(14) ++ ++#define QCA955X_SGMII_DEBUG_TX_STATE_MASK 0xff ++#define QCA955X_SGMII_DEBUG_TX_STATE_SHIFT 0 ++#define QCA955X_SGMII_DEBUG_RX_STATE_MASK 0xff00 ++#define QCA955X_SGMII_DEBUG_RX_STATE_SHIFT 8 ++#define QCA955X_SGMII_DEBUG_RX_SYNC_STATE_MASK 0xff0000 ++#define QCA955X_SGMII_DEBUG_RX_SYNC_STATE_SHIFT 16 ++#define QCA955X_SGMII_DEBUG_ARB_STATE_MASK 0xf000000 ++#define QCA955X_SGMII_DEBUG_ARB_STATE_SHIFT 24 ++ + /* + * QCA956X GMAC Interface + */ diff --git a/target/linux/ath79/patches-6.1/332-ath79-sgmii-config.patch b/target/linux/ath79/patches-6.1/332-ath79-sgmii-config.patch new file mode 100644 index 0000000000..a6a50e4a8a --- /dev/null +++ b/target/linux/ath79/patches-6.1/332-ath79-sgmii-config.patch @@ -0,0 +1,30 @@ +From: David Bauer +Subject: [PATCH] ath79: force SGMII SerDes mode to MAC operation + +The mode on the SGMII SerDes on the QCA9563 is 1000 Base-X by default. +This only allows for 1000 Mbit/s links, however when used with an SGMII +PHY in 100 Mbit/s link mode, the link remains dead. + +This strictly has nothing to do with the SerDes calibration, however it +is done at the same point in the QCA reference U-Boot which is the +blueprint for everything happening here. As the current state is more or +less a hack, this should be fine. + +This fixes the issues outlined above on a TP-Link EAP-225 Outdoor. + +Reported-by: Tom Herbers +Tested-by: Tom Herbers +Submitted-by: David Bauer +--- + arch/mips/include/asm/mach-ath79/ar71xx_regs.h | 1 + + 1 files changed, 1 insertion(+) + +--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h ++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h +@@ -1380,5 +1380,6 @@ + + #define QCA956X_SGMII_CONFIG_MODE_CTRL_SHIFT 0 + #define QCA956X_SGMII_CONFIG_MODE_CTRL_MASK 0x7 ++#define QCA956X_SGMII_CONFIG_MODE_CTRL_SGMII_MAC 0x2 + + #endif /* __ASM_MACH_AR71XX_REGS_H */ diff --git a/target/linux/ath79/patches-6.1/340-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-6.1/340-register_gpio_driver_earlier.patch new file mode 100644 index 0000000000..48ce7e1d71 --- /dev/null +++ b/target/linux/ath79/patches-6.1/340-register_gpio_driver_earlier.patch @@ -0,0 +1,26 @@ +From: John Crispin +Subject: ath79: Register GPIO driver earlier + +HACK: register the GPIO driver earlier to ensure that gpio_request calls +from mach files succeed. + +Submitted-by: John Crispin +--- + drivers/gpio/gpio-ath79.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/drivers/gpio/gpio-ath79.c ++++ b/drivers/gpio/gpio-ath79.c +@@ -301,7 +301,11 @@ static struct platform_driver ath79_gpio + .probe = ath79_gpio_probe, + }; + +-module_platform_driver(ath79_gpio_driver); ++static int __init ath79_gpio_init(void) ++{ ++ return platform_driver_register(&ath79_gpio_driver); ++} ++postcore_initcall(ath79_gpio_init); + + MODULE_DESCRIPTION("Atheros AR71XX/AR724X/AR913X GPIO API support"); + MODULE_LICENSE("GPL v2"); diff --git a/target/linux/ath79/patches-6.1/350-MIPS-ath79-ath9k-exports.patch b/target/linux/ath79/patches-6.1/350-MIPS-ath79-ath9k-exports.patch new file mode 100644 index 0000000000..e460fe58f3 --- /dev/null +++ b/target/linux/ath79/patches-6.1/350-MIPS-ath79-ath9k-exports.patch @@ -0,0 +1,36 @@ +From: John Crispin +Subject: [PATCH] ath79: make ahb wifi work + +Submitted-by: John Crispin +--- + arch/mips/ath79/common.c | 3 +++ + mips/include/asm/mach-ath79/ath79.h | 1+ + 1 file changed, 4 insertions(+) + +--- a/arch/mips/ath79/common.c ++++ b/arch/mips/ath79/common.c +@@ -31,11 +31,13 @@ EXPORT_SYMBOL_GPL(ath79_ddr_freq); + + enum ath79_soc_type ath79_soc; + unsigned int ath79_soc_rev; ++EXPORT_SYMBOL_GPL(ath79_soc_rev); + + void __iomem *ath79_pll_base; + void __iomem *ath79_reset_base; + EXPORT_SYMBOL_GPL(ath79_reset_base); +-static void __iomem *ath79_ddr_base; ++void __iomem *ath79_ddr_base; ++EXPORT_SYMBOL_GPL(ath79_ddr_base); + static void __iomem *ath79_ddr_wb_flush_base; + static void __iomem *ath79_ddr_pci_win_base; + +--- a/arch/mips/include/asm/mach-ath79/ath79.h ++++ b/arch/mips/include/asm/mach-ath79/ath79.h +@@ -149,6 +149,7 @@ void ath79_ddr_wb_flush(unsigned int reg + void ath79_ddr_set_pci_windows(void); + + extern void __iomem *ath79_pll_base; ++extern void __iomem *ath79_ddr_base; + extern void __iomem *ath79_reset_base; + + static inline void ath79_pll_wr(unsigned reg, u32 val) diff --git a/target/linux/ath79/patches-6.1/351-MIPS-ath79-common-exports.patch b/target/linux/ath79/patches-6.1/351-MIPS-ath79-common-exports.patch new file mode 100644 index 0000000000..befcf2d50f --- /dev/null +++ b/target/linux/ath79/patches-6.1/351-MIPS-ath79-common-exports.patch @@ -0,0 +1,26 @@ +From: Luiz Angelo Daros de Luca +Subject: [PATCH] ath79: export ath79_pll_base + +This symbol is declared as extern but nobody exported it. +Any module including arch/mips/include/asm/mach-ath79/ath79.h +will not build. Without this export, ag71xx.ko will not build +as a module and the build will fail like this: + +ERROR: modpost: "ath79_pll_base" [drivers/net/ethernet/atheros/ag71xx/ag71xx.ko] undefined! + +The ath79_pll_base symbol is accessed in the ath79_pll_wr() inline function. + +--- + arch/mips/ath79/common.c | 1 + + 1 file changed, 1 insertions(+) + +--- a/arch/mips/ath79/common.c ++++ b/arch/mips/ath79/common.c +@@ -34,6 +34,7 @@ unsigned int ath79_soc_rev; + EXPORT_SYMBOL_GPL(ath79_soc_rev); + + void __iomem *ath79_pll_base; ++EXPORT_SYMBOL_GPL(ath79_pll_base); + void __iomem *ath79_reset_base; + EXPORT_SYMBOL_GPL(ath79_reset_base); + void __iomem *ath79_ddr_base; diff --git a/target/linux/ath79/patches-6.1/360-MIPS-ath79-export-UART1-reference-clock.patch b/target/linux/ath79/patches-6.1/360-MIPS-ath79-export-UART1-reference-clock.patch new file mode 100644 index 0000000000..b24ff21692 --- /dev/null +++ b/target/linux/ath79/patches-6.1/360-MIPS-ath79-export-UART1-reference-clock.patch @@ -0,0 +1,67 @@ +From: Daniel Golle +Subject: [PATCH] ath79: add support for Atheros AR934x HS UART + +AR934x chips also got the 'old' qca,ar9330-uart in addition to the +'new' ns16550a compatible one. Add support for UART1 clock selector as +well as device-tree bindings in ar934x.dtsi to make use of that uart. + +Reported-by: Piotr Dymacz +Submitted-by: Daniel Golle +--- + arch/mips/ath79/clock.c | 7 +++++++ + .../mips/include/asm/mach-ath79/ar71xx_regs.h | 1 + + include/dt-bindings/clock/ath79-clk.h | 3 ++- + 3 files changed, 10 insertions(+), 1 deletion(-) + +--- a/arch/mips/ath79/clock.c ++++ b/arch/mips/ath79/clock.c +@@ -40,6 +40,7 @@ static const char * const clk_names[ATH7 + [ATH79_CLK_AHB] = "ahb", + [ATH79_CLK_REF] = "ref", + [ATH79_CLK_MDIO] = "mdio", ++ [ATH79_CLK_UART1] = "uart1", + }; + + static const char * __init ath79_clk_name(int type) +@@ -344,6 +345,9 @@ static void __init ar934x_clocks_init(vo + if (clk_ctrl & AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL) + ath79_set_clk(ATH79_CLK_MDIO, 100 * 1000 * 1000); + ++ if (clk_ctrl & AR934X_PLL_SWITCH_CLOCK_CONTROL_UART1_CLK_SEL) ++ ath79_set_clk(ATH79_CLK_UART1, 100 * 1000 * 1000); ++ + iounmap(dpll_base); + } + +@@ -649,6 +653,9 @@ static void __init ath79_clocks_init_dt( + if (!clks[ATH79_CLK_MDIO]) + clks[ATH79_CLK_MDIO] = clks[ATH79_CLK_REF]; + ++ if (!clks[ATH79_CLK_UART1]) ++ clks[ATH79_CLK_UART1] = clks[ATH79_CLK_REF]; ++ + if (of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data)) { + pr_err("%pOF: could not register clk provider\n", np); + goto err_iounmap; +--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h ++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h +@@ -348,6 +348,7 @@ + #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) + + #define AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL BIT(6) ++#define AR934X_PLL_SWITCH_CLOCK_CONTROL_UART1_CLK_SEL BIT(7) + + #define QCA953X_PLL_CPU_CONFIG_REG 0x00 + #define QCA953X_PLL_DDR_CONFIG_REG 0x04 +--- a/include/dt-bindings/clock/ath79-clk.h ++++ b/include/dt-bindings/clock/ath79-clk.h +@@ -11,7 +11,8 @@ + #define ATH79_CLK_AHB 2 + #define ATH79_CLK_REF 3 + #define ATH79_CLK_MDIO 4 ++#define ATH79_CLK_UART1 5 + +-#define ATH79_CLK_END 5 ++#define ATH79_CLK_END 6 + + #endif /* __DT_BINDINGS_ATH79_CLK_H */ diff --git a/target/linux/ath79/patches-6.1/370-MIPS-ath79-sanitize-symbols.patch b/target/linux/ath79/patches-6.1/370-MIPS-ath79-sanitize-symbols.patch new file mode 100644 index 0000000000..eac17c2b50 --- /dev/null +++ b/target/linux/ath79/patches-6.1/370-MIPS-ath79-sanitize-symbols.patch @@ -0,0 +1,93 @@ +From 3fc8585cf76022dba7496627074d42af88c30718 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Sat, 23 Jun 2018 15:16:55 +0200 +Subject: [PATCH 32/33] MIPS: ath79: sanitize symbols + +We no longer need to select which SoCs are supported as the whole arch +code is always built. So lets drop all the SoC symbols + +Signed-off-by: John Crispin +--- + arch/mips/Kconfig | 2 ++ + arch/mips/ath79/Kconfig | 44 +++++--------------------------------------- + arch/mips/pci/Makefile | 2 +- + 3 files changed, 8 insertions(+), 40 deletions(-) + +--- a/arch/mips/Kconfig ++++ b/arch/mips/Kconfig +@@ -257,6 +257,8 @@ config ATH79 + select SYS_SUPPORTS_BIG_ENDIAN + select SYS_SUPPORTS_MIPS16 + select SYS_SUPPORTS_ZBOOT_UART_PROM ++ select HAVE_PCI ++ select USB_ARCH_HAS_EHCI + select USE_OF + select USB_EHCI_ROOT_HUB_TT if USB_EHCI_HCD_PLATFORM + help +--- a/arch/mips/ath79/Kconfig ++++ b/arch/mips/ath79/Kconfig +@@ -1,48 +1,14 @@ + # SPDX-License-Identifier: GPL-2.0 + if ATH79 + +-config SOC_AR71XX +- select HAVE_PCI +- def_bool n +- +-config SOC_AR724X +- select HAVE_PCI +- select PCI_AR724X if PCI +- def_bool n +- +-config SOC_AR913X +- def_bool n +- +-config SOC_AR933X +- def_bool n +- +-config SOC_AR934X +- select HAVE_PCI +- select PCI_AR724X if PCI +- def_bool n +- +-config SOC_QCA955X +- select HAVE_PCI +- select PCI_AR724X if PCI ++config PCI_AR71XX ++ bool "PCI support for AR7100 type SoCs" ++ depends on PCI + def_bool n + + config PCI_AR724X +- def_bool n +- +-config ATH79_DEV_GPIO_BUTTONS +- def_bool n +- +-config ATH79_DEV_LEDS_GPIO +- def_bool n +- +-config ATH79_DEV_SPI +- def_bool n +- +-config ATH79_DEV_USB +- def_bool n +- +-config ATH79_DEV_WMAC +- depends on (SOC_AR913X || SOC_AR933X || SOC_AR934X || SOC_QCA955X) ++ bool "PCI support for AR724x type SoCs" ++ depends on PCI + def_bool n + + endif +--- a/arch/mips/pci/Makefile ++++ b/arch/mips/pci/Makefile +@@ -19,7 +19,7 @@ obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o + ops-bcm63xx.o + obj-$(CONFIG_MIPS_ALCHEMY) += pci-alchemy.o + obj-$(CONFIG_PCI_AR2315) += pci-ar2315.o +-obj-$(CONFIG_SOC_AR71XX) += pci-ar71xx.o ++obj-$(CONFIG_PCI_AR71XX) += pci-ar71xx.o + obj-$(CONFIG_PCI_AR724X) += pci-ar724x.o + obj-$(CONFIG_PCI_XTALK_BRIDGE) += pci-xtalk-bridge.o + # diff --git a/target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch new file mode 100644 index 0000000000..ebb240d4ae --- /dev/null +++ b/target/linux/ath79/patches-6.1/400-mtd-nor-support-mtd-name-from-device-tree.patch @@ -0,0 +1,53 @@ +From f32bc2aa01edcba2f2ed5db151cf183eac9ef919 Mon Sep 17 00:00:00 2001 +From: Abhimanyu Vishwakarma +Date: Sat, 25 Feb 2017 16:42:50 +0000 +Subject: mtd: nor: support mtd name from device tree + +Signed-off-by: Abhimanyu Vishwakarma +--- + drivers/mtd/spi-nor/spi-nor.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/mtd/spi-nor/core.c ++++ b/drivers/mtd/spi-nor/core.c +@@ -2964,12 +2964,19 @@ static void spi_nor_set_mtd_info(struct + { + struct mtd_info *mtd = &nor->mtd; + struct device *dev = nor->dev; ++ struct device_node *np = spi_nor_get_flash_node(nor); ++ const char __maybe_unused *of_mtd_name = NULL; + + spi_nor_set_mtd_locking_ops(nor); + spi_nor_set_mtd_otp_ops(nor); + + mtd->dev.parent = dev; +- if (!mtd->name) ++#ifdef CONFIG_MTD_OF_PARTS ++ of_property_read_string(np, "linux,mtd-name", &of_mtd_name); ++#endif ++ if (of_mtd_name) ++ mtd->name = of_mtd_name; ++ else if (!mtd->name) + mtd->name = dev_name(dev); + mtd->type = MTD_NORFLASH; + mtd->flags = MTD_CAP_NORFLASH; +--- a/drivers/mtd/mtdcore.c ++++ b/drivers/mtd/mtdcore.c +@@ -863,6 +863,17 @@ out_error: + */ + static void mtd_set_dev_defaults(struct mtd_info *mtd) + { ++#ifdef CONFIG_MTD_OF_PARTS ++ const char __maybe_unused *of_mtd_name = NULL; ++ struct device_node *np; ++ ++ np = mtd_get_of_node(mtd); ++ if (np && !mtd->name) { ++ of_property_read_string(np, "linux,mtd-name", &of_mtd_name); ++ if (of_mtd_name) ++ mtd->name = of_mtd_name; ++ } else ++#endif + if (mtd->dev.parent) { + if (!mtd->owner && mtd->dev.parent->driver) + mtd->owner = mtd->dev.parent->driver->owner; diff --git a/target/linux/ath79/patches-6.1/410-mtd-cybertan-trx-parser.patch b/target/linux/ath79/patches-6.1/410-mtd-cybertan-trx-parser.patch new file mode 100644 index 0000000000..d0e8aec0d5 --- /dev/null +++ b/target/linux/ath79/patches-6.1/410-mtd-cybertan-trx-parser.patch @@ -0,0 +1,45 @@ +From: Christian Lamparter +Subject: [PATCH] ath79: port cybertan_part from ar71xx + +This patch ports the cybertan_part code from ar71xx and converts the +driver to a DT-supported mtd parser. As a result, it will no longer +add the u-boot, nvram and art partitions, which were never part of +the special Cybertan header. + +Instead these partitions have to be specified in the DT, which has the +upside of making it possible to add properties (i.e.: read-only), labels +and references to these important partitions. + +Submitted-by: Christian Lamparter +--- + drivers/mtd/parsers/Makefile | 1 + + drivers/mtd/parsers/Kconfig | 8 ++++++++ + 2 files changed, 9 insertions(+) + +--- a/drivers/mtd/parsers/Makefile ++++ b/drivers/mtd/parsers/Makefile +@@ -9,6 +9,7 @@ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o + ofpart-y += ofpart_core.o + ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908) += ofpart_bcm4908.o + ofpart-$(CONFIG_MTD_OF_PARTS_LINKSYS_NS)+= ofpart_linksys_ns.o ++obj-$(CONFIG_MTD_PARSER_CYBERTAN) += parser_cybertan.o + obj-$(CONFIG_MTD_PARSER_IMAGETAG) += parser_imagetag.o + obj-$(CONFIG_MTD_AFS_PARTS) += afs.o + obj-$(CONFIG_MTD_PARSER_TPLINK_SAFELOADER) += tplink_safeloader.o +--- a/drivers/mtd/parsers/Kconfig ++++ b/drivers/mtd/parsers/Kconfig +@@ -112,6 +112,14 @@ config MTD_OF_PARTS_LINKSYS_NS + two "firmware" partitions. Currently used firmware has to be detected + using CFE environment variable. + ++config MTD_PARSER_CYBERTAN ++ tristate "Parser for Cybertan format partitions" ++ depends on MTD && (ATH79 || COMPILE_TEST) ++ help ++ Cybertan has a proprietory header than encompasses a Broadcom trx ++ header. This driver will parse the header and take care of the ++ special offsets that result in the extra headers. ++ + config MTD_PARSER_IMAGETAG + tristate "Parser for BCM963XX Image Tag format partitions" + depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST diff --git a/target/linux/ath79/patches-6.1/420-drivers-link-spi-before-mtd.patch b/target/linux/ath79/patches-6.1/420-drivers-link-spi-before-mtd.patch new file mode 100644 index 0000000000..0cd96909eb --- /dev/null +++ b/target/linux/ath79/patches-6.1/420-drivers-link-spi-before-mtd.patch @@ -0,0 +1,20 @@ +From: Gabor Juhos +Subject: [PATCH] ar71xx: Link SPI before MTD + +SVN-Revision: 22863 +--- + drivers/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/Makefile ++++ b/drivers/Makefile +@@ -80,8 +80,8 @@ obj-y += scsi/ + obj-y += nvme/ + obj-$(CONFIG_ATA) += ata/ + obj-$(CONFIG_TARGET_CORE) += target/ +-obj-$(CONFIG_MTD) += mtd/ + obj-$(CONFIG_SPI) += spi/ ++obj-$(CONFIG_MTD) += mtd/ + obj-$(CONFIG_SPMI) += spmi/ + obj-$(CONFIG_HSI) += hsi/ + obj-$(CONFIG_SLIMBUS) += slimbus/ diff --git a/target/linux/ath79/patches-6.1/430-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-6.1/430-mtd-ar934x-nand-driver.patch new file mode 100644 index 0000000000..184c39d469 --- /dev/null +++ b/target/linux/ath79/patches-6.1/430-mtd-ar934x-nand-driver.patch @@ -0,0 +1,34 @@ +From: Gabor Juhos +Subject: ar71xx: ar934x_nfc: experimental NAND Flash Controller driver for AR934x + +SVN-Revision: 33385 +--- + drivers/mtd/nand/raw/Kconfig | 8 ++++++++ + drivers/mtd/nand/raw/Makefile | 1 + + 2 files changed, 9 insertions(+) + +--- a/drivers/mtd/nand/raw/Kconfig ++++ b/drivers/mtd/nand/raw/Kconfig +@@ -557,4 +557,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE + load time (assuming you build diskonchip as a module) with the module + parameter "inftl_bbt_write=1". + ++config MTD_NAND_AR934X ++ tristate "Support for NAND controller on Qualcomm Atheros AR934x/QCA955x SoCs" ++ depends on ATH79 || COMPILE_TEST ++ depends on HAS_IOMEM ++ help ++ Enables support for NAND controller on Qualcomm Atheros SoCs. ++ This controller is found on AR934x and QCA955x SoCs. ++ + endif # MTD_RAW_NAND +--- a/drivers/mtd/nand/raw/Makefile ++++ b/drivers/mtd/nand/raw/Makefile +@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += inte + obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o + obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o + obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o ++obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o + + nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o + nand-objs += nand_onfi.o diff --git a/target/linux/ath79/patches-6.1/700-phy-add-ath79-usb-phys.patch b/target/linux/ath79/patches-6.1/700-phy-add-ath79-usb-phys.patch new file mode 100644 index 0000000000..21b655a109 --- /dev/null +++ b/target/linux/ath79/patches-6.1/700-phy-add-ath79-usb-phys.patch @@ -0,0 +1,333 @@ +From 08c9d6ceef01893678a5d2e8a15517c745417f21 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Tue, 6 Mar 2018 10:04:05 +0100 +Subject: [PATCH 04/27] phy: add ath79 usb phys + +Signed-off-by: John Crispin +--- + drivers/phy/Kconfig | 16 ++++++ + drivers/phy/Makefile | 2 + + drivers/phy/phy-ar7100-usb.c | 124 +++++++++++++++++++++++++++++++++++++++++++ + drivers/phy/phy-ar7200-usb.c | 108 +++++++++++++++++++++++++++++++++++++ + 4 files changed, 250 insertions(+) + create mode 100644 drivers/phy/phy-ar7100-usb.c + create mode 100644 drivers/phy/phy-ar7200-usb.c + +--- a/drivers/phy/Kconfig ++++ b/drivers/phy/Kconfig +@@ -24,6 +24,22 @@ config GENERIC_PHY_MIPI_DPHY + Provides a number of helpers a core functions for MIPI D-PHY + drivers to us. + ++config PHY_AR7100_USB ++ tristate "Atheros AR7100 USB PHY driver" ++ depends on ATH79 || COMPILE_TEST ++ default y if USB_EHCI_HCD_PLATFORM ++ select GENERIC_PHY ++ help ++ Enable this to support the USB PHY on Atheros AR7100 SoCs. ++ ++config PHY_AR7200_USB ++ tristate "Atheros AR7200 USB PHY driver" ++ depends on ATH79 || COMPILE_TEST ++ default y if USB_EHCI_HCD_PLATFORM ++ select GENERIC_PHY ++ help ++ Enable this to support the USB PHY on Atheros AR7200 SoCs. ++ + config PHY_LPC18XX_USB_OTG + tristate "NXP LPC18xx/43xx SoC USB OTG PHY driver" + depends on OF && (ARCH_LPC18XX || COMPILE_TEST) +--- a/drivers/phy/Makefile ++++ b/drivers/phy/Makefile +@@ -4,6 +4,8 @@ + # + + obj-$(CONFIG_GENERIC_PHY) += phy-core.o ++obj-$(CONFIG_PHY_AR7100_USB) += phy-ar7100-usb.o ++obj-$(CONFIG_PHY_AR7200_USB) += phy-ar7200-usb.o + obj-$(CONFIG_GENERIC_PHY_MIPI_DPHY) += phy-core-mipi-dphy.o + obj-$(CONFIG_PHY_CAN_TRANSCEIVER) += phy-can-transceiver.o + obj-$(CONFIG_PHY_LPC18XX_USB_OTG) += phy-lpc18xx-usb-otg.o +--- /dev/null ++++ b/drivers/phy/phy-ar7100-usb.c +@@ -0,0 +1,140 @@ ++/* ++ * Copyright (C) 2018 John Crispin ++ * ++ * This program 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. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++struct ar7100_usb_phy { ++ struct reset_control *rst_phy; ++ struct reset_control *rst_host; ++ struct reset_control *rst_ohci_dll; ++ void __iomem *io_base; ++ struct phy *phy; ++ int gpio; ++}; ++ ++static int ar7100_usb_phy_power_off(struct phy *phy) ++{ ++ struct ar7100_usb_phy *priv = phy_get_drvdata(phy); ++ int err = 0; ++ ++ err |= reset_control_assert(priv->rst_host); ++ err |= reset_control_assert(priv->rst_phy); ++ err |= reset_control_assert(priv->rst_ohci_dll); ++ ++ return err; ++} ++ ++static int ar7100_usb_phy_power_on(struct phy *phy) ++{ ++ struct ar7100_usb_phy *priv = phy_get_drvdata(phy); ++ int err = 0; ++ ++ err |= ar7100_usb_phy_power_off(phy); ++ mdelay(100); ++ err |= reset_control_deassert(priv->rst_ohci_dll); ++ err |= reset_control_deassert(priv->rst_phy); ++ err |= reset_control_deassert(priv->rst_host); ++ mdelay(500); ++ iowrite32(0xf0000, priv->io_base + AR71XX_USB_CTRL_REG_CONFIG); ++ iowrite32(0x20c00, priv->io_base + AR71XX_USB_CTRL_REG_FLADJ); ++ ++ return err; ++} ++ ++static const struct phy_ops ar7100_usb_phy_ops = { ++ .power_on = ar7100_usb_phy_power_on, ++ .power_off = ar7100_usb_phy_power_off, ++ .owner = THIS_MODULE, ++}; ++ ++static int ar7100_usb_phy_probe(struct platform_device *pdev) ++{ ++ struct phy_provider *phy_provider; ++ struct resource *res; ++ struct ar7100_usb_phy *priv; ++ ++ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); ++ if (!priv) ++ return -ENOMEM; ++ ++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ priv->io_base = devm_ioremap_resource(&pdev->dev, res); ++ if (IS_ERR(priv->io_base)) ++ return PTR_ERR(priv->io_base); ++ ++ priv->rst_phy = devm_reset_control_get(&pdev->dev, "usb-phy"); ++ if (IS_ERR(priv->rst_phy)) { ++ dev_err(&pdev->dev, "phy reset is missing\n"); ++ return PTR_ERR(priv->rst_phy); ++ } ++ ++ priv->rst_host = devm_reset_control_get(&pdev->dev, "usb-host"); ++ if (IS_ERR(priv->rst_host)) { ++ dev_err(&pdev->dev, "host reset is missing\n"); ++ return PTR_ERR(priv->rst_host); ++ } ++ ++ priv->rst_ohci_dll = devm_reset_control_get(&pdev->dev, "usb-ohci-dll"); ++ if (IS_ERR(priv->rst_ohci_dll)) { ++ dev_err(&pdev->dev, "ohci-dll reset is missing\n"); ++ return PTR_ERR(priv->rst_host); ++ } ++ ++ priv->phy = devm_phy_create(&pdev->dev, NULL, &ar7100_usb_phy_ops); ++ if (IS_ERR(priv->phy)) { ++ dev_err(&pdev->dev, "failed to create PHY\n"); ++ return PTR_ERR(priv->phy); ++ } ++ ++ priv->gpio = of_get_gpio(pdev->dev.of_node, 0); ++ if (priv->gpio >= 0) { ++ int ret = devm_gpio_request(&pdev->dev, priv->gpio, dev_name(&pdev->dev)); ++ ++ if (ret) { ++ dev_err(&pdev->dev, "failed to request gpio\n"); ++ return ret; ++ } ++ gpio_export_with_name(priv->gpio, 0, dev_name(&pdev->dev)); ++ gpio_set_value(priv->gpio, 1); ++ } ++ ++ phy_set_drvdata(priv->phy, priv); ++ ++ phy_provider = devm_of_phy_provider_register(&pdev->dev, of_phy_simple_xlate); ++ ++ ++ return PTR_ERR_OR_ZERO(phy_provider); ++} ++ ++static const struct of_device_id ar7100_usb_phy_of_match[] = { ++ { .compatible = "qca,ar7100-usb-phy" }, ++ {} ++}; ++MODULE_DEVICE_TABLE(of, ar7100_usb_phy_of_match); ++ ++static struct platform_driver ar7100_usb_phy_driver = { ++ .probe = ar7100_usb_phy_probe, ++ .driver = { ++ .of_match_table = ar7100_usb_phy_of_match, ++ .name = "ar7100-usb-phy", ++ } ++}; ++module_platform_driver(ar7100_usb_phy_driver); ++ ++MODULE_DESCRIPTION("ATH79 USB PHY driver"); ++MODULE_AUTHOR("Alban Bedel "); ++MODULE_LICENSE("GPL"); +--- /dev/null ++++ b/drivers/phy/phy-ar7200-usb.c +@@ -0,0 +1,136 @@ ++/* ++ * Copyright (C) 2015 Alban Bedel ++ * ++ * This program 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. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++struct ar7200_usb_phy { ++ struct reset_control *rst_phy; ++ struct reset_control *rst_phy_analog; ++ struct reset_control *suspend_override; ++ struct phy *phy; ++ int gpio; ++}; ++ ++static int ar7200_usb_phy_power_on(struct phy *phy) ++{ ++ struct ar7200_usb_phy *priv = phy_get_drvdata(phy); ++ int err = 0; ++ ++ if (priv->suspend_override) ++ err = reset_control_assert(priv->suspend_override); ++ if (priv->rst_phy) ++ err |= reset_control_deassert(priv->rst_phy); ++ if (priv->rst_phy_analog) ++ err |= reset_control_deassert(priv->rst_phy_analog); ++ ++ return err; ++} ++ ++static int ar7200_usb_phy_power_off(struct phy *phy) ++{ ++ struct ar7200_usb_phy *priv = phy_get_drvdata(phy); ++ int err = 0; ++ ++ if (priv->suspend_override) ++ err = reset_control_deassert(priv->suspend_override); ++ if (priv->rst_phy) ++ err |= reset_control_assert(priv->rst_phy); ++ if (priv->rst_phy_analog) ++ err |= reset_control_assert(priv->rst_phy_analog); ++ ++ return err; ++} ++ ++static const struct phy_ops ar7200_usb_phy_ops = { ++ .power_on = ar7200_usb_phy_power_on, ++ .power_off = ar7200_usb_phy_power_off, ++ .owner = THIS_MODULE, ++}; ++ ++static int ar7200_usb_phy_probe(struct platform_device *pdev) ++{ ++ struct phy_provider *phy_provider; ++ struct ar7200_usb_phy *priv; ++ ++ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); ++ if (!priv) ++ return -ENOMEM; ++ ++ priv->rst_phy = devm_reset_control_get(&pdev->dev, "usb-phy"); ++ if (IS_ERR(priv->rst_phy)) { ++ if (PTR_ERR(priv->rst_phy) != -EPROBE_DEFER) ++ dev_err(&pdev->dev, "phy reset is missing\n"); ++ return PTR_ERR(priv->rst_phy); ++ } ++ ++ priv->rst_phy_analog = devm_reset_control_get_optional( ++ &pdev->dev, "usb-phy-analog"); ++ if (IS_ERR(priv->rst_phy_analog)) { ++ if (PTR_ERR(priv->rst_phy_analog) == -ENOENT) ++ priv->rst_phy_analog = NULL; ++ else ++ return PTR_ERR(priv->rst_phy_analog); ++ } ++ ++ priv->suspend_override = devm_reset_control_get_optional( ++ &pdev->dev, "usb-suspend-override"); ++ if (IS_ERR(priv->suspend_override)) { ++ if (PTR_ERR(priv->suspend_override) == -ENOENT) ++ priv->suspend_override = NULL; ++ else ++ return PTR_ERR(priv->suspend_override); ++ } ++ ++ priv->phy = devm_phy_create(&pdev->dev, NULL, &ar7200_usb_phy_ops); ++ if (IS_ERR(priv->phy)) { ++ dev_err(&pdev->dev, "failed to create PHY\n"); ++ return PTR_ERR(priv->phy); ++ } ++ ++ priv->gpio = of_get_gpio(pdev->dev.of_node, 0); ++ if (priv->gpio >= 0) { ++ int ret = devm_gpio_request(&pdev->dev, priv->gpio, dev_name(&pdev->dev)); ++ ++ if (ret) { ++ dev_err(&pdev->dev, "failed to request gpio\n"); ++ return ret; ++ } ++ gpio_export_with_name(priv->gpio, 0, dev_name(&pdev->dev)); ++ gpio_set_value(priv->gpio, 1); ++ } ++ ++ phy_set_drvdata(priv->phy, priv); ++ ++ phy_provider = devm_of_phy_provider_register(&pdev->dev, of_phy_simple_xlate); ++ ++ return PTR_ERR_OR_ZERO(phy_provider); ++} ++ ++static const struct of_device_id ar7200_usb_phy_of_match[] = { ++ { .compatible = "qca,ar7200-usb-phy" }, ++ {} ++}; ++MODULE_DEVICE_TABLE(of, ar7200_usb_phy_of_match); ++ ++static struct platform_driver ar7200_usb_phy_driver = { ++ .probe = ar7200_usb_phy_probe, ++ .driver = { ++ .of_match_table = ar7200_usb_phy_of_match, ++ .name = "ar7200-usb-phy", ++ } ++}; ++module_platform_driver(ar7200_usb_phy_driver); ++ ++MODULE_DESCRIPTION("ATH79 USB PHY driver"); ++MODULE_AUTHOR("Alban Bedel "); ++MODULE_LICENSE("GPL"); diff --git a/target/linux/ath79/patches-6.1/701-usb-add-more-OF-quirk-properties.patch b/target/linux/ath79/patches-6.1/701-usb-add-more-OF-quirk-properties.patch new file mode 100644 index 0000000000..293a359884 --- /dev/null +++ b/target/linux/ath79/patches-6.1/701-usb-add-more-OF-quirk-properties.patch @@ -0,0 +1,24 @@ +From 2201818e5bd33f389beceb3943fdfcf5a698fc5b Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Tue, 6 Mar 2018 10:01:43 +0100 +Subject: [PATCH 05/27] usb: add more OF/quirk properties + +Signed-off-by: John Crispin +--- + drivers/usb/host/ehci-platform.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/usb/host/ehci-platform.c ++++ b/drivers/usb/host/ehci-platform.c +@@ -274,6 +274,11 @@ static int ehci_platform_probe(struct pl + ehci = hcd_to_ehci(hcd); + + if (pdata == &ehci_platform_defaults && dev->dev.of_node) { ++ of_property_read_u32(dev->dev.of_node, "caps-offset", &pdata->caps_offset); ++ ++ if (of_property_read_bool(dev->dev.of_node, "has-synopsys-hc-bug")) ++ pdata->has_synopsys_hc_bug = 1; ++ + if (of_property_read_bool(dev->dev.of_node, "big-endian-regs")) + ehci->big_endian_mmio = 1; + diff --git a/target/linux/ath79/patches-6.1/710-net-use-downstream-ag71xx.patch b/target/linux/ath79/patches-6.1/710-net-use-downstream-ag71xx.patch new file mode 100644 index 0000000000..54e64fb11c --- /dev/null +++ b/target/linux/ath79/patches-6.1/710-net-use-downstream-ag71xx.patch @@ -0,0 +1,42 @@ +From: John Crispin +Subject: [PATCH] ath79: add new OF only target for QCA MIPS silicon + +This target aims to replace ar71xx mid-term. The big part that is still +missing is making the MMIO/AHB wifi work using OF. NAND and mikrotik +subtargets will follow. + +Submitted-by: John Crispin +--- + drivers/net/ethernet/atheros/Kconfig | 8 +------- + drivers/net/ethernet/atheros/Makefile | 2 +- + 2 files changed, 2 insertions(+), 8 deletions(-) + +--- a/drivers/net/ethernet/atheros/Kconfig ++++ b/drivers/net/ethernet/atheros/Kconfig +@@ -17,14 +17,7 @@ config NET_VENDOR_ATHEROS + + if NET_VENDOR_ATHEROS + +-config AG71XX +- tristate "Atheros AR7XXX/AR9XXX built-in ethernet mac support" +- depends on ATH79 +- select PHYLINK +- imply NET_SELFTESTS +- help +- If you wish to compile a kernel for AR7XXX/91XXX and enable +- ethernet support, then you should always answer Y to this. ++source "drivers/net/ethernet/atheros/ag71xx/Kconfig" + + config ATL2 + tristate "Atheros L2 Fast Ethernet support" +--- a/drivers/net/ethernet/atheros/Makefile ++++ b/drivers/net/ethernet/atheros/Makefile +@@ -3,7 +3,7 @@ + # Makefile for the Atheros network device drivers. + # + +-obj-$(CONFIG_AG71XX) += ag71xx.o ++obj-$(CONFIG_AG71XX) += ag71xx/ + obj-$(CONFIG_ATL1) += atlx/ + obj-$(CONFIG_ATL2) += atlx/ + obj-$(CONFIG_ATL1E) += atl1e/ diff --git a/target/linux/ath79/patches-6.1/720-mdio_bitbang_ignore_ta_value.patch b/target/linux/ath79/patches-6.1/720-mdio_bitbang_ignore_ta_value.patch new file mode 100644 index 0000000000..5363bb37b0 --- /dev/null +++ b/target/linux/ath79/patches-6.1/720-mdio_bitbang_ignore_ta_value.patch @@ -0,0 +1,44 @@ +From: Jonas Gorski +Subject: ar71xx: add a workaround for ar8316 not always driving the TA bit to low + +AR8316 behind a GPIO bitbanged MDIO bus fails to drive the turnaround bit +to low despite returning a valid value. Ignore it and just use the +returned value anyway. + +SVN-Revision: 28422 +--- + drivers/net/mdio/mdio-bitbang.c | 16 ++----------------- + 1 file changed, 2 insertions(+), 14 deletions(-) + +--- a/drivers/net/mdio/mdio-bitbang.c ++++ b/drivers/net/mdio/mdio-bitbang.c +@@ -152,7 +152,7 @@ static int mdiobb_cmd_addr(struct mdiobb + int mdiobb_read(struct mii_bus *bus, int phy, int reg) + { + struct mdiobb_ctrl *ctrl = bus->priv; +- int ret, i; ++ int ret; + + if (reg & MII_ADDR_C45) { + reg = mdiobb_cmd_addr(ctrl, phy, reg); +@@ -162,19 +162,7 @@ int mdiobb_read(struct mii_bus *bus, int + + ctrl->ops->set_mdio_dir(ctrl, 0); + +- /* check the turnaround bit: the PHY should be driving it to zero, if this +- * PHY is listed in phy_ignore_ta_mask as having broken TA, skip that +- */ +- if (mdiobb_get_bit(ctrl) != 0 && +- !(bus->phy_ignore_ta_mask & (1 << phy))) { +- /* PHY didn't drive TA low -- flush any bits it +- * may be trying to send. +- */ +- for (i = 0; i < 32; i++) +- mdiobb_get_bit(ctrl); +- +- return 0xffff; +- } ++ mdiobb_get_bit(ctrl); + + ret = mdiobb_get_num(ctrl, 16); + mdiobb_get_bit(ctrl); diff --git a/target/linux/ath79/patches-6.1/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch b/target/linux/ath79/patches-6.1/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch new file mode 100644 index 0000000000..e37d9a1f63 --- /dev/null +++ b/target/linux/ath79/patches-6.1/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch @@ -0,0 +1,61 @@ +From 66e584435ac0de6e0abeb6d7166fe4fe25d6bb73 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +Date: Tue, 16 Jun 2015 13:15:08 +0200 +Subject: [PATCH] phy/mdio-bitbang: prevent rescheduling during command + +It seems some phys have some maximum timings for accessing the MDIO line, +resulting in bit errors under cpu stress. Prevent this from happening by +disabling interrupts when sending commands. + +Signed-off-by: Jonas Gorski +--- + drivers/net/mdio/mdio-bitbang.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/net/mdio/mdio-bitbang.c ++++ b/drivers/net/mdio/mdio-bitbang.c +@@ -14,6 +14,7 @@ + * Vitaly Bordug + */ + ++#include + #include + #include + #include +@@ -153,7 +154,9 @@ int mdiobb_read(struct mii_bus *bus, int + { + struct mdiobb_ctrl *ctrl = bus->priv; + int ret; ++ unsigned long flags; + ++ local_irq_save(flags); + if (reg & MII_ADDR_C45) { + reg = mdiobb_cmd_addr(ctrl, phy, reg); + mdiobb_cmd(ctrl, MDIO_C45_READ, phy, reg); +@@ -166,6 +169,7 @@ int mdiobb_read(struct mii_bus *bus, int + + ret = mdiobb_get_num(ctrl, 16); + mdiobb_get_bit(ctrl); ++ local_irq_restore(flags); + return ret; + } + EXPORT_SYMBOL(mdiobb_read); +@@ -173,7 +177,9 @@ EXPORT_SYMBOL(mdiobb_read); + int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val) + { + struct mdiobb_ctrl *ctrl = bus->priv; ++ unsigned long flags; + ++ local_irq_save(flags); + if (reg & MII_ADDR_C45) { + reg = mdiobb_cmd_addr(ctrl, phy, reg); + mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, reg); +@@ -188,6 +194,8 @@ int mdiobb_write(struct mii_bus *bus, in + + ctrl->ops->set_mdio_dir(ctrl, 0); + mdiobb_get_bit(ctrl); ++ local_irq_restore(flags); ++ + return 0; + } + EXPORT_SYMBOL(mdiobb_write); diff --git a/target/linux/ath79/patches-6.1/730-ar8216-make-reg-access-atomic.patch b/target/linux/ath79/patches-6.1/730-ar8216-make-reg-access-atomic.patch new file mode 100644 index 0000000000..02f763534e --- /dev/null +++ b/target/linux/ath79/patches-6.1/730-ar8216-make-reg-access-atomic.patch @@ -0,0 +1,59 @@ +From b3797d1a92afe97c173b00fdb7824cedba24eef0 Mon Sep 17 00:00:00 2001 +From: Chuanhong Guo +Date: Sun, 20 Sep 2020 01:00:45 +0800 +Subject: [PATCH] ath79: ar8216: make switch register access atomic + +due to some unknown reason these register accesses sometimes fail +on the integrated switch without this patch. + +THIS ONLY WORKS ON ATH79 AND MAY BREAK THE DRIVER ON OTHER PLATFORMS! +The mdio bus on ath79 works in polling mode and doesn't rely on +any interrupt. This patch breaks the driver on any mdio master +with interrupts used. + +--- +--- a/drivers/net/phy/ar8216.c ++++ b/drivers/net/phy/ar8216.c +@@ -252,6 +252,7 @@ ar8xxx_mii_write32(struct ar8xxx_priv *p + u32 + ar8xxx_read(struct ar8xxx_priv *priv, int reg) + { ++ unsigned long flags; + struct mii_bus *bus = priv->mii_bus; + u16 r1, r2, page; + u32 val; +@@ -259,11 +260,13 @@ ar8xxx_read(struct ar8xxx_priv *priv, in + split_addr((u32) reg, &r1, &r2, &page); + + mutex_lock(&bus->mdio_lock); ++ local_irq_save(flags); + + bus->write(bus, 0x18, 0, page); + wait_for_page_switch(); + val = ar8xxx_mii_read32(priv, 0x10 | r2, r1); + ++ local_irq_restore(flags); + mutex_unlock(&bus->mdio_lock); + + return val; +@@ -272,17 +275,20 @@ ar8xxx_read(struct ar8xxx_priv *priv, in + void + ar8xxx_write(struct ar8xxx_priv *priv, int reg, u32 val) + { ++ unsigned long flags; + struct mii_bus *bus = priv->mii_bus; + u16 r1, r2, page; + + split_addr((u32) reg, &r1, &r2, &page); + + mutex_lock(&bus->mdio_lock); ++ local_irq_save(flags); + + bus->write(bus, 0x18, 0, page); + wait_for_page_switch(); + ar8xxx_mii_write32(priv, 0x10 | r2, r1, val); + ++ local_irq_restore(flags); + mutex_unlock(&bus->mdio_lock); + } + diff --git a/target/linux/ath79/patches-6.1/800-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-6.1/800-leds-add-reset-controller-based-driver.patch new file mode 100644 index 0000000000..0002b9b95b --- /dev/null +++ b/target/linux/ath79/patches-6.1/800-leds-add-reset-controller-based-driver.patch @@ -0,0 +1,186 @@ +From ecbd9c87f073f097d9fe56390353e64e963e866a Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Tue, 6 Mar 2018 10:03:03 +0100 +Subject: [PATCH 03/27] leds: add reset-controller based driver + +Signed-off-by: John Crispin +--- + drivers/leds/Kconfig | 11 ++++ + drivers/leds/Makefile | 1 + + drivers/leds/leds-reset.c | 137 ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 149 insertions(+) + create mode 100644 drivers/leds/leds-reset.c + +--- a/drivers/leds/Kconfig ++++ b/drivers/leds/Kconfig +@@ -874,6 +874,17 @@ source "drivers/leds/flash/Kconfig" + comment "RGB LED drivers" + source "drivers/leds/rgb/Kconfig" + ++config LEDS_RESET ++ tristate "LED support for reset-controller API" ++ depends on LEDS_CLASS ++ depends on RESET_CONTROLLER ++ help ++ This option enables support for LEDs connected to pins driven by reset ++ controllers. Yes, DNI actual built HW like that. ++ ++ To compile this driver as a module, choose M here: the module ++ will be called leds-reset. ++ + comment "LED Triggers" + source "drivers/leds/trigger/Kconfig" + +--- /dev/null ++++ b/drivers/leds/leds-reset.c +@@ -0,0 +1,140 @@ ++/* ++ * Copyright (C) 2018 John Crispin ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct reset_led_data { ++ struct led_classdev cdev; ++ struct reset_control *rst; ++}; ++ ++static inline struct reset_led_data * ++ cdev_to_reset_led_data(struct led_classdev *led_cdev) ++{ ++ return container_of(led_cdev, struct reset_led_data, cdev); ++} ++ ++static void reset_led_set(struct led_classdev *led_cdev, ++ enum led_brightness value) ++{ ++ struct reset_led_data *led_dat = cdev_to_reset_led_data(led_cdev); ++ ++ if (value == LED_OFF) ++ reset_control_assert(led_dat->rst); ++ else ++ reset_control_deassert(led_dat->rst); ++} ++ ++struct reset_leds_priv { ++ int num_leds; ++ struct reset_led_data leds[]; ++}; ++ ++static inline int sizeof_reset_leds_priv(int num_leds) ++{ ++ return sizeof(struct reset_leds_priv) + ++ (sizeof(struct reset_led_data) * num_leds); ++} ++ ++static struct reset_leds_priv *reset_leds_create(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct fwnode_handle *child; ++ struct reset_leds_priv *priv; ++ int count, ret; ++ ++ count = device_get_child_node_count(dev); ++ if (!count) ++ return ERR_PTR(-ENODEV); ++ ++ priv = devm_kzalloc(dev, sizeof_reset_leds_priv(count), GFP_KERNEL); ++ if (!priv) ++ return ERR_PTR(-ENOMEM); ++ ++ device_for_each_child_node(dev, child) { ++ struct reset_led_data *led = &priv->leds[priv->num_leds]; ++ struct device_node *np = to_of_node(child); ++ ++ ret = fwnode_property_read_string(child, "label", &led->cdev.name); ++ if (!led->cdev.name) { ++ fwnode_handle_put(child); ++ return ERR_PTR(-EINVAL); ++ } ++ led->rst = __of_reset_control_get(np, NULL, 0, 0, 0, true); ++ if (IS_ERR(led->rst)) ++ return ERR_PTR(-EINVAL); ++ ++ fwnode_property_read_string(child, "linux,default-trigger", ++ &led->cdev.default_trigger); ++ ++ led->cdev.brightness_set = reset_led_set; ++ ret = devm_led_classdev_register(&pdev->dev, &led->cdev); ++ if (ret < 0) ++ return ERR_PTR(ret); ++ led->cdev.dev->of_node = np; ++ priv->num_leds++; ++ } ++ ++ return priv; ++} ++ ++static const struct of_device_id of_reset_leds_match[] = { ++ { .compatible = "reset-leds", }, ++ {}, ++}; ++ ++MODULE_DEVICE_TABLE(of, of_reset_leds_match); ++ ++static int reset_led_probe(struct platform_device *pdev) ++{ ++ struct reset_leds_priv *priv; ++ ++ priv = reset_leds_create(pdev); ++ if (IS_ERR(priv)) ++ return PTR_ERR(priv); ++ ++ platform_set_drvdata(pdev, priv); ++ ++ return 0; ++} ++ ++static void reset_led_shutdown(struct platform_device *pdev) ++{ ++ struct reset_leds_priv *priv = platform_get_drvdata(pdev); ++ int i; ++ ++ for (i = 0; i < priv->num_leds; i++) { ++ struct reset_led_data *led = &priv->leds[i]; ++ ++ if (!(led->cdev.flags & LED_RETAIN_AT_SHUTDOWN)) ++ reset_led_set(&led->cdev, LED_OFF); ++ } ++} ++ ++static struct platform_driver reset_led_driver = { ++ .probe = reset_led_probe, ++ .shutdown = reset_led_shutdown, ++ .driver = { ++ .name = "leds-reset", ++ .of_match_table = of_reset_leds_match, ++ }, ++}; ++ ++module_platform_driver(reset_led_driver); ++ ++MODULE_AUTHOR("John Crispin "); ++MODULE_DESCRIPTION("reset controller LED driver"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("platform:leds-reset"); +--- a/drivers/leds/Makefile ++++ b/drivers/leds/Makefile +@@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds + obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o + obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o + obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o ++obj-$(CONFIG_LEDS_RESET) += leds-reset.o + + # LED SPI Drivers + obj-$(CONFIG_LEDS_CR0014114) += leds-cr0014114.o diff --git a/target/linux/ath79/patches-6.1/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch b/target/linux/ath79/patches-6.1/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch new file mode 100644 index 0000000000..980c265fe6 --- /dev/null +++ b/target/linux/ath79/patches-6.1/810-ath79-ignore-the-abused-interrupt-map-on-pcie-node.patch @@ -0,0 +1,33 @@ +From: Shiji Yang +Date: Wed, 31 May 2023 00:15:23 +0000 +Subject: [PATCH] ath79: ignore the abused interrupt-map on pcie node + +ath79 PCIe interrupt controller has stopped working correctly. This +is because the DT exposing a non-sensical interrupt-map property, +and their drivers relying on the kernel ignoring this property[1]. + +This patch fix the pcie init error: +ath9k 0000:00:00.0: of_irq_parse_pci: failed with rc=-14 + +Notice: +This is just a workaround, not a fix. PCIe driver and related dts +node need to be rewritten. + +[1] https://lore.kernel.org/all/20211201114102.13446-1-maz@kernel.org/ + +Signed-off-by: Shiji Yang +--- + drivers/of/irq.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/of/irq.c ++++ b/drivers/of/irq.c +@@ -86,6 +86,8 @@ EXPORT_SYMBOL_GPL(of_irq_find_parent); + * drawing board. + */ + static const char * const of_irq_imap_abusers[] = { ++ "qca,ar7100-pci", ++ "qcom,ar7240-pci", + "CBEA,platform-spider-pic", + "sti,platform-spider-pic", + "realtek,rtl-intc", diff --git a/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch new file mode 100644 index 0000000000..6c97bc307c --- /dev/null +++ b/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch @@ -0,0 +1,909 @@ +From: Felix Fietkau +Subject: [PATCH] ar71xx: fix unaligned access in a few more places + +SVN-Revision: 35130 +--- + arch/mips/include/asm/checksum.h | 83 +++--------------- + include/uapi/linux/ip.h | 2 +- + include/uapi/linux/ipv6.h | 2 +- + include/uapi/linux/tcp.h | 4 ++-- + include/uapi/linux/udp.h | 2 +- + net/netfilter/nf_conntrack_core.c | 4 ++-- + include/uapi/linux/icmp.h | 2 +- + include/uapi/linux/in6.h | 2 +- + net/ipv6/tcp_ipv6.c | 9 +++-- + net/ipv6/datagram.c | 6 ++-- + net/ipv6/exthdrs.c | 2 +- + include/linux/types.h | 5 +++ + net/ipv4/af_inet.c | 4 ++-- + net/ipv4/tcp_output.c | 69 +++++++++-------- + include/uapi/linux/igmp.h | 8 +++--- + net/core/flow_dissector.c | 2 +- + include/uapi/linux/icmpv6.h | 2 +- + include/net/ndisc.h | 10 ++++---- + net/sched/cls_u32.c | 6 +++--- + net/ipv6/ip6_offload.c | 2 +- + include/net/addrconf.h | 2 +- + include/net/inet_ecn.h | 4 ++-- + include/net/ipv6.h | 23 +++++---- + include/net/secure_seq.h | 1 + + include/uapi/linux/in.h | 2 +- + net/ipv6/ip6_fib.h | 2 +- + net/netfilter/nf_conntrack_proto_tcp.c | 2 +- + net/xfrm/xfrm_input.c | 4 ++-- + net/ipv4/tcp_input.c | 12 ++++--- + include/uapi/linux/if_pppox.h | 1 + + net/ipv6/netfilter/nf_log_ipv6.c | 4 ++-- + include/net/neighbour.h | 6 +++-- + include/uapi/linux/netfilter_arp/arp_tables.h | 2 +- + net/core/utils.c | 10 +++++-- + include/linux/etherdevice.h | 11 ++++--- + net/ipv4/tcp_offload.c | 6 +++--- + net/ipv6/netfilter/ip6table_mangle.c | 4 ++-- + 37 file changed, 171 insertions(+), 141 deletions(-) + +--- a/arch/mips/include/asm/checksum.h ++++ b/arch/mips/include/asm/checksum.h +@@ -100,26 +100,30 @@ static inline __sum16 ip_fast_csum(const + const unsigned int *stop = word + ihl; + unsigned int csum; + int carry; ++ unsigned int w; + +- csum = word[0]; +- csum += word[1]; +- carry = (csum < word[1]); ++ csum = net_hdr_word(word++); ++ ++ w = net_hdr_word(word++); ++ csum += w; ++ carry = (csum < w); + csum += carry; + +- csum += word[2]; +- carry = (csum < word[2]); ++ w = net_hdr_word(word++); ++ csum += w; ++ carry = (csum < w); + csum += carry; + +- csum += word[3]; +- carry = (csum < word[3]); ++ w = net_hdr_word(word++); ++ csum += w; ++ carry = (csum < w); + csum += carry; + +- word += 4; + do { +- csum += *word; +- carry = (csum < *word); ++ w = net_hdr_word(word++); ++ csum += w; ++ carry = (csum < w); + csum += carry; +- word++; + } while (word != stop); + + return csum_fold(csum); +@@ -179,74 +183,6 @@ static inline __sum16 ip_compute_csum(co + return csum_fold(csum_partial(buff, len, 0)); + } + +-#define _HAVE_ARCH_IPV6_CSUM +-static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, +- const struct in6_addr *daddr, +- __u32 len, __u8 proto, +- __wsum sum) +-{ +- __wsum tmp; +- +- __asm__( +- " .set push # csum_ipv6_magic\n" +- " .set noreorder \n" +- " .set noat \n" +- " addu %0, %5 # proto (long in network byte order)\n" +- " sltu $1, %0, %5 \n" +- " addu %0, $1 \n" +- +- " addu %0, %6 # csum\n" +- " sltu $1, %0, %6 \n" +- " lw %1, 0(%2) # four words source address\n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 4(%2) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 8(%2) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 12(%2) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 0(%3) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 4(%3) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 8(%3) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " lw %1, 12(%3) \n" +- " addu %0, $1 \n" +- " addu %0, %1 \n" +- " sltu $1, %0, %1 \n" +- +- " addu %0, $1 # Add final carry\n" +- " .set pop" +- : "=&r" (sum), "=&r" (tmp) +- : "r" (saddr), "r" (daddr), +- "0" (htonl(len)), "r" (htonl(proto)), "r" (sum) +- : "memory"); +- +- return csum_fold(sum); +-} +- + #include + #endif /* CONFIG_GENERIC_CSUM */ + +--- a/include/uapi/linux/ip.h ++++ b/include/uapi/linux/ip.h +@@ -106,7 +106,7 @@ struct iphdr { + __be32 daddr; + ); + /*The options start here. */ +-}; ++} __attribute__((packed, aligned(2))); + + + struct ip_auth_hdr { +--- a/include/uapi/linux/ipv6.h ++++ b/include/uapi/linux/ipv6.h +@@ -135,7 +135,7 @@ struct ipv6hdr { + struct in6_addr saddr; + struct in6_addr daddr; + ); +-}; ++} __attribute__((packed, aligned(2))); + + + /* index values for the variables in ipv6_devconf */ +--- a/include/uapi/linux/tcp.h ++++ b/include/uapi/linux/tcp.h +@@ -55,7 +55,7 @@ struct tcphdr { + __be16 window; + __sum16 check; + __be16 urg_ptr; +-}; ++} __attribute__((packed, aligned(2))); + + /* + * The union cast uses a gcc extension to avoid aliasing problems +@@ -65,7 +65,7 @@ struct tcphdr { + union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +-}; ++} __attribute__((packed, aligned(2))); + + #define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3]) + +--- a/include/uapi/linux/udp.h ++++ b/include/uapi/linux/udp.h +@@ -25,7 +25,7 @@ struct udphdr { + __be16 dest; + __be16 len; + __sum16 check; +-}; ++} __attribute__((packed, aligned(2))); + + /* UDP socket options */ + #define UDP_CORK 1 /* Never send partially complete segments */ +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -308,8 +308,8 @@ nf_ct_get_tuple(const struct sk_buff *sk + + switch (l3num) { + case NFPROTO_IPV4: +- tuple->src.u3.ip = ap[0]; +- tuple->dst.u3.ip = ap[1]; ++ tuple->src.u3.ip = net_hdr_word(ap++); ++ tuple->dst.u3.ip = net_hdr_word(ap); + break; + case NFPROTO_IPV6: + memcpy(tuple->src.u3.ip6, ap, sizeof(tuple->src.u3.ip6)); +--- a/include/uapi/linux/icmp.h ++++ b/include/uapi/linux/icmp.h +@@ -102,7 +102,7 @@ struct icmphdr { + } frag; + __u8 reserved[4]; + } un; +-}; ++} __attribute__((packed, aligned(2))); + + + /* +--- a/include/uapi/linux/in6.h ++++ b/include/uapi/linux/in6.h +@@ -43,7 +43,7 @@ struct in6_addr { + #define s6_addr16 in6_u.u6_addr16 + #define s6_addr32 in6_u.u6_addr32 + #endif +-}; ++} __attribute__((packed, aligned(2))); + #endif /* __UAPI_DEF_IN6_ADDR */ + + #if __UAPI_DEF_SOCKADDR_IN6 +--- a/net/ipv6/tcp_ipv6.c ++++ b/net/ipv6/tcp_ipv6.c +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -901,10 +902,10 @@ static void tcp_v6_send_response(const s + topt = (__be32 *)(t1 + 1); + + if (tsecr) { +- *topt++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | +- (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP); +- *topt++ = htonl(tsval); +- *topt++ = htonl(tsecr); ++ put_unaligned_be32((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | ++ (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP, topt++); ++ put_unaligned_be32(tsval, topt++); ++ put_unaligned_be32(tsecr, topt++); + } + + if (mrst) +--- a/include/linux/ipv6.h ++++ b/include/linux/ipv6.h +@@ -6,6 +6,7 @@ + + #define ipv6_optlen(p) (((p)->hdrlen+1) << 3) + #define ipv6_authlen(p) (((p)->hdrlen+2) << 2) ++ + /* + * This structure contains configuration options per IPv6 link. + */ +--- a/net/ipv6/datagram.c ++++ b/net/ipv6/datagram.c +@@ -497,7 +497,7 @@ int ipv6_recv_error(struct sock *sk, str + ipv6_iface_scope_id(&sin->sin6_addr, + IP6CB(skb)->iif); + } else { +- ipv6_addr_set_v4mapped(*(__be32 *)(nh + serr->addr_offset), ++ ipv6_addr_set_v4mapped(net_hdr_word(nh + serr->addr_offset), + &sin->sin6_addr); + sin->sin6_scope_id = 0; + } +@@ -851,12 +851,12 @@ int ip6_datagram_send_ctl(struct net *ne + } + + if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { +- if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { ++ if ((fl6->flowlabel^net_hdr_word(CMSG_DATA(cmsg)))&~IPV6_FLOWINFO_MASK) { + err = -EINVAL; + goto exit_f; + } + } +- fl6->flowlabel = IPV6_FLOWINFO_MASK & *(__be32 *)CMSG_DATA(cmsg); ++ fl6->flowlabel = IPV6_FLOWINFO_MASK & net_hdr_word(CMSG_DATA(cmsg)); + break; + + case IPV6_2292HOPOPTS: +--- a/net/ipv6/exthdrs.c ++++ b/net/ipv6/exthdrs.c +@@ -1013,7 +1013,7 @@ static bool ipv6_hop_jumbo(struct sk_buf + goto drop; + } + +- pkt_len = ntohl(*(__be32 *)(nh + optoff + 2)); ++ pkt_len = ntohl(net_hdr_word(nh + optoff + 2)); + if (pkt_len <= IPV6_MAXPLEN) { + icmpv6_param_prob_reason(skb, ICMPV6_HDR_FIELD, optoff + 2, + SKB_DROP_REASON_IP_INHDR); +--- a/include/linux/types.h ++++ b/include/linux/types.h +@@ -232,5 +232,11 @@ typedef void (*swap_func_t)(void *a, voi + typedef int (*cmp_r_func_t)(const void *a, const void *b, const void *priv); + typedef int (*cmp_func_t)(const void *a, const void *b); + ++struct net_hdr_word { ++ u32 words[1]; ++} __attribute__((packed, aligned(2))); ++ ++#define net_hdr_word(_p) (((struct net_hdr_word *) (_p))->words[0]) ++ + #endif /* __ASSEMBLY__ */ + #endif /* _LINUX_TYPES_H */ +--- a/net/ipv4/af_inet.c ++++ b/net/ipv4/af_inet.c +@@ -1515,8 +1515,8 @@ struct sk_buff *inet_gro_receive(struct + if (unlikely(ip_fast_csum((u8 *)iph, 5))) + goto out; + +- id = ntohl(*(__be32 *)&iph->id); +- flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF)); ++ id = ntohl(net_hdr_word(&iph->id)); ++ flush = (u16)((ntohl(net_hdr_word(iph)) ^ skb_gro_len(skb)) | (id & ~IP_DF)); + id >>= 16; + + list_for_each_entry(p, head, list) { +--- a/net/ipv4/tcp_output.c ++++ b/net/ipv4/tcp_output.c +@@ -612,48 +612,53 @@ static void tcp_options_write(struct tcp + u16 options = opts->options; /* mungable copy */ + + if (unlikely(OPTION_MD5 & options)) { +- *ptr++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | +- (TCPOPT_MD5SIG << 8) | TCPOLEN_MD5SIG); ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | ++ (TCPOPT_MD5SIG << 8) | TCPOLEN_MD5SIG); + /* overload cookie hash location */ + opts->hash_location = (__u8 *)ptr; + ptr += 4; + } + + if (unlikely(opts->mss)) { +- *ptr++ = htonl((TCPOPT_MSS << 24) | +- (TCPOLEN_MSS << 16) | +- opts->mss); ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_MSS << 24) | (TCPOLEN_MSS << 16) | ++ opts->mss); + } + + if (likely(OPTION_TS & options)) { + if (unlikely(OPTION_SACK_ADVERTISE & options)) { +- *ptr++ = htonl((TCPOPT_SACK_PERM << 24) | +- (TCPOLEN_SACK_PERM << 16) | +- (TCPOPT_TIMESTAMP << 8) | +- TCPOLEN_TIMESTAMP); ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_SACK_PERM << 24) | ++ (TCPOLEN_SACK_PERM << 16) | ++ (TCPOPT_TIMESTAMP << 8) | ++ TCPOLEN_TIMESTAMP); + options &= ~OPTION_SACK_ADVERTISE; + } else { +- *ptr++ = htonl((TCPOPT_NOP << 24) | +- (TCPOPT_NOP << 16) | +- (TCPOPT_TIMESTAMP << 8) | +- TCPOLEN_TIMESTAMP); ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_NOP << 24) | ++ (TCPOPT_NOP << 16) | ++ (TCPOPT_TIMESTAMP << 8) | ++ TCPOLEN_TIMESTAMP); + } +- *ptr++ = htonl(opts->tsval); +- *ptr++ = htonl(opts->tsecr); ++ net_hdr_word(ptr++) = htonl(opts->tsval); ++ net_hdr_word(ptr++) = htonl(opts->tsecr); + } + + if (unlikely(OPTION_SACK_ADVERTISE & options)) { +- *ptr++ = htonl((TCPOPT_NOP << 24) | +- (TCPOPT_NOP << 16) | +- (TCPOPT_SACK_PERM << 8) | +- TCPOLEN_SACK_PERM); ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_NOP << 24) | ++ (TCPOPT_NOP << 16) | ++ (TCPOPT_SACK_PERM << 8) | ++ TCPOLEN_SACK_PERM); + } + + if (unlikely(OPTION_WSCALE & options)) { +- *ptr++ = htonl((TCPOPT_NOP << 24) | +- (TCPOPT_WINDOW << 16) | +- (TCPOLEN_WINDOW << 8) | +- opts->ws); ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_NOP << 24) | ++ (TCPOPT_WINDOW << 16) | ++ (TCPOLEN_WINDOW << 8) | ++ opts->ws); + } + + if (unlikely(opts->num_sack_blocks)) { +@@ -661,16 +666,17 @@ static void tcp_options_write(struct tcp + tp->duplicate_sack : tp->selective_acks; + int this_sack; + +- *ptr++ = htonl((TCPOPT_NOP << 24) | +- (TCPOPT_NOP << 16) | +- (TCPOPT_SACK << 8) | +- (TCPOLEN_SACK_BASE + (opts->num_sack_blocks * ++ net_hdr_word(ptr++) = ++ htonl((TCPOPT_NOP << 24) | ++ (TCPOPT_NOP << 16) | ++ (TCPOPT_SACK << 8) | ++ (TCPOLEN_SACK_BASE + (opts->num_sack_blocks * + TCPOLEN_SACK_PERBLOCK))); + + for (this_sack = 0; this_sack < opts->num_sack_blocks; + ++this_sack) { +- *ptr++ = htonl(sp[this_sack].start_seq); +- *ptr++ = htonl(sp[this_sack].end_seq); ++ net_hdr_word(ptr++) = htonl(sp[this_sack].start_seq); ++ net_hdr_word(ptr++) = htonl(sp[this_sack].end_seq); + } + + tp->rx_opt.dsack = 0; +@@ -683,13 +689,14 @@ static void tcp_options_write(struct tcp + + if (foc->exp) { + len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; +- *ptr = htonl((TCPOPT_EXP << 24) | (len << 16) | ++ net_hdr_word(ptr) = ++ htonl((TCPOPT_EXP << 24) | (len << 16) | + TCPOPT_FASTOPEN_MAGIC); + p += TCPOLEN_EXP_FASTOPEN_BASE; + } else { + len = TCPOLEN_FASTOPEN_BASE + foc->len; +- *p++ = TCPOPT_FASTOPEN; +- *p++ = len; ++ net_hdr_word(p++) = TCPOPT_FASTOPEN; ++ net_hdr_word(p++) = len; + } + + memcpy(p, foc->val, foc->len); +--- a/include/uapi/linux/igmp.h ++++ b/include/uapi/linux/igmp.h +@@ -33,7 +33,7 @@ struct igmphdr { + __u8 code; /* For newer IGMP */ + __sum16 csum; + __be32 group; +-}; ++} __attribute__((packed, aligned(2))); + + /* V3 group record types [grec_type] */ + #define IGMPV3_MODE_IS_INCLUDE 1 +@@ -49,7 +49,7 @@ struct igmpv3_grec { + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[]; +-}; ++} __attribute__((packed, aligned(2))); + + struct igmpv3_report { + __u8 type; +@@ -58,7 +58,7 @@ struct igmpv3_report { + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[]; +-}; ++} __attribute__((packed, aligned(2))); + + struct igmpv3_query { + __u8 type; +@@ -79,7 +79,7 @@ struct igmpv3_query { + __u8 qqic; + __be16 nsrcs; + __be32 srcs[]; +-}; ++} __attribute__((packed, aligned(2))); + + #define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */ + #define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */ +--- a/net/core/flow_dissector.c ++++ b/net/core/flow_dissector.c +@@ -131,7 +131,7 @@ __be32 __skb_flow_get_ports(const struct + ports = __skb_header_pointer(skb, thoff + poff, + sizeof(_ports), data, hlen, &_ports); + if (ports) +- return *ports; ++ return (__be32)net_hdr_word(ports); + } + + return 0; +--- a/include/uapi/linux/icmpv6.h ++++ b/include/uapi/linux/icmpv6.h +@@ -78,7 +78,7 @@ struct icmp6hdr { + #define icmp6_addrconf_other icmp6_dataun.u_nd_ra.other + #define icmp6_rt_lifetime icmp6_dataun.u_nd_ra.rt_lifetime + #define icmp6_router_pref icmp6_dataun.u_nd_ra.router_pref +-}; ++} __attribute__((packed, aligned(2))); + + + #define ICMPV6_ROUTER_PREF_LOW 0x3 +--- a/include/net/ndisc.h ++++ b/include/net/ndisc.h +@@ -93,7 +93,7 @@ struct ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; +-}; ++} __attribute__((packed, aligned(2))); + + struct rd_msg { + struct icmp6hdr icmph; +@@ -372,10 +372,10 @@ static inline u32 ndisc_hashfn(const voi + { + const u32 *p32 = pkey; + +- return (((p32[0] ^ hash32_ptr(dev)) * hash_rnd[0]) + +- (p32[1] * hash_rnd[1]) + +- (p32[2] * hash_rnd[2]) + +- (p32[3] * hash_rnd[3])); ++ return (((net_hdr_word(&p32[0]) ^ hash32_ptr(dev)) * hash_rnd[0]) + ++ (net_hdr_word(&p32[1]) * hash_rnd[1]) + ++ (net_hdr_word(&p32[2]) * hash_rnd[2]) + ++ (net_hdr_word(&p32[3]) * hash_rnd[3])); + } + + static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey) +--- a/net/sched/cls_u32.c ++++ b/net/sched/cls_u32.c +@@ -155,7 +155,7 @@ next_knode: + data = skb_header_pointer(skb, toff, 4, &hdata); + if (!data) + goto out; +- if ((*data ^ key->val) & key->mask) { ++ if ((net_hdr_word(data) ^ key->val) & key->mask) { + n = rcu_dereference_bh(n->next); + goto next_knode; + } +@@ -206,8 +206,8 @@ check_terminal: + &hdata); + if (!data) + goto out; +- sel = ht->divisor & u32_hash_fold(*data, &n->sel, +- n->fshift); ++ sel = ht->divisor & u32_hash_fold(net_hdr_word(data), ++ &n->sel, n->fshift); + } + if (!(n->sel.flags & (TC_U32_VAROFFSET | TC_U32_OFFSET | TC_U32_EAT))) + goto next_ht; +--- a/net/ipv6/ip6_offload.c ++++ b/net/ipv6/ip6_offload.c +@@ -290,7 +290,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * + continue; + + iph2 = (struct ipv6hdr *)(p->data + off); +- first_word = *(__be32 *)iph ^ *(__be32 *)iph2; ++ first_word = net_hdr_word(iph) ^ net_hdr_word(iph2); + + /* All fields must match except length and Traffic Class. + * XXX skbs on the gro_list have all been parsed and pulled +--- a/include/net/addrconf.h ++++ b/include/net/addrconf.h +@@ -52,7 +52,7 @@ struct prefix_info { + __be32 reserved2; + + struct in6_addr prefix; +-}; ++} __attribute__((packed, aligned(2))); + + /* rfc4861 4.6.2: IPv6 PIO is 32 bytes in size */ + static_assert(sizeof(struct prefix_info) == 32); +--- a/include/net/inet_ecn.h ++++ b/include/net/inet_ecn.h +@@ -138,9 +138,9 @@ static inline int IP6_ECN_set_ce(struct + if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph))) + return 0; + +- from = *(__be32 *)iph; ++ from = net_hdr_word(iph); + to = from | htonl(INET_ECN_CE << 20); +- *(__be32 *)iph = to; ++ net_hdr_word(iph) = to; + if (skb->ip_summed == CHECKSUM_COMPLETE) + skb->csum = csum_add(csum_sub(skb->csum, (__force __wsum)from), + (__force __wsum)to); +--- a/include/net/ipv6.h ++++ b/include/net/ipv6.h +@@ -149,7 +149,7 @@ struct frag_hdr { + __u8 reserved; + __be16 frag_off; + __be32 identification; +-}; ++} __attribute__((packed, aligned(2))); + + /* + * Jumbo payload option, as described in RFC 2675 2. +@@ -615,8 +615,8 @@ static inline void __ipv6_addr_set_half( + } + #endif + #endif +- addr[0] = wh; +- addr[1] = wl; ++ net_hdr_word(&addr[0]) = wh; ++ net_hdr_word(&addr[1]) = wl; + } + + static inline void ipv6_addr_set(struct in6_addr *addr, +@@ -675,6 +675,8 @@ static inline bool ipv6_prefix_equal(con + const __be32 *a1 = addr1->s6_addr32; + const __be32 *a2 = addr2->s6_addr32; + unsigned int pdw, pbi; ++ /* Used for last <32-bit fraction of prefix */ ++ u32 pbia1, pbia2; + + /* check complete u32 in prefix */ + pdw = prefixlen >> 5; +@@ -683,7 +685,9 @@ static inline bool ipv6_prefix_equal(con + + /* check incomplete u32 in prefix */ + pbi = prefixlen & 0x1f; +- if (pbi && ((a1[pdw] ^ a2[pdw]) & htonl((0xffffffff) << (32 - pbi)))) ++ pbia1 = net_hdr_word(&a1[pdw]); ++ pbia2 = net_hdr_word(&a2[pdw]); ++ if (pbi && ((pbia1 ^ pbia2) & htonl((0xffffffff) << (32 - pbi)))) + return false; + + return true; +@@ -805,13 +809,13 @@ static inline void ipv6_addr_set_v4mappe + */ + static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) + { +- const __be32 *a1 = token1, *a2 = token2; ++ const struct in6_addr *a1 = token1, *a2 = token2; + int i; + + addrlen >>= 2; + + for (i = 0; i < addrlen; i++) { +- __be32 xb = a1[i] ^ a2[i]; ++ __be32 xb = a1->s6_addr32[i] ^ a2->s6_addr32[i]; + if (xb) + return i * 32 + 31 - __fls(ntohl(xb)); + } +@@ -1005,17 +1009,18 @@ static inline u32 ip6_multipath_hash_fie + static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, + __be32 flowlabel) + { +- *(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | flowlabel; ++ net_hdr_word((__be32 *)hdr) = ++ htonl(0x60000000 | (tclass << 20)) | flowlabel; + } + + static inline __be32 ip6_flowinfo(const struct ipv6hdr *hdr) + { +- return *(__be32 *)hdr & IPV6_FLOWINFO_MASK; ++ return net_hdr_word((__be32 *)hdr) & IPV6_FLOWINFO_MASK; + } + + static inline __be32 ip6_flowlabel(const struct ipv6hdr *hdr) + { +- return *(__be32 *)hdr & IPV6_FLOWLABEL_MASK; ++ return net_hdr_word((__be32 *)hdr) & IPV6_FLOWLABEL_MASK; + } + + static inline u8 ip6_tclass(__be32 flowinfo) +--- a/include/net/secure_seq.h ++++ b/include/net/secure_seq.h +@@ -3,6 +3,7 @@ + #define _NET_SECURE_SEQ + + #include ++#include + + struct net; + +--- a/include/uapi/linux/in.h ++++ b/include/uapi/linux/in.h +@@ -91,7 +91,7 @@ enum { + /* Internet address. */ + struct in_addr { + __be32 s_addr; +-}; ++} __attribute__((packed, aligned(2))); + #endif + + #define IP_TOS 1 +--- a/net/ipv6/ip6_fib.c ++++ b/net/ipv6/ip6_fib.c +@@ -142,7 +142,7 @@ static __be32 addr_bit_set(const void *t + * See include/asm-generic/bitops/le.h. + */ + return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) & +- addr[fn_bit >> 5]; ++ net_hdr_word(&addr[fn_bit >> 5]); + } + + struct fib6_info *fib6_info_alloc(gfp_t gfp_flags, bool with_fib6_nh) +--- a/net/netfilter/nf_conntrack_proto_tcp.c ++++ b/net/netfilter/nf_conntrack_proto_tcp.c +@@ -406,7 +406,7 @@ static void tcp_sack(const struct sk_buf + + /* Fast path for timestamp-only option */ + if (length == TCPOLEN_TSTAMP_ALIGNED +- && *(__be32 *)ptr == htonl((TCPOPT_NOP << 24) ++ && net_hdr_word(ptr) == htonl((TCPOPT_NOP << 24) + | (TCPOPT_NOP << 16) + | (TCPOPT_TIMESTAMP << 8) + | TCPOLEN_TIMESTAMP)) +--- a/net/xfrm/xfrm_input.c ++++ b/net/xfrm/xfrm_input.c +@@ -168,8 +168,8 @@ int xfrm_parse_spi(struct sk_buff *skb, + if (!pskb_may_pull(skb, hlen)) + return -EINVAL; + +- *spi = *(__be32 *)(skb_transport_header(skb) + offset); +- *seq = *(__be32 *)(skb_transport_header(skb) + offset_seq); ++ *spi = net_hdr_word(skb_transport_header(skb) + offset); ++ *seq = net_hdr_word(skb_transport_header(skb) + offset_seq); + return 0; + } + EXPORT_SYMBOL(xfrm_parse_spi); +--- a/net/ipv4/tcp_input.c ++++ b/net/ipv4/tcp_input.c +@@ -4183,14 +4183,16 @@ static bool tcp_parse_aligned_timestamp( + { + const __be32 *ptr = (const __be32 *)(th + 1); + +- if (*ptr == htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) +- | (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)) { ++ if (net_hdr_word(ptr) == ++ htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | ++ (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)) { + tp->rx_opt.saw_tstamp = 1; + ++ptr; +- tp->rx_opt.rcv_tsval = ntohl(*ptr); ++ tp->rx_opt.rcv_tsval = get_unaligned_be32(ptr); + ++ptr; +- if (*ptr) +- tp->rx_opt.rcv_tsecr = ntohl(*ptr) - tp->tsoffset; ++ if (net_hdr_word(ptr)) ++ tp->rx_opt.rcv_tsecr = get_unaligned_be32(ptr) - ++ tp->tsoffset; + else + tp->rx_opt.rcv_tsecr = 0; + return true; +--- a/include/uapi/linux/if_pppox.h ++++ b/include/uapi/linux/if_pppox.h +@@ -51,6 +51,7 @@ struct pppoe_addr { + */ + struct pptp_addr { + __u16 call_id; ++ __u16 pad; + struct in_addr sin_addr; + }; + +--- a/include/net/neighbour.h ++++ b/include/net/neighbour.h +@@ -286,8 +286,10 @@ static inline bool neigh_key_eq128(const + const u32 *n32 = (const u32 *)n->primary_key; + const u32 *p32 = pkey; + +- return ((n32[0] ^ p32[0]) | (n32[1] ^ p32[1]) | +- (n32[2] ^ p32[2]) | (n32[3] ^ p32[3])) == 0; ++ return ((n32[0] ^ net_hdr_word(&p32[0])) | ++ (n32[1] ^ net_hdr_word(&p32[1])) | ++ (n32[2] ^ net_hdr_word(&p32[2])) | ++ (n32[3] ^ net_hdr_word(&p32[3]))) == 0; + } + + static inline struct neighbour *___neigh_lookup_noref( +--- a/include/uapi/linux/netfilter_arp/arp_tables.h ++++ b/include/uapi/linux/netfilter_arp/arp_tables.h +@@ -70,7 +70,7 @@ struct arpt_arp { + __u8 flags; + /* Inverse flags */ + __u16 invflags; +-}; ++} __attribute__((aligned(4))); + + /* Values for "flag" field in struct arpt_ip (general arp structure). + * No flags defined yet. +--- a/net/core/utils.c ++++ b/net/core/utils.c +@@ -460,8 +460,14 @@ void inet_proto_csum_replace16(__sum16 * + bool pseudohdr) + { + __be32 diff[] = { +- ~from[0], ~from[1], ~from[2], ~from[3], +- to[0], to[1], to[2], to[3], ++ ~net_hdr_word(&from[0]), ++ ~net_hdr_word(&from[1]), ++ ~net_hdr_word(&from[2]), ++ ~net_hdr_word(&from[3]), ++ net_hdr_word(&to[0]), ++ net_hdr_word(&to[1]), ++ net_hdr_word(&to[2]), ++ net_hdr_word(&to[3]), + }; + if (skb->ip_summed != CHECKSUM_PARTIAL) { + *sum = csum_fold(csum_partial(diff, sizeof(diff), +--- a/include/linux/etherdevice.h ++++ b/include/linux/etherdevice.h +@@ -555,7 +555,7 @@ static inline bool is_etherdev_addr(cons + * @b: Pointer to Ethernet header + * + * Compare two Ethernet headers, returns 0 if equal. +- * This assumes that the network header (i.e., IP header) is 4-byte ++ * This assumes that the network header (i.e., IP header) is 2-byte + * aligned OR the platform can handle unaligned access. This is the + * case for all packets coming into netif_receive_skb or similar + * entry points. +@@ -578,11 +578,12 @@ static inline unsigned long compare_ethe + fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6); + return fold; + #else +- u32 *a32 = (u32 *)((u8 *)a + 2); +- u32 *b32 = (u32 *)((u8 *)b + 2); ++ const u16 *a16 = a; ++ const u16 *b16 = b; + +- return (*(u16 *)a ^ *(u16 *)b) | (a32[0] ^ b32[0]) | +- (a32[1] ^ b32[1]) | (a32[2] ^ b32[2]); ++ return (a16[0] ^ b16[0]) | (a16[1] ^ b16[1]) | (a16[2] ^ b16[2]) | ++ (a16[3] ^ b16[3]) | (a16[4] ^ b16[4]) | (a16[5] ^ b16[5]) | ++ (a16[6] ^ b16[6]); + #endif + } + +--- a/net/ipv4/tcp_offload.c ++++ b/net/ipv4/tcp_offload.c +@@ -62,7 +62,7 @@ static struct sk_buff *__tcpv4_gso_segme + th2 = tcp_hdr(seg->next); + iph2 = ip_hdr(seg->next); + +- if (!(*(const u32 *)&th->source ^ *(const u32 *)&th2->source) && ++ if (!(net_hdr_word(&th->source) ^ net_hdr_word(&th2->source)) && + iph->daddr == iph2->daddr && iph->saddr == iph2->saddr) + return segs; + +@@ -254,7 +254,7 @@ struct sk_buff *tcp_gro_lookup(struct li + continue; + + th2 = tcp_hdr(p); +- if (*(u32 *)&th->source ^ *(u32 *)&th2->source) { ++ if (net_hdr_word(&th->source) ^ net_hdr_word(&th2->source)) { + NAPI_GRO_CB(p)->same_flow = 0; + continue; + } +@@ -320,8 +320,8 @@ struct sk_buff *tcp_gro_receive(struct l + ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH)); + flush |= (__force int)(th->ack_seq ^ th2->ack_seq); + for (i = sizeof(*th); i < thlen; i += 4) +- flush |= *(u32 *)((u8 *)th + i) ^ +- *(u32 *)((u8 *)th2 + i); ++ flush |= net_hdr_word((u8 *)th + i) ^ ++ net_hdr_word((u8 *)th2 + i); + + /* When we receive our second frame we can made a decision on if we + * continue this flow as an atomic flow with a fixed ID or if we use +--- a/net/ipv6/netfilter/ip6table_mangle.c ++++ b/net/ipv6/netfilter/ip6table_mangle.c +@@ -44,7 +44,7 @@ ip6t_mangle_out(void *priv, struct sk_bu + hop_limit = ipv6_hdr(skb)->hop_limit; + + /* flowlabel and prio (includes version, which shouldn't change either */ +- flowlabel = *((u_int32_t *)ipv6_hdr(skb)); ++ flowlabel = net_hdr_word(ipv6_hdr(skb)); + + ret = ip6t_do_table(priv, skb, state); + +@@ -53,7 +53,7 @@ ip6t_mangle_out(void *priv, struct sk_bu + !ipv6_addr_equal(&ipv6_hdr(skb)->daddr, &daddr) || + skb->mark != mark || + ipv6_hdr(skb)->hop_limit != hop_limit || +- flowlabel != *((u_int32_t *)ipv6_hdr(skb)))) { ++ flowlabel != net_hdr_word(ipv6_hdr(skb)))) { + err = ip6_route_me_harder(state->net, state->sk, skb); + if (err < 0) + ret = NF_DROP_ERR(err); diff --git a/target/linux/ath79/patches-6.1/910-mikrotik-rb4xx.patch b/target/linux/ath79/patches-6.1/910-mikrotik-rb4xx.patch new file mode 100644 index 0000000000..536d7abf6b --- /dev/null +++ b/target/linux/ath79/patches-6.1/910-mikrotik-rb4xx.patch @@ -0,0 +1,121 @@ +From: Christopher Hill +Subject: [PATCH] ath79: add Mikrotik rb4xx series drivers + +This adds 3 Mikrotik rb4xx series drivers as follows: + +rb4xx-cpld: This is in the mfd subsystem, and is the parent CPLD device +that interfaces between the SoC SPI bus and its two children below. +rb4xx-gpio: This is the GPIO expander. +rb4xx-nand: This is the NAND driver. + +The history of this code comes in three phases. + +1. The first is a May 2015 attempt to push the equivalient ar71xx rb4xx +drivers upstream. See https://lore.kernel.org/patchwork/patch/940880/. + +Module-author: Gabor Juhos +Module-author: Imre Kaloz +Module-author: Bert Vermeulen + +2. Next several ar71xx patches were applied bringing the code current. + +commit 7bbf4117c6fe4b764d9d7c62fb2bcf6dd93bff2c +Submitted-by: Hauke Mehrtens + +commit af79fdbe4af32a287798b579141204bda056b8aa +commit 889272d92db689fd9c910243635e44c9d8323095 +commit e21cb649a235180563363b8af5ba8296b9ac0baa +commit 7c09fa4a7492ca436f2c94bd9a465b7c5bbeed6f +Submitted-by: Felix Fietkau + +3. Finally a heavy refactor to split the driver into the three new +subsystems, and updated to work with the device tree configuration, plus +updates and review feedback incorporated + +Reviewed-by: Thibaut VARÈNE +Submitted-by: Christopher Hill +--- + drivers/mfd/Kconfig | 8 ++++++++ + drivers/mfd/Makefile | 1 + + drivers/gpio/Kconfig | 6 ++++++ + drivers/gpio/Makefile | 1 + + drivers/mtd/nand/raw/Kconfig | 7 +++++++ + drivers/mtd/nand/raw/Makefile | 1 + + 6 files changed, 24 insertions(+) + +--- a/drivers/mfd/Kconfig ++++ b/drivers/mfd/Kconfig +@@ -2209,6 +2209,14 @@ config RAVE_SP_CORE + Select this to get support for the Supervisory Processor + device found on several devices in RAVE line of hardware. + ++config MFD_RB4XX_CPLD ++ tristate "CPLD driver for Mikrotik RB4xx series boards" ++ select MFD_CORE ++ depends on ATH79 || COMPILE_TEST ++ help ++ Enables support for the CPLD chip (NAND & GPIO) on Mikrotik ++ Routerboard RB4xx series. ++ + config SGI_MFD_IOC3 + bool "SGI IOC3 core driver" + depends on PCI && MIPS && 64BIT +--- a/drivers/mfd/Makefile ++++ b/drivers/mfd/Makefile +@@ -269,6 +269,7 @@ obj-$(CONFIG_MFD_KHADAS_MCU) += khadas- + obj-$(CONFIG_MFD_ACER_A500_EC) += acer-ec-a500.o + obj-$(CONFIG_MFD_QCOM_PM8008) += qcom-pm8008.o + ++obj-$(CONFIG_MFD_RB4XX_CPLD) += rb4xx-cpld.o + obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o + obj-$(CONFIG_MFD_SIMPLE_MFD_I2C) += simple-mfd-i2c.o + obj-$(CONFIG_MFD_INTEL_M10_BMC) += intel-m10-bmc.o +--- a/drivers/gpio/Kconfig ++++ b/drivers/gpio/Kconfig +@@ -1594,6 +1594,12 @@ config GPIO_SODAVILLE + help + Say Y here to support Intel Sodaville GPIO. + ++config GPIO_RB4XX ++ tristate "GPIO expander for Mikrotik RB4xx series boards" ++ depends on MFD_RB4XX_CPLD ++ help ++ GPIO driver for Mikrotik Routerboard RB4xx series. ++ + endmenu + + menu "SPI GPIO expanders" +--- a/drivers/gpio/Makefile ++++ b/drivers/gpio/Makefile +@@ -123,6 +123,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061. + obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o + obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o + obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o ++obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o + obj-$(CONFIG_GPIO_RC5T583) += gpio-rc5t583.o + obj-$(CONFIG_GPIO_RCAR) += gpio-rcar.o + obj-$(CONFIG_GPIO_RDA) += gpio-rda.o +--- a/drivers/mtd/nand/raw/Kconfig ++++ b/drivers/mtd/nand/raw/Kconfig +@@ -565,4 +565,11 @@ config MTD_NAND_AR934X + Enables support for NAND controller on Qualcomm Atheros SoCs. + This controller is found on AR934x and QCA955x SoCs. + ++config MTD_NAND_RB4XX ++ tristate "Support for NAND driver for Mikrotik RB4xx series boards" ++ depends on MFD_RB4XX_CPLD ++ help ++ Enables support for the NAND flash chip on Mikrotik Routerboard ++ RB4xx series. ++ + endif # MTD_RAW_NAND +--- a/drivers/mtd/nand/raw/Makefile ++++ b/drivers/mtd/nand/raw/Makefile +@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rock + obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o + obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o + obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o ++obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o + + nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o + nand-objs += nand_onfi.o diff --git a/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch b/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch new file mode 100644 index 0000000000..677428fa65 --- /dev/null +++ b/target/linux/ath79/patches-6.1/911-mikrotik-rb91x.patch @@ -0,0 +1,96 @@ +From: Denis Kalashnikov +Subject: [PATCH] ath79: add support for reset key on MikroTik RB912UAG-2HPnD + +On MikroTik RB91x board series a reset key shares SoC gpio +line #15 with NAND ALE and NAND IO7. So we need a custom +gpio driver to manage this non-trivial connection schema. +Also rb91x-nand needs to have an ability to disable a polling +of the key while it works with NAND. + +While we've been integrating rb91x-key into a firmware, we've +figured out that: +* In the gpio-latch driver we need to add a "cansleep" suffix to +several gpiolib calls, +* When gpio-latch and rb91x-nand fail to get a gpio and an error +is -EPROBE_DEFER, they shouldn't report about this, since this +actually is not an error and occurs when the gpio-latch probe +function is called before the rb91x-key probe. +We fix these related things here too. + +Submitted-by: Denis Kalashnikov +Reviewed-by: Sergey Ryazanov +Tested-by: Koen Vandeputte +--- + drivers/gpio/Kconfig | 11 +++++++++++ + drivers/gpio/Makefile | 2 ++ + drivers/mtd/nand/raw/Kconfig | 6 ++++++ + drivers/mtd/nand/raw/Makefile | 1 + + 7 files changed, 20 insertions(+) + +--- a/drivers/gpio/Kconfig ++++ b/drivers/gpio/Kconfig +@@ -368,6 +368,12 @@ config GPIO_IXP4XX + + If unsure, say N. + ++config GPIO_LATCH_MIKROTIK ++ tristate "MikroTik RouterBOARD GPIO latch support" ++ depends on ATH79 ++ help ++ GPIO driver for latch on some MikroTik RouterBOARDs. ++ + config GPIO_LOGICVC + tristate "Xylon LogiCVC GPIO support" + depends on MFD_SYSCON && OF +@@ -544,6 +550,10 @@ config GPIO_ROCKCHIP + help + Say yes here to support GPIO on Rockchip SoCs. + ++config GPIO_RB91X_KEY ++ tristate "MikroTik RB91x board series reset key support" ++ depends on ATH79 ++ + config GPIO_SAMA5D2_PIOBU + tristate "SAMA5D2 PIOBU GPIO support" + depends on MFD_SYSCON +--- a/drivers/gpio/Makefile ++++ b/drivers/gpio/Makefile +@@ -76,6 +76,7 @@ obj-$(CONFIG_GPIO_IT87) += gpio-it87.o + obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o + obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o + obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o ++obj-$(CONFIG_GPIO_LATCH_MIKROTIK) += gpio-latch-mikrotik.o + obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o + obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o + obj-$(CONFIG_GPIO_LOONGSON) += gpio-loongson.o +@@ -124,6 +125,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio + obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o + obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o + obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o ++obj-$(CONFIG_GPIO_RB91X_KEY) += gpio-rb91x-key.o + obj-$(CONFIG_GPIO_RC5T583) += gpio-rc5t583.o + obj-$(CONFIG_GPIO_RCAR) += gpio-rcar.o + obj-$(CONFIG_GPIO_RDA) += gpio-rda.o +--- a/drivers/mtd/nand/raw/Kconfig ++++ b/drivers/mtd/nand/raw/Kconfig +@@ -572,4 +572,10 @@ config MTD_NAND_RB4XX + Enables support for the NAND flash chip on Mikrotik Routerboard + RB4xx series. + ++config MTD_NAND_RB91X ++ tristate "MikroTik RB91x NAND driver support" ++ depends on ATH79 && MTD_RAW_NAND ++ help ++ Enables support for the NAND flash chip on MikroTik RB91x series. ++ + endif # MTD_RAW_NAND +--- a/drivers/mtd/nand/raw/Makefile ++++ b/drivers/mtd/nand/raw/Makefile +@@ -61,6 +61,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n + obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o + obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o + obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o ++obj-$(CONFIG_MTD_NAND_RB91X) += rb91x_nand.o + + nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o + nand-objs += nand_onfi.o From 872fe7e9f9fbf857963728bd267ef982143cddde Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 27/40] ath79: refresh 6.6 kernel patches Some APIs have been changed. Porting them to the new kernel 6.6 version to fix the compile error. Removed upstreamed: 010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch[1] Manually rebased: 700-phy-add-ath79-usb-phys.patch 721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch. ref:[2] [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=b11ce7e48121a02ceedec9f4dfcab4f2bee8f35f [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=002dd3de097c778a74ae9e47e598bea6ad055af0 Signed-off-by: Shiji Yang --- ...-ath79-Convert-to-immutable-irq_chip.patch | 60 -------------- .../340-register_gpio_driver_earlier.patch | 2 +- .../370-MIPS-ath79-sanitize-symbols.patch | 20 +---- ...or-support-mtd-name-from-device-tree.patch | 4 +- .../420-drivers-link-spi-before-mtd.patch | 2 +- .../430-mtd-ar934x-nand-driver.patch | 4 +- .../700-phy-add-ath79-usb-phys.patch | 14 ++-- .../720-mdio_bitbang_ignore_ta_value.patch | 8 +- ...-prevent-rescheduling-during-command.patch | 79 +++++++++++++------ ...ds-add-reset-controller-based-driver.patch | 4 +- .../900-unaligned_access_hacks.patch | 50 ++++++------ .../patches-6.6/910-mikrotik-rb4xx.patch | 12 +-- .../patches-6.6/911-mikrotik-rb91x.patch | 16 ++-- 13 files changed, 114 insertions(+), 161 deletions(-) delete mode 100644 target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch diff --git a/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch b/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch deleted file mode 100644 index 942380fc7b..0000000000 --- a/target/linux/ath79/patches-6.6/010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch +++ /dev/null @@ -1,60 +0,0 @@ -From b11ce7e48121a02ceedec9f4dfcab4f2bee8f35f Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Thu, 9 Mar 2023 08:45:54 +0100 -Subject: gpio: ath79: Convert to immutable irq_chip - -Convert the driver to immutable irq-chip with a bit of -intuition. - -Cc: Marc Zyngier -Acked-by: Marc Zyngier -Signed-off-by: Linus Walleij -Signed-off-by: Bartosz Golaszewski ---- - drivers/gpio/gpio-ath79.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- a/drivers/gpio/gpio-ath79.c -+++ b/drivers/gpio/gpio-ath79.c -@@ -71,6 +71,7 @@ static void ath79_gpio_irq_unmask(struct - u32 mask = BIT(irqd_to_hwirq(data)); - unsigned long flags; - -+ gpiochip_enable_irq(&ctrl->gc, irqd_to_hwirq(data)); - raw_spin_lock_irqsave(&ctrl->lock, flags); - ath79_gpio_update_bits(ctrl, AR71XX_GPIO_REG_INT_MASK, mask, mask); - raw_spin_unlock_irqrestore(&ctrl->lock, flags); -@@ -85,6 +86,7 @@ static void ath79_gpio_irq_mask(struct i - raw_spin_lock_irqsave(&ctrl->lock, flags); - ath79_gpio_update_bits(ctrl, AR71XX_GPIO_REG_INT_MASK, mask, 0); - raw_spin_unlock_irqrestore(&ctrl->lock, flags); -+ gpiochip_disable_irq(&ctrl->gc, irqd_to_hwirq(data)); - } - - static void ath79_gpio_irq_enable(struct irq_data *data) -@@ -169,13 +171,15 @@ static int ath79_gpio_irq_set_type(struc - return 0; - } - --static struct irq_chip ath79_gpio_irqchip = { -+static const struct irq_chip ath79_gpio_irqchip = { - .name = "gpio-ath79", - .irq_enable = ath79_gpio_irq_enable, - .irq_disable = ath79_gpio_irq_disable, - .irq_mask = ath79_gpio_irq_mask, - .irq_unmask = ath79_gpio_irq_unmask, - .irq_set_type = ath79_gpio_irq_set_type, -+ .flags = IRQCHIP_IMMUTABLE, -+ GPIOCHIP_IRQ_RESOURCE_HELPERS, - }; - - static void ath79_gpio_irq_handler(struct irq_desc *desc) -@@ -274,7 +278,7 @@ static int ath79_gpio_probe(struct platf - /* Optional interrupt setup */ - if (!np || of_property_read_bool(np, "interrupt-controller")) { - girq = &ctrl->gc.irq; -- girq->chip = &ath79_gpio_irqchip; -+ gpio_irq_chip_set_chip(girq, &ath79_gpio_irqchip); - girq->parent_handler = ath79_gpio_irq_handler; - girq->num_parents = 1; - girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents), diff --git a/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch b/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch index 48ce7e1d71..32c90ef2fc 100644 --- a/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch +++ b/target/linux/ath79/patches-6.6/340-register_gpio_driver_earlier.patch @@ -11,7 +11,7 @@ Submitted-by: John Crispin --- a/drivers/gpio/gpio-ath79.c +++ b/drivers/gpio/gpio-ath79.c -@@ -301,7 +301,11 @@ static struct platform_driver ath79_gpio +@@ -302,7 +302,11 @@ static struct platform_driver ath79_gpio .probe = ath79_gpio_probe, }; diff --git a/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch b/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch index eac17c2b50..e6aeef5115 100644 --- a/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch +++ b/target/linux/ath79/patches-6.6/370-MIPS-ath79-sanitize-symbols.patch @@ -15,7 +15,7 @@ Signed-off-by: John Crispin --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig -@@ -257,6 +257,8 @@ config ATH79 +@@ -255,6 +255,8 @@ config ATH79 select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_MIPS16 select SYS_SUPPORTS_ZBOOT_UART_PROM @@ -26,7 +26,7 @@ Signed-off-by: John Crispin help --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -1,48 +1,14 @@ +@@ -1,32 +1,14 @@ # SPDX-License-Identifier: GPL-2.0 if ATH79 @@ -59,22 +59,6 @@ Signed-off-by: John Crispin def_bool n config PCI_AR724X -- def_bool n -- --config ATH79_DEV_GPIO_BUTTONS -- def_bool n -- --config ATH79_DEV_LEDS_GPIO -- def_bool n -- --config ATH79_DEV_SPI -- def_bool n -- --config ATH79_DEV_USB -- def_bool n -- --config ATH79_DEV_WMAC -- depends on (SOC_AR913X || SOC_AR933X || SOC_AR934X || SOC_QCA955X) + bool "PCI support for AR724x type SoCs" + depends on PCI def_bool n diff --git a/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch index ebb240d4ae..62d402625d 100644 --- a/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/ath79/patches-6.6/400-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c -@@ -2964,12 +2964,19 @@ static void spi_nor_set_mtd_info(struct +@@ -3420,12 +3420,19 @@ static void spi_nor_set_mtd_info(struct { struct mtd_info *mtd = &nor->mtd; struct device *dev = nor->dev; @@ -33,7 +33,7 @@ Signed-off-by: Abhimanyu Vishwakarma mtd->flags = MTD_CAP_NORFLASH; --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c -@@ -863,6 +863,17 @@ out_error: +@@ -870,6 +870,17 @@ out_error: */ static void mtd_set_dev_defaults(struct mtd_info *mtd) { diff --git a/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch b/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch index 0cd96909eb..2e9d3c3e94 100644 --- a/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch +++ b/target/linux/ath79/patches-6.6/420-drivers-link-spi-before-mtd.patch @@ -8,7 +8,7 @@ SVN-Revision: 22863 --- a/drivers/Makefile +++ b/drivers/Makefile -@@ -80,8 +80,8 @@ obj-y += scsi/ +@@ -87,8 +87,8 @@ obj-y += scsi/ obj-y += nvme/ obj-$(CONFIG_ATA) += ata/ obj-$(CONFIG_TARGET_CORE) += target/ diff --git a/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch b/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch index 184c39d469..603750cbe9 100644 --- a/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch +++ b/target/linux/ath79/patches-6.6/430-mtd-ar934x-nand-driver.patch @@ -9,7 +9,7 @@ SVN-Revision: 33385 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -557,4 +557,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE +@@ -543,4 +543,12 @@ config MTD_NAND_DISKONCHIP_BBTWRITE load time (assuming you build diskonchip as a module) with the module parameter "inftl_bbt_write=1". @@ -24,7 +24,7 @@ SVN-Revision: 33385 endif # MTD_RAW_NAND --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += inte +@@ -57,6 +57,7 @@ obj-$(CONFIG_MTD_NAND_INTEL_LGM) += inte obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o diff --git a/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch b/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch index 21b655a109..0a9de68a39 100644 --- a/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch +++ b/target/linux/ath79/patches-6.6/700-phy-add-ath79-usb-phys.patch @@ -15,7 +15,7 @@ Signed-off-by: John Crispin --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig -@@ -24,6 +24,22 @@ config GENERIC_PHY_MIPI_DPHY +@@ -25,6 +25,22 @@ config GENERIC_PHY_MIPI_DPHY Provides a number of helpers a core functions for MIPI D-PHY drivers to us. @@ -154,15 +154,15 @@ Signed-off-by: John Crispin + return PTR_ERR(priv->phy); + } + -+ priv->gpio = of_get_gpio(pdev->dev.of_node, 0); -+ if (priv->gpio >= 0) { ++ priv->gpio = of_get_named_gpio(pdev->dev.of_node, "gpios", 0); ++ if (gpio_is_valid(priv->gpio)) { + int ret = devm_gpio_request(&pdev->dev, priv->gpio, dev_name(&pdev->dev)); + + if (ret) { + dev_err(&pdev->dev, "failed to request gpio\n"); + return ret; + } -+ gpio_export_with_name(priv->gpio, 0, dev_name(&pdev->dev)); ++ gpio_export_with_name(gpio_to_desc(priv->gpio), 0, dev_name(&pdev->dev)); + gpio_set_value(priv->gpio, 1); + } + @@ -294,15 +294,15 @@ Signed-off-by: John Crispin + return PTR_ERR(priv->phy); + } + -+ priv->gpio = of_get_gpio(pdev->dev.of_node, 0); -+ if (priv->gpio >= 0) { ++ priv->gpio = of_get_named_gpio(pdev->dev.of_node, "gpios", 0); ++ if (gpio_is_valid(priv->gpio)) { + int ret = devm_gpio_request(&pdev->dev, priv->gpio, dev_name(&pdev->dev)); + + if (ret) { + dev_err(&pdev->dev, "failed to request gpio\n"); + return ret; + } -+ gpio_export_with_name(priv->gpio, 0, dev_name(&pdev->dev)); ++ gpio_export_with_name(gpio_to_desc(priv->gpio), 0, dev_name(&pdev->dev)); + gpio_set_value(priv->gpio, 1); + } + diff --git a/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch b/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch index 5363bb37b0..ce6b16c34e 100644 --- a/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch +++ b/target/linux/ath79/patches-6.6/720-mdio_bitbang_ignore_ta_value.patch @@ -12,17 +12,13 @@ SVN-Revision: 28422 --- a/drivers/net/mdio/mdio-bitbang.c +++ b/drivers/net/mdio/mdio-bitbang.c -@@ -152,7 +152,7 @@ static int mdiobb_cmd_addr(struct mdiobb - int mdiobb_read(struct mii_bus *bus, int phy, int reg) +@@ -148,23 +148,11 @@ static void mdiobb_cmd_addr(struct mdiob + static int mdiobb_read_common(struct mii_bus *bus, int phy) { struct mdiobb_ctrl *ctrl = bus->priv; - int ret, i; + int ret; - if (reg & MII_ADDR_C45) { - reg = mdiobb_cmd_addr(ctrl, phy, reg); -@@ -162,19 +162,7 @@ int mdiobb_read(struct mii_bus *bus, int - ctrl->ops->set_mdio_dir(ctrl, 0); - /* check the turnaround bit: the PHY should be driving it to zero, if this diff --git a/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch b/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch index e37d9a1f63..26c40e132b 100644 --- a/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch +++ b/target/linux/ath79/patches-6.6/721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch @@ -22,40 +22,73 @@ Signed-off-by: Jonas Gorski #include #include #include -@@ -153,7 +154,9 @@ int mdiobb_read(struct mii_bus *bus, int +@@ -161,22 +162,32 @@ static int mdiobb_read_common(struct mii + + int mdiobb_read_c22(struct mii_bus *bus, int phy, int reg) { - struct mdiobb_ctrl *ctrl = bus->priv; - int ret; ++ int ret; + unsigned long flags; + struct mdiobb_ctrl *ctrl = bus->priv; + local_irq_save(flags); - if (reg & MII_ADDR_C45) { - reg = mdiobb_cmd_addr(ctrl, phy, reg); - mdiobb_cmd(ctrl, MDIO_C45_READ, phy, reg); -@@ -166,6 +169,7 @@ int mdiobb_read(struct mii_bus *bus, int + mdiobb_cmd(ctrl, ctrl->op_c22_read, phy, reg); - ret = mdiobb_get_num(ctrl, 16); - mdiobb_get_bit(ctrl); +- return mdiobb_read_common(bus, phy); ++ ret = mdiobb_read_common(bus, phy); + local_irq_restore(flags); - return ret; ++ return ret; } - EXPORT_SYMBOL(mdiobb_read); -@@ -173,7 +177,9 @@ EXPORT_SYMBOL(mdiobb_read); - int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val) + EXPORT_SYMBOL(mdiobb_read_c22); + + int mdiobb_read_c45(struct mii_bus *bus, int phy, int devad, int reg) { - struct mdiobb_ctrl *ctrl = bus->priv; ++ int ret; + unsigned long flags; + struct mdiobb_ctrl *ctrl = bus->priv; + local_irq_save(flags); - if (reg & MII_ADDR_C45) { - reg = mdiobb_cmd_addr(ctrl, phy, reg); - mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, reg); -@@ -188,6 +194,8 @@ int mdiobb_write(struct mii_bus *bus, in + mdiobb_cmd_addr(ctrl, phy, devad, reg); + mdiobb_cmd(ctrl, MDIO_C45_READ, phy, devad); - ctrl->ops->set_mdio_dir(ctrl, 0); - mdiobb_get_bit(ctrl); +- return mdiobb_read_common(bus, phy); ++ ret = mdiobb_read_common(bus, phy); + local_irq_restore(flags); -+ - return 0; ++ return ret; } - EXPORT_SYMBOL(mdiobb_write); + EXPORT_SYMBOL(mdiobb_read_c45); + +@@ -197,22 +208,32 @@ static int mdiobb_write_common(struct mi + + int mdiobb_write_c22(struct mii_bus *bus, int phy, int reg, u16 val) + { ++ int ret; ++ unsigned long flags; + struct mdiobb_ctrl *ctrl = bus->priv; + ++ local_irq_save(flags); + mdiobb_cmd(ctrl, ctrl->op_c22_write, phy, reg); + +- return mdiobb_write_common(bus, val); ++ ret = mdiobb_write_common(bus, val); ++ local_irq_restore(flags); ++ return ret; + } + EXPORT_SYMBOL(mdiobb_write_c22); + + int mdiobb_write_c45(struct mii_bus *bus, int phy, int devad, int reg, u16 val) + { ++ int ret; ++ unsigned long flags; + struct mdiobb_ctrl *ctrl = bus->priv; + ++ local_irq_save(flags); + mdiobb_cmd_addr(ctrl, phy, devad, reg); + mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, devad); + +- return mdiobb_write_common(bus, val); ++ ret = mdiobb_write_common(bus, val); ++ local_irq_restore(flags); ++ return ret; + } + EXPORT_SYMBOL(mdiobb_write_c45); + diff --git a/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch b/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch index 0002b9b95b..fa958e767b 100644 --- a/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch +++ b/target/linux/ath79/patches-6.6/800-leds-add-reset-controller-based-driver.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig -@@ -874,6 +874,17 @@ source "drivers/leds/flash/Kconfig" +@@ -901,6 +901,17 @@ source "drivers/leds/flash/Kconfig" comment "RGB LED drivers" source "drivers/leds/rgb/Kconfig" @@ -176,7 +176,7 @@ Signed-off-by: John Crispin +MODULE_ALIAS("platform:leds-reset"); --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile -@@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds +@@ -88,6 +88,7 @@ obj-$(CONFIG_LEDS_TURRIS_OMNIA) += leds obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o diff --git a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch index 6c97bc307c..0190da85de 100644 --- a/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.6/900-unaligned_access_hacks.patch @@ -216,7 +216,7 @@ SVN-Revision: 35130 #define UDP_CORK 1 /* Never send partially complete segments */ --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c -@@ -308,8 +308,8 @@ nf_ct_get_tuple(const struct sk_buff *sk +@@ -298,8 +298,8 @@ nf_ct_get_tuple(const struct sk_buff *sk switch (l3num) { case NFPROTO_IPV4: @@ -259,7 +259,7 @@ SVN-Revision: 35130 #include #include #include -@@ -901,10 +902,10 @@ static void tcp_v6_send_response(const s +@@ -897,10 +898,10 @@ static void tcp_v6_send_response(const s topt = (__be32 *)(t1 + 1); if (tsecr) { @@ -286,7 +286,7 @@ SVN-Revision: 35130 */ --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c -@@ -497,7 +497,7 @@ int ipv6_recv_error(struct sock *sk, str +@@ -499,7 +499,7 @@ int ipv6_recv_error(struct sock *sk, str ipv6_iface_scope_id(&sin->sin6_addr, IP6CB(skb)->iif); } else { @@ -295,7 +295,7 @@ SVN-Revision: 35130 &sin->sin6_addr); sin->sin6_scope_id = 0; } -@@ -851,12 +851,12 @@ int ip6_datagram_send_ctl(struct net *ne +@@ -853,12 +853,12 @@ int ip6_datagram_send_ctl(struct net *ne } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { @@ -312,7 +312,7 @@ SVN-Revision: 35130 case IPV6_2292HOPOPTS: --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c -@@ -1013,7 +1013,7 @@ static bool ipv6_hop_jumbo(struct sk_buf +@@ -982,7 +982,7 @@ static bool ipv6_hop_jumbo(struct sk_buf goto drop; } @@ -323,7 +323,7 @@ SVN-Revision: 35130 SKB_DROP_REASON_IP_INHDR); --- a/include/linux/types.h +++ b/include/linux/types.h -@@ -232,5 +232,11 @@ typedef void (*swap_func_t)(void *a, voi +@@ -244,5 +244,11 @@ typedef void (*swap_func_t)(void *a, voi typedef int (*cmp_r_func_t)(const void *a, const void *b, const void *priv); typedef int (*cmp_func_t)(const void *a, const void *b); @@ -337,10 +337,10 @@ SVN-Revision: 35130 #endif /* _LINUX_TYPES_H */ --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c -@@ -1515,8 +1515,8 @@ struct sk_buff *inet_gro_receive(struct - if (unlikely(ip_fast_csum((u8 *)iph, 5))) +@@ -1506,8 +1506,8 @@ struct sk_buff *inet_gro_receive(struct goto out; + NAPI_GRO_CB(skb)->proto = proto; - id = ntohl(*(__be32 *)&iph->id); - flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id & ~IP_DF)); + id = ntohl(net_hdr_word(&iph->id)); @@ -350,7 +350,7 @@ SVN-Revision: 35130 list_for_each_entry(p, head, list) { --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c -@@ -612,48 +612,53 @@ static void tcp_options_write(struct tcp +@@ -620,48 +620,53 @@ static void tcp_options_write(struct tcp u16 options = opts->options; /* mungable copy */ if (unlikely(OPTION_MD5 & options)) { @@ -427,7 +427,7 @@ SVN-Revision: 35130 } if (unlikely(opts->num_sack_blocks)) { -@@ -661,16 +666,17 @@ static void tcp_options_write(struct tcp +@@ -669,16 +674,17 @@ static void tcp_options_write(struct tcp tp->duplicate_sack : tp->selective_acks; int this_sack; @@ -451,7 +451,7 @@ SVN-Revision: 35130 } tp->rx_opt.dsack = 0; -@@ -683,13 +689,14 @@ static void tcp_options_write(struct tcp +@@ -691,13 +697,14 @@ static void tcp_options_write(struct tcp if (foc->exp) { len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len; @@ -509,7 +509,7 @@ SVN-Revision: 35130 #define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */ --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c -@@ -131,7 +131,7 @@ __be32 __skb_flow_get_ports(const struct +@@ -132,7 +132,7 @@ __be32 __skb_flow_get_ports(const struct ports = __skb_header_pointer(skb, thoff + poff, sizeof(_ports), data, hlen, &_ports); if (ports) @@ -557,7 +557,7 @@ SVN-Revision: 35130 static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey) --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c -@@ -155,7 +155,7 @@ next_knode: +@@ -157,7 +157,7 @@ next_knode: data = skb_header_pointer(skb, toff, 4, &hdata); if (!data) goto out; @@ -566,7 +566,7 @@ SVN-Revision: 35130 n = rcu_dereference_bh(n->next); goto next_knode; } -@@ -206,8 +206,8 @@ check_terminal: +@@ -208,8 +208,8 @@ check_terminal: &hdata); if (!data) goto out; @@ -579,7 +579,7 @@ SVN-Revision: 35130 goto next_ht; --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c -@@ -290,7 +290,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * +@@ -273,7 +273,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * continue; iph2 = (struct ipv6hdr *)(p->data + off); @@ -624,7 +624,7 @@ SVN-Revision: 35130 /* * Jumbo payload option, as described in RFC 2675 2. -@@ -615,8 +615,8 @@ static inline void __ipv6_addr_set_half( +@@ -649,8 +649,8 @@ static inline void __ipv6_addr_set_half( } #endif #endif @@ -635,7 +635,7 @@ SVN-Revision: 35130 } static inline void ipv6_addr_set(struct in6_addr *addr, -@@ -675,6 +675,8 @@ static inline bool ipv6_prefix_equal(con +@@ -709,6 +709,8 @@ static inline bool ipv6_prefix_equal(con const __be32 *a1 = addr1->s6_addr32; const __be32 *a2 = addr2->s6_addr32; unsigned int pdw, pbi; @@ -644,7 +644,7 @@ SVN-Revision: 35130 /* check complete u32 in prefix */ pdw = prefixlen >> 5; -@@ -683,7 +685,9 @@ static inline bool ipv6_prefix_equal(con +@@ -717,7 +719,9 @@ static inline bool ipv6_prefix_equal(con /* check incomplete u32 in prefix */ pbi = prefixlen & 0x1f; @@ -655,7 +655,7 @@ SVN-Revision: 35130 return false; return true; -@@ -805,13 +809,13 @@ static inline void ipv6_addr_set_v4mappe +@@ -839,13 +843,13 @@ static inline void ipv6_addr_set_v4mappe */ static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) { @@ -671,7 +671,7 @@ SVN-Revision: 35130 if (xb) return i * 32 + 31 - __fls(ntohl(xb)); } -@@ -1005,17 +1009,18 @@ static inline u32 ip6_multipath_hash_fie +@@ -1040,17 +1044,18 @@ static inline u32 ip6_multipath_hash_fie static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) { @@ -716,7 +716,7 @@ SVN-Revision: 35130 #define IP_TOS 1 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c -@@ -142,7 +142,7 @@ static __be32 addr_bit_set(const void *t +@@ -141,7 +141,7 @@ static __be32 addr_bit_set(const void *t * See include/asm-generic/bitops/le.h. */ return (__force __be32)(1 << ((~fn_bit ^ BITOP_BE32_SWIZZLE) & 0x1f)) & @@ -751,7 +751,7 @@ SVN-Revision: 35130 EXPORT_SYMBOL(xfrm_parse_spi); --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c -@@ -4183,14 +4183,16 @@ static bool tcp_parse_aligned_timestamp( +@@ -4188,14 +4188,16 @@ static bool tcp_parse_aligned_timestamp( { const __be32 *ptr = (const __be32 *)(th + 1); @@ -858,7 +858,7 @@ SVN-Revision: 35130 --- a/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c -@@ -62,7 +62,7 @@ static struct sk_buff *__tcpv4_gso_segme +@@ -63,7 +63,7 @@ static struct sk_buff *__tcpv4_gso_segme th2 = tcp_hdr(seg->next); iph2 = ip_hdr(seg->next); @@ -867,7 +867,7 @@ SVN-Revision: 35130 iph->daddr == iph2->daddr && iph->saddr == iph2->saddr) return segs; -@@ -254,7 +254,7 @@ struct sk_buff *tcp_gro_lookup(struct li +@@ -255,7 +255,7 @@ struct sk_buff *tcp_gro_lookup(struct li continue; th2 = tcp_hdr(p); @@ -876,7 +876,7 @@ SVN-Revision: 35130 NAPI_GRO_CB(p)->same_flow = 0; continue; } -@@ -320,8 +320,8 @@ struct sk_buff *tcp_gro_receive(struct l +@@ -321,8 +321,8 @@ struct sk_buff *tcp_gro_receive(struct l ~(TCP_FLAG_CWR | TCP_FLAG_FIN | TCP_FLAG_PSH)); flush |= (__force int)(th->ack_seq ^ th2->ack_seq); for (i = sizeof(*th); i < thlen; i += 4) diff --git a/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch b/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch index 536d7abf6b..980f29eef1 100644 --- a/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch +++ b/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch @@ -45,7 +45,7 @@ Submitted-by: Christopher Hill --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig -@@ -2209,6 +2209,14 @@ config RAVE_SP_CORE +@@ -2261,6 +2261,14 @@ config RAVE_SP_CORE Select this to get support for the Supervisory Processor device found on several devices in RAVE line of hardware. @@ -69,10 +69,10 @@ Submitted-by: Christopher Hill +obj-$(CONFIG_MFD_RB4XX_CPLD) += rb4xx-cpld.o obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o obj-$(CONFIG_MFD_SIMPLE_MFD_I2C) += simple-mfd-i2c.o - obj-$(CONFIG_MFD_INTEL_M10_BMC) += intel-m10-bmc.o + obj-$(CONFIG_MFD_SMPRO) += smpro-core.o --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -1594,6 +1594,12 @@ config GPIO_SODAVILLE +@@ -1696,6 +1696,12 @@ config GPIO_SODAVILLE help Say Y here to support Intel Sodaville GPIO. @@ -87,7 +87,7 @@ Submitted-by: Christopher Hill menu "SPI GPIO expanders" --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile -@@ -123,6 +123,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061. +@@ -131,6 +131,7 @@ obj-$(CONFIG_GPIO_PL061) += gpio-pl061. obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio-pmic-eic-sprd.o obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o @@ -97,7 +97,7 @@ Submitted-by: Christopher Hill obj-$(CONFIG_GPIO_RDA) += gpio-rda.o --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -565,4 +565,11 @@ config MTD_NAND_AR934X +@@ -551,4 +551,11 @@ config MTD_NAND_AR934X Enables support for NAND controller on Qualcomm Atheros SoCs. This controller is found on AR934x and QCA955x SoCs. @@ -111,7 +111,7 @@ Submitted-by: Christopher Hill endif # MTD_RAW_NAND --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rock +@@ -58,6 +58,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rock obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-nand-controller.o obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o diff --git a/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch b/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch index 677428fa65..e610a4ff14 100644 --- a/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch +++ b/target/linux/ath79/patches-6.6/911-mikrotik-rb91x.patch @@ -29,7 +29,7 @@ Tested-by: Koen Vandeputte --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig -@@ -368,6 +368,12 @@ config GPIO_IXP4XX +@@ -371,6 +371,12 @@ config GPIO_IXP4XX If unsure, say N. @@ -42,7 +42,7 @@ Tested-by: Koen Vandeputte config GPIO_LOGICVC tristate "Xylon LogiCVC GPIO support" depends on MFD_SYSCON && OF -@@ -544,6 +550,10 @@ config GPIO_ROCKCHIP +@@ -553,6 +559,10 @@ config GPIO_ROCKCHIP help Say yes here to support GPIO on Rockchip SoCs. @@ -55,15 +55,15 @@ Tested-by: Koen Vandeputte depends on MFD_SYSCON --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile -@@ -76,6 +76,7 @@ obj-$(CONFIG_GPIO_IT87) += gpio-it87.o - obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4xx.o +@@ -81,6 +81,7 @@ obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4x obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o + obj-$(CONFIG_GPIO_LATCH) += gpio-latch.o +obj-$(CONFIG_GPIO_LATCH_MIKROTIK) += gpio-latch-mikrotik.o + obj-$(CONFIG_GPIO_LJCA) += gpio-ljca.o obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o - obj-$(CONFIG_GPIO_LOONGSON) += gpio-loongson.o -@@ -124,6 +125,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio +@@ -132,6 +133,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio obj-$(CONFIG_GPIO_PXA) += gpio-pxa.o obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o obj-$(CONFIG_GPIO_RB4XX) += gpio-rb4xx.o @@ -73,7 +73,7 @@ Tested-by: Koen Vandeputte obj-$(CONFIG_GPIO_RDA) += gpio-rda.o --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig -@@ -572,4 +572,10 @@ config MTD_NAND_RB4XX +@@ -558,4 +558,10 @@ config MTD_NAND_RB4XX Enables support for the NAND flash chip on Mikrotik Routerboard RB4xx series. @@ -86,7 +86,7 @@ Tested-by: Koen Vandeputte endif # MTD_RAW_NAND --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile -@@ -61,6 +61,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n +@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n obj-$(CONFIG_MTD_NAND_RENESAS) += renesas-nand-controller.o obj-$(CONFIG_MTD_NAND_AR934X) += ar934x_nand.o obj-$(CONFIG_MTD_NAND_RB4XX) += nand_rb4xx.o From e938d68074272d9eb02aa1dfe057c9c0a8a8dd4c Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 28/40] ath79: refresh 6.6 kernel config files All kernel config files are refreshed by `make kernel_oldconfig CONFIG_TARGET={subtarget_target,subtarget}` "CONFIG_SQUASHFS_DECOMP_SINGLE=y" is manually selected as all ath79 SoCs are single core processors. Signed-off-by: Shiji Yang --- target/linux/ath79/config-6.6 | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/target/linux/ath79/config-6.6 b/target/linux/ath79/config-6.6 index 87f520228f..290f5b833e 100644 --- a/target/linux/ath79/config-6.6 +++ b/target/linux/ath79/config-6.6 @@ -38,10 +38,10 @@ CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y CONFIG_CPU_SUPPORTS_HIGHMEM=y CONFIG_CPU_SUPPORTS_MSA=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_GF128MUL=y CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2 CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_RNG2=y CONFIG_CSRC_R4K=y CONFIG_DEBUG_INFO=y CONFIG_DMA_NONCOHERENT=y @@ -50,6 +50,8 @@ CONFIG_EARLY_PRINTK=y CONFIG_ETHERNET_PACKET_MANGLE=y CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_FIXED_PHY=y +CONFIG_FS_IOMAP=y +CONFIG_FUNCTION_ALIGNMENT=0 CONFIG_FWNODE_MDIO=y CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_SYSFS=y @@ -60,6 +62,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_GENERIC_IRQ_SHOW=y @@ -86,6 +89,7 @@ CONFIG_GPIO_GENERIC=y CONFIG_HARDWARE_WATCHPOINTS=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HZ_PERIODIC=y CONFIG_INITRAMFS_SOURCE="" @@ -103,7 +107,6 @@ CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y CONFIG_MDIO_DEVRES=y CONFIG_MDIO_GPIO=y -CONFIG_MEMFD_CREATE=y # CONFIG_MFD_RB4XX_CPLD is not set CONFIG_MFD_SYSCON=y CONFIG_MIGRATION=y @@ -115,10 +118,10 @@ CONFIG_MIPS_CLOCK_VSYSCALL=y # CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set CONFIG_MIPS_CMDLINE_FROM_DTB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 -CONFIG_MIPS_LD_CAN_LINK_VDSO=y # CONFIG_MIPS_NO_APPENDED_DTB is not set CONFIG_MIPS_RAW_APPENDED_DTB=y CONFIG_MIPS_SPRAM=y +CONFIG_MMU_LAZY_TLB_REFCOUNT=y CONFIG_MODULES_USE_ELF_REL=y CONFIG_MTD_CFI_ADV_OPTIONS=y CONFIG_MTD_CFI_GEOMETRY=y @@ -140,7 +143,10 @@ CONFIG_MTD_SPLIT_WRGG_FW=y CONFIG_MTD_VIRT_CONCAT=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_PER_CPU_KM=y +CONFIG_NET_EGRESS=y +CONFIG_NET_INGRESS=y CONFIG_NET_SELFTESTS=y +CONFIG_NET_XGRESS=y CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y CONFIG_NVMEM=y CONFIG_NVMEM_LAYOUTS=y @@ -194,7 +200,9 @@ CONFIG_SPI_GPIO=y CONFIG_SPI_MASTER=y CONFIG_SPI_MEM=y # CONFIG_SPI_RB4XX is not set -CONFIG_SRCU=y +# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y +CONFIG_SQUASHFS_DECOMP_SINGLE=y CONFIG_SWCONFIG=y CONFIG_SWCONFIG_LEDS=y CONFIG_SWPHY=y From 26390b536165205d10d0583b8b52c33c225433c4 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 29/40] ath79: skip reset control for syscon devices Fix the issue of exclusive reset controller acquisition failure on kernel 6.6. Signed-off-by: Shiji Yang --- target/linux/ath79/dts/ath79.dtsi | 2 + ...kip-reset-control-for-syscon-devices.patch | 37 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch diff --git a/target/linux/ath79/dts/ath79.dtsi b/target/linux/ath79/dts/ath79.dtsi index 89d9058414..8849d729ac 100644 --- a/target/linux/ath79/dts/ath79.dtsi +++ b/target/linux/ath79/dts/ath79.dtsi @@ -52,6 +52,7 @@ interrupts = <4>; phy-mode = "mii"; + syscon-no-reset; mdio0: mdio { status = "disabled"; @@ -75,6 +76,7 @@ interrupts = <5>; phy-mode = "mii"; + syscon-no-reset; mdio1: mdio { status = "disabled"; diff --git a/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch b/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch new file mode 100644 index 0000000000..c73c8443b9 --- /dev/null +++ b/target/linux/ath79/patches-6.6/820-mfd-syscon-support-skip-reset-control-for-syscon-devices.patch @@ -0,0 +1,37 @@ +From: Shiji Yang +Date: Wed, 13 Mar 2024 22:36:31 +0800 +Subject: [PATCH] mfd: syscon: support skip reset control for syscon devices + +Some platform device drivers(e.g. ag71xx) expect exclusive reset +control. Fetching reset controller for syscon[1] will break these +drivers. This patch introduces a new property 'syscon-no-reset' +to skip it. + +[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?id=7d1e3bd94828ad9fc86f55253cd6fec8edd65394 + +Signed-off-by: Shiji Yang +--- + drivers/mfd/syscon.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/mfd/syscon.c ++++ b/drivers/mfd/syscon.c +@@ -52,7 +52,7 @@ static struct syscon *of_syscon_register + int ret; + struct regmap_config syscon_config = syscon_regmap_config; + struct resource res; +- struct reset_control *reset; ++ struct reset_control *reset = NULL; + + syscon = kzalloc(sizeof(*syscon), GFP_KERNEL); + if (!syscon) +@@ -134,7 +134,8 @@ static struct syscon *of_syscon_register + goto err_attach_clk; + } + +- reset = of_reset_control_get_optional_exclusive(np, NULL); ++ if (!of_property_read_bool(np, "syscon-no-reset")) ++ reset = of_reset_control_get_optional_exclusive(np, NULL); + if (IS_ERR(reset)) { + ret = PTR_ERR(reset); + goto err_attach_clk; From eb48dae81e59d2f2efed3b66b83ff488e1af7187 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 16 Mar 2024 08:39:16 +0800 Subject: [PATCH 30/40] ath79: enable 6.6 testing kernel The ath79 target now supports the vanilla 6.6 kernel. Enjoy it! Signed-off-by: Shiji Yang --- target/linux/ath79/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/ath79/Makefile b/target/linux/ath79/Makefile index 3ef4b32c72..821b096772 100644 --- a/target/linux/ath79/Makefile +++ b/target/linux/ath79/Makefile @@ -9,6 +9,7 @@ SUBTARGETS:=generic mikrotik nand tiny FEATURES:=ramdisk squashfs usbgadget KERNEL_PATCHVER:=6.1 +KERNEL_TESTING_PATCHVER:=6.6 include $(INCLUDE_DIR)/target.mk From 803c00e9b8facb11e2c908e2fef90e765ebf5c27 Mon Sep 17 00:00:00 2001 From: Eros Brigmann Date: Mon, 8 Apr 2024 21:36:57 +0200 Subject: [PATCH 31/40] ramips: add support for Wavlink WL-WN531G3 This device is similiar to the Wavlink WL-WN531A3. Hardware -------- SoC: Mediatek MT7620A RAM: 64MB FLASH: 8MB NOR (GigaDevice GD25Q64CS) ETH: - 2x 10/100/1000 Mbps Ethernet (RTL8211F) - 3x 10/100 Mbps Ethernet (integrated in SOC) WIFI: - 2.4GHz: 1x (integrated in SOC) (2x2:2) - 5GHz: 1x MT7612E (2x2:2) - 4 external antennas BTN: - 1x Reset button - 1x Touchlink button - 1x Turbo button - 1x Wps button - 1x ON/OFF switch LEDS: - 1x Red led (system status) - 1x Blue led (system status) - 5x Blue leds (ethernet ports) - 1x Power led - 1x Wifi led UART: - 57600-8-N-1 Everything works correctly. Installation ------------ Flash the initramfs image in the OEM firmware interface When Openwrt boots, flash the sysupgrade image otherwise you won't be able to keep configuration between reboots. In my case the whole device was locked and there was no way to flash the image, except for flashing directly to the flash via an spi-flasher. You need to put the sysupgrade image file at the beginning of 0x60000. Notes ----- 1) Router mac addresses: LAN XX:XX:XX:XX:XX:F0 (factory @ 0x28) WAN XX:XX:XX:XX:XX:F1 (factory @ 0x2e) WIFI 2G XX:XX:XX:XX:XX:F2 (factory @ 0x04) WIFI 5G XX:XX:XX:XX:XX:F3 (factory @ 0x8004) LABEL XX:XX:XX:XX:XX:F2 Signed-off-by: Eros Brigmann --- .../ramips/dts/mt7620a_wavlink_wl-wn531g3.dts | 207 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 9 + .../mt7620/base-files/etc/board.d/02_network | 11 +- 3 files changed, 224 insertions(+), 3 deletions(-) create mode 100644 target/linux/ramips/dts/mt7620a_wavlink_wl-wn531g3.dts diff --git a/target/linux/ramips/dts/mt7620a_wavlink_wl-wn531g3.dts b/target/linux/ramips/dts/mt7620a_wavlink_wl-wn531g3.dts new file mode 100644 index 0000000000..d48f27fdc7 --- /dev/null +++ b/target/linux/ramips/dts/mt7620a_wavlink_wl-wn531g3.dts @@ -0,0 +1,207 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mt7620a.dtsi" +#include +#include +#include + +/ { + compatible = "wavlink,wl-wn531g3", "ralink,mt7620a-soc"; + model = "Wavlink WL-WN531G3"; + + aliases { + led-boot = &led_status_blue; + led-failsafe = &led_status_red; + led-running = &led_status_blue; + led-upgrade = &led_status_red; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + turbo { + label = "turbo"; + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + touchlink { + label = "touchlink"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_status_blue: led_status_blue { + function = LED_FUNCTION_STATUS; + color = ; + gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>; + }; + + led_status_red: led_status_red { + function = LED_FUNCTION_STATUS; + color = ; + gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&ehci { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_factory_28: macaddr@28 { + reg = <0x28 0x6>; + }; + + macaddr_factory_2e: macaddr@2e { + reg = <0x2e 0x6>; + }; + + eeprom_radio_0: eeprom@0 { + reg = <0x0 0x200>; + }; + + eeprom_radio_8000: eeprom@8000 { + reg = <0x8000 0x200>; + }; + }; + }; + + partition@50000 { + label = "params"; + reg = <0x50000 0x10000>; + read-only; + }; + + partition@60000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x60000 0x7a0000>; + }; + }; + }; +}; + +ðernet { + pinctrl-names = "default"; + pinctrl-0 = <&rgmii1_pins>, <&rgmii2_pins>, <&mdio_pins>; + + nvmem-cells = <&macaddr_factory_28>; + nvmem-cell-names = "mac-address"; + + mediatek,portmap = "llllw"; + + port@4 { + status = "okay"; + phy-handle = <&phy4>; + phy-mode = "rgmii"; + + nvmem-cells = <&macaddr_factory_2e>; + nvmem-cell-names = "mac-address"; + }; + + port@5 { + status = "okay"; + phy-handle = <&phy5>; + phy-mode = "rgmii"; + }; + + mdio-bus { + status = "okay"; + + phy4: ethernet-phy@4 { + reg = <4>; + phy-mode = "rgmii"; + }; + + phy5: ethernet-phy@5 { + reg = <5>; + phy-mode = "rgmii"; + }; + }; +}; + +&pcie { + status = "okay"; +}; + +&pcie0 { + mt76@0,0 { + compatible = "mediatek,mt76"; + reg = <0x0000 0 0 0 0>; + nvmem-cells = <&eeprom_radio_8000>; + nvmem-cell-names = "eeprom"; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +&gsw { + mediatek,port4-gmac; +}; + +&wmac { + nvmem-cells = <&eeprom_radio_0>; + nvmem-cell-names = "eeprom"; +}; + +&state_default { + gpio { + groups = "i2c", "uartf"; + function = "gpio"; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index f7238c2b1f..cb41e9bb5a 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -1340,6 +1340,15 @@ define Device/wavlink_wl-wn530hg4 endef TARGET_DEVICES += wavlink_wl-wn530hg4 +define Device/wavlink_wl-wn531g3 + SOC := mt7620a + IMAGE_SIZE := 7808k + DEVICE_VENDOR := Wavlink + DEVICE_MODEL := WL-WN531G3 + DEVICE_PACKAGES := kmod-mt76x2 kmod-phy-realtek kmod-usb2 kmod-usb-ohci +endef +TARGET_DEVICES += wavlink_wl-wn531g3 + define Device/wavlink_wl-wn535k1 SOC := mt7620a IMAGE_SIZE := 7360k diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network index 63f7e41ac2..d23ec76327 100644 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network @@ -253,6 +253,10 @@ ramips_setup_interfaces() ucidef_add_switch "switch1" \ "0:lan:3" "1:lan:2" "2:lan:1" "4:lan:4" "3:wan" "7@eth0" ;; + wavlink,wl-wn531g3) + ucidef_add_switch "switch0" \ + "0:lan:4" "1:lan:3" "2:lan:2" "5:lan:1" "4:wan" "6@eth0" + ;; wavlink,wl-wn535k1) ucidef_add_switch "switch0" \ "2:lan:2" "5:lan:1" "4:wan" "6@eth0" @@ -426,13 +430,14 @@ ramips_setup_macs() tplink,ec220-g5-v2) wan_mac=$(macaddr_add "$(mtd_get_mac_binary rom 0xf100)" 1) ;; + wavlink,wl-wn531g3|\ + zbtlink,zbt-we1026-5g-16m) + label_mac=$(mtd_get_mac_binary factory 0x4) + ;; wavlink,wl-wn535k1) wan_mac=$(mtd_get_mac_binary factory 0x2e) label_mac=$(mtd_get_mac_binary factory 0x8004) ;; - zbtlink,zbt-we1026-5g-16m) - label_mac=$(mtd_get_mac_binary factory 0x4) - ;; zyxel,keenetic-lite-iii-a) lan_mac=$(mtd_get_mac_binary RF-EEPROM 0x4) wan_mac=$(mtd_get_mac_binary RF-EEPROM 0x28) From 39f595d1d85099233e96e4531f583200e0df8438 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 27 Apr 2024 14:57:50 -0700 Subject: [PATCH 32/40] gperf: build as C++11 Newer compilers default to building with C++17 as default, which has the register keyword removed and thus errors. Signed-off-by: Rosen Penev --- package/devel/gperf/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package/devel/gperf/Makefile b/package/devel/gperf/Makefile index f0f794ee2d..9cf4dbc02b 100644 --- a/package/devel/gperf/Makefile +++ b/package/devel/gperf/Makefile @@ -17,6 +17,8 @@ include $(INCLUDE_DIR)/package.mk HOST_CPPFLAGS:=-I$(HOST_BUILD_DIR)/lib -I$(HOST_BUILD_DIR)/src $(HOST_CPPFLAGS) TARGET_CPPFLAGS:=-I$(PKG_BUILD_DIR)/lib -I$(PKG_BUILD_DIR)/src $(TARGET_CPPFLAGS) +HOST_CXXFLAGS += -std=c++11 + define Package/gperf SECTION:=devel CATEGORY:=Development From eee2300026c07ba3539c1f33a73da3e3a329e0d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 10 May 2024 09:15:15 +0200 Subject: [PATCH 33/40] bcm27xx-gpu-fw: update to v1.20240424 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This includes multiple updates for BCM2711 and BCM2712. Full changelog: https://github.com/raspberrypi/firmware/compare/0968de28716a9b1f106b8492646d0ed0a2800152...1.20240424 Signed-off-by: Álvaro Fernández Rojas --- package/kernel/bcm27xx-gpu-fw/Makefile | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/package/kernel/bcm27xx-gpu-fw/Makefile b/package/kernel/bcm27xx-gpu-fw/Makefile index 048dd0d3a9..878574ea5c 100644 --- a/package/kernel/bcm27xx-gpu-fw/Makefile +++ b/package/kernel/bcm27xx-gpu-fw/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=bcm27xx-gpu-fw -PKG_VERSION:=2024-01-11 -PKG_RELEASE:=0968de28716a9b1f106b8492646d0ed0a2800152 +PKG_VERSION:=2024-04-24 +PKG_RELEASE:=969420b4121b522ab33c5001074cc4c2547dafaf PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)/rpi-firmware-$(PKG_RELEASE) @@ -34,7 +34,7 @@ define Download/fixup_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup.dat - HASH:=c28ea955e672e374016dca61d63afa026490f0473a98115908586ab48e324aeb + HASH:=94ae3ff8363a6a2832f173241597b6500cf67044d34155a1251fe58671dd6ce7 endef $(eval $(call Download,fixup_dat)) @@ -42,7 +42,7 @@ define Download/fixup_cd_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup_cd.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup_cd.dat - HASH:=3cf1aef5f596ca106203ed5dac9ad45e85929ec55ce44c813588645e174442ec + HASH:=2d7c19e46780ef29867f8ed200a94bb77a7982f5bc41219afe864d2303ba3084 endef $(eval $(call Download,fixup_cd_dat)) @@ -50,7 +50,7 @@ define Download/fixup_x_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup_x.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup_x.dat - HASH:=56525c8feabde1ab86f36bb09bc55171659b2993f94132cf81ffc4293d62269d + HASH:=692393562d0650f7d1891ba0143ad0500ccf07129947d386d56350e7ca204d16 endef $(eval $(call Download,fixup_x_dat)) @@ -58,7 +58,7 @@ define Download/fixup4_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup4.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup4.dat - HASH:=615f8595801bf52373039f73ad5ad9513f83400d355eb1b2c075c7ae907e927c + HASH:=63a4a8f356e2b8ed2850d68b9adf21008ef1dfa7743b22ddc26987e4d3171302 endef $(eval $(call Download,fixup4_dat)) @@ -66,7 +66,7 @@ define Download/fixup4cd_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup4cd.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup4cd.dat - HASH:=3cf1aef5f596ca106203ed5dac9ad45e85929ec55ce44c813588645e174442ec + HASH:=2d7c19e46780ef29867f8ed200a94bb77a7982f5bc41219afe864d2303ba3084 endef $(eval $(call Download,fixup4cd_dat)) @@ -74,7 +74,7 @@ define Download/fixup4x_dat FILE:=$(RPI_FIRMWARE_FILE)-fixup4x.dat URL:=$(RPI_FIRMWARE_URL) URL_FILE:=fixup4x.dat - HASH:=6d27a4b8ecb78cef9e1f03751b4aaec5ce8749d36988f381145a8a41dbf164ae + HASH:=41328f6587c0cd47ae7fa7edab4bf62730dda54caf52ffaa3bfb24ff93b8348b endef $(eval $(call Download,fixup4x_dat)) @@ -82,7 +82,7 @@ define Download/start_elf FILE:=$(RPI_FIRMWARE_FILE)-start.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start.elf - HASH:=e8348e88522e7a1d0e2b0944ab66d7d8f4f30da98f326e2b3c123522e45f71b2 + HASH:=8637fb847ff62f69fbb8b98b1beff685b47cf4095580e830724f6a27fb20fee0 endef $(eval $(call Download,start_elf)) @@ -90,7 +90,7 @@ define Download/start_cd_elf FILE:=$(RPI_FIRMWARE_FILE)-start_cd.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start_cd.elf - HASH:=c9b4de3f12bec7808868b898c49f656b5378ddc315f12ccab83d6519bad51680 + HASH:=6832f57236f6c453cd72eac1f0ab53e265037fb75fc41301448fedb8d505f2b3 endef $(eval $(call Download,start_cd_elf)) @@ -98,7 +98,7 @@ define Download/start_x_elf FILE:=$(RPI_FIRMWARE_FILE)-start_x.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start_x.elf - HASH:=0b5c06c109984361eeed0ab14d146f686d8aa8da2025689b887e9cb098636db9 + HASH:=6f72a3fda8cbdacb340676e18a8468b9edd89458173b5ecf3c12b00c147dce40 endef $(eval $(call Download,start_x_elf)) @@ -106,7 +106,7 @@ define Download/start4_elf FILE:=$(RPI_FIRMWARE_FILE)-start4.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start4.elf - HASH:=fedc4ecd72c9d21018e210240dcd2e41a8bb5f936fb5674c3351f2a447a22203 + HASH:=badf4cd8822d1b85ad56ddb9e32e9b4220c88099c8cc0c3e70ae77190571c8ef endef $(eval $(call Download,start4_elf)) @@ -114,7 +114,7 @@ define Download/start4cd_elf FILE:=$(RPI_FIRMWARE_FILE)-start4cd.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start4cd.elf - HASH:=ea22282a77666801378137a651e7e0b17cc186f63cdbdc8b9bb98749cd12b256 + HASH:=7d3f13c8412c6b0efdbd3b53439776f3552621cc28ee887caaac539fb063ad8a endef $(eval $(call Download,start4cd_elf)) @@ -122,7 +122,7 @@ define Download/start4x_elf FILE:=$(RPI_FIRMWARE_FILE)-start4x.elf URL:=$(RPI_FIRMWARE_URL) URL_FILE:=start4x.elf - HASH:=c509e73a9cba7af3223dea885f58294bd04845e822aa3d6278500fa4dcdb112f + HASH:=c30fbdfedad7180245ff567ccdea953fc1816d0da3ff4701b15071c6f8b47a89 endef $(eval $(call Download,start4x_elf)) From 752f6bf64ee6e7cdcc5273b7d03d1b2943945967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 10 May 2024 09:17:52 +0200 Subject: [PATCH 34/40] bcm27xx-utils: update to latest version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full changelog: https://github.com/raspberrypi/utils/compare/e65f5ec102e74218cda7da9fdc8b1caa0fd1127d...451b9881b72cb994c102724b5a7d9b93f97dc315 Signed-off-by: Álvaro Fernández Rojas --- package/utils/bcm27xx-utils/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/utils/bcm27xx-utils/Makefile b/package/utils/bcm27xx-utils/Makefile index 9e113914e7..04dd6b8d62 100644 --- a/package/utils/bcm27xx-utils/Makefile +++ b/package/utils/bcm27xx-utils/Makefile @@ -3,13 +3,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bcm27xx-utils -PKG_VERSION:=2024-01-18 +PKG_VERSION:=2024-04-24 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/raspberrypi/utils.git -PKG_SOURCE_VERSION:=e65f5ec102e74218cda7da9fdc8b1caa0fd1127d -PKG_MIRROR_HASH:=ea946fc4a86875c5d1efc35b2bc80f6b5482afc3d1ea13853b69abc2b4a2eee6 +PKG_SOURCE_VERSION:=451b9881b72cb994c102724b5a7d9b93f97dc315 +PKG_MIRROR_HASH:=b453976171187e0ffe7cacfdcab36cec6b5d02db8b6d978cb9afbbcafcfcff9d PKG_FLAGS:=nonshared PKG_BUILD_FLAGS:=no-lto From 81ab9ef2d166f9914a33d54d4dfd00429511ccb2 Mon Sep 17 00:00:00 2001 From: Kevin Jilissen Date: Sat, 4 May 2024 16:11:00 +0200 Subject: [PATCH 35/40] realtek: Change LLTP register to LLDP These registers control the handling of Link Layer Discovery Protocol (LLDP) packets. This seems to be a typo in the naming. Signed-off-by: Kevin Jilissen --- .../files-5.15/drivers/net/dsa/rtl83xx/rtl838x.c | 4 ++-- .../files-5.15/drivers/net/dsa/rtl83xx/rtl838x.h | 10 +++++----- .../files-5.15/drivers/net/dsa/rtl83xx/rtl839x.c | 4 ++-- .../files-5.15/drivers/net/dsa/rtl83xx/rtl931x.c | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.c index adff404fdd..d93087f5b1 100644 --- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.c +++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.c @@ -1678,9 +1678,9 @@ void rtl838x_set_receive_management_action(int port, rma_ctrl_t type, action_typ sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1), RTL838X_RMA_PTP_CTRL + ((port >> 4) << 2)); break; - case LLTP: + case LLDP: sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1), - RTL838X_RMA_LLTP_CTRL + ((port >> 4) << 2)); + RTL838X_RMA_LLDP_CTRL + ((port >> 4) << 2)); break; default: break; diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.h b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.h index a642c74775..261af32bb4 100644 --- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.h +++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl838x.h @@ -425,7 +425,7 @@ typedef enum { PTP, PTP_UDP, PTP_ETH2, - LLTP, + LLDP, EAPOL, GRATARP, } rma_ctrl_t; @@ -449,10 +449,10 @@ typedef enum { #define RTL930X_RMA_PTP_CTRL (0x9E88) #define RTL931X_RMA_PTP_CTRL (0x8834) -#define RTL838X_RMA_LLTP_CTRL (0x4340) -#define RTL839X_RMA_LLTP_CTRL (0x124C) -#define RTL930X_RMA_LLTP_CTRL (0x9EFC) -#define RTL931X_RMA_LLTP_CTRL (0x8918) +#define RTL838X_RMA_LLDP_CTRL (0x4340) +#define RTL839X_RMA_LLDP_CTRL (0x124C) +#define RTL930X_RMA_LLDP_CTRL (0x9EFC) +#define RTL931X_RMA_LLDP_CTRL (0x8918) #define RTL930X_RMA_EAPOL_CTRL (0x9F08) #define RTL931X_RMA_EAPOL_CTRL (0x8930) diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl839x.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl839x.c index ff80a9074e..5889cea6d6 100644 --- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl839x.c +++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl839x.c @@ -1814,9 +1814,9 @@ void rtl839x_set_receive_management_action(int port, rma_ctrl_t type, action_typ sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1), RTL839X_RMA_PTP_CTRL + ((port >> 4) << 2)); break; - case LLTP: + case LLDP: sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1), - RTL839X_RMA_LLTP_CTRL + ((port >> 4) << 2)); + RTL839X_RMA_LLDP_CTRL + ((port >> 4) << 2)); break; default: break; diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl931x.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl931x.c index 07ac25c743..25ad4eaa11 100644 --- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl931x.c +++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/rtl931x.c @@ -516,8 +516,8 @@ void rtl931x_set_receive_management_action(int port, rma_ctrl_t type, action_typ case PTP_ETH2: sw_w32_mask(3, value, RTL931X_RMA_PTP_CTRL + (port << 2)); break; - case LLTP: - sw_w32_mask(7 << ((port % 10) * 3), value << ((port % 10) * 3), RTL931X_RMA_LLTP_CTRL + ((port / 10) << 2)); + case LLDP: + sw_w32_mask(7 << ((port % 10) * 3), value << ((port % 10) * 3), RTL931X_RMA_LLDP_CTRL + ((port / 10) << 2)); break; case EAPOL: sw_w32_mask(7 << ((port % 10) * 3), value << ((port % 10) * 3), RTL931X_RMA_EAPOL_CTRL + ((port / 10) << 2)); From 5a5c52085a5bd0b1b8bc629f3586c7a93dcb4460 Mon Sep 17 00:00:00 2001 From: Kevin Jilissen Date: Sat, 4 May 2024 16:12:20 +0200 Subject: [PATCH 36/40] realtek: Trap LLDP packets to the CPU We should setup the registers for trapping LLDP packets to the CPU. Currently, these packets are forwarded to all ports which is not desired behaviour. Signed-off-by: Kevin Jilissen --- .../linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c index ff81a4c77b..9eb444515f 100644 --- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c @@ -155,6 +155,12 @@ static void rtl83xx_setup_bpdu_traps(struct rtl838x_switch_priv *priv) priv->r->set_receive_management_action(i, BPDU, TRAP2CPU); } +static void rtl83xx_setup_lldp_traps(struct rtl838x_switch_priv *priv) +{ + for (int i = 0; i < priv->cpu_port; i++) + priv->r->set_receive_management_action(i, LLDP, TRAP2CPU); +} + static void rtl83xx_port_set_salrn(struct rtl838x_switch_priv *priv, int port, bool enable) { @@ -207,6 +213,7 @@ static int rtl83xx_setup(struct dsa_switch *ds) rtl83xx_vlan_setup(priv); rtl83xx_setup_bpdu_traps(priv); + rtl83xx_setup_lldp_traps(priv); ds->configure_vlan_while_not_filtering = true; From c45289702b900f31a60bdae995ce0d44430d487a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 10 May 2024 13:39:07 +0200 Subject: [PATCH 37/40] image: add missing DTC include-prefixes directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit include-prefixes were moved to a common directory in linux v4.12, see https://github.com/torvalds/linux/commit/d5d332d3f7e8435e264a71b90178dee69428d630 This is needed for bcm27xx kernel v6.6 support. Signed-off-by: Álvaro Fernández Rojas --- include/image.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/include/image.mk b/include/image.mk index 284298e5ed..0dd18dbd82 100644 --- a/include/image.mk +++ b/include/image.mk @@ -185,6 +185,7 @@ define Image/BuildDTB/sub -I$(DTS_DIR) \ -I$(DTS_DIR)/include \ -I$(LINUX_DIR)/include/ \ + -I$(LINUX_DIR)/scripts/dtc/include-prefixes \ -undef -D__DTS__ $(3) \ -o $(2).tmp $(1) $(LINUX_DIR)/scripts/dtc/dtc -O dtb \ From 72cdba7b1a5a573d6b34c8fe462788ee9c951f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Fri, 10 May 2024 19:49:21 +0200 Subject: [PATCH 38/40] kernel: add missing kernel 6.6 symbols MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add missing kernel 6.6 symbols for bcm27xx. Signed-off-by: Álvaro Fernández Rojas --- target/linux/generic/config-6.6 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6 index 1e9a82e8f0..d6836ebfb8 100644 --- a/target/linux/generic/config-6.6 +++ b/target/linux/generic/config-6.6 @@ -1693,12 +1693,14 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set # CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set # CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set # CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set +# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set # CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set # CONFIG_DRM_PANEL_JDI_R63452 is not set # CONFIG_DRM_PANEL_KHADAS_TS050 is not set @@ -1708,13 +1710,16 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_LG_LB035Q02 is not set # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_LVDS is not set +# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set # CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set # CONFIG_DRM_PANEL_MIPI_DBI is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set # CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set +# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set # CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set # CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set # CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set # CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set @@ -1750,14 +1755,18 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set # CONFIG_DRM_PANEL_SONY_ACX424AKP is not set # CONFIG_DRM_PANEL_SONY_ACX565AKM is not set +# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set # CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set +# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set # CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set # CONFIG_DRM_PANEL_TPO_Y17P is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set # CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set +# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set # CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set @@ -5361,6 +5370,7 @@ CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 # CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set +# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set # CONFIG_REGULATOR_RT4801 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5190A is not set From 140b48a9e93909873bee777ca5bdf49fe4f01271 Mon Sep 17 00:00:00 2001 From: Thomas Winkler Date: Fri, 10 Nov 2023 22:48:59 +0100 Subject: [PATCH 39/40] base-files: fix uid/gid auto-enumeration to avoid 16-bit limit uid/gid range should be limited to 16bit unsigned integer range to avoid "wraparound" issues with permissions where jffs2 is employed for storage and chown 65536 (first auto-created user) becomes equivalent to chown 0 Fixes: #13927 Signed-off-by: Thomas Winkler --- package/base-files/files/lib/functions.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index 7b3203f55a..82ee58f642 100644 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -408,7 +408,7 @@ group_add_next() { return fi gids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/group) - gid=65536 + gid=32768 while echo "$gids" | grep -q "^$gid$"; do gid=$((gid + 1)) done @@ -439,7 +439,7 @@ user_add() { local rc [ -z "$uid" ] && { uids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/passwd) - uid=65536 + uid=32768 while echo "$uids" | grep -q "^$uid$"; do uid=$((uid + 1)) done From 8113169cadce2e298a6a6b973132bd40a996f2f4 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Thu, 9 May 2024 22:35:47 +0100 Subject: [PATCH 40/40] mediatek: fix PWM fan on BPi-R4 Add additional PWM fan cooling step and enable fan on BPi-R4. Suggested-by: Frank Wunderlich Signed-off-by: Daniel Golle --- .../arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 9 +++++++++ .../files-6.6/arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi index c4c05fd419..14c615b67c 100644 --- a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi +++ b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi @@ -297,6 +297,15 @@ status = "okay"; }; +&pwm { + status = "okay"; +}; + +&fan { + pwms = <&pwm 0 50000>; + status = "okay"; +}; + &ssusb1 { status = "okay"; }; diff --git a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a.dtsi b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a.dtsi index af4dcb3581..9ad068fe05 100644 --- a/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a.dtsi +++ b/target/linux/mediatek/files-6.6/arch/arm64/boot/dts/mediatek/mt7988a.dtsi @@ -149,8 +149,8 @@ fan: pwm-fan { compatible = "pwm-fan"; - /* cooling level (0, 1, 2) : (0% duty, 50% duty, 100% duty) */ - cooling-levels = <0 128 255>; + /* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */ + cooling-levels = <0 80 128 255>; #cooling-cells = <2>; #thermal-sensor-cells = <1>; status = "disabled";