Commit bac4675a authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Bjorn Andersson

clk: qcom: drop lcc-mdm9615 in favour of lcc-msm8960

The two LCC drivers, msm8960 and mdm9615 are almost the same. The only
difference is the platform clock: msm8960/apq8064 use pxo, while mdm9615
uses cxo. Drop the lcc-mdm9615 in favour of using lcc-msm8960 instead.
Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20230512211727.3445575-6-dmitry.baryshkov@linaro.orgSigned-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent 6bab5dab
...@@ -247,11 +247,11 @@ config MSM_GCC_8960 ...@@ -247,11 +247,11 @@ config MSM_GCC_8960
i2c, USB, SD/eMMC, SATA, PCIe, etc. i2c, USB, SD/eMMC, SATA, PCIe, etc.
config MSM_LCC_8960 config MSM_LCC_8960
tristate "APQ8064/MSM8960 LPASS Clock Controller" tristate "APQ8064/MSM8960/MDM9650 LPASS Clock Controller"
depends on ARM || COMPILE_TEST depends on ARM || COMPILE_TEST
select MSM_GCC_8960
help help
Support for the LPASS clock controller on apq8064/msm8960 devices. Support for the LPASS clock controller on apq8064/msm8960/mdm9650
devices.
Say Y if you want to use audio devices such as i2s, pcm, Say Y if you want to use audio devices such as i2s, pcm,
SLIMBus, etc. SLIMBus, etc.
...@@ -271,15 +271,6 @@ config MDM_GCC_9615 ...@@ -271,15 +271,6 @@ config MDM_GCC_9615
Say Y if you want to use peripheral devices such as UART, SPI, Say Y if you want to use peripheral devices such as UART, SPI,
i2c, USB, SD/eMMC, etc. i2c, USB, SD/eMMC, etc.
config MDM_LCC_9615
tristate "MDM9615 LPASS Clock Controller"
depends on ARM || COMPILE_TEST
select MDM_GCC_9615
help
Support for the LPASS clock controller on mdm9615 devices.
Say Y if you want to use audio devices such as i2s, pcm,
SLIMBus, etc.
config MSM_MMCC_8960 config MSM_MMCC_8960
tristate "MSM8960 Multimedia Clock Controller" tristate "MSM8960 Multimedia Clock Controller"
depends on ARM || COMPILE_TEST depends on ARM || COMPILE_TEST
......
...@@ -32,7 +32,6 @@ obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o ...@@ -32,7 +32,6 @@ obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o
obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o
obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o
obj-$(CONFIG_MDM_GCC_9615) += gcc-mdm9615.o obj-$(CONFIG_MDM_GCC_9615) += gcc-mdm9615.o
obj-$(CONFIG_MDM_LCC_9615) += lcc-mdm9615.o
obj-$(CONFIG_MSM_GCC_8660) += gcc-msm8660.o obj-$(CONFIG_MSM_GCC_8660) += gcc-msm8660.o
obj-$(CONFIG_MSM_GCC_8909) += gcc-msm8909.o obj-$(CONFIG_MSM_GCC_8909) += gcc-msm8909.o
obj-$(CONFIG_MSM_GCC_8916) += gcc-msm8916.o obj-$(CONFIG_MSM_GCC_8916) += gcc-msm8916.o
......
This diff is collapsed.
...@@ -23,6 +23,10 @@ ...@@ -23,6 +23,10 @@
#include "clk-regmap-divider.h" #include "clk-regmap-divider.h"
#include "clk-regmap-mux.h" #include "clk-regmap-mux.h"
struct clk_parent_data pxo_parent_data = {
.fw_name = "pxo", .name = "pxo_board",
};
static struct clk_pll pll4 = { static struct clk_pll pll4 = {
.l_reg = 0x4, .l_reg = 0x4,
.m_reg = 0x8, .m_reg = 0x8,
...@@ -33,9 +37,7 @@ static struct clk_pll pll4 = { ...@@ -33,9 +37,7 @@ static struct clk_pll pll4 = {
.status_bit = 16, .status_bit = 16,
.clkr.hw.init = &(struct clk_init_data){ .clkr.hw.init = &(struct clk_init_data){
.name = "pll4", .name = "pll4",
.parent_data = (const struct clk_parent_data[]){ .parent_data = &pxo_parent_data,
{ .fw_name = "pxo", .name = "pxo_board" },
},
.num_parents = 1, .num_parents = 1,
.ops = &clk_pll_ops, .ops = &clk_pll_ops,
}, },
...@@ -51,7 +53,7 @@ static const struct parent_map lcc_pxo_pll4_map[] = { ...@@ -51,7 +53,7 @@ static const struct parent_map lcc_pxo_pll4_map[] = {
{ P_PLL4, 2 } { P_PLL4, 2 }
}; };
static const struct clk_parent_data lcc_pxo_pll4[] = { static struct clk_parent_data lcc_pxo_pll4[] = {
{ .fw_name = "pxo", .name = "pxo_board" }, { .fw_name = "pxo", .name = "pxo_board" },
{ .fw_name = "pll4_vote", .name = "pll4_vote" }, { .fw_name = "pll4_vote", .name = "pll4_vote" },
}; };
...@@ -444,6 +446,7 @@ static const struct qcom_cc_desc lcc_msm8960_desc = { ...@@ -444,6 +446,7 @@ static const struct qcom_cc_desc lcc_msm8960_desc = {
static const struct of_device_id lcc_msm8960_match_table[] = { static const struct of_device_id lcc_msm8960_match_table[] = {
{ .compatible = "qcom,lcc-msm8960" }, { .compatible = "qcom,lcc-msm8960" },
{ .compatible = "qcom,lcc-apq8064" }, { .compatible = "qcom,lcc-apq8064" },
{ .compatible = "qcom,lcc-mdm9615" },
{ } { }
}; };
MODULE_DEVICE_TABLE(of, lcc_msm8960_match_table); MODULE_DEVICE_TABLE(of, lcc_msm8960_match_table);
...@@ -453,6 +456,14 @@ static int lcc_msm8960_probe(struct platform_device *pdev) ...@@ -453,6 +456,14 @@ static int lcc_msm8960_probe(struct platform_device *pdev)
u32 val; u32 val;
struct regmap *regmap; struct regmap *regmap;
/* patch for the cxo <-> pxo difference */
if (of_device_is_compatible(pdev->dev.of_node, "qcom,lcc-mdm9615")) {
pxo_parent_data.fw_name = "cxo";
pxo_parent_data.name = "cxo_board";
lcc_pxo_pll4[0].fw_name = "cxo";
lcc_pxo_pll4[0].name = "cxo_board";
}
regmap = qcom_cc_map(pdev, &lcc_msm8960_desc); regmap = qcom_cc_map(pdev, &lcc_msm8960_desc);
if (IS_ERR(regmap)) if (IS_ERR(regmap))
return PTR_ERR(regmap); return PTR_ERR(regmap);
......
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