diff mbox series

[v4,2/2] ARM: dts: exynos5420: add mali dt node and enable mali on Odroid XU3/4

Message ID 20191106225527.9121-2-mihailescu2m@gmail.com (mailing list archive)
State Superseded
Headers show
Series [v4,1/2] dt-bindings: gpu: mali-midgard: add samsung exynos 5420 compatible | expand

Commit Message

Marian Mihailescu Nov. 6, 2019, 10:55 p.m. UTC
Add device tree node for Mali GPU for Exynos 542x SoC.
GPU is disabled by default, and is enabled for each board after the
regulator is defined. Tested on Odroid-XU4.

Changes since v3:
- fixed compatible to match bindings

Changes since v2:
- separate patch for bindings
- fixed bindings typo

Changes since v1:
- used generic node and label for GPU
- added bindings for compatible
- fixed irq indentation
- fixed interrupt-names to match bindings
- added cooling cells for future TMU connection
- used generic node and label for GPU opp table
- removed always-on from SoC GPU regulator

Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
---
 arch/arm/boot/dts/exynos5420.dtsi             | 50 +++++++++++++++++++++++++++
 arch/arm/boot/dts/exynos5422-odroid-core.dtsi |  6 +++-
 2 files changed, 55 insertions(+), 1 deletion(-)

Comments

Krzysztof Kozlowski Nov. 7, 2019, 9:48 a.m. UTC | #1
On Thu, Nov 07, 2019 at 09:25:27AM +1030, Marian Mihailescu wrote:
> Add device tree node for Mali GPU for Exynos 542x SoC.
> GPU is disabled by default, and is enabled for each board after the
> regulator is defined. Tested on Odroid-XU4.
> 
> Changes since v3:
> - fixed compatible to match bindings

Changelog does not go to commit message. Put it after msg separator
(---).

Except this looks good so I will fix it up while applying.

Best regards,
Krzysztof


