* [v2 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU
@ 2018-03-16 18:44 Jordan Crouse
2018-03-16 18:44 ` [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu Jordan Crouse
[not found] ` <20180316184410.29863-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
0 siblings, 2 replies; 9+ messages in thread
From: Jordan Crouse @ 2018-03-16 18:44 UTC (permalink / raw)
To: freedreno
Cc: nm, devicetree, rnayak, linux-pm, sboyd, linux-arm-msm, dianders,
dri-devel, vireshk, linux-arm-kernel
Add DT nodes for the sdm845 GPU/GMU (graphics management unit) and the companion
arm-smmu-v2 compatible SMMU.
This builds on the following dependencies -
https://patchwork.kernel.org/patch/10286369/ - bindings for qcom,level
https://patchwork.kernel.org/patch/10281599/ - qcom,smmu-v2 bindings
Please refer to https://patchwork.freedesktop.org/series/37428/ for the driver
code.
[v2 - changed qcom,arc-level to qcom,level following discussion with Viresh;
change gmu phandle to qcom,gmu per Rob]
Jordan Crouse (2):
dt-bindings: Document qcom,adreno-gmu
arm64: dts: sdm845: Add gpu and gmu device nodes
.../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++
.../devicetree/bindings/display/msm/gpu.txt | 10 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 119 +++++++++++++++++++++
3 files changed, 181 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt
--
2.16.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu 2018-03-16 18:44 [v2 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU Jordan Crouse @ 2018-03-16 18:44 ` Jordan Crouse [not found] ` <20180316184410.29863-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 1 sibling, 0 replies; 9+ messages in thread From: Jordan Crouse @ 2018-03-16 18:44 UTC (permalink / raw) To: freedreno; +Cc: linux-arm-msm, dri-devel Document the device tree bindings for the Adreno GMU device available on Adreno a6xx targets. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> --- .../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++++++++++++++ .../devicetree/bindings/display/msm/gpu.txt | 10 +++- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt diff --git a/Documentation/devicetree/bindings/display/msm/gmu.txt b/Documentation/devicetree/bindings/display/msm/gmu.txt new file mode 100644 index 000000000000..f65bb49fff36 --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/gmu.txt @@ -0,0 +1,54 @@ +Qualcomm adreno/snapdragon GMU (Graphics management unit) + +The GMU is a programmable power controller for the GPU. the CPU controls the +GMU which in turn handles power controls for the GPU. + +Required properties: +- compatible: + * "qcom,adreno-gmu" +- reg: Physical base address and length of the GMU registers. +- reg-names: Matching names for the register regions + * "gmu" + * "gmu_pdc" +- interrupts: The interrupt signals from the GMU. +- interrupt-names: Matching names for the interrupts + * "hfi" + * "gmu" +- clocks: phandles to the device clocks +- clock-names: Matching names for the clocks + * "gmu" + * "cxo" + * "axi" + * "mnoc" +- power-domains: should be <&clock_gpucc GPU_CX_GDSC> +- iommus: phandle to the adreno iommu +- operating-points-v2: phandle to the OPP operating points + +Example: + +/ { + ... + + gmu: gmu@506a000 { + compatible="qcom,adreno-gmu"; + + reg = <0x506a000 0x30000>, + <0xb200000 0x300000>; + reg-names = "gmu", "gmu_pdc"; + + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "hfi", "gmu"; + + clocks = <&clock_gpucc GPU_CC_CX_GMU_CLK>, + <&clock_gpucc GPU_CC_CXO_CLK>, + <&clock_gcc GCC_DDRSS_GPU_AXI_CLK>, + <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>; + clock-names = "gmu", "cxo", "axi", "memnoc"; + + power-domains = <&clock_gpucc GPU_CX_GDSC>; + iommus = <&adreno_smmu 5>; + + i operating-points-v2 = <&gmu_opp_table>; + }; +}; diff --git a/Documentation/devicetree/bindings/display/msm/gpu.txt b/Documentation/devicetree/bindings/display/msm/gpu.txt index 43fac0fe09bb..544a7510166b 100644 --- a/Documentation/devicetree/bindings/display/msm/gpu.txt +++ b/Documentation/devicetree/bindings/display/msm/gpu.txt @@ -8,12 +8,18 @@ Required properties: with the chip-id. - reg: Physical base address and length of the controller's registers. - interrupts: The interrupt signal from the gpu. -- clocks: device clocks + +Optional properties. +- clocks: device clocks. Required for a3xx, a4xx and a5xx targets. a6xx and + newer with a GMU attached do not have direct clock control from the CPU and + do not need to provide clock properties. See ../clocks/clock-bindings.txt for details. -- clock-names: the following clocks are required: +- clock-names: the following clocks can be provided: * "core" * "iface" * "mem_iface" +- qcom,gmu: For a6xx and newer targets a phandle to the GMU device that will + control the power for the GPU Example: -- 2.16.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 9+ messages in thread
[parent not found: <20180316184410.29863-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH 2/2] arm64: dts: sdm845: Add gpu and gmu device nodes [not found] ` <20180316184410.29863-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2018-03-16 18:44 ` Jordan Crouse 0 siblings, 0 replies; 9+ messages in thread From: Jordan Crouse @ 2018-03-16 18:44 UTC (permalink / raw) To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Add the nodes to describe the Adreno GPU and GMU devices. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> --- arch/arm64/boot/dts/qcom/sdm845.dtsi | 119 +++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index 16b5f356ec96..854da6604417 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -312,4 +312,123 @@ }; }; }; + + adreno_smmu: arm,smmu-adreno@5040000 { + compatible = "qcom,msm8996-smmu-v2"; + reg = <0x5040000 0x10000>; + #iommu-cells = <1>; + #global-interrupts = <2>; + interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 366 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 367 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 368 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 369 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 370 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 371 IRQ_TYPE_EDGE_RISING>; + clocks = <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>, + <&clock_gcc GCC_GPU_CFG_AHB_CLK>; + clock-names = "bus", "iface"; + + power-domains = <&clock_gpucc GPU_CX_GDSC>; + }; + + gpu_opp_table: adreno-opp-table { + compatible = "operating-points-v2"; + + opp-710000000 { + opp-hz = /bits/ 64 <710000000>; + qcom,level = <416>; + }; + + opp-675000000 { + opp-hz = /bits/ 64 <675000000>; + qcom,level = <384>; + }; + + opp-596000000 { + opp-hz = /bits/ 64 <596000000>; + qcom,level = <320>; + }; + + opp-520000000 { + opp-hz = /bits/ 64 <520000000>; + qcom,level = <256>; + }; + + opp-414000000 { + opp-hz = /bits/ 64 <414000000>; + qcom,level = <192>; + }; + + opp-342000000 { + opp-hz = /bits/ 64 <342000000>; + qcom,level = <128>; + }; + + opp-257000000 { + opp-hz = /bits/ 64 <257000000>; + qcom,level = <64>; + }; + }; + + gpu@5000000 { + compatible = "qcom,adreno-630.2", "qcom,adreno"; + #stream-id-cells = <16>; + + reg = <0x5000000 0x40000>; + reg-names = "kgsl_3d0_reg_memory"; + + /* + * Look ma, no clocks! The GPU clocks and power are controlled + * entirely by the GMU + */ + + interrupts = <0 300 0>; + interrupt-names = "kgsl_3d0_irq"; + + iommus = <&adreno_smmu 0>; + + operating-points-v2 = <&gpu_opp_table>; + + gmu = <&gmu>; + }; + + gmu_opp_table: adreno-gmu-opp-table { + compatible = "operating-points-v2"; + + opp-400000000 { + opp-hz = /bits/ 64 <400000000>; + qcom,level = <128>; + }; + + opp-200000000 { + opp-hz = /bits/ 64 <200000000>; + qcom,level = <48>; + }; + }; + + gmu: gmu@506a000 { + compatible="qcom,adreno-gmu"; + + reg = <0x506a000 0x30000>, <0xb200000 0x300000>; + reg-names = "gmu", "gmu_pdc"; + + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "hfi", "gmu"; + + clocks = <&clock_gpucc GPU_CC_CX_GMU_CLK>, + <&clock_gpucc GPU_CC_CXO_CLK>, + <&clock_gcc GCC_DDRSS_GPU_AXI_CLK>, + <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>; + clock-names = "gmu", "cxo", "axi", "memnoc"; + + power-domains = <&clock_gpucc GPU_CX_GDSC>; + iommus = <&adreno_smmu 5>; + + operating-points-v2 = <&gmu_opp_table>; + }; }; -- 2.16.1 _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [v3 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU
@ 2018-08-08 22:46 Jordan Crouse
[not found] ` <20180808224701.7527-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
0 siblings, 1 reply; 9+ messages in thread
From: Jordan Crouse @ 2018-08-08 22:46 UTC (permalink / raw)
To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA,
sboyd-DgEjT+Ai2ygdnm+yROfE0A,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
hoegsberg-Re5JQEeQqe8AvxtiuMwx3w,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
sibis-sgV2jX0FEOL9JmXXK+q4OQ, vireshk-DgEjT+Ai2ygdnm+yROfE0A,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Add DT nodes for the sdm845 GPU/GMU (graphics management unit) and the companion
arm-smmu-v2 compatible SMMU.
This builds on the following dependencies -
https://patchwork.kernel.org/patch/10286369/ - bindings for qcom,level
https://patchwork.kernel.org/patch/10281599/ - qcom,smmu-v2 bindings
And requires these two changes for the driver:
https://patchwork.freedesktop.org/patch/243512/ - use new PDC sections
https://patchwork.freedesktop.org/patch/243513/ - use qcom,gmu instead of gmu
I think we are still waiting for the dependencies to merge but this should
at least be usable for anybody with a target that wants to get the GPU up
and happy.
[v3 - Split GMU PDC region into two GPU specific sections, fix indentation,
really use qcom,gmu for the phandle name]
[v2 - changed qcom,arc-level to qcom,level following discussion with Viresh;
change gmu phandle to qcom,gmu per Rob]
Jordan Crouse (2):
dt-bindings: Document qcom,adreno-gmu
arm64: dts: sdm845: Add gpu and gmu device nodes
.../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++
.../devicetree/bindings/display/msm/gpu.txt | 10 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 121 ++++++++++++++++++
3 files changed, 183 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt
--
2.18.0
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
^ permalink raw reply [flat|nested] 9+ messages in thread[parent not found: <20180808224701.7527-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu [not found] ` <20180808224701.7527-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2018-08-08 22:47 ` Jordan Crouse 0 siblings, 0 replies; 9+ messages in thread From: Jordan Crouse @ 2018-08-08 22:47 UTC (permalink / raw) To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA, rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA, sboyd-DgEjT+Ai2ygdnm+yROfE0A, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, hoegsberg-Re5JQEeQqe8AvxtiuMwx3w, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, sibis-sgV2jX0FEOL9JmXXK+q4OQ, vireshk-DgEjT+Ai2ygdnm+yROfE0A, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Document the device tree bindings for the Adreno GMU device available on Adreno a6xx targets. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> --- .../devicetree/bindings/display/msm/gmu.txt | 54 +++++++++++++++++++ .../devicetree/bindings/display/msm/gpu.txt | 10 +++- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt diff --git a/Documentation/devicetree/bindings/display/msm/gmu.txt b/Documentation/devicetree/bindings/display/msm/gmu.txt new file mode 100644 index 000000000000..6ab3e2cf29e9 --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/gmu.txt @@ -0,0 +1,54 @@ +Qualcomm adreno/snapdragon GMU (Graphics management unit) + +The GMU is a programmable power controller for the GPU. the CPU controls the +GMU which in turn handles power controls for the GPU. + +Required properties: +- compatible: + * "qcom,adreno-gmu" +- reg: Physical base address and length of the GMU registers. +- reg-names: Matching names for the register regions + * "gmu" + * "gmu_pdc" +- interrupts: The interrupt signals from the GMU. +- interrupt-names: Matching names for the interrupts + * "hfi" + * "gmu" +- clocks: phandles to the device clocks +- clock-names: Matching names for the clocks + * "gmu" + * "cxo" + * "axi" + * "mnoc" +- power-domains: should be <&clock_gpucc GPU_CX_GDSC> +- iommus: phandle to the adreno iommu +- operating-points-v2: phandle to the OPP operating points + +Example: + +/ { + ... + + gmu: gmu@506a000 { + compatible="qcom,adreno-gmu"; + + reg = <0x506a000 0x30000>, + <0xb200000 0x300000>; + reg-names = "gmu", "gmu_pdc"; + + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "hfi", "gmu"; + + clocks = <&clock_gpucc GPU_CC_CX_GMU_CLK>, + <&clock_gpucc GPU_CC_CXO_CLK>, + <&clock_gcc GCC_DDRSS_GPU_AXI_CLK>, + <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>; + clock-names = "gmu", "cxo", "axi", "memnoc"; + + power-domains = <&clock_gpucc GPU_CX_GDSC>; + iommus = <&adreno_smmu 5>; + + operating-points-v2 = <&gmu_opp_table>; + }; +}; diff --git a/Documentation/devicetree/bindings/display/msm/gpu.txt b/Documentation/devicetree/bindings/display/msm/gpu.txt index 43fac0fe09bb..544a7510166b 100644 --- a/Documentation/devicetree/bindings/display/msm/gpu.txt +++ b/Documentation/devicetree/bindings/display/msm/gpu.txt @@ -8,12 +8,18 @@ Required properties: with the chip-id. - reg: Physical base address and length of the controller's registers. - interrupts: The interrupt signal from the gpu. -- clocks: device clocks + +Optional properties. +- clocks: device clocks. Required for a3xx, a4xx and a5xx targets. a6xx and + newer with a GMU attached do not have direct clock control from the CPU and + do not need to provide clock properties. See ../clocks/clock-bindings.txt for details. -- clock-names: the following clocks are required: +- clock-names: the following clocks can be provided: * "core" * "iface" * "mem_iface" +- qcom,gmu: For a6xx and newer targets a phandle to the GMU device that will + control the power for the GPU Example: -- 2.18.0 _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [v2 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU
@ 2018-03-16 18:51 Jordan Crouse
[not found] ` <20180316185152.32020-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
0 siblings, 1 reply; 9+ messages in thread
From: Jordan Crouse @ 2018-03-16 18:51 UTC (permalink / raw)
To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA,
sboyd-DgEjT+Ai2ygdnm+yROfE0A,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
dianders-F7+t8E8rja9g9hUCZPvPmw,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
vireshk-DgEjT+Ai2ygdnm+yROfE0A,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
(resend because I forgot to CC everybody on the patches)
Add DT nodes for the sdm845 GPU/GMU (graphics management unit) and the companion
arm-smmu-v2 compatible SMMU.
This builds on the following dependencies -
https://patchwork.kernel.org/patch/10286369/ - bindings for qcom,level
https://patchwork.kernel.org/patch/10281599/ - qcom,smmu-v2 bindings
Please refer to https://patchwork.freedesktop.org/series/37428/ for the driver
code.
[v2 - changed qcom,arc-level to qcom,level following discussion with Viresh;
change gmu phandle to qcom,gmu per Rob]
Jordan Crouse (2):
dt-bindings: Document qcom,adreno-gmu
arm64: dts: sdm845: Add gpu and gmu device nodes
.../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++
.../devicetree/bindings/display/msm/gpu.txt | 10 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 119 +++++++++++++++++++++
3 files changed, 181 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt
--
2.16.1
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
^ permalink raw reply [flat|nested] 9+ messages in thread[parent not found: <20180316185152.32020-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu [not found] ` <20180316185152.32020-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2018-03-16 18:51 ` Jordan Crouse [not found] ` <20180316185152.32020-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 0 siblings, 1 reply; 9+ messages in thread From: Jordan Crouse @ 2018-03-16 18:51 UTC (permalink / raw) To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA, rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA, sboyd-DgEjT+Ai2ygdnm+yROfE0A, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, dianders-F7+t8E8rja9g9hUCZPvPmw, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, vireshk-DgEjT+Ai2ygdnm+yROfE0A, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Document the device tree bindings for the Adreno GMU device available on Adreno a6xx targets. Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> --- .../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++++++++++++++ .../devicetree/bindings/display/msm/gpu.txt | 10 +++- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt diff --git a/Documentation/devicetree/bindings/display/msm/gmu.txt b/Documentation/devicetree/bindings/display/msm/gmu.txt new file mode 100644 index 000000000000..f65bb49fff36 --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/gmu.txt @@ -0,0 +1,54 @@ +Qualcomm adreno/snapdragon GMU (Graphics management unit) + +The GMU is a programmable power controller for the GPU. the CPU controls the +GMU which in turn handles power controls for the GPU. + +Required properties: +- compatible: + * "qcom,adreno-gmu" +- reg: Physical base address and length of the GMU registers. +- reg-names: Matching names for the register regions + * "gmu" + * "gmu_pdc" +- interrupts: The interrupt signals from the GMU. +- interrupt-names: Matching names for the interrupts + * "hfi" + * "gmu" +- clocks: phandles to the device clocks +- clock-names: Matching names for the clocks + * "gmu" + * "cxo" + * "axi" + * "mnoc" +- power-domains: should be <&clock_gpucc GPU_CX_GDSC> +- iommus: phandle to the adreno iommu +- operating-points-v2: phandle to the OPP operating points + +Example: + +/ { + ... + + gmu: gmu@506a000 { + compatible="qcom,adreno-gmu"; + + reg = <0x506a000 0x30000>, + <0xb200000 0x300000>; + reg-names = "gmu", "gmu_pdc"; + + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "hfi", "gmu"; + + clocks = <&clock_gpucc GPU_CC_CX_GMU_CLK>, + <&clock_gpucc GPU_CC_CXO_CLK>, + <&clock_gcc GCC_DDRSS_GPU_AXI_CLK>, + <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>; + clock-names = "gmu", "cxo", "axi", "memnoc"; + + power-domains = <&clock_gpucc GPU_CX_GDSC>; + iommus = <&adreno_smmu 5>; + + i operating-points-v2 = <&gmu_opp_table>; + }; +}; diff --git a/Documentation/devicetree/bindings/display/msm/gpu.txt b/Documentation/devicetree/bindings/display/msm/gpu.txt index 43fac0fe09bb..544a7510166b 100644 --- a/Documentation/devicetree/bindings/display/msm/gpu.txt +++ b/Documentation/devicetree/bindings/display/msm/gpu.txt @@ -8,12 +8,18 @@ Required properties: with the chip-id. - reg: Physical base address and length of the controller's registers. - interrupts: The interrupt signal from the gpu. -- clocks: device clocks + +Optional properties. +- clocks: device clocks. Required for a3xx, a4xx and a5xx targets. a6xx and + newer with a GMU attached do not have direct clock control from the CPU and + do not need to provide clock properties. See ../clocks/clock-bindings.txt for details. -- clock-names: the following clocks are required: +- clock-names: the following clocks can be provided: * "core" * "iface" * "mem_iface" +- qcom,gmu: For a6xx and newer targets a phandle to the GMU device that will + control the power for the GPU Example: -- 2.16.1 _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno ^ permalink raw reply related [flat|nested] 9+ messages in thread
[parent not found: <20180316185152.32020-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* Re: [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu [not found] ` <20180316185152.32020-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2018-03-26 22:23 ` Rob Herring 0 siblings, 0 replies; 9+ messages in thread From: Rob Herring @ 2018-03-26 22:23 UTC (permalink / raw) To: Jordan Crouse Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA, rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA, sboyd-DgEjT+Ai2ygdnm+yROfE0A, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, dianders-F7+t8E8rja9g9hUCZPvPmw, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, vireshk-DgEjT+Ai2ygdnm+yROfE0A, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Fri, Mar 16, 2018 at 12:51:51PM -0600, Jordan Crouse wrote: > Document the device tree bindings for the Adreno GMU device > available on Adreno a6xx targets. > > Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> > --- > .../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++++++++++++++ > .../devicetree/bindings/display/msm/gpu.txt | 10 +++- > 2 files changed, 62 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt Reviewed-by: Rob Herring <robh@kernel.org> _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU
@ 2018-03-02 21:56 Jordan Crouse
[not found] ` <20180302215638.6145-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
0 siblings, 1 reply; 9+ messages in thread
From: Jordan Crouse @ 2018-03-02 21:56 UTC (permalink / raw)
To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA,
rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
sboyd-sgV2jX0FEOL9JmXXK+q4OQ, dianders-F7+t8E8rja9g9hUCZPvPmw,
vireshk-DgEjT+Ai2ygdnm+yROfE0A,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Building on the sdm845 changes from Rajendra and SMMU changes from Vivek this
is an initial stab at the DT nodes for the sdm845 GPU and GMU (graphics
management unit) which is responsible for the direct power control of the GPU
including the companion arm-smmu-v2 compatible SMMU.
Please refer to https://patchwork.freedesktop.org/series/37428/ for the driver
code.
Jordan Crouse (2):
dt-bindings: Document qcom,adreno-gmu
arm64: dts: sdm845: Support GPU/GMU
.../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++
.../devicetree/bindings/display/msm/gpu.txt | 10 +-
arch/arm64/boot/dts/qcom/sdm845.dtsi | 120 +++++++++++++++++++++
3 files changed, 182 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt
--
2.16.1
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
^ permalink raw reply [flat|nested] 9+ messages in thread[parent not found: <20180302215638.6145-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu [not found] ` <20180302215638.6145-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2018-03-02 21:56 ` Jordan Crouse [not found] ` <20180302215638.6145-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 0 siblings, 1 reply; 9+ messages in thread From: Jordan Crouse @ 2018-03-02 21:56 UTC (permalink / raw) To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW Cc: nm-l0cyMroinI0, devicetree-u79uwXL29TY76Z2rM5mHXA, rnayak-sgV2jX0FEOL9JmXXK+q4OQ, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, sboyd-sgV2jX0FEOL9JmXXK+q4OQ, dianders-F7+t8E8rja9g9hUCZPvPmw, vireshk-DgEjT+Ai2ygdnm+yROfE0A, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Document the device tree bindings for the Adreno GMU device available on Adreno a6xx targets. Change-Id: I3cfd5fb35ab0045e39905ff12393006e60f1a124 Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> --- .../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++++++++++++++ .../devicetree/bindings/display/msm/gpu.txt | 10 +++- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt diff --git a/Documentation/devicetree/bindings/display/msm/gmu.txt b/Documentation/devicetree/bindings/display/msm/gmu.txt new file mode 100644 index 000000000000..f65bb49fff36 --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/gmu.txt @@ -0,0 +1,54 @@ +Qualcomm adreno/snapdragon GMU (Graphics management unit) + +The GMU is a programmable power controller for the GPU. the CPU controls the +GMU which in turn handles power controls for the GPU. + +Required properties: +- compatible: + * "qcom,adreno-gmu" +- reg: Physical base address and length of the GMU registers. +- reg-names: Matching names for the register regions + * "gmu" + * "gmu_pdc" +- interrupts: The interrupt signals from the GMU. +- interrupt-names: Matching names for the interrupts + * "hfi" + * "gmu" +- clocks: phandles to the device clocks +- clock-names: Matching names for the clocks + * "gmu" + * "cxo" + * "axi" + * "mnoc" +- power-domains: should be <&clock_gpucc GPU_CX_GDSC> +- iommus: phandle to the adreno iommu +- operating-points-v2: phandle to the OPP operating points + +Example: + +/ { + ... + + gmu: gmu@506a000 { + compatible="qcom,adreno-gmu"; + + reg = <0x506a000 0x30000>, + <0xb200000 0x300000>; + reg-names = "gmu", "gmu_pdc"; + + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "hfi", "gmu"; + + clocks = <&clock_gpucc GPU_CC_CX_GMU_CLK>, + <&clock_gpucc GPU_CC_CXO_CLK>, + <&clock_gcc GCC_DDRSS_GPU_AXI_CLK>, + <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>; + clock-names = "gmu", "cxo", "axi", "memnoc"; + + power-domains = <&clock_gpucc GPU_CX_GDSC>; + iommus = <&adreno_smmu 5>; + + i operating-points-v2 = <&gmu_opp_table>; + }; +}; diff --git a/Documentation/devicetree/bindings/display/msm/gpu.txt b/Documentation/devicetree/bindings/display/msm/gpu.txt index 43fac0fe09bb..0e207498edd3 100644 --- a/Documentation/devicetree/bindings/display/msm/gpu.txt +++ b/Documentation/devicetree/bindings/display/msm/gpu.txt @@ -8,12 +8,18 @@ Required properties: with the chip-id. - reg: Physical base address and length of the controller's registers. - interrupts: The interrupt signal from the gpu. -- clocks: device clocks + +Optional properties. +- clocks: device clocks. Required for a3xx, a4xx and a5xx targets. a6xx and + newer with a GMU attached do not have direct clock control from the CPU and + do not need to provide clock properties. See ../clocks/clock-bindings.txt for details. -- clock-names: the following clocks are required: +- clock-names: the following clocks can be provided: * "core" * "iface" * "mem_iface" +- gmu: For a6xx and newer targets a phandle to the GMU device that will + control the power for the GPU Example: -- 2.16.1 _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno ^ permalink raw reply related [flat|nested] 9+ messages in thread
[parent not found: <20180302215638.6145-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* Re: [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu [not found] ` <20180302215638.6145-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2018-03-05 19:38 ` Rob Herring 2018-03-16 18:27 ` Jordan Crouse 0 siblings, 1 reply; 9+ messages in thread From: Rob Herring @ 2018-03-05 19:38 UTC (permalink / raw) To: Jordan Crouse Cc: Nishanth Menon, devicetree-u79uwXL29TY76Z2rM5mHXA, Rajendra Nayak, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-msm, Stephen Boyd, Doug Anderson, dri-devel, Viresh Kumar, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE On Fri, Mar 2, 2018 at 3:56 PM, Jordan Crouse <jcrouse@codeaurora.org> wrote: > Document the device tree bindings for the Adreno GMU device > available on Adreno a6xx targets. > > Change-Id: I3cfd5fb35ab0045e39905ff12393006e60f1a124 Gerrit! > Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> > --- > .../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++++++++++++++ > .../devicetree/bindings/display/msm/gpu.txt | 10 +++- > 2 files changed, 62 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt > > diff --git a/Documentation/devicetree/bindings/display/msm/gmu.txt b/Documentation/devicetree/bindings/display/msm/gmu.txt > new file mode 100644 > index 000000000000..f65bb49fff36 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/msm/gmu.txt > @@ -0,0 +1,54 @@ > +Qualcomm adreno/snapdragon GMU (Graphics management unit) > + > +The GMU is a programmable power controller for the GPU. the CPU controls the > +GMU which in turn handles power controls for the GPU. > + > +Required properties: > +- compatible: > + * "qcom,adreno-gmu" Kind of generic. All the features are discoverable? > +- reg: Physical base address and length of the GMU registers. > +- reg-names: Matching names for the register regions > + * "gmu" > + * "gmu_pdc" > +- interrupts: The interrupt signals from the GMU. > +- interrupt-names: Matching names for the interrupts > + * "hfi" > + * "gmu" > +- clocks: phandles to the device clocks > +- clock-names: Matching names for the clocks > + * "gmu" > + * "cxo" > + * "axi" > + * "mnoc" > +- power-domains: should be <&clock_gpucc GPU_CX_GDSC> > +- iommus: phandle to the adreno iommu > +- operating-points-v2: phandle to the OPP operating points > + > +Example: > + > +/ { > + ... > + > + gmu: gmu@506a000 { > + compatible="qcom,adreno-gmu"; > + > + reg = <0x506a000 0x30000>, > + <0xb200000 0x300000>; > + reg-names = "gmu", "gmu_pdc"; > + > + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "hfi", "gmu"; > + > + clocks = <&clock_gpucc GPU_CC_CX_GMU_CLK>, > + <&clock_gpucc GPU_CC_CXO_CLK>, > + <&clock_gcc GCC_DDRSS_GPU_AXI_CLK>, > + <&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>; > + clock-names = "gmu", "cxo", "axi", "memnoc"; > + > + power-domains = <&clock_gpucc GPU_CX_GDSC>; > + iommus = <&adreno_smmu 5>; > + > + i operating-points-v2 = <&gmu_opp_table>; > + }; > +}; > diff --git a/Documentation/devicetree/bindings/display/msm/gpu.txt b/Documentation/devicetree/bindings/display/msm/gpu.txt > index 43fac0fe09bb..0e207498edd3 100644 > --- a/Documentation/devicetree/bindings/display/msm/gpu.txt > +++ b/Documentation/devicetree/bindings/display/msm/gpu.txt > @@ -8,12 +8,18 @@ Required properties: > with the chip-id. > - reg: Physical base address and length of the controller's registers. > - interrupts: The interrupt signal from the gpu. > -- clocks: device clocks > + > +Optional properties. > +- clocks: device clocks. Required for a3xx, a4xx and a5xx targets. a6xx and > + newer with a GMU attached do not have direct clock control from the CPU and > + do not need to provide clock properties. > See ../clocks/clock-bindings.txt for details. > -- clock-names: the following clocks are required: > +- clock-names: the following clocks can be provided: > * "core" > * "iface" > * "mem_iface" > +- gmu: For a6xx and newer targets a phandle to the GMU device that will qcom,gmu > + control the power for the GPU > > Example: > > -- > 2.16.1 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu 2018-03-05 19:38 ` Rob Herring @ 2018-03-16 18:27 ` Jordan Crouse 0 siblings, 0 replies; 9+ messages in thread From: Jordan Crouse @ 2018-03-16 18:27 UTC (permalink / raw) To: Rob Herring Cc: Nishanth Menon, devicetree, Rajendra Nayak, linux-pm, linux-arm-msm, Stephen Boyd, Doug Anderson, dri-devel, Viresh Kumar, freedreno, moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE On Mon, Mar 05, 2018 at 01:38:59PM -0600, Rob Herring wrote: > On Fri, Mar 2, 2018 at 3:56 PM, Jordan Crouse <jcrouse@codeaurora.org> wrote: > > Document the device tree bindings for the Adreno GMU device > > available on Adreno a6xx targets. > > > > Change-Id: I3cfd5fb35ab0045e39905ff12393006e60f1a124 > > Gerrit! > > > Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org> > > --- > > .../devicetree/bindings/display/msm/gmu.txt | 54 ++++++++++++++++++++++ > > .../devicetree/bindings/display/msm/gpu.txt | 10 +++- > > 2 files changed, 62 insertions(+), 2 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt > > > > diff --git a/Documentation/devicetree/bindings/display/msm/gmu.txt b/Documentation/devicetree/bindings/display/msm/gmu.txt > > new file mode 100644 > > index 000000000000..f65bb49fff36 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/msm/gmu.txt > > @@ -0,0 +1,54 @@ > > +Qualcomm adreno/snapdragon GMU (Graphics management unit) > > + > > +The GMU is a programmable power controller for the GPU. the CPU controls the > > +GMU which in turn handles power controls for the GPU. > > + > > +Required properties: > > +- compatible: > > + * "qcom,adreno-gmu" > > Kind of generic. All the features are discoverable? I was just prepping a new version and I realized I never responded to this. Sorry. Yes, all the features are discoverable. Since the GMU is on the same die as the GPU we would use the GPU revision as the criteria for applying hardware workarounds and whatnot. I can't think of any current situation that would require us to uniquely identify the GMU from DT. Jordan -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-08-08 22:47 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-16 18:44 [v2 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU Jordan Crouse
2018-03-16 18:44 ` [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu Jordan Crouse
[not found] ` <20180316184410.29863-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-16 18:44 ` [PATCH 2/2] arm64: dts: sdm845: Add gpu and gmu device nodes Jordan Crouse
-- strict thread matches above, loose matches on Subject: below --
2018-08-08 22:46 [v3 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU Jordan Crouse
[not found] ` <20180808224701.7527-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-08-08 22:47 ` [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu Jordan Crouse
2018-03-16 18:51 [v2 PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU Jordan Crouse
[not found] ` <20180316185152.32020-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-16 18:51 ` [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu Jordan Crouse
[not found] ` <20180316185152.32020-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-26 22:23 ` Rob Herring
2018-03-02 21:56 [PATCH 0/2] arm64: dts: Add sdm845 GPU/GMU and SMMU Jordan Crouse
[not found] ` <20180302215638.6145-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-02 21:56 ` [PATCH 1/2] dt-bindings: Document qcom,adreno-gmu Jordan Crouse
[not found] ` <20180302215638.6145-2-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-03-05 19:38 ` Rob Herring
2018-03-16 18:27 ` Jordan Crouse
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox