Source: linux Version: 4.9.30-2 Severity: normal Tags: patch Hi,
The device tree bindings for the ARM Mali Midgard GPU driver are now in linux-next with gpu nodes for the rk3288 platform. Having this backported into the Debian 4.9 kernel would enable making a DKMS package for it and subsequently user-space non-free packages. Rockchip maintainer branch for 4.13: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/log/?h=v4.13-rockchip-dts32-1 Best wishes, Guillaume -- System Information: Debian Release: 9.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
>From 333545ccd3ddabe5315ff15ee832bc7dc2674e19 Mon Sep 17 00:00:00 2001 Message-Id: <333545ccd3ddabe5315ff15ee832bc7dc2674e19.1498222868.git.guillaume.tuc...@collabora.com> In-Reply-To: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> References: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> From: Guillaume Tucker <guillaume.tuc...@collabora.com> Date: Wed, 3 May 2017 10:56:27 +0100 Subject: [PATCH 3/5] ARM: dts: rockchip: enable ARM Mali GPU on rk3288-rock2-som 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 <guillaume.tuc...@collabora.com> Signed-off-by: Heiko Stuebner <he...@sntech.de> --- arch/arm/boot/dts/rk3288-rock2-som.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi index bb1f01e037ba..01c7a8784206 100644 --- 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"; -- 2.11.0
>From 1155a531168275a0499600add4c24bdc8b9064fc Mon Sep 17 00:00:00 2001 Message-Id: <1155a531168275a0499600add4c24bdc8b9064fc.1498222868.git.guillaume.tuc...@collabora.com> In-Reply-To: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> References: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> From: Guillaume Tucker <guillaume.tuc...@collabora.com> Date: Wed, 3 May 2017 10:56:28 +0100 Subject: [PATCH 4/5] ARM: dts: rockchip: enable ARM Mali GPU on rk3288-firefly Add reference to the Mali GPU device tree node on rk3288-firefly. Tested on Firefly board. Signed-off-by: Guillaume Tucker <guillaume.tuc...@collabora.com> Signed-off-by: Heiko Stuebner <he...@sntech.de> --- arch/arm/boot/dts/rk3288-firefly.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi index 114c90fb65e2..47433356c2e8 100644 --- 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"; -- 2.11.0
>From e9f844fbd0bed1a4ea92336baa409dc4d8d3b539 Mon Sep 17 00:00:00 2001 Message-Id: <e9f844fbd0bed1a4ea92336baa409dc4d8d3b539.1498222868.git.guillaume.tuc...@collabora.com> In-Reply-To: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> References: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> From: Guillaume Tucker <guillaume.tuc...@collabora.com> Date: Wed, 3 May 2017 10:56:26 +0100 Subject: [PATCH 2/5] ARM: dts: rockchip: add ARM Mali GPU node for rk3288 Add Mali GPU device tree node for the rk3288 SoC, with devfreq opp table. Signed-off-by: Guillaume Tucker <guillaume.tuc...@collabora.com> Tested-by: Enric Balletbo i Serra <enric.balle...@collabora.com> Signed-off-by: Heiko Stuebner <he...@sntech.de> --- arch/arm/boot/dts/rk3288.dtsi | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 17ec2e2d7a60..3dd672b3908a 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -43,6 +43,7 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/pinctrl/rockchip.h> #include <dt-bindings/clock/rk3288-cru.h> +#include <dt-bindings/power/rk3288-power.h> #include <dt-bindings/thermal/thermal.h> #include <dt-bindings/power/rk3288-power.h> #include <dt-bindings/soc/rockchip,boot-mode.h> @@ -1102,6 +1103,48 @@ }; }; + gpu: mali@ffa30000 { + compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard"; + reg = <0xffa30000 0x10000>; + interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; + 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: opp_table0 { + 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; -- 2.11.0
>From c2e350a19c7524665286ca3e2561d1f482457a7e Mon Sep 17 00:00:00 2001 Message-Id: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> From: Guillaume Tucker <guillaume.tuc...@collabora.com> Date: Wed, 3 May 2017 10:56:25 +0100 Subject: [PATCH 1/5] dt-bindings: gpu: add bindings for the ARM Mali Midgard GPU 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 <john.rei...@arm.com> Signed-off-by: Guillaume Tucker <guillaume.tuc...@collabora.com> Tested-by: Enric Balletbo i Serra <enric.balle...@collabora.com> Reviewed-by: Rob Herring <r...@kernel.org> Signed-off-by: Heiko Stuebner <he...@sntech.de> --- .../devicetree/bindings/gpu/arm,mali-midgard.txt | 86 ++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt new file mode 100644 index 000000000000..d3b6e1a4713a --- /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 = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; + 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>; + }; +}; -- 2.11.0
>From 839ab48af284ae6eac2ba225fa31bd65c012e745 Mon Sep 17 00:00:00 2001 Message-Id: <839ab48af284ae6eac2ba225fa31bd65c012e745.1498222868.git.guillaume.tuc...@collabora.com> In-Reply-To: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> References: <c2e350a19c7524665286ca3e2561d1f482457a7e.1498222868.git.guillaume.tuc...@collabora.com> From: Enric Balletbo i Serra <enric.balle...@collabora.com> Date: Wed, 3 May 2017 10:56:29 +0100 Subject: [PATCH 5/5] ARM: dts: rockchip: enable ARM Mali GPU on rk3288-veyron 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 <enric.balle...@collabora.com> Signed-off-by: Guillaume Tucker <guillaume.tuc...@collabora.com> Signed-off-by: Heiko Stuebner <he...@sntech.de> --- arch/arm/boot/dts/rk3288-veyron.dtsi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi index 3dd2cca48c11..bcb2b0a15917 100644 --- 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"; -- 2.11.0