From 48df7444718b30efd201f35847f69bccef25aecc Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 12 Nov 2019 07:47:48 +0100 Subject: [PATCH] Allwinner: Use mainline compatible mali gpu node for H6 devices --- .../H6/patches/linux/01-add-mali-node.patch | 52 ----- .../devices/H6/patches/linux/07-opi3.patch | 11 -- ...ts-allwinner-OrangePiOnePlus-updates.patch | 6 +- .../linux/0001-backport-from-5.5.patch | 184 ++++++++++++++++++ 4 files changed, 185 insertions(+), 68 deletions(-) delete mode 100644 projects/Allwinner/devices/H6/patches/linux/01-add-mali-node.patch diff --git a/projects/Allwinner/devices/H6/patches/linux/01-add-mali-node.patch b/projects/Allwinner/devices/H6/patches/linux/01-add-mali-node.patch deleted file mode 100644 index c71fa76284..0000000000 --- a/projects/Allwinner/devices/H6/patches/linux/01-add-mali-node.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -Nur a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ---- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi 2018-03-28 20:27:22.000000000 +0200 -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi 2018-04-16 19:28:43.842331161 +0200 -@@ -162,6 +228,19 @@ - }; - }; - -+ gpu: gpu@1800000 { -+ compatible = "arm,mali-t720", "arm,mali-midgard"; -+ reg = <0x01800000 0x4000>; -+ interrupts = , -+ , -+ ; -+ interrupt-names = "job", "mmu", "gpu"; -+ -+ clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; -+ clock-names = "clk_mali", "clk_bus_mali"; -+ resets = <&ccu RST_BUS_GPU>; -+ }; -+ - syscon: syscon@3000000 { - compatible = "allwinner,sun50i-h6-system-controller", - "syscon"; -diff -Nur a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts ---- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts 2018-03-28 20:27:22.000000000 +0200 -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts 2018-04-14 15:34:15.545094216 +0200 -@@ -89,6 +89,10 @@ - status = "okay"; - }; - -+&gpu { -+ mali-supply = <®_dcdcc>; -+}; -+ - &hdmi { - status = "okay"; - }; - -diff -Nur a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts ---- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts 2018-03-28 20:27:22.000000000 +0200 -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts 2018-04-14 15:34:15.545094216 +0200 -@@ -89,6 +89,10 @@ - status = "okay"; - }; - -+&gpu { -+ mali-supply = <®_dcdcc>; -+}; -+ - &hdmi { - status = "okay"; - }; diff --git a/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch b/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch index 840c75230a..f324521525 100644 --- a/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch +++ b/projects/Allwinner/devices/H6/patches/linux/07-opi3.patch @@ -12,17 +12,6 @@ diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64 index 17d496990108..93bdd33694fb 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -@@ -58,6 +58,10 @@ - status = "okay"; - }; - -+&gpu { -+ mali-supply = <®_dcdcc>; -+}; -+ - &mmc0 { - vmmc-supply = <®_cldo1>; - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ @@ -65,6 +69,14 @@ status = "okay"; }; diff --git a/projects/Allwinner/devices/H6/patches/linux/08-arm64-dts-allwinner-OrangePiOnePlus-updates.patch b/projects/Allwinner/devices/H6/patches/linux/08-arm64-dts-allwinner-OrangePiOnePlus-updates.patch index 43c32bc988..450e02d174 100644 --- a/projects/Allwinner/devices/H6/patches/linux/08-arm64-dts-allwinner-OrangePiOnePlus-updates.patch +++ b/projects/Allwinner/devices/H6/patches/linux/08-arm64-dts-allwinner-OrangePiOnePlus-updates.patch @@ -2,7 +2,7 @@ diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arc index 12e17567ab56..fd9dcefcd223 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts -@@ -9,4 +9,77 @@ +@@ -9,4 +9,73 @@ / { model = "OrangePi One Plus"; compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; @@ -60,10 +60,6 @@ index 12e17567ab56..fd9dcefcd223 100644 + status = "okay"; +}; + -+&gpu { -+ mali-supply = <®_dcdcc>; -+}; -+ +&hdmi { + status = "okay"; +}; diff --git a/projects/Allwinner/patches/linux/0001-backport-from-5.5.patch b/projects/Allwinner/patches/linux/0001-backport-from-5.5.patch index 3b4172cff5..bc2bcd9958 100644 --- a/projects/Allwinner/patches/linux/0001-backport-from-5.5.patch +++ b/projects/Allwinner/patches/linux/0001-backport-from-5.5.patch @@ -5022,3 +5022,187 @@ index cc15a5cf107d..15cf1f10221b 100644 -- 2.24.0 + +From: =?utf-8?b?Q2zDqW1lbnQgUMOpcm9u?= +Subject: [PATCH v7 1/2] arm64: dts: allwinner: Add ARM Mali GPU node for H6 +Date: Wed, 30 Oct 2019 16:07:41 +0100 + +Add the mali gpu node to the H6 device-tree. + +Signed-off-by: Clément Péron +--- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +index 0d5ea19336a1..a029daf67345 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +@@ -149,6 +149,20 @@ + allwinner,sram = <&ve_sram 1>; + }; + ++ gpu: gpu@1800000 { ++ compatible = "allwinner,sun50i-h6-mali", ++ "arm,mali-t720"; ++ reg = <0x01800000 0x4000>; ++ interrupts = , ++ , ++ ; ++ interrupt-names = "job", "mmu", "gpu"; ++ clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>; ++ clock-names = "core", "bus"; ++ resets = <&ccu RST_BUS_GPU>; ++ status = "disabled"; ++ }; ++ + syscon: syscon@3000000 { + compatible = "allwinner,sun50i-h6-system-control", + "allwinner,sun50i-a64-system-control"; + + +From: =?utf-8?b?Q2zDqW1lbnQgUMOpcm9u?= +Subject: [PATCH v7 2/2] arm64: dts: allwinner: Add mali GPU supply for H6 + boards +Date: Wed, 30 Oct 2019 16:07:42 +0100 + +Enable and add supply to the Mali GPU node on all the +H6 boards. + +Regarding the datasheet the maximum time for supply to reach +its voltage is 32ms. + +Signed-off-by: Clément Péron +--- + arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts | 6 ++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 6 ++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi | 6 ++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 6 ++++++ + 4 files changed, 24 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +index 1d05d570142f..e5ed1d4bfef8 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +@@ -89,6 +89,11 @@ + status = "okay"; + }; + ++&gpu { ++ mali-supply = <®_dcdcc>; ++ status = "okay"; ++}; ++ + &hdmi { + status = "okay"; + }; +@@ -225,6 +230,7 @@ + }; + + reg_dcdcc: dcdcc { ++ regulator-enable-ramp-delay = <32000>; + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-name = "vdd-gpu"; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +index eb379cd402ac..f5ae5182f0c5 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +@@ -102,6 +102,11 @@ + status = "okay"; + }; + ++&gpu { ++ mali-supply = <®_dcdcc>; ++ status = "okay"; ++}; ++ + &hdmi { + status = "okay"; + }; +@@ -237,6 +242,7 @@ + }; + + reg_dcdcc: dcdcc { ++ regulator-enable-ramp-delay = <32000>; + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-name = "vdd-gpu"; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +index ec9b6a578e3f..df4cbd7ef96c 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +@@ -55,6 +55,11 @@ + status = "okay"; + }; + ++&gpu { ++ mali-supply = <®_dcdcc>; ++ status = "okay"; ++}; ++ + &mmc0 { + vmmc-supply = <®_cldo1>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; +@@ -163,6 +168,7 @@ + }; + + reg_dcdcc: dcdcc { ++ regulator-enable-ramp-delay = <32000>; + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-name = "vdd-gpu"; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +index 30102daf83cc..74899ede00fb 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +@@ -85,6 +85,11 @@ + status = "okay"; + }; + ++&gpu { ++ mali-supply = <®_dcdcc>; ++ status = "okay"; ++}; ++ + &hdmi { + status = "okay"; + }; +@@ -221,6 +226,7 @@ + }; + + reg_dcdcc: dcdcc { ++ regulator-enable-ramp-delay = <32000>; + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-name = "vdd-gpu"; + + +From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= +Date: Sat, 2 Nov 2019 13:04:27 +0100 +Subject: arm64: allwinner: h6: Enable GPU node for Tanix TX6 + +Unlike other H6 boards, Tanix TX6 doesn't have a PMIC so we can enable +the GPU without providing a specific power supply. + +Signed-off-by: Clément Péron +Signed-off-by: Maxime Ripard +--- + arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts +index 7e7cb10e3d96..bccfe1e65b6a 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts +@@ -53,6 +53,10 @@ + status = "okay"; + }; + ++&gpu { ++ status = "okay"; ++}; ++ + &hdmi { + status = "okay"; + };