Merge branch '20240602114439.1611-1-quic_jkona@quicinc.com' into clk-for-6.11
Merge SM8650 video and camera clock drivers through topic branch, to make available the DeviceTree binding includes to the DeviceTree source branches as well.
This commit is contained in:
commit
03675e398b
@ -8,15 +8,17 @@ title: Qualcomm Camera Clock & Reset Controller on SM8450
|
||||
|
||||
maintainers:
|
||||
- Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
|
||||
- Jagadeesh Kona <quic_jkona@quicinc.com>
|
||||
|
||||
description: |
|
||||
Qualcomm camera clock control module provides the clocks, resets and power
|
||||
domains on SM8450.
|
||||
|
||||
See also::
|
||||
See also:
|
||||
include/dt-bindings/clock/qcom,sc8280xp-camcc.h
|
||||
include/dt-bindings/clock/qcom,sm8450-camcc.h
|
||||
include/dt-bindings/clock/qcom,sm8550-camcc.h
|
||||
include/dt-bindings/clock/qcom,sc8280xp-camcc.h
|
||||
include/dt-bindings/clock/qcom,sm8650-camcc.h
|
||||
include/dt-bindings/clock/qcom,x1e80100-camcc.h
|
||||
|
||||
allOf:
|
||||
@ -28,6 +30,7 @@ properties:
|
||||
- qcom,sc8280xp-camcc
|
||||
- qcom,sm8450-camcc
|
||||
- qcom,sm8550-camcc
|
||||
- qcom,sm8650-camcc
|
||||
- qcom,x1e80100-camcc
|
||||
|
||||
clocks:
|
||||
|
@ -8,18 +8,22 @@ title: Qualcomm Video Clock & Reset Controller on SM8450
|
||||
|
||||
maintainers:
|
||||
- Taniya Das <quic_tdas@quicinc.com>
|
||||
- Jagadeesh Kona <quic_jkona@quicinc.com>
|
||||
|
||||
description: |
|
||||
Qualcomm video clock control module provides the clocks, resets and power
|
||||
domains on SM8450.
|
||||
|
||||
See also:: include/dt-bindings/clock/qcom,videocc-sm8450.h
|
||||
See also:
|
||||
include/dt-bindings/clock/qcom,sm8450-videocc.h
|
||||
include/dt-bindings/clock/qcom,sm8650-videocc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sm8450-videocc
|
||||
- qcom,sm8550-videocc
|
||||
- qcom,sm8650-videocc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
|
@ -848,6 +848,14 @@ config SM_CAMCC_8550
|
||||
Support for the camera clock controller on SM8550 devices.
|
||||
Say Y if you want to support camera devices and camera functionality.
|
||||
|
||||
config SM_CAMCC_8650
|
||||
tristate "SM8650 Camera Clock Controller"
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
select SM_GCC_8650
|
||||
help
|
||||
Support for the camera clock controller on SM8650 devices.
|
||||
Say Y if you want to support camera devices and camera functionality.
|
||||
|
||||
config SM_DISPCC_6115
|
||||
tristate "SM6115 Display Clock Controller"
|
||||
depends on ARM64 || COMPILE_TEST
|
||||
|
@ -112,6 +112,7 @@ obj-$(CONFIG_SM_CAMCC_7150) += camcc-sm7150.o
|
||||
obj-$(CONFIG_SM_CAMCC_8250) += camcc-sm8250.o
|
||||
obj-$(CONFIG_SM_CAMCC_8450) += camcc-sm8450.o
|
||||
obj-$(CONFIG_SM_CAMCC_8550) += camcc-sm8550.o
|
||||
obj-$(CONFIG_SM_CAMCC_8650) += camcc-sm8650.o
|
||||
obj-$(CONFIG_SM_DISPCC_6115) += dispcc-sm6115.o
|
||||
obj-$(CONFIG_SM_DISPCC_6125) += dispcc-sm6125.o
|
||||
obj-$(CONFIG_SM_DISPCC_6350) += dispcc-sm6350.o
|
||||
|
3591
drivers/clk/qcom/camcc-sm8650.c
Normal file
3591
drivers/clk/qcom/camcc-sm8650.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/clk-provider.h>
|
||||
@ -10,7 +10,7 @@
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
#include <dt-bindings/clock/qcom,sm8450-videocc.h>
|
||||
#include <dt-bindings/clock/qcom,sm8650-videocc.h>
|
||||
|
||||
#include "clk-alpha-pll.h"
|
||||
#include "clk-branch.h"
|
||||
@ -35,7 +35,7 @@ static const struct pll_vco lucid_ole_vco[] = {
|
||||
{ 249600000, 2300000000, 0 },
|
||||
};
|
||||
|
||||
static const struct alpha_pll_config video_cc_pll0_config = {
|
||||
static struct alpha_pll_config video_cc_pll0_config = {
|
||||
.l = 0x25,
|
||||
.alpha = 0x8000,
|
||||
.config_ctl_val = 0x20485699,
|
||||
@ -66,7 +66,7 @@ static struct clk_alpha_pll video_cc_pll0 = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct alpha_pll_config video_cc_pll1_config = {
|
||||
static struct alpha_pll_config video_cc_pll1_config = {
|
||||
.l = 0x36,
|
||||
.alpha = 0xb000,
|
||||
.config_ctl_val = 0x20485699,
|
||||
@ -117,6 +117,14 @@ static const struct clk_parent_data video_cc_parent_data_1[] = {
|
||||
{ .hw = &video_cc_pll1.clkr.hw },
|
||||
};
|
||||
|
||||
static const struct parent_map video_cc_parent_map_2[] = {
|
||||
{ P_BI_TCXO, 0 },
|
||||
};
|
||||
|
||||
static const struct clk_parent_data video_cc_parent_data_2[] = {
|
||||
{ .index = DT_BI_TCXO },
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_video_cc_mvs0_clk_src[] = {
|
||||
F(720000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
F(1014000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
@ -126,6 +134,16 @@ static const struct freq_tbl ftbl_video_cc_mvs0_clk_src[] = {
|
||||
{ }
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_video_cc_mvs0_clk_src_sm8650[] = {
|
||||
F(588000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
F(900000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
F(1140000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
F(1305000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
F(1440000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
F(1600000000, P_VIDEO_CC_PLL0_OUT_MAIN, 1, 0, 0),
|
||||
{ }
|
||||
};
|
||||
|
||||
static struct clk_rcg2 video_cc_mvs0_clk_src = {
|
||||
.cmd_rcgr = 0x8000,
|
||||
.mnd_width = 0,
|
||||
@ -149,6 +167,15 @@ static const struct freq_tbl ftbl_video_cc_mvs1_clk_src[] = {
|
||||
{ }
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_video_cc_mvs1_clk_src_sm8650[] = {
|
||||
F(840000000, P_VIDEO_CC_PLL1_OUT_MAIN, 1, 0, 0),
|
||||
F(1110000000, P_VIDEO_CC_PLL1_OUT_MAIN, 1, 0, 0),
|
||||
F(1350000000, P_VIDEO_CC_PLL1_OUT_MAIN, 1, 0, 0),
|
||||
F(1500000000, P_VIDEO_CC_PLL1_OUT_MAIN, 1, 0, 0),
|
||||
F(1650000000, P_VIDEO_CC_PLL1_OUT_MAIN, 1, 0, 0),
|
||||
{ }
|
||||
};
|
||||
|
||||
static struct clk_rcg2 video_cc_mvs1_clk_src = {
|
||||
.cmd_rcgr = 0x8018,
|
||||
.mnd_width = 0,
|
||||
@ -164,6 +191,26 @@ static struct clk_rcg2 video_cc_mvs1_clk_src = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct freq_tbl ftbl_video_cc_xo_clk_src[] = {
|
||||
F(19200000, P_BI_TCXO, 1, 0, 0),
|
||||
{ }
|
||||
};
|
||||
|
||||
static struct clk_rcg2 video_cc_xo_clk_src = {
|
||||
.cmd_rcgr = 0x810c,
|
||||
.mnd_width = 0,
|
||||
.hid_width = 5,
|
||||
.parent_map = video_cc_parent_map_2,
|
||||
.freq_tbl = ftbl_video_cc_xo_clk_src,
|
||||
.clkr.hw.init = &(const struct clk_init_data) {
|
||||
.name = "video_cc_xo_clk_src",
|
||||
.parent_data = video_cc_parent_data_2,
|
||||
.num_parents = ARRAY_SIZE(video_cc_parent_data_2),
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_rcg2_shared_ops,
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_regmap_div video_cc_mvs0_div_clk_src = {
|
||||
.reg = 0x80c4,
|
||||
.shift = 0,
|
||||
@ -244,6 +291,26 @@ static struct clk_branch video_cc_mvs0_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs0_shift_clk = {
|
||||
.halt_reg = 0x8128,
|
||||
.halt_check = BRANCH_HALT_VOTED,
|
||||
.hwcg_reg = 0x8128,
|
||||
.hwcg_bit = 1,
|
||||
.clkr = {
|
||||
.enable_reg = 0x8128,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "video_cc_mvs0_shift_clk",
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&video_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs0c_clk = {
|
||||
.halt_reg = 0x8064,
|
||||
.halt_check = BRANCH_HALT,
|
||||
@ -262,6 +329,26 @@ static struct clk_branch video_cc_mvs0c_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs0c_shift_clk = {
|
||||
.halt_reg = 0x812c,
|
||||
.halt_check = BRANCH_HALT_VOTED,
|
||||
.hwcg_reg = 0x812c,
|
||||
.hwcg_bit = 1,
|
||||
.clkr = {
|
||||
.enable_reg = 0x812c,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "video_cc_mvs0c_shift_clk",
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&video_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs1_clk = {
|
||||
.halt_reg = 0x80e0,
|
||||
.halt_check = BRANCH_HALT_SKIP,
|
||||
@ -282,6 +369,26 @@ static struct clk_branch video_cc_mvs1_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs1_shift_clk = {
|
||||
.halt_reg = 0x8130,
|
||||
.halt_check = BRANCH_HALT_VOTED,
|
||||
.hwcg_reg = 0x8130,
|
||||
.hwcg_bit = 1,
|
||||
.clkr = {
|
||||
.enable_reg = 0x8130,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "video_cc_mvs1_shift_clk",
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&video_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs1c_clk = {
|
||||
.halt_reg = 0x8090,
|
||||
.halt_check = BRANCH_HALT,
|
||||
@ -300,6 +407,26 @@ static struct clk_branch video_cc_mvs1c_clk = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct clk_branch video_cc_mvs1c_shift_clk = {
|
||||
.halt_reg = 0x8134,
|
||||
.halt_check = BRANCH_HALT_VOTED,
|
||||
.hwcg_reg = 0x8134,
|
||||
.hwcg_bit = 1,
|
||||
.clkr = {
|
||||
.enable_reg = 0x8134,
|
||||
.enable_mask = BIT(0),
|
||||
.hw.init = &(const struct clk_init_data) {
|
||||
.name = "video_cc_mvs1c_shift_clk",
|
||||
.parent_hws = (const struct clk_hw*[]) {
|
||||
&video_cc_xo_clk_src.clkr.hw,
|
||||
},
|
||||
.num_parents = 1,
|
||||
.flags = CLK_SET_RATE_PARENT,
|
||||
.ops = &clk_branch2_ops,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
static struct gdsc video_cc_mvs0c_gdsc = {
|
||||
.gdscr = 0x804c,
|
||||
.en_rest_wait_val = 0x2,
|
||||
@ -363,6 +490,7 @@ static struct clk_regmap *video_cc_sm8550_clocks[] = {
|
||||
[VIDEO_CC_MVS1C_DIV2_DIV_CLK_SRC] = &video_cc_mvs1c_div2_div_clk_src.clkr,
|
||||
[VIDEO_CC_PLL0] = &video_cc_pll0.clkr,
|
||||
[VIDEO_CC_PLL1] = &video_cc_pll1.clkr,
|
||||
[VIDEO_CC_XO_CLK_SRC] = NULL,
|
||||
};
|
||||
|
||||
static struct gdsc *video_cc_sm8550_gdscs[] = {
|
||||
@ -380,6 +508,7 @@ static const struct qcom_reset_map video_cc_sm8550_resets[] = {
|
||||
[CVP_VIDEO_CC_MVS1C_BCR] = { 0x8074 },
|
||||
[VIDEO_CC_MVS0C_CLK_ARES] = { .reg = 0x8064, .bit = 2, .udelay = 1000 },
|
||||
[VIDEO_CC_MVS1C_CLK_ARES] = { .reg = 0x8090, .bit = 2, .udelay = 1000 },
|
||||
[VIDEO_CC_XO_CLK_ARES] = { .reg = 0x8124, .bit = 2, .udelay = 100 },
|
||||
};
|
||||
|
||||
static const struct regmap_config video_cc_sm8550_regmap_config = {
|
||||
@ -402,6 +531,7 @@ static struct qcom_cc_desc video_cc_sm8550_desc = {
|
||||
|
||||
static const struct of_device_id video_cc_sm8550_match_table[] = {
|
||||
{ .compatible = "qcom,sm8550-videocc" },
|
||||
{ .compatible = "qcom,sm8650-videocc" },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, video_cc_sm8550_match_table);
|
||||
@ -410,6 +540,7 @@ static int video_cc_sm8550_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct regmap *regmap;
|
||||
int ret;
|
||||
u32 sleep_clk_offset = 0x8140;
|
||||
|
||||
ret = devm_pm_runtime_enable(&pdev->dev);
|
||||
if (ret)
|
||||
@ -425,12 +556,27 @@ static int video_cc_sm8550_probe(struct platform_device *pdev)
|
||||
return PTR_ERR(regmap);
|
||||
}
|
||||
|
||||
if (of_device_is_compatible(pdev->dev.of_node, "qcom,sm8650-videocc")) {
|
||||
sleep_clk_offset = 0x8150;
|
||||
video_cc_pll0_config.l = 0x1e;
|
||||
video_cc_pll0_config.alpha = 0xa000;
|
||||
video_cc_pll1_config.l = 0x2b;
|
||||
video_cc_pll1_config.alpha = 0xc000;
|
||||
video_cc_mvs0_clk_src.freq_tbl = ftbl_video_cc_mvs0_clk_src_sm8650;
|
||||
video_cc_mvs1_clk_src.freq_tbl = ftbl_video_cc_mvs1_clk_src_sm8650;
|
||||
video_cc_sm8550_clocks[VIDEO_CC_MVS0_SHIFT_CLK] = &video_cc_mvs0_shift_clk.clkr;
|
||||
video_cc_sm8550_clocks[VIDEO_CC_MVS0C_SHIFT_CLK] = &video_cc_mvs0c_shift_clk.clkr;
|
||||
video_cc_sm8550_clocks[VIDEO_CC_MVS1_SHIFT_CLK] = &video_cc_mvs1_shift_clk.clkr;
|
||||
video_cc_sm8550_clocks[VIDEO_CC_MVS1C_SHIFT_CLK] = &video_cc_mvs1c_shift_clk.clkr;
|
||||
video_cc_sm8550_clocks[VIDEO_CC_XO_CLK_SRC] = &video_cc_xo_clk_src.clkr;
|
||||
}
|
||||
|
||||
clk_lucid_ole_pll_configure(&video_cc_pll0, regmap, &video_cc_pll0_config);
|
||||
clk_lucid_ole_pll_configure(&video_cc_pll1, regmap, &video_cc_pll1_config);
|
||||
|
||||
/* Keep some clocks always-on */
|
||||
qcom_branch_set_clk_en(regmap, 0x80f4); /* VIDEO_CC_AHB_CLK */
|
||||
qcom_branch_set_clk_en(regmap, 0x8140); /* VIDEO_CC_SLEEP_CLK */
|
||||
qcom_branch_set_clk_en(regmap, sleep_clk_offset); /* VIDEO_CC_SLEEP_CLK */
|
||||
qcom_branch_set_clk_en(regmap, 0x8124); /* VIDEO_CC_XO_CLK */
|
||||
|
||||
ret = qcom_cc_really_probe(&pdev->dev, &video_cc_sm8550_desc, regmap);
|
||||
|
195
include/dt-bindings/clock/qcom,sm8650-camcc.h
Normal file
195
include/dt-bindings/clock/qcom,sm8650-camcc.h
Normal file
@ -0,0 +1,195 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8650_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8650_H
|
||||
|
||||
/* CAM_CC clocks */
|
||||
#define CAM_CC_BPS_AHB_CLK 0
|
||||
#define CAM_CC_BPS_CLK 1
|
||||
#define CAM_CC_BPS_CLK_SRC 2
|
||||
#define CAM_CC_BPS_FAST_AHB_CLK 3
|
||||
#define CAM_CC_BPS_SHIFT_CLK 4
|
||||
#define CAM_CC_CAMNOC_AXI_NRT_CLK 5
|
||||
#define CAM_CC_CAMNOC_AXI_RT_CLK 6
|
||||
#define CAM_CC_CAMNOC_AXI_RT_CLK_SRC 7
|
||||
#define CAM_CC_CAMNOC_DCD_XO_CLK 8
|
||||
#define CAM_CC_CAMNOC_XO_CLK 9
|
||||
#define CAM_CC_CCI_0_CLK 10
|
||||
#define CAM_CC_CCI_0_CLK_SRC 11
|
||||
#define CAM_CC_CCI_1_CLK 12
|
||||
#define CAM_CC_CCI_1_CLK_SRC 13
|
||||
#define CAM_CC_CCI_2_CLK 14
|
||||
#define CAM_CC_CCI_2_CLK_SRC 15
|
||||
#define CAM_CC_CORE_AHB_CLK 16
|
||||
#define CAM_CC_CPAS_AHB_CLK 17
|
||||
#define CAM_CC_CPAS_BPS_CLK 18
|
||||
#define CAM_CC_CPAS_CRE_CLK 19
|
||||
#define CAM_CC_CPAS_FAST_AHB_CLK 20
|
||||
#define CAM_CC_CPAS_IFE_0_CLK 21
|
||||
#define CAM_CC_CPAS_IFE_1_CLK 22
|
||||
#define CAM_CC_CPAS_IFE_2_CLK 23
|
||||
#define CAM_CC_CPAS_IFE_LITE_CLK 24
|
||||
#define CAM_CC_CPAS_IPE_NPS_CLK 25
|
||||
#define CAM_CC_CPAS_SBI_CLK 26
|
||||
#define CAM_CC_CPAS_SFE_0_CLK 27
|
||||
#define CAM_CC_CPAS_SFE_1_CLK 28
|
||||
#define CAM_CC_CPAS_SFE_2_CLK 29
|
||||
#define CAM_CC_CPHY_RX_CLK_SRC 30
|
||||
#define CAM_CC_CRE_AHB_CLK 31
|
||||
#define CAM_CC_CRE_CLK 32
|
||||
#define CAM_CC_CRE_CLK_SRC 33
|
||||
#define CAM_CC_CSI0PHYTIMER_CLK 34
|
||||
#define CAM_CC_CSI0PHYTIMER_CLK_SRC 35
|
||||
#define CAM_CC_CSI1PHYTIMER_CLK 36
|
||||
#define CAM_CC_CSI1PHYTIMER_CLK_SRC 37
|
||||
#define CAM_CC_CSI2PHYTIMER_CLK 38
|
||||
#define CAM_CC_CSI2PHYTIMER_CLK_SRC 39
|
||||
#define CAM_CC_CSI3PHYTIMER_CLK 40
|
||||
#define CAM_CC_CSI3PHYTIMER_CLK_SRC 41
|
||||
#define CAM_CC_CSI4PHYTIMER_CLK 42
|
||||
#define CAM_CC_CSI4PHYTIMER_CLK_SRC 43
|
||||
#define CAM_CC_CSI5PHYTIMER_CLK 44
|
||||
#define CAM_CC_CSI5PHYTIMER_CLK_SRC 45
|
||||
#define CAM_CC_CSI6PHYTIMER_CLK 46
|
||||
#define CAM_CC_CSI6PHYTIMER_CLK_SRC 47
|
||||
#define CAM_CC_CSI7PHYTIMER_CLK 48
|
||||
#define CAM_CC_CSI7PHYTIMER_CLK_SRC 49
|
||||
#define CAM_CC_CSID_CLK 50
|
||||
#define CAM_CC_CSID_CLK_SRC 51
|
||||
#define CAM_CC_CSID_CSIPHY_RX_CLK 52
|
||||
#define CAM_CC_CSIPHY0_CLK 53
|
||||
#define CAM_CC_CSIPHY1_CLK 54
|
||||
#define CAM_CC_CSIPHY2_CLK 55
|
||||
#define CAM_CC_CSIPHY3_CLK 56
|
||||
#define CAM_CC_CSIPHY4_CLK 57
|
||||
#define CAM_CC_CSIPHY5_CLK 58
|
||||
#define CAM_CC_CSIPHY6_CLK 59
|
||||
#define CAM_CC_CSIPHY7_CLK 60
|
||||
#define CAM_CC_DRV_AHB_CLK 61
|
||||
#define CAM_CC_DRV_XO_CLK 62
|
||||
#define CAM_CC_FAST_AHB_CLK_SRC 63
|
||||
#define CAM_CC_GDSC_CLK 64
|
||||
#define CAM_CC_ICP_AHB_CLK 65
|
||||
#define CAM_CC_ICP_CLK 66
|
||||
#define CAM_CC_ICP_CLK_SRC 67
|
||||
#define CAM_CC_IFE_0_CLK 68
|
||||
#define CAM_CC_IFE_0_CLK_SRC 69
|
||||
#define CAM_CC_IFE_0_FAST_AHB_CLK 70
|
||||
#define CAM_CC_IFE_0_SHIFT_CLK 71
|
||||
#define CAM_CC_IFE_1_CLK 72
|
||||
#define CAM_CC_IFE_1_CLK_SRC 73
|
||||
#define CAM_CC_IFE_1_FAST_AHB_CLK 74
|
||||
#define CAM_CC_IFE_1_SHIFT_CLK 75
|
||||
#define CAM_CC_IFE_2_CLK 76
|
||||
#define CAM_CC_IFE_2_CLK_SRC 77
|
||||
#define CAM_CC_IFE_2_FAST_AHB_CLK 78
|
||||
#define CAM_CC_IFE_2_SHIFT_CLK 79
|
||||
#define CAM_CC_IFE_LITE_AHB_CLK 80
|
||||
#define CAM_CC_IFE_LITE_CLK 81
|
||||
#define CAM_CC_IFE_LITE_CLK_SRC 82
|
||||
#define CAM_CC_IFE_LITE_CPHY_RX_CLK 83
|
||||
#define CAM_CC_IFE_LITE_CSID_CLK 84
|
||||
#define CAM_CC_IFE_LITE_CSID_CLK_SRC 85
|
||||
#define CAM_CC_IPE_NPS_AHB_CLK 86
|
||||
#define CAM_CC_IPE_NPS_CLK 87
|
||||
#define CAM_CC_IPE_NPS_CLK_SRC 88
|
||||
#define CAM_CC_IPE_NPS_FAST_AHB_CLK 89
|
||||
#define CAM_CC_IPE_PPS_CLK 90
|
||||
#define CAM_CC_IPE_PPS_FAST_AHB_CLK 91
|
||||
#define CAM_CC_IPE_SHIFT_CLK 92
|
||||
#define CAM_CC_JPEG_1_CLK 93
|
||||
#define CAM_CC_JPEG_CLK 94
|
||||
#define CAM_CC_JPEG_CLK_SRC 95
|
||||
#define CAM_CC_MCLK0_CLK 96
|
||||
#define CAM_CC_MCLK0_CLK_SRC 97
|
||||
#define CAM_CC_MCLK1_CLK 98
|
||||
#define CAM_CC_MCLK1_CLK_SRC 99
|
||||
#define CAM_CC_MCLK2_CLK 100
|
||||
#define CAM_CC_MCLK2_CLK_SRC 101
|
||||
#define CAM_CC_MCLK3_CLK 102
|
||||
#define CAM_CC_MCLK3_CLK_SRC 103
|
||||
#define CAM_CC_MCLK4_CLK 104
|
||||
#define CAM_CC_MCLK4_CLK_SRC 105
|
||||
#define CAM_CC_MCLK5_CLK 106
|
||||
#define CAM_CC_MCLK5_CLK_SRC 107
|
||||
#define CAM_CC_MCLK6_CLK 108
|
||||
#define CAM_CC_MCLK6_CLK_SRC 109
|
||||
#define CAM_CC_MCLK7_CLK 110
|
||||
#define CAM_CC_MCLK7_CLK_SRC 111
|
||||
#define CAM_CC_PLL0 112
|
||||
#define CAM_CC_PLL0_OUT_EVEN 113
|
||||
#define CAM_CC_PLL0_OUT_ODD 114
|
||||
#define CAM_CC_PLL1 115
|
||||
#define CAM_CC_PLL1_OUT_EVEN 116
|
||||
#define CAM_CC_PLL2 117
|
||||
#define CAM_CC_PLL3 118
|
||||
#define CAM_CC_PLL3_OUT_EVEN 119
|
||||
#define CAM_CC_PLL4 120
|
||||
#define CAM_CC_PLL4_OUT_EVEN 121
|
||||
#define CAM_CC_PLL5 122
|
||||
#define CAM_CC_PLL5_OUT_EVEN 123
|
||||
#define CAM_CC_PLL6 124
|
||||
#define CAM_CC_PLL6_OUT_EVEN 125
|
||||
#define CAM_CC_PLL7 126
|
||||
#define CAM_CC_PLL7_OUT_EVEN 127
|
||||
#define CAM_CC_PLL8 128
|
||||
#define CAM_CC_PLL8_OUT_EVEN 129
|
||||
#define CAM_CC_PLL9 130
|
||||
#define CAM_CC_PLL9_OUT_EVEN 131
|
||||
#define CAM_CC_PLL9_OUT_ODD 132
|
||||
#define CAM_CC_PLL10 133
|
||||
#define CAM_CC_PLL10_OUT_EVEN 134
|
||||
#define CAM_CC_QDSS_DEBUG_CLK 135
|
||||
#define CAM_CC_QDSS_DEBUG_CLK_SRC 136
|
||||
#define CAM_CC_QDSS_DEBUG_XO_CLK 137
|
||||
#define CAM_CC_SBI_CLK 138
|
||||
#define CAM_CC_SBI_FAST_AHB_CLK 139
|
||||
#define CAM_CC_SBI_SHIFT_CLK 140
|
||||
#define CAM_CC_SFE_0_CLK 141
|
||||
#define CAM_CC_SFE_0_CLK_SRC 142
|
||||
#define CAM_CC_SFE_0_FAST_AHB_CLK 143
|
||||
#define CAM_CC_SFE_0_SHIFT_CLK 144
|
||||
#define CAM_CC_SFE_1_CLK 145
|
||||
#define CAM_CC_SFE_1_CLK_SRC 146
|
||||
#define CAM_CC_SFE_1_FAST_AHB_CLK 147
|
||||
#define CAM_CC_SFE_1_SHIFT_CLK 148
|
||||
#define CAM_CC_SFE_2_CLK 149
|
||||
#define CAM_CC_SFE_2_CLK_SRC 150
|
||||
#define CAM_CC_SFE_2_FAST_AHB_CLK 151
|
||||
#define CAM_CC_SFE_2_SHIFT_CLK 152
|
||||
#define CAM_CC_SLEEP_CLK 153
|
||||
#define CAM_CC_SLEEP_CLK_SRC 154
|
||||
#define CAM_CC_SLOW_AHB_CLK_SRC 155
|
||||
#define CAM_CC_TITAN_TOP_SHIFT_CLK 156
|
||||
#define CAM_CC_XO_CLK_SRC 157
|
||||
|
||||
/* CAM_CC power domains */
|
||||
#define CAM_CC_TITAN_TOP_GDSC 0
|
||||
#define CAM_CC_BPS_GDSC 1
|
||||
#define CAM_CC_IFE_0_GDSC 2
|
||||
#define CAM_CC_IFE_1_GDSC 3
|
||||
#define CAM_CC_IFE_2_GDSC 4
|
||||
#define CAM_CC_IPE_0_GDSC 5
|
||||
#define CAM_CC_SBI_GDSC 6
|
||||
#define CAM_CC_SFE_0_GDSC 7
|
||||
#define CAM_CC_SFE_1_GDSC 8
|
||||
#define CAM_CC_SFE_2_GDSC 9
|
||||
|
||||
/* CAM_CC resets */
|
||||
#define CAM_CC_BPS_BCR 0
|
||||
#define CAM_CC_DRV_BCR 1
|
||||
#define CAM_CC_ICP_BCR 2
|
||||
#define CAM_CC_IFE_0_BCR 3
|
||||
#define CAM_CC_IFE_1_BCR 4
|
||||
#define CAM_CC_IFE_2_BCR 5
|
||||
#define CAM_CC_IPE_0_BCR 6
|
||||
#define CAM_CC_QDSS_DEBUG_BCR 7
|
||||
#define CAM_CC_SBI_BCR 8
|
||||
#define CAM_CC_SFE_0_BCR 9
|
||||
#define CAM_CC_SFE_1_BCR 10
|
||||
#define CAM_CC_SFE_2_BCR 11
|
||||
|
||||
#endif
|
23
include/dt-bindings/clock/qcom,sm8650-videocc.h
Normal file
23
include/dt-bindings/clock/qcom,sm8650-videocc.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
|
||||
/*
|
||||
* Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SM8650_H
|
||||
#define _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SM8650_H
|
||||
|
||||
#include "qcom,sm8450-videocc.h"
|
||||
|
||||
/* SM8650 introduces below new clocks and resets compared to SM8450 */
|
||||
|
||||
/* VIDEO_CC clocks */
|
||||
#define VIDEO_CC_MVS0_SHIFT_CLK 12
|
||||
#define VIDEO_CC_MVS0C_SHIFT_CLK 13
|
||||
#define VIDEO_CC_MVS1_SHIFT_CLK 14
|
||||
#define VIDEO_CC_MVS1C_SHIFT_CLK 15
|
||||
#define VIDEO_CC_XO_CLK_SRC 16
|
||||
|
||||
/* VIDEO_CC resets */
|
||||
#define VIDEO_CC_XO_CLK_ARES 7
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user