Commit e2ebc659 authored by Bjorn Andersson's avatar Bjorn Andersson

Merge branch '20240602114439.1611-1-quic_jkona@quicinc.com' into arm64-for-6.11

Merge the SM8650 video and clock controller drivers to gain access to
the constants from the DeviceTree binding.
parents b7a28d8a 09ea4216
......@@ -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
reg:
maxItems: 1
......
......@@ -827,6 +827,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
......
......@@ -109,6 +109,7 @@ obj-$(CONFIG_SM_CAMCC_6350) += camcc-sm6350.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
......
This diff is collapsed.
// 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, &video_cc_sm8550_desc, regmap);
......
/* 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
/* 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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment