* [PATCH 1/4] dt-bindings: gpu: mali-bifrost: Allow up to two clocks
2021-07-30 16:45 [PATCH v2 0/4] RK3568 GPU Ezequiel Garcia
@ 2021-07-30 16:45 ` Ezequiel Garcia
2021-07-30 16:45 ` [PATCH 2/4] dt-bindings: gpu: mali-bifrost: Add RK3568 compatible Ezequiel Garcia
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Ezequiel Garcia @ 2021-07-30 16:45 UTC (permalink / raw)
To: devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis, Ezequiel Garcia
Commit b681af0bc1cc ("drm: panfrost: add optional bus_clock")
added an optional bus_clock to support Allwinner H6 T-720 GPU.
Increase the max clock items in the dt-binding to reflect this.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
.../devicetree/bindings/gpu/arm,mali-bifrost.yaml | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 0f73f436bea7..01532140096e 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -38,7 +38,12 @@ properties:
- const: gpu
clocks:
- maxItems: 1
+ minItems: 1
+ maxItems: 2
+
+ clock-names:
+ minItems: 1
+ maxItems: 2
mali-supply: true
--
2.32.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] dt-bindings: gpu: mali-bifrost: Add RK3568 compatible
2021-07-30 16:45 [PATCH v2 0/4] RK3568 GPU Ezequiel Garcia
2021-07-30 16:45 ` [PATCH 1/4] dt-bindings: gpu: mali-bifrost: Allow up to two clocks Ezequiel Garcia
@ 2021-07-30 16:45 ` Ezequiel Garcia
2021-07-30 16:45 ` [PATCH 3/4] arm64: dts: rockchip: Add GPU node for rk3568 Ezequiel Garcia
2021-07-30 16:45 ` [PATCH 4/4] arm64: dts: rockchip: Enable the GPU on Quartz64 Model A Ezequiel Garcia
3 siblings, 0 replies; 8+ messages in thread
From: Ezequiel Garcia @ 2021-07-30 16:45 UTC (permalink / raw)
To: devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis, Ezequiel Garcia
The Rockchip RK3568 SoC has a Bifrost Mali-G52 GPU,
add a compatible string for it.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 01532140096e..6afe7030b859 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -20,6 +20,7 @@ properties:
- mediatek,mt8183-mali
- realtek,rtd1619-mali
- rockchip,px30-mali
+ - rockchip,rk3568-mali
- const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
reg:
--
2.32.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] arm64: dts: rockchip: Add GPU node for rk3568
2021-07-30 16:45 [PATCH v2 0/4] RK3568 GPU Ezequiel Garcia
2021-07-30 16:45 ` [PATCH 1/4] dt-bindings: gpu: mali-bifrost: Allow up to two clocks Ezequiel Garcia
2021-07-30 16:45 ` [PATCH 2/4] dt-bindings: gpu: mali-bifrost: Add RK3568 compatible Ezequiel Garcia
@ 2021-07-30 16:45 ` Ezequiel Garcia
2021-07-30 19:38 ` Johan Jonker
2021-07-30 16:45 ` [PATCH 4/4] arm64: dts: rockchip: Enable the GPU on Quartz64 Model A Ezequiel Garcia
3 siblings, 1 reply; 8+ messages in thread
From: Ezequiel Garcia @ 2021-07-30 16:45 UTC (permalink / raw)
To: devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis, Ezequiel Garcia
Rockchip SoCs RK3566 and RK3568 have a Mali Gondul core
which is based on the Bifrost architecture. It has
one shader core and two execution engines.
Quoting the datasheet:
Mali-G52 1-Core-2EE
* Support 1600Mpix/s fill rate when 800MHz clock frequency
* Support 38.4GLOPs when 800MHz clock frequency
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 47 ++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
index bef747fb1fe2..f4f400792659 100644
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
@@ -121,6 +121,35 @@ opp-1800000000 {
};
};
+ gpu_opp_table: opp-table2 {
+ compatible = "operating-points-v2";
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ opp-microvolt = <825000>;
+ };
+ opp-300000000 {
+ opp-hz = /bits/ 64 <300000000>;
+ opp-microvolt = <825000>;
+ };
+ opp-400000000 {
+ opp-hz = /bits/ 64 <400000000>;
+ opp-microvolt = <825000>;
+ };
+ opp-600000000 {
+ opp-hz = /bits/ 64 <600000000>;
+ opp-microvolt = <825000>;
+ };
+ opp-700000000 {
+ opp-hz = /bits/ 64 <700000000>;
+ opp-microvolt = <900000>;
+ };
+ opp-800000000 {
+ opp-hz = /bits/ 64 <800000000>;
+ opp-microvolt = <1000000>;
+ };
+ };
+
firmware {
scmi: scmi {
compatible = "arm,scmi-smc";
@@ -332,6 +361,24 @@ power-domain@RK3568_PD_RKVENC {
};
};
+ gpu: gpu@fde60000 {
+ compatible = "rockchip,rk3568-mali", "arm,mali-bifrost";
+ reg = <0x0 0xfde60000 0x0 0x4000>;
+
+ interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "job", "mmu", "gpu";
+
+ clocks = <&scmi_clk 1>, <&cru CLK_GPU>;
+ clock-names = "core", "bus";
+ operating-points-v2 = <&gpu_opp_table>;
+
+ #cooling-cells = <2>;
+ power-domains = <&power RK3568_PD_GPU>;
+ status = "disabled";
+ };
+
sdmmc2: mmc@fe000000 {
compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
reg = <0x0 0xfe000000 0x0 0x4000>;
--
2.32.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] arm64: dts: rockchip: Add GPU node for rk3568
2021-07-30 16:45 ` [PATCH 3/4] arm64: dts: rockchip: Add GPU node for rk3568 Ezequiel Garcia
@ 2021-07-30 19:38 ` Johan Jonker
2021-08-05 2:56 ` Ezequiel Garcia
0 siblings, 1 reply; 8+ messages in thread
From: Johan Jonker @ 2021-07-30 19:38 UTC (permalink / raw)
To: Ezequiel Garcia, devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis
Hi Ezequiel,
Some comments. Have a look if it's useful.
On 7/30/21 6:45 PM, Ezequiel Garcia wrote:
> Rockchip SoCs RK3566 and RK3568 have a Mali Gondul core
> which is based on the Bifrost architecture. It has
> one shader core and two execution engines.
>
> Quoting the datasheet:
>
> Mali-G52 1-Core-2EE
> * Support 1600Mpix/s fill rate when 800MHz clock frequency
> * Support 38.4GLOPs when 800MHz clock frequency
>
> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
> ---
> arch/arm64/boot/dts/rockchip/rk356x.dtsi | 47 ++++++++++++++++++++++++
> 1 file changed, 47 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> index bef747fb1fe2..f4f400792659 100644
> --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> @@ -121,6 +121,35 @@ opp-1800000000 {
> };
> };
>
> + gpu_opp_table: opp-table2 {
gpu_opp_table: gpu-opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-200000000 {
> + opp-hz = /bits/ 64 <200000000>;
> + opp-microvolt = <825000>;
> + };
Similar to cpu0_opp_table keep the same style and add an empty line
between nodes.
> + opp-300000000 {
> + opp-hz = /bits/ 64 <300000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-400000000 {
> + opp-hz = /bits/ 64 <400000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-600000000 {
> + opp-hz = /bits/ 64 <600000000>;
> + opp-microvolt = <825000>;
> + };
> + opp-700000000 {
> + opp-hz = /bits/ 64 <700000000>;
> + opp-microvolt = <900000>;
> + };
> + opp-800000000 {
> + opp-hz = /bits/ 64 <800000000>;
> + opp-microvolt = <1000000>;
> + };
> + };
> +
> firmware {
> scmi: scmi {
> compatible = "arm,scmi-smc";
> @@ -332,6 +361,24 @@ power-domain@RK3568_PD_RKVENC {
> };
> };
>
> + gpu: gpu@fde60000 {
> + compatible = "rockchip,rk3568-mali", "arm,mali-bifrost";
> + reg = <0x0 0xfde60000 0x0 0x4000>;
> +
remove empty lines
> + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "job", "mmu", "gpu";
> +
dito
> + clocks = <&scmi_clk 1>, <&cru CLK_GPU>;
> + clock-names = "core", "bus";
Not sure if it's possible, but could you keep them all a little bit in
the same order/style as arm,mali-400?
From arm,mali-utgard.yaml:
clock-names:
items:
- const: bus
- const: core
> + operating-points-v2 = <&gpu_opp_table>;
> +
dito
> + #cooling-cells = <2>;
> + power-domains = <&power RK3568_PD_GPU>;
> + status = "disabled";
> + };
> +
> sdmmc2: mmc@fe000000 {
> compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
> reg = <0x0 0xfe000000 0x0 0x4000>;
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] arm64: dts: rockchip: Add GPU node for rk3568
2021-07-30 19:38 ` Johan Jonker
@ 2021-08-05 2:56 ` Ezequiel Garcia
0 siblings, 0 replies; 8+ messages in thread
From: Ezequiel Garcia @ 2021-08-05 2:56 UTC (permalink / raw)
To: Johan Jonker, devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis
Hi Johan,
Thanks for the review.
On Fri, 2021-07-30 at 21:38 +0200, Johan Jonker wrote:
> Hi Ezequiel,
>
> Some comments. Have a look if it's useful.
>
> On 7/30/21 6:45 PM, Ezequiel Garcia wrote:
> > Rockchip SoCs RK3566 and RK3568 have a Mali Gondul core
> > which is based on the Bifrost architecture. It has
> > one shader core and two execution engines.
> >
> > Quoting the datasheet:
> >
> > Mali-G52 1-Core-2EE
> > * Support 1600Mpix/s fill rate when 800MHz clock frequency
> > * Support 38.4GLOPs when 800MHz clock frequency
> >
> > Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
> > ---
> > arch/arm64/boot/dts/rockchip/rk356x.dtsi | 47 ++++++++++++++++++++++++
> > 1 file changed, 47 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> > index bef747fb1fe2..f4f400792659 100644
> > --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> > +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> > @@ -121,6 +121,35 @@ opp-1800000000 {
> > };
> > };
> >
>
> > + gpu_opp_table: opp-table2 {
>
> gpu_opp_table: gpu-opp-table {
>
Makes sense.
> > + compatible = "operating-points-v2";
> > +
> > + opp-200000000 {
> > + opp-hz = /bits/ 64 <200000000>;
> > + opp-microvolt = <825000>;
> > + };
>
> Similar to cpu0_opp_table keep the same style and add an empty line
> between nodes.
>
Makes sense.
> > + opp-300000000 {
> > + opp-hz = /bits/ 64 <300000000>;
> > + opp-microvolt = <825000>;
> > + };
> > + opp-400000000 {
> > + opp-hz = /bits/ 64 <400000000>;
> > + opp-microvolt = <825000>;
> > + };
> > + opp-600000000 {
> > + opp-hz = /bits/ 64 <600000000>;
> > + opp-microvolt = <825000>;
> > + };
> > + opp-700000000 {
> > + opp-hz = /bits/ 64 <700000000>;
> > + opp-microvolt = <900000>;
> > + };
> > + opp-800000000 {
> > + opp-hz = /bits/ 64 <800000000>;
> > + opp-microvolt = <1000000>;
> > + };
> > + };
> > +
> > firmware {
> > scmi: scmi {
> > compatible = "arm,scmi-smc";
> > @@ -332,6 +361,24 @@ power-domain@RK3568_PD_RKVENC {
> > };
> > };
> >
> > + gpu: gpu@fde60000 {
> > + compatible = "rockchip,rk3568-mali", "arm,mali-bifrost";
> > + reg = <0x0 0xfde60000 0x0 0x4000>;
>
> > +
>
> remove empty lines
>
Makes sense.
> > + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "job", "mmu", "gpu";
>
> > +
>
> dito
>
> > + clocks = <&scmi_clk 1>, <&cru CLK_GPU>;
> > + clock-names = "core", "bus";
>
> Not sure if it's possible, but could you keep them all a little bit in
> the same order/style as arm,mali-400?
>
> From arm,mali-utgard.yaml:
>
> clock-names:
> items:
> - const: bus
> - const: core
>
Don't think we can do that in this case, as the first clock
is already expected as the "core" one.
These clocks might need some cleaner specification in the
driver or the dt-binding (or both), but I'd like to defer
that to the driver maintainers.
--
Kindly,
Ezequiel
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/4] arm64: dts: rockchip: Enable the GPU on Quartz64 Model A
2021-07-30 16:45 [PATCH v2 0/4] RK3568 GPU Ezequiel Garcia
` (2 preceding siblings ...)
2021-07-30 16:45 ` [PATCH 3/4] arm64: dts: rockchip: Add GPU node for rk3568 Ezequiel Garcia
@ 2021-07-30 16:45 ` Ezequiel Garcia
2021-07-30 18:24 ` Johan Jonker
3 siblings, 1 reply; 8+ messages in thread
From: Ezequiel Garcia @ 2021-07-30 16:45 UTC (permalink / raw)
To: devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis, Ezequiel Garcia
Enable the GPU core on the Pine64 Quartz64 Model A.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
---
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
index b239f314b38a..1e6153b52594 100644
--- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
@@ -462,3 +462,8 @@ bluetooth {
&uart2 {
status = "okay";
};
+
+&gpu {
+ mali-supply = <&vdd_gpu>;
+ status = "okay";
+};
--
2.32.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4] arm64: dts: rockchip: Enable the GPU on Quartz64 Model A
2021-07-30 16:45 ` [PATCH 4/4] arm64: dts: rockchip: Enable the GPU on Quartz64 Model A Ezequiel Garcia
@ 2021-07-30 18:24 ` Johan Jonker
0 siblings, 0 replies; 8+ messages in thread
From: Johan Jonker @ 2021-07-30 18:24 UTC (permalink / raw)
To: Ezequiel Garcia, devicetree, linux-rockchip
Cc: Rob Herring, Heiko Stuebner, Kever Yang, Benjamin Gaignard,
Peter Geis
Hi Ezequiel,
On 7/30/21 6:45 PM, Ezequiel Garcia wrote:
> Enable the GPU core on the Pine64 Quartz64 Model A.
>
> Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
> ---
> arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
> index b239f314b38a..1e6153b52594 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
> @@ -462,3 +462,8 @@ bluetooth {
> &uart2 {
> status = "okay";
> };
> +
> +&gpu {
Nodes without "reg" are sort in alphabetical order.
> + mali-supply = <&vdd_gpu>;
> + status = "okay";
> +};
>
^ permalink raw reply [flat|nested] 8+ messages in thread