Add GPU & Video Clock controller driver for SC7180
v3 cover Add GPU & Video Clock controller driver for SC7180
[v3]
* Update the clock items in Documentation binding with the GPLL0 branch names.
* Update gpu_cc_parent_data to remove .name for GCC GPLL0 source.
* Mark video_cc_xo_clk clock critical from videocc probe.
[v2]
* Split Fabia code cleanup and calibration code.
* Few cleanups for GPU/Video CC are
* header file inclusion, const for pll vco table.
* removal of always enabled clock from gpucc.
* compatibles added in sorted order.
* move from core_initcall to subsys_initcall().
* cleanup clk_parent_data for clocks to be provided from DT.
[v1]
* Fabia PLLs could fail latching in the case where the PLL is not calibrated, so add support to calibrate in prepare clock ops.
* Add driver support for Graphics clock controller for SC7180 and also update device tree bindings for the various clocks supported in the clock controller.
* Add driver support for Video clock controller for SC7180 and also update device tree bindings for the various clocks supported in the clock controller.
Taniya Das (6):
dt-bindings: clock: Add YAML schemas for the QCOM GPUCC clock bindings
dt-bindings: clock: Introduce QCOM Graphics clock bindings
clk: qcom: Add graphics clock controller driver for SC7180
dt-bindings: clock: Add YAML schemas for the QCOM VIDEOCC clock
bindings
dt-bindings: clock: Introduce SC7180 QCOM Video clock bindings
clk: qcom: Add video clock controller driver for SC7180
.../devicetree/bindings/clock/qcom,gpucc.txt | 24 -- .../devicetree/bindings/clock/qcom,gpucc.yaml | 72 ++++++ .../devicetree/bindings/clock/qcom,videocc.txt | 18 -- .../devicetree/bindings/clock/qcom,videocc.yaml | 62 +++++ drivers/clk/qcom/Kconfig | 16 ++ drivers/clk/qcom/Makefile | 2 + drivers/clk/qcom/gpucc-sc7180.c | 266 +++++++++++++++++++++ drivers/clk/qcom/videocc-sc7180.c | 259 ++++++++++++++++++++ include/dt-bindings/clock/qcom,gpucc-sc7180.h | 21 ++ include/dt-bindings/clock/qcom,videocc-sc7180.h | 23 ++ 10 files changed, 721 insertions(+), 42 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc.yaml delete mode 100644 Documentation/devicetree/bindings/clock/qcom,videocc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,videocc.yaml create mode 100644 drivers/clk/qcom/gpucc-sc7180.c create mode 100644 drivers/clk/qcom/videocc-sc7180.c create mode 100644 include/dt-bindings/clock/qcom,gpucc-sc7180.h create mode 100644 include/dt-bindings/clock/qcom,videocc-sc7180.h
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
PATCH v3 1/6 dt-bindings: clock: Add YAML schemas for the QCOM GPUCC clock bindings
The GPUCC clock provider have a bunch of generic properties that are needed in a device tree. Add a YAML schemas for those.
--- .../devicetree/bindings/clock/qcom,gpucc.txt | 24 -------- .../devicetree/bindings/clock/qcom,gpucc.yaml | 71 ++++++++++++++++++++++ 2 files changed, 71 insertions(+), 24 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
Documentation/devicetree/bindings/clock/qcom,gpucc.txt deleted +0 -24
@@ -1,24 +0,0 @@ -Qualcomm Graphics Clock & Reset Controller Binding --------------------------------------------------- - -Required properties : -- compatible : shall contain "qcom,sdm845-gpucc" or "qcom,msm8998-gpucc" -- reg : shall contain base register location and length -- #clock-cells : from common clock binding, shall contain 1 -- #reset-cells : from common reset binding, shall contain 1 -- #power-domain-cells : from generic power domain binding, shall contain 1 -- clocks : shall contain the XO clock - shall contain the gpll0 out main clock (msm8998) -- clock-names : shall be "xo" - shall be "gpll0" (msm8998) - -Example: - gpucc: clock-controller@5090000 { - compatible = "qcom,sdm845-gpucc"; - reg = <0x5090000 0x9000>; - #clock-cells = <1>; - #reset-cells = <1>; - #power-domain-cells = <1>; - clocks = <&rpmhcc RPMH_CXO_CLK>; - clock-names = "xo"; - };
Documentation/devicetree/bindings/clock/qcom,gpucc.yaml new file +71 -0
71 lines not on this page · raw message
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Re: [PATCH v3 1/6] dt-bindings: clock: Add YAML schemas for the QCOM GPUCC clock bindings
Quoted 11 lines · Taniya Das
The GPUCC clock provider have a bunch of generic properties that are needed in a device tree. Add a YAML schemas for those.
Signed-off-by Taniya Das <[email protected]>--- .../devicetree/bindings/clock/qcom,gpucc.txt | 24 -------- .../devicetree/bindings/clock/qcom,gpucc.yaml | 71 ++++++++++++++++++++++ 2 files changed, 71 insertions(+), 24 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
Re: [PATCH v3 1/6] dt-bindings: clock: Add YAML schemas for the QCOM GPUCC clock bindings
In reply to Taniya DasQuoting Taniya Das (2019-12-26 22:38:29)
Quoted 5 lines
The GPUCC clock provider have a bunch of generic properties that are needed in a device tree. Add a YAML schemas for those.
Signed-off-by Taniya Das <[email protected]>---
Applied to clk-next
PATCH v3 2/6 dt-bindings: clock: Introduce QCOM Graphics clock bindings
In reply to Taniya DasAdd device tree bindings for graphics clock controller for Qualcomm Technology Inc's SC7180 SoCs.
--- .../devicetree/bindings/clock/qcom,gpucc.yaml | 1 + include/dt-bindings/clock/qcom,gpucc-sc7180.h | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 include/dt-bindings/clock/qcom,gpucc-sc7180.h
Documentation/devicetree/bindings/clock/qcom,gpucc.yaml +1 -0
@@ -17,6 +17,7 @@ properties: compatible: enum: - qcom,msm8998-gpucc + - qcom,sc7180-gpucc - qcom,sdm845-gpucc clocks:
include/dt-bindings/clock/qcom,gpucc-sc7180.h new file +21 -0
@@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +* Copyright (c) 2019, The Linux Foundation. All rights reserved. +*/ + +#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_SC7180_H +#define _DT_BINDINGS_CLK_QCOM_GPU_CC_SC7180_H + +#define GPU_CC_PLL1 0 +#define GPU_CC_AHB_CLK 1 +#define GPU_CC_CRC_AHB_CLK 2 +#define GPU_CC_CX_GMU_CLK 3 +#define GPU_CC_CX_SNOC_DVM_CLK 4 +#define GPU_CC_CXO_AON_CLK 5 +#define GPU_CC_CXO_CLK 6 +#define GPU_CC_GMU_CLK_SRC 7 + +/* CAM_CC GDSCRs */ +#define CX_GDSC 0 + +#endif
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Re: [PATCH v3 2/6] dt-bindings: clock: Introduce QCOM Graphics clock bindings
Quoting Taniya Das (2019-12-26 22:38:30)
Quoted 6 lines
Add device tree bindings for graphics clock controller for Qualcomm Technology Inc's SC7180 SoCs.
Signed-off-by Taniya Das <[email protected]>Reviewed-by Rob Herring <[email protected]>---
Applied to clk-next
PATCH v3 3/6 clk: qcom: Add graphics clock controller driver for SC7180
In reply to Taniya DasAdd support for the graphics clock controller found on SC7180 based devices. This would allow graphics drivers to probe and control their clocks.
--- drivers/clk/qcom/Kconfig | 8 ++ drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/gpucc-sc7180.c | 266 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 275 insertions(+) create mode 100644 drivers/clk/qcom/gpucc-sc7180.c
drivers/clk/qcom/Kconfig +8 -0
@@ -245,6 +245,14 @@ config SC_GCC_7180 Say Y if you want to use peripheral devices such as UART, SPI, I2C, USB, UFS, SDCC, etc. +config SC_GPUCC_7180 + tristate "SC7180 Graphics Clock Controller" + select SC_GCC_7180 + help + Support for the graphics clock controller on SC7180 devices. + Say Y if you want to support graphics controller devices and + functionality such as 3D graphics. + config SDM_CAMCC_845 tristate "SDM845 Camera Clock Controller" select SDM_GCC_845
drivers/clk/qcom/Makefile +1 -0
@@ -46,6 +46,7 @@ obj-$(CONFIG_QCS_GCC_404) += gcc-qcs404.o obj-$(CONFIG_QCS_Q6SSTOP_404) += q6sstop-qcs404.o obj-$(CONFIG_QCS_TURING_404) += turingcc-qcs404.o obj-$(CONFIG_SC_GCC_7180) += gcc-sc7180.o +obj-$(CONFIG_SC_GPUCC_7180) += gpucc-sc7180.o obj-$(CONFIG_SDM_CAMCC_845) += camcc-sdm845.o obj-$(CONFIG_SDM_DISPCC_845) += dispcc-sdm845.o obj-$(CONFIG_SDM_GCC_660) += gcc-sdm660.o
drivers/clk/qcom/gpucc-sc7180.c new file +266 -0
266 lines not on this page · raw message
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Re: [PATCH v3 3/6] clk: qcom: Add graphics clock controller driver for SC7180
Quoting Taniya Das (2019-12-26 22:38:31)
Quoted 6 lines
Add support for the graphics clock controller found on SC7180 based devices. This would allow graphics drivers to probe and control their clocks.
Signed-off-by Taniya Das <[email protected]>---
Applied to clk-next
PATCH v3 4/6 dt-bindings: clock: Add YAML schemas for the QCOM VIDEOCC clock bindings
In reply to Taniya DasThe VIDEOCC clock provider have a bunch of generic properties that are needed in a device tree. Add a YAML schemas for those.
--- .../devicetree/bindings/clock/qcom,videocc.txt | 18 ------- .../devicetree/bindings/clock/qcom,videocc.yaml | 61 ++++++++++++++++++++++ 2 files changed, 61 insertions(+), 18 deletions(-) delete mode 100644 Documentation/devicetree/bindings/clock/qcom,videocc.txt create mode 100644 Documentation/devicetree/bindings/clock/qcom,videocc.yaml
Documentation/devicetree/bindings/clock/qcom,videocc.txt deleted +0 -18
@@ -1,18 +0,0 @@ -Qualcomm Video Clock & Reset Controller Binding ------------------------------------------------ - -Required properties : -- compatible : shall contain "qcom,sdm845-videocc" -- reg : shall contain base register location and length -- #clock-cells : from common clock binding, shall contain 1. -- #power-domain-cells : from generic power domain binding, shall contain 1. -- #reset-cells : from common reset binding, shall contain 1. - -Example: - videocc: clock-controller@ab00000 { - compatible = "qcom,sdm845-videocc"; - reg = <0xab00000 0x10000>; - #clock-cells = <1>; - #power-domain-cells = <1>; - #reset-cells = <1>; - };
Documentation/devicetree/bindings/clock/qcom,videocc.yaml new file +61 -0
61 lines not on this page · raw message
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Re: [PATCH v3 4/6] dt-bindings: clock: Add YAML schemas for the QCOM VIDEOCC clock bindings
Quoting Taniya Das (2019-12-26 22:38:32)
Quoted 6 lines
The VIDEOCC clock provider have a bunch of generic properties that are needed in a device tree. Add a YAML schemas for those.
Signed-off-by Taniya Das <[email protected]>Reviewed-by Rob Herring <[email protected]>---
Applied to clk-next
PATCH v3 5/6 dt-bindings: clock: Introduce SC7180 QCOM Video clock bindings
In reply to Taniya DasAdd device tree bindings for video clock controller for Qualcomm Technology Inc's SC7180 SoCs.
--- .../devicetree/bindings/clock/qcom,videocc.yaml | 1 + include/dt-bindings/clock/qcom,videocc-sc7180.h | 23 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 include/dt-bindings/clock/qcom,videocc-sc7180.h
Documentation/devicetree/bindings/clock/qcom,videocc.yaml +1 -0
@@ -16,6 +16,7 @@ description: | properties: compatible: enum: + - qcom,sc7180-videocc - qcom,sdm845-videocc clocks:
include/dt-bindings/clock/qcom,videocc-sc7180.h new file +23 -0
@@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +* Copyright (c) 2019, The Linux Foundation. All rights reserved. +*/ + +#ifndef _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SC7180_H +#define _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SC7180_H + +/* VIDEO_CC clocks */ +#define VIDEO_PLL0 0 +#define VIDEO_CC_VCODEC0_AXI_CLK 1 +#define VIDEO_CC_VCODEC0_CORE_CLK 2 +#define VIDEO_CC_VENUS_AHB_CLK 3 +#define VIDEO_CC_VENUS_CLK_SRC 4 +#define VIDEO_CC_VENUS_CTL_AXI_CLK 5 +#define VIDEO_CC_VENUS_CTL_CORE_CLK 6 +#define VIDEO_CC_XO_CLK 7 + +/* VIDEO_CC GDSCRs */ +#define VENUS_GDSC 0 +#define VCODEC0_GDSC 1 + +#endif
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Re: [PATCH v3 5/6] dt-bindings: clock: Introduce SC7180 QCOM Video clock bindings
Quoting Taniya Das (2019-12-26 22:38:33)
Quoted 6 lines
Add device tree bindings for video clock controller for Qualcomm Technology Inc's SC7180 SoCs.
Signed-off-by Taniya Das <[email protected]>Reviewed-by Rob Herring <[email protected]>---
Applied to clk-next
PATCH v3 6/6 clk: qcom: Add video clock controller driver for SC7180
In reply to Taniya DasAdd support for the video clock controller found on SC7180 based devices. This would allow video drivers to probe and control their clocks.
--- drivers/clk/qcom/Kconfig | 8 ++ drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/videocc-sc7180.c | 259 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 268 insertions(+) create mode 100644 drivers/clk/qcom/videocc-sc7180.c
drivers/clk/qcom/Kconfig +8 -0
@@ -253,6 +253,14 @@ config SC_GPUCC_7180 Say Y if you want to support graphics controller devices and functionality such as 3D graphics. +config SC_VIDEOCC_7180 + tristate "SC7180 Video Clock Controller" + select SC_GCC_7180 + help + Support for the video clock controller on SC7180 devices. + Say Y if you want to support video devices and functionality such as + video encode and decode. + config SDM_CAMCC_845 tristate "SDM845 Camera Clock Controller" select SDM_GCC_845
drivers/clk/qcom/Makefile +1 -0
@@ -47,6 +47,7 @@ obj-$(CONFIG_QCS_Q6SSTOP_404) += q6sstop-qcs404.o obj-$(CONFIG_QCS_TURING_404) += turingcc-qcs404.o obj-$(CONFIG_SC_GCC_7180) += gcc-sc7180.o obj-$(CONFIG_SC_GPUCC_7180) += gpucc-sc7180.o +obj-$(CONFIG_SC_VIDEOCC_7180) += videocc-sc7180.o obj-$(CONFIG_SDM_CAMCC_845) += camcc-sdm845.o obj-$(CONFIG_SDM_DISPCC_845) += dispcc-sdm845.o obj-$(CONFIG_SDM_GCC_660) += gcc-sdm660.o
drivers/clk/qcom/videocc-sc7180.c new file +259 -0
259 lines not on this page · raw message
--
Qualcomm INDIA, on behalf of Qualcomm Innovation Center, Inc.is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Re: [PATCH v3 6/6] clk: qcom: Add video clock controller driver for SC7180
Hi Taniya,
Quoted 12 lines · Taniya Das
Add support for the video clock controller found on SC7180 based devices. This would allow video drivers to probe and control their clocks.
Signed-off-by Taniya Das <[email protected]>--- drivers/clk/qcom/Kconfig | 8 ++ drivers/clk/qcom/Makefile | 1 + drivers/clk/qcom/videocc-sc7180.c | 259 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 268 insertions(+) create mode 100644 drivers/clk/qcom/videocc-sc7180.c
<cut>
drivers/clk/qcom/videocc-sc7180.c line 63
Quoted 2 lines
drivers/clk/qcom/videocc-sc7180.c new file +2
-0+static const struct freq_tbl ftbl_video_cc_venus_clk_src[] = { +F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),
Do you know is this frequency (19.2MHz) has real usage? The lower freq I've seen for Venus was 75MHz.
Quoted 8 lines
drivers/clk/qcom/videocc-sc7180.c new file +8
-0+F (150000000 ,P_VIDEO_PLL0_OUT_MAIN ,4 ,0 ,0 ), +F (270000000 ,P_VIDEO_PLL0_OUT_MAIN ,2.5 ,0 ,0 ), +F (340000000 ,P_VIDEO_PLL0_OUT_MAIN ,2 ,0 ,0 ), +F (434000000 ,P_VIDEO_PLL0_OUT_MAIN ,2 ,0 ,0 ), + F(500000000, P_VIDEO_PLL0_OUT_MAIN, 2, 0, 0), + { } +}; +
Signature · 2 lines
regards, Stan
Re: [PATCH v3 6/6] clk: qcom: Add video clock controller driver for SC7180
In reply to Taniya DasQuoting Taniya Das (2019-12-26 22:38:34)
Quoted 6 lines
Add support for the video clock controller found on SC7180 based devices. This would allow video drivers to probe and control their clocks.
Signed-off-by Taniya Das <[email protected]>---
Applied to clk-next