> 
> Changes since v2:
> - separate patch for bindings
> - fixed bindings typo
> 
> Changes since v1:
> - used generic node and label for GPU
> - added bindings for compatible
> - fixed irq indentation
> - fixed interrupt-names to match bindings
> - added cooling cells for future TMU connection
> - used generic node and label for GPU opp table
> - removed always-on from SoC GPU regulator
> 
> Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
> ---
>  arch/arm/boot/dts/exynos5420.dtsi             | 50 +++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5422-odroid-core.dtsi |  6 +++-
>  2 files changed, 55 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
> index 7d51e0f4ab79..31b5f7ba0e3b 100644
> --- a/arch/arm/boot/dts/exynos5420.dtsi
> +++ b/arch/arm/boot/dts/exynos5420.dtsi
> @@ -670,6 +670,56 @@
>  			iommus = <&sysmmu_gscl1>;
>  		};
>  
> +		gpu: gpu@11800000 {
> +			compatible = "samsung,exynos5420-mali", "arm,mali-t628";
> +			reg = <0x11800000 0x5000>;
> +			interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "job", "mmu", "gpu";
> +
> +			clocks = <&clock CLK_G3D>;
> +			clock-names = "core";
> +			power-domains = <&g3d_pd>;
> +			operating-points-v2 = <&gpu_opp_table>;
> +
> +			status = "disabled";
> +			#cooling-cells = <2>;
> +
> +			gpu_opp_table: opp-table {
> +				compatible = "operating-points-v2";
> +
> +				opp@177000000 {
> +					opp-hz = /bits/ 64 <177000000>;
> +					opp-microvolt = <812500>;
> +				};
> +				opp@266000000 {
> +					opp-hz = /bits/ 64 <266000000>;
> +					opp-microvolt = <862500>;
> +				};
> +				opp@350000000 {
> +					opp-hz = /bits/ 64 <350000000>;
> +					opp-microvolt = <912500>;
> +				};
> +				opp-420000000 {
> +					opp-hz = /bits/ 64 <420000000>;
> +					opp-microvolt = <962500>;
> +				};
> +				opp-480000000 {
> +					opp-hz = /bits/ 64 <480000000>;
> +					opp-microvolt = <1000000>;
> +				};
> +				opp-543000000 {
> +					opp-hz = /bits/ 64 <543000000>;
> +					opp-microvolt = <1037500>;
> +				};
> +				opp-600000000 {
> +					opp-hz = /bits/ 64 <600000000>;
> +					opp-microvolt = <1150000>;
> +				};
> +			};
> +		};
> +
>  		scaler_0: scaler@12800000 {
>  			compatible = "samsung,exynos5420-scaler";
>  			reg = <0x12800000 0x1294>;
> diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
> index 422692b20c46..ce774f7b2ce0 100644
> --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
> +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
> @@ -522,7 +522,6 @@
>  				regulator-name = "vdd_g3d";
>  				regulator-min-microvolt = <800000>;
>  				regulator-max-microvolt = <1400000>;
> -				regulator-always-on;
>  				regulator-boot-on;
>  
>  				regulator-state-mem {
> @@ -659,6 +658,11 @@
>  	status = "okay";
>  };
>  
> +&gpu {
> +	mali-supply = <&buck4_reg>;
> +	status = "okay";
> +};
> +
>  &rtc {
>  	status = "okay";
>  	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
> -- 
> 2.14.1
>
Krzysztof Kozlowski Nov. 12, 2019, 3:19 p.m. UTC | #2
On Thu, Nov 07, 2019 at 09:25:27AM +1030, Marian Mihailescu wrote:
> Add device tree node for Mali GPU for Exynos 542x SoC.
> GPU is disabled by default, and is enabled for each board after the
> regulator is defined. Tested on Odroid-XU4.
> 
> Changes since v3:
> - fixed compatible to match bindings
> 
> Changes since v2:
> - separate patch for bindings
> - fixed bindings typo
> 
> Changes since v1:
> - used generic node and label for GPU
> - added bindings for compatible
> - fixed irq indentation
> - fixed interrupt-names to match bindings
> - added cooling cells for future TMU connection
> - used generic node and label for GPU opp table
> - removed always-on from SoC GPU regulator
> 
> Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
> ---
>  arch/arm/boot/dts/exynos5420.dtsi             | 50 +++++++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5422-odroid-core.dtsi |  6 +++-

Hi,

Unfortunately this does not apply around exynos5422-odroid-core.dtsi.
I think there were no changes to this file in current development cycle
so I am surprised that there are conflicts.

On what version were you basing your patch? Was it tested on latest
kernel? The patches should be based usually on one of:
1. current-rc1 (v5.4-rc1)
2. latest-rc (v5.4-rc7)
3. maintainer's tree (my next/dt or for-next)
4. linux-next

In all other cases the patch would need rebasing and re-testing.

Best regards,
Krzysztof
Marian Mihailescu Nov. 14, 2019, 12:06 a.m. UTC | #3
Apologies - it was applied and tested on latest -rc, however I had
gpu_tmu enabled as well (by adding status=okay), line which was not
included in the patch and was the cause of it not applying. Fixed it
in the coming v5, tested and applies on a fresh -rc7.

Either I've been missing something or nothing has been going on. (K. E. Gordon)

On Wed, Nov 13, 2019 at 1:49 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> On Thu, Nov 07, 2019 at 09:25:27AM +1030, Marian Mihailescu wrote:
> > Add device tree node for Mali GPU for Exynos 542x SoC.
> > GPU is disabled by default, and is enabled for each board after the
> > regulator is defined. Tested on Odroid-XU4.
> >
> > Changes since v3:
> > - fixed compatible to match bindings
> >
> > Changes since v2:
> > - separate patch for bindings
> > - fixed bindings typo
> >
> > Changes since v1:
> > - used generic node and label for GPU
> > - added bindings for compatible
> > - fixed irq indentation
> > - fixed interrupt-names to match bindings
> > - added cooling cells for future TMU connection
> > - used generic node and label for GPU opp table
> > - removed always-on from SoC GPU regulator
> >
> > Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
> > ---
> >  arch/arm/boot/dts/exynos5420.dtsi             | 50 +++++++++++++++++++++++++++
> >  arch/arm/boot/dts/exynos5422-odroid-core.dtsi |  6 +++-
>
> Hi,
>
> Unfortunately this does not apply around exynos5422-odroid-core.dtsi.
> I think there were no changes to this file in current development cycle
> so I am surprised that there are conflicts.
>
> On what version were you basing your patch? Was it tested on latest
> kernel? The patches should be based usually on one of:
> 1. current-rc1 (v5.4-rc1)
> 2. latest-rc (v5.4-rc7)
> 3. maintainer's tree (my next/dt or for-next)
> 4. linux-next
>
> In all other cases the patch would need rebasing and re-testing.
>
> Best regards,
> Krzysztof
>
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 7d51e0f4ab79..31b5f7ba0e3b 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -670,6 +670,56 @@ 
 			iommus = <&sysmmu_gscl1>;
 		};
 
+		gpu: gpu@11800000 {
+			compatible = "samsung,exynos5420-mali", "arm,mali-t628";
+			reg = <0x11800000 0x5000>;
+			interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "job", "mmu", "gpu";
+
+			clocks = <&clock CLK_G3D>;
+			clock-names = "core";
+			power-domains = <&g3d_pd>;
+			operating-points-v2 = <&gpu_opp_table>;
+
+			status = "disabled";
+			#cooling-cells = <2>;
+
+			gpu_opp_table: opp-table {
+				compatible = "operating-points-v2";
+
+				opp@177000000 {
+					opp-hz = /bits/ 64 <177000000>;
+					opp-microvolt = <812500>;
+				};
+				opp@266000000 {
+					opp-hz = /bits/ 64 <266000000>;
+					opp-microvolt = <862500>;
+				};
+				opp@350000000 {
+					opp-hz = /bits/ 64 <350000000>;
+					opp-microvolt = <912500>;
+				};
+				opp-420000000 {
+					opp-hz = /bits/ 64 <420000000>;
+					opp-microvolt = <962500>;
+				};
+				opp-480000000 {
+					opp-hz = /bits/ 64 <480000000>;
+					opp-microvolt = <1000000>;
+				};
+				opp-543000000 {
+					opp-hz = /bits/ 64 <543000000>;
+					opp-microvolt = <1037500>;
+				};
+				opp-600000000 {
+					opp-hz = /bits/ 64 <600000000>;
+					opp-microvolt = <1150000>;
+				};
+			};
+		};
+
 		scaler_0: scaler@12800000 {
 			compatible = "samsung,exynos5420-scaler";
 			reg = <0x12800000 0x1294>;
diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
index 422692b20c46..ce774f7b2ce0 100644
--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -522,7 +522,6 @@ 
 				regulator-name = "vdd_g3d";
 				regulator-min-microvolt = <800000>;
 				regulator-max-microvolt = <1400000>;
-				regulator-always-on;
 				regulator-boot-on;
 
 				regulator-state-mem {
@@ -659,6 +658,11 @@ 
 	status = "okay";
 };
 
+&gpu {
+	mali-supply = <&buck4_reg>;
+	status = "okay";
+};
+
 &rtc {
 	status = "okay";
 	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;