Add ARM Mali Midgard device tree bindings and gpu node for rk3288
Subsystems (3)
cover Add ARM Mali Midgard device tree bindings and gpu node for rk3288
The ARM Mali Midgard GPU kernel driver is only available out-of-tree and is not going to be merged in its current form. However, it would be useful to have its device tree bindings merged. In particular, this would enable distributions to create working driver packages (dkms...) without having to patch the kernel.
The bindings for the earlier Mali Utgard GPU family have already been merged, so this is essentially the same scenario but for newer GPUs (Mali-T604 ~ Mali-T880).
This series of patches first imports the bindings from the latest driver release with some clean-up then adds a gpu node for the rk3288 SoC. This was successfully tested on a Radxa Rock2 Square board using Mali kernel driver r16p0 and r12p0 user-space binary.
Guillaume Tucker (4):
dt-bindings: gpu: add bindings for the ARM Mali Midgard GPU
ARM: dts: rockchip: add ARM Mali GPU node for rk3288
ARM: dts: rockchip: enable ARM Mali GPU on rk3288-rock2-som
ARM: dts: rockchip: enable ARM Mali GPU on rk3288-firefly
.../devicetree/bindings/gpu/arm,mali-midgard.txt | 53 ++++++++++++++++++++++ arch/arm/boot/dts/rk3288-firefly.dtsi | 5 ++ arch/arm/boot/dts/rk3288-rock2-som.dtsi | 5 ++ arch/arm/boot/dts/rk3288.dtsi | 23 ++++++++++ 4 files changed, 86 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): cover.1490789802.git.guillaume.tucker-ZGY8ohtN/[email protected]
PATCH 1/4 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:
The following optional bindings have been omitted 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
The example has been simplified accordingly.
The compatible string definition has been limited to "arm,mali-midgard" to avoid checkpatch.pl warnings and to match what the driver actually expects (as of r16p0 out-of-tree).
--- .../devicetree/bindings/gpu/arm,mali-midgard.txt | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt new file +53 -0
@@ -0,0 +1,53 @@ +# +# (C) COPYRIGHT 2013-2016 ARM Limited. +# Copyright (C) 2017 Collabora Ltd +# +# This program is free software and is provided to you under the terms of the +# GNU General Public License version 2 as published by the Free Software +# Foundation, and any use by you of this program is subject to the terms +# of such GNU licence. +# + + +ARM Mali Midgard GPU +==================== + +Required properties: + +- compatible : Should be "arm,mali-midgard". +- 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: + +- clocks : Phandle to clock for the Mali Midgard device. +- clock-names : Shall be "clk_mali". +- mali-supply : Phandle to regulator for the Mali device. Refer to + Documentation/devicetree/bindings/regulator/regulator.txt for details. +- operating-points : Refer to Documentation/devicetree/bindings/power/opp.txt + for details. + +Example for a Mali-T602: + +gpu@0xfc010000 { + compatible = "arm,mali-midgard"; + reg = <0xfc010000 0x4000>; + interrupts = <0 36 4>, <0 37 4>, <0 38 4>; + interrupt-names = "JOB", "MMU", "GPU"; + + clocks = <&pclk_mali>; + clock-names = "clk_mali"; + mali-supply = <&vdd_mali>; + operating-points = < + /* KHz uV */ + 533000 1250000, + 450000 1150000, + 400000 1125000, + 350000 1075000, + 266000 1025000, + 160000 925000, + 100000 912500, + >; +};
Signature · 6 lines
2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): db45d0d68957d699f13a0d92f4f84d8ebfd0270e.1490789802.git.guillaume.tucker-ZGY8ohtN/[email protected]
Enric Balletbo i Serra
Tested-byRe: [PATCH 1/4] dt-bindings: gpu: add bindings for the ARM Mali Midgard GPU
Quoted 81 lines · Guillaume Tucker
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:
The following optional bindings have been omitted 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-modelThe example has been simplified accordingly.
The compatible string definition has been limited to "arm,mali-midgard" to avoid checkpatch.pl warnings and to match what the driver actually expects (as of r16p0 out-of-tree).
CC John Reitan <[email protected]>--- .../devicetree/bindings/gpu/arm,mali-midgard.txt | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpu/arm,mali-midgard.txtDocumentation/devicetree/bindings/gpu/arm,mali-midgard.txt new file +43
-0@@ -0,0 +1,53 @@ +# +# (C) COPYRIGHT 2013-2016 ARM Limited. +# Copyright (C) 2017 Collabora Ltd +# +# This program is free software and is provided to you under the terms of the +# GNU General Public License version 2 as published by the Free Software +# Foundation, and any use by you of this program is subject to the terms +# of such GNU licence. +# + + +ARM Mali Midgard GPU +==================== + +Required properties: + +- compatible : Should be "arm,mali-midgard". +- 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: + +- clocks : Phandle to clock for the Mali Midgard device. +- clock-names : Shall be "clk_mali". +- mali-supply : Phandle to regulator for the Mali device. Refer to + Documentation/devicetree/bindings/regulator/regulator.txt for details. +- operating-points : Refer to Documentation/devicetree/bindings/power/opp.txt + for details. + +Example for a Mali-T602: + +gpu@0xfc010000 { + compatible = "arm,mali-midgard"; + reg = <0xfc010000 0x4000>; + interrupts = <0 36 4>, <0 37 4>, <0 38 4>; + interrupt-names = "JOB", "MMU", "GPU"; + + clocks = <&pclk_mali>; + clock-names = "clk_mali"; + mali-supply = <&vdd_mali>; + operating-points = <
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt line 53
Quoted 10 lines
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt new file +10
-0+ /* KHz uV */ + 533000 1250000, + 450000 1150000, + 400000 1125000, + 350000 1075000, + 266000 1025000, + 160000 925000, + 100000 912500, + >; +};
This works with veyron-minnie and veyron-jerry too, so
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 2/4 ARM: dts: rockchip: add ARM Mali GPU node for rk3288
In reply to a message not in the archiveAdd Mali GPU device tree node for the rk3288 SoC, with devfreq opp table.
--- arch/arm/boot/dts/rk3288.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
arch/arm/boot/dts/rk3288.dtsi +23 -0
@@ -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>
@@ -227,6 +228,28 @@ ports = <&vopl_out>, <&vopb_out>; }; + gpu: mali@ffa30000 { + compatible = "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>; + clock-names = "clk_mali"; + operating-points = < + /* KHz uV */ + 100000 950000 + 200000 950000 + 300000 1000000 + 400000 1100000 + 500000 1200000 + 600000 1250000 + >; + power-domains = <&power RK3288_PD_GPU>; + status = "disabled"; + }; + sdmmc: dwmmc@ff0c0000 { compatible = "rockchip,rk3288-dw-mshc"; max-frequency = <150000000>;
Signature · 6 lines
2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 46d14d3c969a35e800b1c06da0ddb652986e6827.1490789802.git.guillaume.tucker-ZGY8ohtN/[email protected]
Enric Balletbo i Serra
Tested-byRe: [PATCH 2/4] ARM: dts: rockchip: add ARM Mali GPU node for rk3288
Quoted 40 lines · Guillaume Tucker
Add Mali GPU device tree node for the rk3288 SoC, with devfreq opp table.
--- arch/arm/boot/dts/rk3288.dtsi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)arch/arm/boot/dts/rk3288.dtsi +16
-0@@ -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>@@ -227,6 +228,28 @@ ports = <&vopl_out>, <&vopb_out>; }; + gpu: mali@ffa30000 { + compatible = "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>; + clock-names = "clk_mali"; + operating-points = < + /* KHz uV */ + 100000 950000 + 200000 950000 + 300000 1000000 + 400000 1100000
arch/arm/boot/dts/rk3288.dtsi line 255
Quoted 10 lines
arch/arm/boot/dts/rk3288.dtsi +7
-0+ 500000 1200000 + 600000 1250000 + >; + power-domains = <&power RK3288_PD_GPU>; + status = "disabled"; + }; + sdmmc: dwmmc@ff0c0000 { compatible = "rockchip,rk3288-dw-mshc"; max-frequency = <150000000>;
This works on a veyron-minnie and a veyron-jerry, so
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 3/4 ARM: dts: rockchip: enable ARM Mali GPU on rk3288-rock2-som
In reply to a message not in the archiveAdd reference to the Mali GPU device tree node on the rk3288-rock2-som platform. Tested on a Radxa Rock2 Square board.
--- arch/arm/boot/dts/rk3288-rock2-som.dtsi | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm/boot/dts/rk3288-rock2-som.dtsi +5 -0
@@ -301,3 +301,8 @@ &wdt { status = "okay"; }; + +&gpu { + mali-supply = <&vdd_gpu>; + status = "okay"; +};
Signature · 6 lines
2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 4/4 ARM: dts: rockchip: enable ARM Mali GPU on rk3288-firefly
In reply to a message not in the archiveAdd reference to the Mali GPU device tree node on rk3288-firefly. Tested on Firefly board.
--- arch/arm/boot/dts/rk3288-firefly.dtsi | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm/boot/dts/rk3288-firefly.dtsi +5 -0
@@ -594,3 +594,8 @@ &wdt { status = "okay"; }; + +&gpu { + mali-supply = <&vdd_gpu>; + status = "okay"; +};
Signature · 6 lines
2.11.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html