forked from Minki/linux
clk: qcom: Add Global Clock Controller driver for QCM2290
Add Global Clock Controller (GCC) driver for QCM2290. This is a porting of gcc-scuba driver from CAF msm-4.19, with GDSC support added on top. Because the alpha_pll on the platform has a different register layout (offsets), its own clk_alpha_pll_regs_offset[] is used in the driver. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Link: https://lore.kernel.org/r/20210919023308.24498-3-shawn.guo@linaro.org Acked-by: Rob Herring <robh@kernel.org> [sboyd@kernel.org: Drop duplicate includes, clk.h include, module alias] Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
parent
05d61401a4
commit
496d1a13d4
@ -324,6 +324,14 @@ config MSM_MMCC_8998
|
||||
Say Y if you want to support multimedia devices such as display,
|
||||
graphics, video encode/decode, camera, etc.
|
||||
|
||||
config QCM_GCC_2290
|
||||
tristate "QCM2290 Global Clock Controller"
|
||||
select QCOM_GDSC
|
||||
help
|
||||
Support for the global clock controller on QCM2290 devices.
|
||||
Say Y if you want to use multimedia devices or peripheral
|
||||
devices such as UART, SPI, I2C, USB, SD/eMMC etc.
|
||||
|
||||
config QCS_GCC_404
|
||||
tristate "QCS404 Global Clock Controller"
|
||||
help
|
||||
|
@ -54,6 +54,7 @@ obj-$(CONFIG_QCOM_CLK_APCS_SDX55) += apcs-sdx55.o
|
||||
obj-$(CONFIG_QCOM_CLK_RPM) += clk-rpm.o
|
||||
obj-$(CONFIG_QCOM_CLK_RPMH) += clk-rpmh.o
|
||||
obj-$(CONFIG_QCOM_CLK_SMD_RPM) += clk-smd-rpm.o
|
||||
obj-$(CONFIG_QCM_GCC_2290) += gcc-qcm2290.o
|
||||
obj-$(CONFIG_QCS_GCC_404) += gcc-qcs404.o
|
||||
obj-$(CONFIG_QCS_Q6SSTOP_404) += q6sstop-qcs404.o
|
||||
obj-$(CONFIG_QCS_TURING_404) += turingcc-qcs404.o
|
||||
|
3044
drivers/clk/qcom/gcc-qcm2290.c
Normal file
3044
drivers/clk/qcom/gcc-qcm2290.c
Normal file
File diff suppressed because it is too large
Load Diff
188
include/dt-bindings/clock/qcom,gcc-qcm2290.h
Normal file
188
include/dt-bindings/clock/qcom,gcc-qcm2290.h
Normal file
@ -0,0 +1,188 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_GCC_QCM2290_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_GCC_QCM2290_H
|
||||
|
||||
/* GCC clocks */
|
||||
#define GPLL0 0
|
||||
#define GPLL0_OUT_AUX2 1
|
||||
#define GPLL1 2
|
||||
#define GPLL10 3
|
||||
#define GPLL11 4
|
||||
#define GPLL3 5
|
||||
#define GPLL3_OUT_MAIN 6
|
||||
#define GPLL4 7
|
||||
#define GPLL5 8
|
||||
#define GPLL6 9
|
||||
#define GPLL6_OUT_MAIN 10
|
||||
#define GPLL7 11
|
||||
#define GPLL8 12
|
||||
#define GPLL8_OUT_MAIN 13
|
||||
#define GPLL9 14
|
||||
#define GPLL9_OUT_MAIN 15
|
||||
#define GCC_AHB2PHY_CSI_CLK 16
|
||||
#define GCC_AHB2PHY_USB_CLK 17
|
||||
#define GCC_APC_VS_CLK 18
|
||||
#define GCC_BIMC_GPU_AXI_CLK 19
|
||||
#define GCC_BOOT_ROM_AHB_CLK 20
|
||||
#define GCC_CAM_THROTTLE_NRT_CLK 21
|
||||
#define GCC_CAM_THROTTLE_RT_CLK 22
|
||||
#define GCC_CAMERA_AHB_CLK 23
|
||||
#define GCC_CAMERA_XO_CLK 24
|
||||
#define GCC_CAMSS_AXI_CLK 25
|
||||
#define GCC_CAMSS_AXI_CLK_SRC 26
|
||||
#define GCC_CAMSS_CAMNOC_ATB_CLK 27
|
||||
#define GCC_CAMSS_CAMNOC_NTS_XO_CLK 28
|
||||
#define GCC_CAMSS_CCI_0_CLK 29
|
||||
#define GCC_CAMSS_CCI_CLK_SRC 30
|
||||
#define GCC_CAMSS_CPHY_0_CLK 31
|
||||
#define GCC_CAMSS_CPHY_1_CLK 32
|
||||
#define GCC_CAMSS_CSI0PHYTIMER_CLK 33
|
||||
#define GCC_CAMSS_CSI0PHYTIMER_CLK_SRC 34
|
||||
#define GCC_CAMSS_CSI1PHYTIMER_CLK 35
|
||||
#define GCC_CAMSS_CSI1PHYTIMER_CLK_SRC 36
|
||||
#define GCC_CAMSS_MCLK0_CLK 37
|
||||
#define GCC_CAMSS_MCLK0_CLK_SRC 38
|
||||
#define GCC_CAMSS_MCLK1_CLK 39
|
||||
#define GCC_CAMSS_MCLK1_CLK_SRC 40
|
||||
#define GCC_CAMSS_MCLK2_CLK 41
|
||||
#define GCC_CAMSS_MCLK2_CLK_SRC 42
|
||||
#define GCC_CAMSS_MCLK3_CLK 43
|
||||
#define GCC_CAMSS_MCLK3_CLK_SRC 44
|
||||
#define GCC_CAMSS_NRT_AXI_CLK 45
|
||||
#define GCC_CAMSS_OPE_AHB_CLK 46
|
||||
#define GCC_CAMSS_OPE_AHB_CLK_SRC 47
|
||||
#define GCC_CAMSS_OPE_CLK 48
|
||||
#define GCC_CAMSS_OPE_CLK_SRC 49
|
||||
#define GCC_CAMSS_RT_AXI_CLK 50
|
||||
#define GCC_CAMSS_TFE_0_CLK 51
|
||||
#define GCC_CAMSS_TFE_0_CLK_SRC 52
|
||||
#define GCC_CAMSS_TFE_0_CPHY_RX_CLK 53
|
||||
#define GCC_CAMSS_TFE_0_CSID_CLK 54
|
||||
#define GCC_CAMSS_TFE_0_CSID_CLK_SRC 55
|
||||
#define GCC_CAMSS_TFE_1_CLK 56
|
||||
#define GCC_CAMSS_TFE_1_CLK_SRC 57
|
||||
#define GCC_CAMSS_TFE_1_CPHY_RX_CLK 58
|
||||
#define GCC_CAMSS_TFE_1_CSID_CLK 59
|
||||
#define GCC_CAMSS_TFE_1_CSID_CLK_SRC 60
|
||||
#define GCC_CAMSS_TFE_CPHY_RX_CLK_SRC 61
|
||||
#define GCC_CAMSS_TOP_AHB_CLK 62
|
||||
#define GCC_CAMSS_TOP_AHB_CLK_SRC 63
|
||||
#define GCC_CFG_NOC_USB3_PRIM_AXI_CLK 64
|
||||
#define GCC_CPUSS_AHB_CLK 65
|
||||
#define GCC_CPUSS_AHB_CLK_SRC 66
|
||||
#define GCC_CPUSS_AHB_POSTDIV_CLK_SRC 67
|
||||
#define GCC_CPUSS_GNOC_CLK 68
|
||||
#define GCC_CPUSS_THROTTLE_CORE_CLK 69
|
||||
#define GCC_CPUSS_THROTTLE_XO_CLK 70
|
||||
#define GCC_DISP_AHB_CLK 71
|
||||
#define GCC_DISP_GPLL0_CLK_SRC 72
|
||||
#define GCC_DISP_GPLL0_DIV_CLK_SRC 73
|
||||
#define GCC_DISP_HF_AXI_CLK 74
|
||||
#define GCC_DISP_THROTTLE_CORE_CLK 75
|
||||
#define GCC_DISP_XO_CLK 76
|
||||
#define GCC_GP1_CLK 77
|
||||
#define GCC_GP1_CLK_SRC 78
|
||||
#define GCC_GP2_CLK 79
|
||||
#define GCC_GP2_CLK_SRC 80
|
||||
#define GCC_GP3_CLK 81
|
||||
#define GCC_GP3_CLK_SRC 82
|
||||
#define GCC_GPU_CFG_AHB_CLK 83
|
||||
#define GCC_GPU_GPLL0_CLK_SRC 84
|
||||
#define GCC_GPU_GPLL0_DIV_CLK_SRC 85
|
||||
#define GCC_GPU_IREF_CLK 86
|
||||
#define GCC_GPU_MEMNOC_GFX_CLK 87
|
||||
#define GCC_GPU_SNOC_DVM_GFX_CLK 88
|
||||
#define GCC_GPU_THROTTLE_CORE_CLK 89
|
||||
#define GCC_GPU_THROTTLE_XO_CLK 90
|
||||
#define GCC_PDM2_CLK 91
|
||||
#define GCC_PDM2_CLK_SRC 92
|
||||
#define GCC_PDM_AHB_CLK 93
|
||||
#define GCC_PDM_XO4_CLK 94
|
||||
#define GCC_PWM0_XO512_CLK 95
|
||||
#define GCC_QMIP_CAMERA_NRT_AHB_CLK 96
|
||||
#define GCC_QMIP_CAMERA_RT_AHB_CLK 97
|
||||
#define GCC_QMIP_CPUSS_CFG_AHB_CLK 98
|
||||
#define GCC_QMIP_DISP_AHB_CLK 99
|
||||
#define GCC_QMIP_GPU_CFG_AHB_CLK 100
|
||||
#define GCC_QMIP_VIDEO_VCODEC_AHB_CLK 101
|
||||
#define GCC_QUPV3_WRAP0_CORE_2X_CLK 102
|
||||
#define GCC_QUPV3_WRAP0_CORE_CLK 103
|
||||
#define GCC_QUPV3_WRAP0_S0_CLK 104
|
||||
#define GCC_QUPV3_WRAP0_S0_CLK_SRC 105
|
||||
#define GCC_QUPV3_WRAP0_S1_CLK 106
|
||||
#define GCC_QUPV3_WRAP0_S1_CLK_SRC 107
|
||||
#define GCC_QUPV3_WRAP0_S2_CLK 108
|
||||
#define GCC_QUPV3_WRAP0_S2_CLK_SRC 109
|
||||
#define GCC_QUPV3_WRAP0_S3_CLK 110
|
||||
#define GCC_QUPV3_WRAP0_S3_CLK_SRC 111
|
||||
#define GCC_QUPV3_WRAP0_S4_CLK 112
|
||||
#define GCC_QUPV3_WRAP0_S4_CLK_SRC 113
|
||||
#define GCC_QUPV3_WRAP0_S5_CLK 114
|
||||
#define GCC_QUPV3_WRAP0_S5_CLK_SRC 115
|
||||
#define GCC_QUPV3_WRAP_0_M_AHB_CLK 116
|
||||
#define GCC_QUPV3_WRAP_0_S_AHB_CLK 117
|
||||
#define GCC_SDCC1_AHB_CLK 118
|
||||
#define GCC_SDCC1_APPS_CLK 119
|
||||
#define GCC_SDCC1_APPS_CLK_SRC 120
|
||||
#define GCC_SDCC1_ICE_CORE_CLK 121
|
||||
#define GCC_SDCC1_ICE_CORE_CLK_SRC 122
|
||||
#define GCC_SDCC2_AHB_CLK 123
|
||||
#define GCC_SDCC2_APPS_CLK 124
|
||||
#define GCC_SDCC2_APPS_CLK_SRC 125
|
||||
#define GCC_SYS_NOC_CPUSS_AHB_CLK 126
|
||||
#define GCC_SYS_NOC_USB3_PRIM_AXI_CLK 127
|
||||
#define GCC_USB30_PRIM_MASTER_CLK 128
|
||||
#define GCC_USB30_PRIM_MASTER_CLK_SRC 129
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_CLK 130
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC 131
|
||||
#define GCC_USB30_PRIM_MOCK_UTMI_POSTDIV 132
|
||||
#define GCC_USB30_PRIM_SLEEP_CLK 133
|
||||
#define GCC_USB3_PRIM_CLKREF_CLK 134
|
||||
#define GCC_USB3_PRIM_PHY_AUX_CLK_SRC 135
|
||||
#define GCC_USB3_PRIM_PHY_COM_AUX_CLK 136
|
||||
#define GCC_USB3_PRIM_PHY_PIPE_CLK 137
|
||||
#define GCC_VCODEC0_AXI_CLK 138
|
||||
#define GCC_VENUS_AHB_CLK 139
|
||||
#define GCC_VENUS_CTL_AXI_CLK 140
|
||||
#define GCC_VIDEO_AHB_CLK 141
|
||||
#define GCC_VIDEO_AXI0_CLK 142
|
||||
#define GCC_VIDEO_THROTTLE_CORE_CLK 143
|
||||
#define GCC_VIDEO_VCODEC0_SYS_CLK 144
|
||||
#define GCC_VIDEO_VENUS_CLK_SRC 145
|
||||
#define GCC_VIDEO_VENUS_CTL_CLK 146
|
||||
#define GCC_VIDEO_XO_CLK 147
|
||||
|
||||
/* GCC resets */
|
||||
#define GCC_CAMSS_OPE_BCR 0
|
||||
#define GCC_CAMSS_TFE_BCR 1
|
||||
#define GCC_CAMSS_TOP_BCR 2
|
||||
#define GCC_GPU_BCR 3
|
||||
#define GCC_MMSS_BCR 4
|
||||
#define GCC_PDM_BCR 5
|
||||
#define GCC_QUPV3_WRAPPER_0_BCR 6
|
||||
#define GCC_SDCC1_BCR 7
|
||||
#define GCC_SDCC2_BCR 8
|
||||
#define GCC_USB30_PRIM_BCR 9
|
||||
#define GCC_USB_PHY_CFG_AHB2PHY_BCR 10
|
||||
#define GCC_VCODEC0_BCR 11
|
||||
#define GCC_VENUS_BCR 12
|
||||
#define GCC_VIDEO_INTERFACE_BCR 13
|
||||
#define GCC_QUSB2PHY_PRIM_BCR 14
|
||||
#define GCC_USB3_PHY_PRIM_SP0_BCR 15
|
||||
#define GCC_USB3PHY_PHY_PRIM_SP0_BCR 16
|
||||
|
||||
/* Indexes for GDSCs */
|
||||
#define GCC_CAMSS_TOP_GDSC 0
|
||||
#define GCC_USB30_PRIM_GDSC 1
|
||||
#define GCC_VCODEC0_GDSC 2
|
||||
#define GCC_VENUS_GDSC 3
|
||||
#define HLOS1_VOTE_TURING_MMU_TBU1_GDSC 4
|
||||
#define HLOS1_VOTE_TURING_MMU_TBU0_GDSC 5
|
||||
#define HLOS1_VOTE_MM_SNOC_MMU_TBU_RT_GDSC 6
|
||||
#define HLOS1_VOTE_MM_SNOC_MMU_TBU_NRT_GDSC 7
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user