123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- From a085f877a882b465fce74188c9d8efd12bd5acd4 Mon Sep 17 00:00:00 2001
- From: Stephen Boyd <sboyd@codeaurora.org>
- Date: Mon, 26 Oct 2015 18:10:09 -0700
- Subject: clk: qcom: Move cxo/pxo/xo into dt files
- Put these clocks into the dt files instead of registering them
- from C code. This provides a few benefits. It allows us to
- specify the frequency of these clocks at the board level instead
- of hard-coding them in the driver. It allows us to insert an RPM
- clock in between the consumers of the crystals and the actual
- clock. And finally, it helps us transition the GCC driver to use
- RPM clocks when that configuration is enabled.
- Cc: Georgi Djakov <georgi.djakov@linaro.org>
- Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
- ---
- drivers/clk/qcom/gcc-apq8084.c | 16 +++++++---------
- drivers/clk/qcom/gcc-ipq806x.c | 14 ++++++--------
- drivers/clk/qcom/gcc-msm8660.c | 15 +++++++--------
- drivers/clk/qcom/gcc-msm8960.c | 14 ++++++--------
- drivers/clk/qcom/gcc-msm8974.c | 17 +++++++----------
- 5 files changed, 33 insertions(+), 43 deletions(-)
- --- a/drivers/clk/qcom/gcc-apq8084.c
- +++ b/drivers/clk/qcom/gcc-apq8084.c
- @@ -3607,18 +3607,16 @@ MODULE_DEVICE_TABLE(of, gcc_apq8084_matc
-
- static int gcc_apq8084_probe(struct platform_device *pdev)
- {
- - struct clk *clk;
- + int ret;
- struct device *dev = &pdev->dev;
-
- - /* Temporary until RPM clocks supported */
- - clk = clk_register_fixed_rate(dev, "xo", NULL, CLK_IS_ROOT, 19200000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "xo_board", "xo", 19200000);
- + if (ret)
- + return ret;
-
- - clk = clk_register_fixed_rate(dev, "sleep_clk_src", NULL,
- - CLK_IS_ROOT, 32768);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_sleep_clk(dev);
- + if (ret)
- + return ret;
-
- return qcom_cc_probe(pdev, &gcc_apq8084_desc);
- }
- --- a/drivers/clk/qcom/gcc-ipq806x.c
- +++ b/drivers/clk/qcom/gcc-ipq806x.c
- @@ -3023,19 +3023,17 @@ MODULE_DEVICE_TABLE(of, gcc_ipq806x_matc
-
- static int gcc_ipq806x_probe(struct platform_device *pdev)
- {
- - struct clk *clk;
- struct device *dev = &pdev->dev;
- struct regmap *regmap;
- int ret;
-
- - /* Temporary until RPM clocks supported */
- - clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 25000000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 25000000);
- + if (ret)
- + return ret;
-
- - clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 25000000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 25000000);
- + if (ret)
- + return ret;
-
- ret = qcom_cc_probe(pdev, &gcc_ipq806x_desc);
- if (ret)
- --- a/drivers/clk/qcom/gcc-msm8660.c
- +++ b/drivers/clk/qcom/gcc-msm8660.c
- @@ -2720,17 +2720,16 @@ MODULE_DEVICE_TABLE(of, gcc_msm8660_matc
-
- static int gcc_msm8660_probe(struct platform_device *pdev)
- {
- - struct clk *clk;
- + int ret;
- struct device *dev = &pdev->dev;
-
- - /* Temporary until RPM clocks supported */
- - clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 19200000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
- + if (ret)
- + return ret;
-
- - clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 27000000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 27000000);
- + if (ret)
- + return ret;
-
- return qcom_cc_probe(pdev, &gcc_msm8660_desc);
- }
- --- a/drivers/clk/qcom/gcc-msm8960.c
- +++ b/drivers/clk/qcom/gcc-msm8960.c
- @@ -3503,7 +3503,6 @@ MODULE_DEVICE_TABLE(of, gcc_msm8960_matc
-
- static int gcc_msm8960_probe(struct platform_device *pdev)
- {
- - struct clk *clk;
- struct device *dev = &pdev->dev;
- const struct of_device_id *match;
- struct platform_device *tsens;
- @@ -3513,14 +3512,13 @@ static int gcc_msm8960_probe(struct plat
- if (!match)
- return -EINVAL;
-
- - /* Temporary until RPM clocks supported */
- - clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 19200000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
- + if (ret)
- + return ret;
-
- - clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 27000000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 27000000);
- + if (ret)
- + return ret;
-
- ret = qcom_cc_probe(pdev, match->data);
- if (ret)
- --- a/drivers/clk/qcom/gcc-msm8974.c
- +++ b/drivers/clk/qcom/gcc-msm8974.c
- @@ -2717,7 +2717,7 @@ static void msm8974_pro_clock_override(v
-
- static int gcc_msm8974_probe(struct platform_device *pdev)
- {
- - struct clk *clk;
- + int ret;
- struct device *dev = &pdev->dev;
- bool pro;
- const struct of_device_id *id;
- @@ -2730,16 +2730,13 @@ static int gcc_msm8974_probe(struct plat
- if (pro)
- msm8974_pro_clock_override();
-
- - /* Temporary until RPM clocks supported */
- - clk = clk_register_fixed_rate(dev, "xo", NULL, CLK_IS_ROOT, 19200000);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- -
- - /* Should move to DT node? */
- - clk = clk_register_fixed_rate(dev, "sleep_clk_src", NULL,
- - CLK_IS_ROOT, 32768);
- - if (IS_ERR(clk))
- - return PTR_ERR(clk);
- + ret = qcom_cc_register_board_clk(dev, "xo_board", "xo", 19200000);
- + if (ret)
- + return ret;
- +
- + ret = qcom_cc_register_sleep_clk(dev);
- + if (ret)
- + return ret;
-
- return qcom_cc_probe(pdev, &gcc_msm8974_desc);
- }
|