diff --git a/debian/changelog b/debian/changelog index caf427a86..70864215a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -275,6 +275,8 @@ linux (4.11.11-1) UNRELEASED; urgency=medium (Closes: #866706) * [x86] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems (Closes: #862723) + * [armhf] Add ARM Mali Midgard device tree bindings and gpu node for rk3288 + (thanks to Guillaume Tucker) (Closes: #865646) [ Uwe Kleine-König ] * [arm64] enable FB_SIMPLE diff --git a/debian/patches/features/arm/arm-dts-rockchip-add-arm-mali-gpu-node-for-rk3288.patch b/debian/patches/features/arm/arm-dts-rockchip-add-arm-mali-gpu-node-for-rk3288.patch new file mode 100644 index 000000000..74b47dbcd --- /dev/null +++ b/debian/patches/features/arm/arm-dts-rockchip-add-arm-mali-gpu-node-for-rk3288.patch @@ -0,0 +1,75 @@ +From: Guillaume Tucker +Date: Wed, 3 May 2017 10:56:26 +0100 +Subject: [2/5] ARM: dts: rockchip: add ARM Mali GPU node for rk3288 +Origin: https://git.kernel.org/linus/e3df026c594c77f0de1bdaa413d591b4345e4b6a +Bug-Debian: https://bugs.debian.org/865646 + +Add Mali GPU device tree node for the rk3288 SoC, with devfreq +opp table. + +Signed-off-by: Guillaume Tucker +Tested-by: Enric Balletbo i Serra +Signed-off-by: Heiko Stuebner +--- + arch/arm/boot/dts/rk3288.dtsi | 43 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +--- a/arch/arm/boot/dts/rk3288.dtsi ++++ b/arch/arm/boot/dts/rk3288.dtsi +@@ -43,6 +43,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1187,6 +1188,48 @@ + reg = <0xffaf0080 0x20>; + }; + ++ gpu: mali@ffa30000 { ++ compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard"; ++ reg = <0xffa30000 0x10000>; ++ interrupts = , ++ , ++ ; ++ interrupt-names = "job", "mmu", "gpu"; ++ clocks = <&cru ACLK_GPU>; ++ operating-points-v2 = <&gpu_opp_table>; ++ power-domains = <&power RK3288_PD_GPU>; ++ status = "disabled"; ++ }; ++ ++ gpu_opp_table: gpu-opp-table { ++ compatible = "operating-points-v2"; ++ ++ opp@100000000 { ++ opp-hz = /bits/ 64 <100000000>; ++ opp-microvolt = <950000>; ++ }; ++ opp@200000000 { ++ opp-hz = /bits/ 64 <200000000>; ++ opp-microvolt = <950000>; ++ }; ++ opp@300000000 { ++ opp-hz = /bits/ 64 <300000000>; ++ opp-microvolt = <1000000>; ++ }; ++ opp@400000000 { ++ opp-hz = /bits/ 64 <400000000>; ++ opp-microvolt = <1100000>; ++ }; ++ opp@500000000 { ++ opp-hz = /bits/ 64 <500000000>; ++ opp-microvolt = <1200000>; ++ }; ++ opp@600000000 { ++ opp-hz = /bits/ 64 <600000000>; ++ opp-microvolt = <1250000>; ++ }; ++ }; ++ + gic: interrupt-controller@ffc01000 { + compatible = "arm,gic-400"; + interrupt-controller; diff --git a/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-firef.patch b/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-firef.patch new file mode 100644 index 000000000..63fb36210 --- /dev/null +++ b/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-firef.patch @@ -0,0 +1,29 @@ +From: Guillaume Tucker +Date: Wed, 3 May 2017 10:56:28 +0100 +Subject: [4/5] ARM: dts: rockchip: enable ARM Mali GPU on rk3288-firefly +Origin: https://git.kernel.org/linus/93dedf52894e360731de17bdd9358873b36c3e0f +Bug-Debian: https://bugs.debian.org/865646 + +Add reference to the Mali GPU device tree node on rk3288-firefly. +Tested on Firefly board. + +Signed-off-by: Guillaume Tucker +Signed-off-by: Heiko Stuebner +--- + arch/arm/boot/dts/rk3288-firefly.dtsi | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/arch/arm/boot/dts/rk3288-firefly.dtsi ++++ b/arch/arm/boot/dts/rk3288-firefly.dtsi +@@ -219,6 +219,11 @@ + status = "ok"; + }; + ++&gpu { ++ mali-supply = <&vdd_gpu>; ++ status = "okay"; ++}; ++ + &hdmi { + ddc-i2c-bus = <&i2c5>; + status = "okay"; diff --git a/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-rock2.patch b/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-rock2.patch new file mode 100644 index 000000000..390012a0c --- /dev/null +++ b/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-rock2.patch @@ -0,0 +1,29 @@ +From: Guillaume Tucker +Date: Wed, 3 May 2017 10:56:27 +0100 +Subject: [3/5] ARM: dts: rockchip: enable ARM Mali GPU on rk3288-rock2-som +Origin: https://git.kernel.org/linus/d6823b67288aad6810336b963140059721c83644 +Bug-Debian: https://bugs.debian.org/865646 + +Add reference to the Mali GPU device tree node on the +rk3288-rock2-som platform. Tested on a Radxa Rock2 Square board. + +Signed-off-by: Guillaume Tucker +Signed-off-by: Heiko Stuebner +--- + arch/arm/boot/dts/rk3288-rock2-som.dtsi | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi ++++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi +@@ -113,6 +113,11 @@ + tx_delay = <0x30>; + }; + ++&gpu { ++ mali-supply = <&vdd_gpu>; ++ status = "okay"; ++}; ++ + &i2c0 { + status = "okay"; + diff --git a/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-veyro.patch b/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-veyro.patch new file mode 100644 index 000000000..74a551ff8 --- /dev/null +++ b/debian/patches/features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-veyro.patch @@ -0,0 +1,30 @@ +From: Enric Balletbo i Serra +Date: Wed, 3 May 2017 10:56:29 +0100 +Subject: [5/5] ARM: dts: rockchip: enable ARM Mali GPU on rk3288-veyron +Origin: https://git.kernel.org/linus/08e779e59950affaec4f677b22fda6a1ab150a43 +Bug-Debian: https://bugs.debian.org/865646 + +Add reference to the Mali GPU device tree node on rk3288-veyron. +Tested on Minnie and Jerry boards. + +Signed-off-by: Enric Balletbo i Serra +Signed-off-by: Guillaume Tucker +Signed-off-by: Heiko Stuebner +--- + arch/arm/boot/dts/rk3288-veyron.dtsi | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/arch/arm/boot/dts/rk3288-veyron.dtsi ++++ b/arch/arm/boot/dts/rk3288-veyron.dtsi +@@ -161,6 +161,11 @@ + pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; + }; + ++&gpu { ++ mali-supply = <&vdd_gpu>; ++ status = "okay"; ++}; ++ + &hdmi { + ddc-i2c-bus = <&i2c5>; + status = "okay"; diff --git a/debian/patches/features/arm/dt-bindings-gpu-add-bindings-for-the-arm-mali-midgar.patch b/debian/patches/features/arm/dt-bindings-gpu-add-bindings-for-the-arm-mali-midgar.patch new file mode 100644 index 000000000..248ac0aa4 --- /dev/null +++ b/debian/patches/features/arm/dt-bindings-gpu-add-bindings-for-the-arm-mali-midgar.patch @@ -0,0 +1,140 @@ +From: Guillaume Tucker +Date: Wed, 3 May 2017 10:56:25 +0100 +Subject: [1/5] dt-bindings: gpu: add bindings for the ARM Mali Midgard GPU +Origin: https://git.kernel.org/linus/7fa049dd1bdeb63d8beb3de6dde5a990843d0324 +Bug-Debian: https://bugs.debian.org/865646 + +The ARM Mali Midgard GPU family is present in a number of SoCs +from many different vendors such as Samsung Exynos and Rockchip. + +Import the device tree bindings documentation from the r16p0 +release of the Mali Midgard GPU kernel driver: + + https://developer.arm.com/-/media/Files/downloads/mali-drivers/kernel/mali-midgard-gpu/TX011-SW-99002-r16p0-00rel0.tgz + +Remove the copyright and GPL licence header as deemed not necessary. + +Redesign the "compatible" property strings to list all the Mali +Midgard GPU types and add vendor specific ones. + +Drop the "clock-names" property as the Mali Midgard GPU uses only one +clock (the driver now needs to call clk_get with NULL). + +Convert the "interrupt-names" property values to lower-case: "job", +"mmu" and "gpu". + +Replace the deprecated "operating-points" optional property with +"operating-points-v2". + +Omit the following optional properties in this initial version as they +are only used in very specific cases: + + * snoop_enable_smc + * snoop_disable_smc + * jm_config + * power_model + * system-coherency + * ipa-model + +Update the example accordingly to reflect all these changes, based on +rk3288 mali-t760. + +CC: John Reitan +Signed-off-by: Guillaume Tucker +Tested-by: Enric Balletbo i Serra +Reviewed-by: Rob Herring +Signed-off-by: Heiko Stuebner +--- + .../devicetree/bindings/gpu/arm,mali-midgard.txt | 86 ++++++++++++++++++++++ + 1 file changed, 86 insertions(+) + create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt + +--- /dev/null ++++ b/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt +@@ -0,0 +1,86 @@ ++ARM Mali Midgard GPU ++==================== ++ ++Required properties: ++ ++- compatible : ++ * Must contain one of the following: ++ + "arm,mali-t604" ++ + "arm,mali-t624" ++ + "arm,mali-t628" ++ + "arm,mali-t720" ++ + "arm,mali-t760" ++ + "arm,mali-t820" ++ + "arm,mali-t830" ++ + "arm,mali-t860" ++ + "arm,mali-t880" ++ * which must be preceded by one of the following vendor specifics: ++ + "amlogic,meson-gxm-mali" ++ + "rockchip,rk3288-mali" ++ ++- reg : Physical base address of the device and length of the register area. ++ ++- interrupts : Contains the three IRQ lines required by Mali Midgard devices. ++ ++- interrupt-names : Contains the names of IRQ resources in the order they were ++ provided in the interrupts property. Must contain: "job", "mmu", "gpu". ++ ++ ++Optional properties: ++ ++- clocks : Phandle to clock for the Mali Midgard device. ++ ++- mali-supply : Phandle to regulator for the Mali device. Refer to ++ Documentation/devicetree/bindings/regulator/regulator.txt for details. ++ ++- operating-points-v2 : Refer to Documentation/devicetree/bindings/power/opp.txt ++ for details. ++ ++ ++Example for a Mali-T760: ++ ++gpu@ffa30000 { ++ compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard"; ++ reg = <0xffa30000 0x10000>; ++ interrupts = , ++ , ++ ; ++ interrupt-names = "job", "mmu", "gpu"; ++ clocks = <&cru ACLK_GPU>; ++ mali-supply = <&vdd_gpu>; ++ operating-points-v2 = <&gpu_opp_table>; ++ power-domains = <&power RK3288_PD_GPU>; ++}; ++ ++gpu_opp_table: opp_table0 { ++ compatible = "operating-points-v2"; ++ ++ opp@533000000 { ++ opp-hz = /bits/ 64 <533000000>; ++ opp-microvolt = <1250000>; ++ }; ++ opp@450000000 { ++ opp-hz = /bits/ 64 <450000000>; ++ opp-microvolt = <1150000>; ++ }; ++ opp@400000000 { ++ opp-hz = /bits/ 64 <400000000>; ++ opp-microvolt = <1125000>; ++ }; ++ opp@350000000 { ++ opp-hz = /bits/ 64 <350000000>; ++ opp-microvolt = <1075000>; ++ }; ++ opp@266000000 { ++ opp-hz = /bits/ 64 <266000000>; ++ opp-microvolt = <1025000>; ++ }; ++ opp@160000000 { ++ opp-hz = /bits/ 64 <160000000>; ++ opp-microvolt = <925000>; ++ }; ++ opp@100000000 { ++ opp-hz = /bits/ 64 <100000000>; ++ opp-microvolt = <912500>; ++ }; ++}; diff --git a/debian/patches/series b/debian/patches/series index e656e807f..10aba258d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -66,6 +66,11 @@ features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch features/mips/MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch features/x86/x86-memtest-WARN-if-bad-RAM-found.patch features/x86/x86-make-x32-syscall-support-conditional.patch +features/arm/dt-bindings-gpu-add-bindings-for-the-arm-mali-midgar.patch +features/arm/arm-dts-rockchip-add-arm-mali-gpu-node-for-rk3288.patch +features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-rock2.patch +features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-firef.patch +features/arm/arm-dts-rockchip-enable-arm-mali-gpu-on-rk3288-veyro.patch # Miscellaneous bug fixes bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch