diff options
author | Kunihiko Hayashi <hayashi.kunihiko@socionext.com> | 2018-07-19 01:23:48 -0400 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2018-07-25 19:26:18 -0400 |
commit | ff388ee3651642d7fdc837b4434a1c7d80b243e4 (patch) | |
tree | 326bac065aa53dc3a7c94f5bcfc22a6742b3c8f9 | |
parent | 9d222574ef72216bd8332708750bbe743db9bea3 (diff) |
clk: uniphier: add clock frequency support for SPI
Add clock control for SPI controller on UniPhier SoCs.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
-rw-r--r-- | drivers/clk/uniphier/clk-uniphier-peri.c | 9 | ||||
-rw-r--r-- | drivers/clk/uniphier/clk-uniphier-sys.c | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/drivers/clk/uniphier/clk-uniphier-peri.c b/drivers/clk/uniphier/clk-uniphier-peri.c index 521c80e9a06f..89b3ac378b3f 100644 --- a/drivers/clk/uniphier/clk-uniphier-peri.c +++ b/drivers/clk/uniphier/clk-uniphier-peri.c | |||
@@ -27,6 +27,12 @@ | |||
27 | #define UNIPHIER_PERI_CLK_FI2C(idx, ch) \ | 27 | #define UNIPHIER_PERI_CLK_FI2C(idx, ch) \ |
28 | UNIPHIER_CLK_GATE("i2c" #ch, (idx), "i2c", 0x24, 24 + (ch)) | 28 | UNIPHIER_CLK_GATE("i2c" #ch, (idx), "i2c", 0x24, 24 + (ch)) |
29 | 29 | ||
30 | #define UNIPHIER_PERI_CLK_SCSSI(idx) \ | ||
31 | UNIPHIER_CLK_GATE("scssi", (idx), "spi", 0x20, 17) | ||
32 | |||
33 | #define UNIPHIER_PERI_CLK_MCSSI(idx) \ | ||
34 | UNIPHIER_CLK_GATE("mcssi", (idx), "spi", 0x24, 14) | ||
35 | |||
30 | const struct uniphier_clk_data uniphier_ld4_peri_clk_data[] = { | 36 | const struct uniphier_clk_data uniphier_ld4_peri_clk_data[] = { |
31 | UNIPHIER_PERI_CLK_UART(0, 0), | 37 | UNIPHIER_PERI_CLK_UART(0, 0), |
32 | UNIPHIER_PERI_CLK_UART(1, 1), | 38 | UNIPHIER_PERI_CLK_UART(1, 1), |
@@ -38,6 +44,7 @@ const struct uniphier_clk_data uniphier_ld4_peri_clk_data[] = { | |||
38 | UNIPHIER_PERI_CLK_I2C(6, 2), | 44 | UNIPHIER_PERI_CLK_I2C(6, 2), |
39 | UNIPHIER_PERI_CLK_I2C(7, 3), | 45 | UNIPHIER_PERI_CLK_I2C(7, 3), |
40 | UNIPHIER_PERI_CLK_I2C(8, 4), | 46 | UNIPHIER_PERI_CLK_I2C(8, 4), |
47 | UNIPHIER_PERI_CLK_SCSSI(11), | ||
41 | { /* sentinel */ } | 48 | { /* sentinel */ } |
42 | }; | 49 | }; |
43 | 50 | ||
@@ -53,5 +60,7 @@ const struct uniphier_clk_data uniphier_pro4_peri_clk_data[] = { | |||
53 | UNIPHIER_PERI_CLK_FI2C(8, 4), | 60 | UNIPHIER_PERI_CLK_FI2C(8, 4), |
54 | UNIPHIER_PERI_CLK_FI2C(9, 5), | 61 | UNIPHIER_PERI_CLK_FI2C(9, 5), |
55 | UNIPHIER_PERI_CLK_FI2C(10, 6), | 62 | UNIPHIER_PERI_CLK_FI2C(10, 6), |
63 | UNIPHIER_PERI_CLK_SCSSI(11), | ||
64 | UNIPHIER_PERI_CLK_MCSSI(12), | ||
56 | { /* sentinel */ } | 65 | { /* sentinel */ } |
57 | }; | 66 | }; |
diff --git a/drivers/clk/uniphier/clk-uniphier-sys.c b/drivers/clk/uniphier/clk-uniphier-sys.c index 1c5a998e6c21..2bb5a8570adc 100644 --- a/drivers/clk/uniphier/clk-uniphier-sys.c +++ b/drivers/clk/uniphier/clk-uniphier-sys.c | |||
@@ -95,6 +95,7 @@ const struct uniphier_clk_data uniphier_ld4_sys_clk_data[] = { | |||
95 | UNIPHIER_CLK_FACTOR("vpll27a", -1, "ref", 5625, 512), /* 270 MHz */ | 95 | UNIPHIER_CLK_FACTOR("vpll27a", -1, "ref", 5625, 512), /* 270 MHz */ |
96 | UNIPHIER_CLK_FACTOR("uart", 0, "a2pll", 1, 16), | 96 | UNIPHIER_CLK_FACTOR("uart", 0, "a2pll", 1, 16), |
97 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 16), | 97 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 16), |
98 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 32), | ||
98 | UNIPHIER_LD4_SYS_CLK_NAND(2), | 99 | UNIPHIER_LD4_SYS_CLK_NAND(2), |
99 | UNIPHIER_SYS_CLK_NAND_4X(3), | 100 | UNIPHIER_SYS_CLK_NAND_4X(3), |
100 | UNIPHIER_LD4_SYS_CLK_SD, | 101 | UNIPHIER_LD4_SYS_CLK_SD, |
@@ -111,6 +112,7 @@ const struct uniphier_clk_data uniphier_pro4_sys_clk_data[] = { | |||
111 | UNIPHIER_CLK_FACTOR("gpll", -1, "ref", 10, 1), /* 250 MHz */ | 112 | UNIPHIER_CLK_FACTOR("gpll", -1, "ref", 10, 1), /* 250 MHz */ |
112 | UNIPHIER_CLK_FACTOR("uart", 0, "a2pll", 1, 8), | 113 | UNIPHIER_CLK_FACTOR("uart", 0, "a2pll", 1, 8), |
113 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 32), | 114 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 32), |
115 | UNIPHIER_CLK_FACTOR("spi", 1, "spll", 1, 32), | ||
114 | UNIPHIER_LD4_SYS_CLK_NAND(2), | 116 | UNIPHIER_LD4_SYS_CLK_NAND(2), |
115 | UNIPHIER_SYS_CLK_NAND_4X(3), | 117 | UNIPHIER_SYS_CLK_NAND_4X(3), |
116 | UNIPHIER_LD4_SYS_CLK_SD, | 118 | UNIPHIER_LD4_SYS_CLK_SD, |
@@ -137,6 +139,7 @@ const struct uniphier_clk_data uniphier_sld8_sys_clk_data[] = { | |||
137 | UNIPHIER_CLK_FACTOR("vpll27a", -1, "ref", 270, 25), /* 270 MHz */ | 139 | UNIPHIER_CLK_FACTOR("vpll27a", -1, "ref", 270, 25), /* 270 MHz */ |
138 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 20), | 140 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 20), |
139 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 16), | 141 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 16), |
142 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 32), | ||
140 | UNIPHIER_LD4_SYS_CLK_NAND(2), | 143 | UNIPHIER_LD4_SYS_CLK_NAND(2), |
141 | UNIPHIER_SYS_CLK_NAND_4X(3), | 144 | UNIPHIER_SYS_CLK_NAND_4X(3), |
142 | UNIPHIER_LD4_SYS_CLK_SD, | 145 | UNIPHIER_LD4_SYS_CLK_SD, |
@@ -151,6 +154,7 @@ const struct uniphier_clk_data uniphier_pro5_sys_clk_data[] = { | |||
151 | UNIPHIER_CLK_FACTOR("dapll2", -1, "dapll1", 144, 125), /* 2949.12 MHz */ | 154 | UNIPHIER_CLK_FACTOR("dapll2", -1, "dapll1", 144, 125), /* 2949.12 MHz */ |
152 | UNIPHIER_CLK_FACTOR("uart", 0, "dapll2", 1, 40), | 155 | UNIPHIER_CLK_FACTOR("uart", 0, "dapll2", 1, 40), |
153 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 48), | 156 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 48), |
157 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 48), | ||
154 | UNIPHIER_PRO5_SYS_CLK_NAND(2), | 158 | UNIPHIER_PRO5_SYS_CLK_NAND(2), |
155 | UNIPHIER_SYS_CLK_NAND_4X(3), | 159 | UNIPHIER_SYS_CLK_NAND_4X(3), |
156 | UNIPHIER_PRO5_SYS_CLK_SD, | 160 | UNIPHIER_PRO5_SYS_CLK_SD, |
@@ -167,6 +171,7 @@ const struct uniphier_clk_data uniphier_pxs2_sys_clk_data[] = { | |||
167 | UNIPHIER_CLK_FACTOR("spll", -1, "ref", 96, 1), /* 2400 MHz */ | 171 | UNIPHIER_CLK_FACTOR("spll", -1, "ref", 96, 1), /* 2400 MHz */ |
168 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 27), | 172 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 27), |
169 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 48), | 173 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 48), |
174 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 48), | ||
170 | UNIPHIER_PRO5_SYS_CLK_NAND(2), | 175 | UNIPHIER_PRO5_SYS_CLK_NAND(2), |
171 | UNIPHIER_SYS_CLK_NAND_4X(3), | 176 | UNIPHIER_SYS_CLK_NAND_4X(3), |
172 | UNIPHIER_PRO5_SYS_CLK_SD, | 177 | UNIPHIER_PRO5_SYS_CLK_SD, |
@@ -193,6 +198,7 @@ const struct uniphier_clk_data uniphier_ld11_sys_clk_data[] = { | |||
193 | UNIPHIER_CLK_FACTOR("vspll", -1, "ref", 80, 1), /* 2000 MHz */ | 198 | UNIPHIER_CLK_FACTOR("vspll", -1, "ref", 80, 1), /* 2000 MHz */ |
194 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 34), | 199 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 34), |
195 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 40), | 200 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 40), |
201 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 40), | ||
196 | UNIPHIER_LD11_SYS_CLK_NAND(2), | 202 | UNIPHIER_LD11_SYS_CLK_NAND(2), |
197 | UNIPHIER_SYS_CLK_NAND_4X(3), | 203 | UNIPHIER_SYS_CLK_NAND_4X(3), |
198 | UNIPHIER_LD11_SYS_CLK_EMMC(4), | 204 | UNIPHIER_LD11_SYS_CLK_EMMC(4), |
@@ -227,6 +233,7 @@ const struct uniphier_clk_data uniphier_ld20_sys_clk_data[] = { | |||
227 | UNIPHIER_CLK_FACTOR("vppll", -1, "ref", 504, 5), /* 2520 MHz */ | 233 | UNIPHIER_CLK_FACTOR("vppll", -1, "ref", 504, 5), /* 2520 MHz */ |
228 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 34), | 234 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 34), |
229 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 40), | 235 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 40), |
236 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 40), | ||
230 | UNIPHIER_LD11_SYS_CLK_NAND(2), | 237 | UNIPHIER_LD11_SYS_CLK_NAND(2), |
231 | UNIPHIER_SYS_CLK_NAND_4X(3), | 238 | UNIPHIER_SYS_CLK_NAND_4X(3), |
232 | UNIPHIER_LD11_SYS_CLK_EMMC(4), | 239 | UNIPHIER_LD11_SYS_CLK_EMMC(4), |
@@ -271,6 +278,7 @@ const struct uniphier_clk_data uniphier_pxs3_sys_clk_data[] = { | |||
271 | UNIPHIER_CLK_FACTOR("s2pll", -1, "ref", 88, 1), /* IPP: 2400 MHz */ | 278 | UNIPHIER_CLK_FACTOR("s2pll", -1, "ref", 88, 1), /* IPP: 2400 MHz */ |
272 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 34), | 279 | UNIPHIER_CLK_FACTOR("uart", 0, "spll", 1, 34), |
273 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 40), | 280 | UNIPHIER_CLK_FACTOR("i2c", 1, "spll", 1, 40), |
281 | UNIPHIER_CLK_FACTOR("spi", -1, "spll", 1, 40), | ||
274 | UNIPHIER_LD20_SYS_CLK_SD, | 282 | UNIPHIER_LD20_SYS_CLK_SD, |
275 | UNIPHIER_LD11_SYS_CLK_NAND(2), | 283 | UNIPHIER_LD11_SYS_CLK_NAND(2), |
276 | UNIPHIER_SYS_CLK_NAND_4X(3), | 284 | UNIPHIER_SYS_CLK_NAND_4X(3), |