ipq806x: refresh patches
[oweals/openwrt.git] / target / linux / ipq806x / patches-4.4 / 003-mv-cxo-pxo-xo-into-DT.patch
1 From a085f877a882b465fce74188c9d8efd12bd5acd4 Mon Sep 17 00:00:00 2001
2 From: Stephen Boyd <sboyd@codeaurora.org>
3 Date: Mon, 26 Oct 2015 18:10:09 -0700
4 Subject: clk: qcom: Move cxo/pxo/xo into dt files
5
6 Put these clocks into the dt files instead of registering them
7 from C code. This provides a few benefits. It allows us to
8 specify the frequency of these clocks at the board level instead
9 of hard-coding them in the driver. It allows us to insert an RPM
10 clock in between the consumers of the crystals and the actual
11 clock. And finally, it helps us transition the GCC driver to use
12 RPM clocks when that configuration is enabled.
13
14 Cc: Georgi Djakov <georgi.djakov@linaro.org>
15 Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
16 ---
17  drivers/clk/qcom/gcc-apq8084.c | 16 +++++++---------
18  drivers/clk/qcom/gcc-ipq806x.c | 14 ++++++--------
19  drivers/clk/qcom/gcc-msm8660.c | 15 +++++++--------
20  drivers/clk/qcom/gcc-msm8960.c | 14 ++++++--------
21  drivers/clk/qcom/gcc-msm8974.c | 17 +++++++----------
22  5 files changed, 33 insertions(+), 43 deletions(-)
23
24 --- a/drivers/clk/qcom/gcc-apq8084.c
25 +++ b/drivers/clk/qcom/gcc-apq8084.c
26 @@ -3607,18 +3607,16 @@ MODULE_DEVICE_TABLE(of, gcc_apq8084_matc
27  
28  static int gcc_apq8084_probe(struct platform_device *pdev)
29  {
30 -       struct clk *clk;
31 +       int ret;
32         struct device *dev = &pdev->dev;
33  
34 -       /* Temporary until RPM clocks supported */
35 -       clk = clk_register_fixed_rate(dev, "xo", NULL, CLK_IS_ROOT, 19200000);
36 -       if (IS_ERR(clk))
37 -               return PTR_ERR(clk);
38 +       ret = qcom_cc_register_board_clk(dev, "xo_board", "xo", 19200000);
39 +       if (ret)
40 +               return ret;
41  
42 -       clk = clk_register_fixed_rate(dev, "sleep_clk_src", NULL,
43 -                                     CLK_IS_ROOT, 32768);
44 -       if (IS_ERR(clk))
45 -               return PTR_ERR(clk);
46 +       ret = qcom_cc_register_sleep_clk(dev);
47 +       if (ret)
48 +               return ret;
49  
50         return qcom_cc_probe(pdev, &gcc_apq8084_desc);
51  }
52 --- a/drivers/clk/qcom/gcc-ipq806x.c
53 +++ b/drivers/clk/qcom/gcc-ipq806x.c
54 @@ -3023,19 +3023,17 @@ MODULE_DEVICE_TABLE(of, gcc_ipq806x_matc
55  
56  static int gcc_ipq806x_probe(struct platform_device *pdev)
57  {
58 -       struct clk *clk;
59         struct device *dev = &pdev->dev;
60         struct regmap *regmap;
61         int ret;
62  
63 -       /* Temporary until RPM clocks supported */
64 -       clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 25000000);
65 -       if (IS_ERR(clk))
66 -               return PTR_ERR(clk);
67 +       ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 25000000);
68 +       if (ret)
69 +               return ret;
70  
71 -       clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 25000000);
72 -       if (IS_ERR(clk))
73 -               return PTR_ERR(clk);
74 +       ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 25000000);
75 +       if (ret)
76 +               return ret;
77  
78         ret = qcom_cc_probe(pdev, &gcc_ipq806x_desc);
79         if (ret)
80 --- a/drivers/clk/qcom/gcc-msm8660.c
81 +++ b/drivers/clk/qcom/gcc-msm8660.c
82 @@ -2720,17 +2720,16 @@ MODULE_DEVICE_TABLE(of, gcc_msm8660_matc
83  
84  static int gcc_msm8660_probe(struct platform_device *pdev)
85  {
86 -       struct clk *clk;
87 +       int ret;
88         struct device *dev = &pdev->dev;
89  
90 -       /* Temporary until RPM clocks supported */
91 -       clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 19200000);
92 -       if (IS_ERR(clk))
93 -               return PTR_ERR(clk);
94 +       ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
95 +       if (ret)
96 +               return ret;
97  
98 -       clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 27000000);
99 -       if (IS_ERR(clk))
100 -               return PTR_ERR(clk);
101 +       ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 27000000);
102 +       if (ret)
103 +               return ret;
104  
105         return qcom_cc_probe(pdev, &gcc_msm8660_desc);
106  }
107 --- a/drivers/clk/qcom/gcc-msm8960.c
108 +++ b/drivers/clk/qcom/gcc-msm8960.c
109 @@ -3503,7 +3503,6 @@ MODULE_DEVICE_TABLE(of, gcc_msm8960_matc
110  
111  static int gcc_msm8960_probe(struct platform_device *pdev)
112  {
113 -       struct clk *clk;
114         struct device *dev = &pdev->dev;
115         const struct of_device_id *match;
116         struct platform_device *tsens;
117 @@ -3513,14 +3512,13 @@ static int gcc_msm8960_probe(struct plat
118         if (!match)
119                 return -EINVAL;
120  
121 -       /* Temporary until RPM clocks supported */
122 -       clk = clk_register_fixed_rate(dev, "cxo", NULL, CLK_IS_ROOT, 19200000);
123 -       if (IS_ERR(clk))
124 -               return PTR_ERR(clk);
125 +       ret = qcom_cc_register_board_clk(dev, "cxo_board", "cxo", 19200000);
126 +       if (ret)
127 +               return ret;
128  
129 -       clk = clk_register_fixed_rate(dev, "pxo", NULL, CLK_IS_ROOT, 27000000);
130 -       if (IS_ERR(clk))
131 -               return PTR_ERR(clk);
132 +       ret = qcom_cc_register_board_clk(dev, "pxo_board", "pxo", 27000000);
133 +       if (ret)
134 +               return ret;
135  
136         ret = qcom_cc_probe(pdev, match->data);
137         if (ret)
138 --- a/drivers/clk/qcom/gcc-msm8974.c
139 +++ b/drivers/clk/qcom/gcc-msm8974.c
140 @@ -2717,7 +2717,7 @@ static void msm8974_pro_clock_override(v
141  
142  static int gcc_msm8974_probe(struct platform_device *pdev)
143  {
144 -       struct clk *clk;
145 +       int ret;
146         struct device *dev = &pdev->dev;
147         bool pro;
148         const struct of_device_id *id;
149 @@ -2730,16 +2730,13 @@ static int gcc_msm8974_probe(struct plat
150         if (pro)
151                 msm8974_pro_clock_override();
152  
153 -       /* Temporary until RPM clocks supported */
154 -       clk = clk_register_fixed_rate(dev, "xo", NULL, CLK_IS_ROOT, 19200000);
155 -       if (IS_ERR(clk))
156 -               return PTR_ERR(clk);
157 -
158 -       /* Should move to DT node? */
159 -       clk = clk_register_fixed_rate(dev, "sleep_clk_src", NULL,
160 -                                     CLK_IS_ROOT, 32768);
161 -       if (IS_ERR(clk))
162 -               return PTR_ERR(clk);
163 +       ret = qcom_cc_register_board_clk(dev, "xo_board", "xo", 19200000);
164 +       if (ret)
165 +               return ret;
166 +
167 +       ret = qcom_cc_register_sleep_clk(dev);
168 +       if (ret)
169 +               return ret;
170  
171         return qcom_cc_probe(pdev, &gcc_msm8974_desc);
172  }