summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChen Zhong <chen.zhong@mediatek.com>2017-10-05 11:50:23 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-12-20 10:04:59 +0100
commit22a1e337ed68e1a660f6b1c5fcef76b7c7ac63e1 (patch)
tree0636ade8b87be6289db72dc1b3de643302acf686
parentb59614cfd2d3619eedc1b711ac51efb7636efba6 (diff)
downloadlinux-stable-22a1e337ed68e1a660f6b1c5fcef76b7c7ac63e1.tar.gz
linux-stable-22a1e337ed68e1a660f6b1c5fcef76b7c7ac63e1.tar.bz2
linux-stable-22a1e337ed68e1a660f6b1c5fcef76b7c7ac63e1.zip
clk: mediatek: add the option for determining PLL source clock
[ Upstream commit c955bf3998efa3355790a4d8c82874582f1bc727 ] Since the previous setup always sets the PLL using crystal 26MHz, this doesn't always happen in every MediaTek platform. So the patch added flexibility for assigning extra member for determining the PLL source clock. Signed-off-by: Chen Zhong <chen.zhong@mediatek.com> Signed-off-by: Sean Wang <sean.wang@mediatek.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/clk/mediatek/clk-mtk.h1
-rw-r--r--drivers/clk/mediatek/clk-pll.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
index 32d2e455eb3f..8e501c219946 100644
--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -174,6 +174,7 @@ struct mtk_pll_data {
uint32_t pcw_reg;
int pcw_shift;
const struct mtk_pll_div_table *div_table;
+ const char *parent_name;
};
void mtk_clk_register_plls(struct device_node *node,
diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c
index 966cab1348da..1c5b081ad5a1 100644
--- a/drivers/clk/mediatek/clk-pll.c
+++ b/drivers/clk/mediatek/clk-pll.c
@@ -302,7 +302,10 @@ static struct clk *mtk_clk_register_pll(const struct mtk_pll_data *data,
init.name = data->name;
init.ops = &mtk_pll_ops;
- init.parent_names = &parent_name;
+ if (data->parent_name)
+ init.parent_names = &data->parent_name;
+ else
+ init.parent_names = &parent_name;
init.num_parents = 1;
clk = clk_register(NULL, &pll->hw);