1 // SPDX-License-Identifier: GPL-2.0-only
2 /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
5 #include <linux/kernel.h>
6 #include <linux/init.h>
8 #include <linux/ctype.h>
11 #include <linux/platform_device.h>
12 #include <linux/module.h>
13 #include <linux/regmap.h>
15 #include <dt-bindings/clock/qcom,gcc-msm8994.h>
18 #include "clk-regmap.h"
19 #include "clk-alpha-pll.h"
21 #include "clk-branch.h"
30 static const struct parent_map gcc_xo_gpll0_map
[] = {
35 static const char * const gcc_xo_gpll0
[] = {
40 static const struct parent_map gcc_xo_gpll0_gpll4_map
[] = {
46 static const char * const gcc_xo_gpll0_gpll4
[] = {
52 static struct clk_fixed_factor xo
= {
55 .hw
.init
= &(struct clk_init_data
)
58 .parent_names
= (const char *[]) { "xo_board" },
60 .ops
= &clk_fixed_factor_ops
,
64 static struct clk_alpha_pll gpll0_early
= {
66 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
69 .enable_mask
= BIT(0),
70 .hw
.init
= &(struct clk_init_data
)
72 .name
= "gpll0_early",
73 .parent_names
= (const char *[]) { "xo" },
75 .ops
= &clk_alpha_pll_ops
,
80 static struct clk_alpha_pll_postdiv gpll0
= {
82 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
83 .clkr
.hw
.init
= &(struct clk_init_data
)
86 .parent_names
= (const char *[]) { "gpll0_early" },
88 .ops
= &clk_alpha_pll_postdiv_ops
,
92 static struct clk_alpha_pll gpll4_early
= {
94 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
97 .enable_mask
= BIT(4),
98 .hw
.init
= &(struct clk_init_data
)
100 .name
= "gpll4_early",
101 .parent_names
= (const char *[]) { "xo" },
103 .ops
= &clk_alpha_pll_ops
,
108 static struct clk_alpha_pll_postdiv gpll4
= {
110 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
111 .clkr
.hw
.init
= &(struct clk_init_data
)
114 .parent_names
= (const char *[]) { "gpll4_early" },
116 .ops
= &clk_alpha_pll_postdiv_ops
,
120 static struct freq_tbl ftbl_ufs_axi_clk_src
[] = {
121 F(50000000, P_GPLL0
, 12, 0, 0),
122 F(100000000, P_GPLL0
, 6, 0, 0),
123 F(150000000, P_GPLL0
, 4, 0, 0),
124 F(171430000, P_GPLL0
, 3.5, 0, 0),
125 F(200000000, P_GPLL0
, 3, 0, 0),
126 F(240000000, P_GPLL0
, 2.5, 0, 0),
130 static struct clk_rcg2 ufs_axi_clk_src
= {
134 .parent_map
= gcc_xo_gpll0_map
,
135 .freq_tbl
= ftbl_ufs_axi_clk_src
,
136 .clkr
.hw
.init
= &(struct clk_init_data
)
138 .name
= "ufs_axi_clk_src",
139 .parent_names
= gcc_xo_gpll0
,
141 .ops
= &clk_rcg2_ops
,
145 static struct freq_tbl ftbl_usb30_master_clk_src
[] = {
146 F(19200000, P_XO
, 1, 0, 0),
147 F(125000000, P_GPLL0
, 1, 5, 24),
151 static struct clk_rcg2 usb30_master_clk_src
= {
155 .parent_map
= gcc_xo_gpll0_map
,
156 .freq_tbl
= ftbl_usb30_master_clk_src
,
157 .clkr
.hw
.init
= &(struct clk_init_data
)
159 .name
= "usb30_master_clk_src",
160 .parent_names
= gcc_xo_gpll0
,
162 .ops
= &clk_rcg2_ops
,
166 static struct freq_tbl ftbl_blsp_i2c_apps_clk_src
[] = {
167 F(19200000, P_XO
, 1, 0, 0),
168 F(50000000, P_GPLL0
, 12, 0, 0),
172 static struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src
= {
175 .parent_map
= gcc_xo_gpll0_map
,
176 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
177 .clkr
.hw
.init
= &(struct clk_init_data
)
179 .name
= "blsp1_qup1_i2c_apps_clk_src",
180 .parent_names
= gcc_xo_gpll0
,
182 .ops
= &clk_rcg2_ops
,
186 static struct freq_tbl ftbl_blspqup_spi_apps_clk_src
[] = {
187 F(960000, P_XO
, 10, 1, 2),
188 F(4800000, P_XO
, 4, 0, 0),
189 F(9600000, P_XO
, 2, 0, 0),
190 F(15000000, P_GPLL0
, 10, 1, 4),
191 F(19200000, P_XO
, 1, 0, 0),
192 F(24000000, P_GPLL0
, 12.5, 1, 2),
193 F(25000000, P_GPLL0
, 12, 1, 2),
194 F(48000000, P_GPLL0
, 12.5, 0, 0),
195 F(50000000, P_GPLL0
, 12, 0, 0),
199 static struct clk_rcg2 blsp1_qup1_spi_apps_clk_src
= {
203 .parent_map
= gcc_xo_gpll0_map
,
204 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
205 .clkr
.hw
.init
= &(struct clk_init_data
)
207 .name
= "blsp1_qup1_spi_apps_clk_src",
208 .parent_names
= gcc_xo_gpll0
,
210 .ops
= &clk_rcg2_ops
,
214 static struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src
= {
217 .parent_map
= gcc_xo_gpll0_map
,
218 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
219 .clkr
.hw
.init
= &(struct clk_init_data
)
221 .name
= "blsp1_qup2_i2c_apps_clk_src",
222 .parent_names
= gcc_xo_gpll0
,
224 .ops
= &clk_rcg2_ops
,
228 static struct clk_rcg2 blsp1_qup2_spi_apps_clk_src
= {
232 .parent_map
= gcc_xo_gpll0_map
,
233 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
234 .clkr
.hw
.init
= &(struct clk_init_data
)
236 .name
= "blsp1_qup2_spi_apps_clk_src",
237 .parent_names
= gcc_xo_gpll0
,
239 .ops
= &clk_rcg2_ops
,
243 static struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src
= {
246 .parent_map
= gcc_xo_gpll0_map
,
247 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
248 .clkr
.hw
.init
= &(struct clk_init_data
)
250 .name
= "blsp1_qup3_i2c_apps_clk_src",
251 .parent_names
= gcc_xo_gpll0
,
253 .ops
= &clk_rcg2_ops
,
257 static struct clk_rcg2 blsp1_qup3_spi_apps_clk_src
= {
261 .parent_map
= gcc_xo_gpll0_map
,
262 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
263 .clkr
.hw
.init
= &(struct clk_init_data
)
265 .name
= "blsp1_qup3_spi_apps_clk_src",
266 .parent_names
= gcc_xo_gpll0
,
268 .ops
= &clk_rcg2_ops
,
272 static struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src
= {
275 .parent_map
= gcc_xo_gpll0_map
,
276 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
277 .clkr
.hw
.init
= &(struct clk_init_data
)
279 .name
= "blsp1_qup4_i2c_apps_clk_src",
280 .parent_names
= gcc_xo_gpll0
,
282 .ops
= &clk_rcg2_ops
,
286 static struct clk_rcg2 blsp1_qup4_spi_apps_clk_src
= {
290 .parent_map
= gcc_xo_gpll0_map
,
291 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
292 .clkr
.hw
.init
= &(struct clk_init_data
)
294 .name
= "blsp1_qup4_spi_apps_clk_src",
295 .parent_names
= gcc_xo_gpll0
,
297 .ops
= &clk_rcg2_ops
,
301 static struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src
= {
304 .parent_map
= gcc_xo_gpll0_map
,
305 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
306 .clkr
.hw
.init
= &(struct clk_init_data
)
308 .name
= "blsp1_qup5_i2c_apps_clk_src",
309 .parent_names
= gcc_xo_gpll0
,
311 .ops
= &clk_rcg2_ops
,
315 static struct clk_rcg2 blsp1_qup5_spi_apps_clk_src
= {
319 .parent_map
= gcc_xo_gpll0_map
,
320 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
321 .clkr
.hw
.init
= &(struct clk_init_data
)
323 .name
= "blsp1_qup5_spi_apps_clk_src",
324 .parent_names
= gcc_xo_gpll0
,
326 .ops
= &clk_rcg2_ops
,
330 static struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src
= {
333 .parent_map
= gcc_xo_gpll0_map
,
334 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
335 .clkr
.hw
.init
= &(struct clk_init_data
)
337 .name
= "blsp1_qup6_i2c_apps_clk_src",
338 .parent_names
= gcc_xo_gpll0
,
340 .ops
= &clk_rcg2_ops
,
344 static struct clk_rcg2 blsp1_qup6_spi_apps_clk_src
= {
348 .parent_map
= gcc_xo_gpll0_map
,
349 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
350 .clkr
.hw
.init
= &(struct clk_init_data
)
352 .name
= "blsp1_qup6_spi_apps_clk_src",
353 .parent_names
= gcc_xo_gpll0
,
355 .ops
= &clk_rcg2_ops
,
359 static struct freq_tbl ftbl_blsp_uart_apps_clk_src
[] = {
360 F(3686400, P_GPLL0
, 1, 96, 15625),
361 F(7372800, P_GPLL0
, 1, 192, 15625),
362 F(14745600, P_GPLL0
, 1, 384, 15625),
363 F(16000000, P_GPLL0
, 5, 2, 15),
364 F(19200000, P_XO
, 1, 0, 0),
365 F(24000000, P_GPLL0
, 5, 1, 5),
366 F(32000000, P_GPLL0
, 1, 4, 75),
367 F(40000000, P_GPLL0
, 15, 0, 0),
368 F(46400000, P_GPLL0
, 1, 29, 375),
369 F(48000000, P_GPLL0
, 12.5, 0, 0),
370 F(51200000, P_GPLL0
, 1, 32, 375),
371 F(56000000, P_GPLL0
, 1, 7, 75),
372 F(58982400, P_GPLL0
, 1, 1536, 15625),
373 F(60000000, P_GPLL0
, 10, 0, 0),
374 F(63160000, P_GPLL0
, 9.5, 0, 0),
378 static struct clk_rcg2 blsp1_uart1_apps_clk_src
= {
382 .parent_map
= gcc_xo_gpll0_map
,
383 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
384 .clkr
.hw
.init
= &(struct clk_init_data
)
386 .name
= "blsp1_uart1_apps_clk_src",
387 .parent_names
= gcc_xo_gpll0
,
389 .ops
= &clk_rcg2_ops
,
393 static struct clk_rcg2 blsp1_uart2_apps_clk_src
= {
397 .parent_map
= gcc_xo_gpll0_map
,
398 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
399 .clkr
.hw
.init
= &(struct clk_init_data
)
401 .name
= "blsp1_uart2_apps_clk_src",
402 .parent_names
= gcc_xo_gpll0
,
404 .ops
= &clk_rcg2_ops
,
408 static struct clk_rcg2 blsp1_uart3_apps_clk_src
= {
412 .parent_map
= gcc_xo_gpll0_map
,
413 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
414 .clkr
.hw
.init
= &(struct clk_init_data
)
416 .name
= "blsp1_uart3_apps_clk_src",
417 .parent_names
= gcc_xo_gpll0
,
419 .ops
= &clk_rcg2_ops
,
423 static struct clk_rcg2 blsp1_uart4_apps_clk_src
= {
427 .parent_map
= gcc_xo_gpll0_map
,
428 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
429 .clkr
.hw
.init
= &(struct clk_init_data
)
431 .name
= "blsp1_uart4_apps_clk_src",
432 .parent_names
= gcc_xo_gpll0
,
434 .ops
= &clk_rcg2_ops
,
438 static struct clk_rcg2 blsp1_uart5_apps_clk_src
= {
442 .parent_map
= gcc_xo_gpll0_map
,
443 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
444 .clkr
.hw
.init
= &(struct clk_init_data
)
446 .name
= "blsp1_uart5_apps_clk_src",
447 .parent_names
= gcc_xo_gpll0
,
449 .ops
= &clk_rcg2_ops
,
453 static struct clk_rcg2 blsp1_uart6_apps_clk_src
= {
457 .parent_map
= gcc_xo_gpll0_map
,
458 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
459 .clkr
.hw
.init
= &(struct clk_init_data
)
461 .name
= "blsp1_uart6_apps_clk_src",
462 .parent_names
= gcc_xo_gpll0
,
464 .ops
= &clk_rcg2_ops
,
468 static struct clk_rcg2 blsp2_qup1_i2c_apps_clk_src
= {
471 .parent_map
= gcc_xo_gpll0_map
,
472 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
473 .clkr
.hw
.init
= &(struct clk_init_data
)
475 .name
= "blsp2_qup1_i2c_apps_clk_src",
476 .parent_names
= gcc_xo_gpll0
,
478 .ops
= &clk_rcg2_ops
,
482 static struct clk_rcg2 blsp2_qup1_spi_apps_clk_src
= {
486 .parent_map
= gcc_xo_gpll0_map
,
487 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
488 .clkr
.hw
.init
= &(struct clk_init_data
)
490 .name
= "blsp2_qup1_spi_apps_clk_src",
491 .parent_names
= gcc_xo_gpll0
,
493 .ops
= &clk_rcg2_ops
,
497 static struct clk_rcg2 blsp2_qup2_i2c_apps_clk_src
= {
500 .parent_map
= gcc_xo_gpll0_map
,
501 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
502 .clkr
.hw
.init
= &(struct clk_init_data
)
504 .name
= "blsp2_qup2_i2c_apps_clk_src",
505 .parent_names
= gcc_xo_gpll0
,
507 .ops
= &clk_rcg2_ops
,
511 static struct clk_rcg2 blsp2_qup2_spi_apps_clk_src
= {
515 .parent_map
= gcc_xo_gpll0_map
,
516 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
517 .clkr
.hw
.init
= &(struct clk_init_data
)
519 .name
= "blsp2_qup2_spi_apps_clk_src",
520 .parent_names
= gcc_xo_gpll0
,
522 .ops
= &clk_rcg2_ops
,
526 static struct clk_rcg2 blsp2_qup3_i2c_apps_clk_src
= {
529 .parent_map
= gcc_xo_gpll0_map
,
530 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
531 .clkr
.hw
.init
= &(struct clk_init_data
)
533 .name
= "blsp2_qup3_i2c_apps_clk_src",
534 .parent_names
= gcc_xo_gpll0
,
536 .ops
= &clk_rcg2_ops
,
540 static struct clk_rcg2 blsp2_qup3_spi_apps_clk_src
= {
544 .parent_map
= gcc_xo_gpll0_map
,
545 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
546 .clkr
.hw
.init
= &(struct clk_init_data
)
548 .name
= "blsp2_qup3_spi_apps_clk_src",
549 .parent_names
= gcc_xo_gpll0
,
551 .ops
= &clk_rcg2_ops
,
555 static struct clk_rcg2 blsp2_qup4_i2c_apps_clk_src
= {
558 .parent_map
= gcc_xo_gpll0_map
,
559 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
560 .clkr
.hw
.init
= &(struct clk_init_data
)
562 .name
= "blsp2_qup4_i2c_apps_clk_src",
563 .parent_names
= gcc_xo_gpll0
,
565 .ops
= &clk_rcg2_ops
,
569 static struct clk_rcg2 blsp2_qup4_spi_apps_clk_src
= {
573 .parent_map
= gcc_xo_gpll0_map
,
574 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
575 .clkr
.hw
.init
= &(struct clk_init_data
)
577 .name
= "blsp2_qup4_spi_apps_clk_src",
578 .parent_names
= gcc_xo_gpll0
,
580 .ops
= &clk_rcg2_ops
,
584 static struct clk_rcg2 blsp2_qup5_i2c_apps_clk_src
= {
587 .parent_map
= gcc_xo_gpll0_map
,
588 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
589 .clkr
.hw
.init
= &(struct clk_init_data
)
591 .name
= "blsp2_qup5_i2c_apps_clk_src",
592 .parent_names
= gcc_xo_gpll0
,
594 .ops
= &clk_rcg2_ops
,
598 static struct clk_rcg2 blsp2_qup5_spi_apps_clk_src
= {
602 .parent_map
= gcc_xo_gpll0_map
,
603 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
604 .clkr
.hw
.init
= &(struct clk_init_data
)
606 .name
= "blsp2_qup5_spi_apps_clk_src",
607 .parent_names
= gcc_xo_gpll0
,
609 .ops
= &clk_rcg2_ops
,
613 static struct clk_rcg2 blsp2_qup6_i2c_apps_clk_src
= {
616 .parent_map
= gcc_xo_gpll0_map
,
617 .freq_tbl
= ftbl_blsp_i2c_apps_clk_src
,
618 .clkr
.hw
.init
= &(struct clk_init_data
)
620 .name
= "blsp2_qup6_i2c_apps_clk_src",
621 .parent_names
= gcc_xo_gpll0
,
623 .ops
= &clk_rcg2_ops
,
627 static struct clk_rcg2 blsp2_qup6_spi_apps_clk_src
= {
631 .parent_map
= gcc_xo_gpll0_map
,
632 .freq_tbl
= ftbl_blspqup_spi_apps_clk_src
,
633 .clkr
.hw
.init
= &(struct clk_init_data
)
635 .name
= "blsp2_qup6_spi_apps_clk_src",
636 .parent_names
= gcc_xo_gpll0
,
638 .ops
= &clk_rcg2_ops
,
642 static struct clk_rcg2 blsp2_uart1_apps_clk_src
= {
646 .parent_map
= gcc_xo_gpll0_map
,
647 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
648 .clkr
.hw
.init
= &(struct clk_init_data
)
650 .name
= "blsp2_uart1_apps_clk_src",
651 .parent_names
= gcc_xo_gpll0
,
653 .ops
= &clk_rcg2_ops
,
657 static struct clk_rcg2 blsp2_uart2_apps_clk_src
= {
661 .parent_map
= gcc_xo_gpll0_map
,
662 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
663 .clkr
.hw
.init
= &(struct clk_init_data
)
665 .name
= "blsp2_uart2_apps_clk_src",
666 .parent_names
= gcc_xo_gpll0
,
668 .ops
= &clk_rcg2_ops
,
672 static struct clk_rcg2 blsp2_uart3_apps_clk_src
= {
676 .parent_map
= gcc_xo_gpll0_map
,
677 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
678 .clkr
.hw
.init
= &(struct clk_init_data
)
680 .name
= "blsp2_uart3_apps_clk_src",
681 .parent_names
= gcc_xo_gpll0
,
683 .ops
= &clk_rcg2_ops
,
687 static struct clk_rcg2 blsp2_uart4_apps_clk_src
= {
691 .parent_map
= gcc_xo_gpll0_map
,
692 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
693 .clkr
.hw
.init
= &(struct clk_init_data
)
695 .name
= "blsp2_uart4_apps_clk_src",
696 .parent_names
= gcc_xo_gpll0
,
698 .ops
= &clk_rcg2_ops
,
702 static struct clk_rcg2 blsp2_uart5_apps_clk_src
= {
706 .parent_map
= gcc_xo_gpll0_map
,
707 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
708 .clkr
.hw
.init
= &(struct clk_init_data
)
710 .name
= "blsp2_uart5_apps_clk_src",
711 .parent_names
= gcc_xo_gpll0
,
713 .ops
= &clk_rcg2_ops
,
717 static struct clk_rcg2 blsp2_uart6_apps_clk_src
= {
721 .parent_map
= gcc_xo_gpll0_map
,
722 .freq_tbl
= ftbl_blsp_uart_apps_clk_src
,
723 .clkr
.hw
.init
= &(struct clk_init_data
)
725 .name
= "blsp2_uart6_apps_clk_src",
726 .parent_names
= gcc_xo_gpll0
,
728 .ops
= &clk_rcg2_ops
,
732 static struct freq_tbl ftbl_gp1_clk_src
[] = {
733 F(19200000, P_XO
, 1, 0, 0),
734 F(100000000, P_GPLL0
, 6, 0, 0),
735 F(200000000, P_GPLL0
, 3, 0, 0),
739 static struct clk_rcg2 gp1_clk_src
= {
743 .parent_map
= gcc_xo_gpll0_map
,
744 .freq_tbl
= ftbl_gp1_clk_src
,
745 .clkr
.hw
.init
= &(struct clk_init_data
)
747 .name
= "gp1_clk_src",
748 .parent_names
= gcc_xo_gpll0
,
750 .ops
= &clk_rcg2_ops
,
754 static struct freq_tbl ftbl_gp2_clk_src
[] = {
755 F(19200000, P_XO
, 1, 0, 0),
756 F(100000000, P_GPLL0
, 6, 0, 0),
757 F(200000000, P_GPLL0
, 3, 0, 0),
761 static struct clk_rcg2 gp2_clk_src
= {
765 .parent_map
= gcc_xo_gpll0_map
,
766 .freq_tbl
= ftbl_gp2_clk_src
,
767 .clkr
.hw
.init
= &(struct clk_init_data
)
769 .name
= "gp2_clk_src",
770 .parent_names
= gcc_xo_gpll0
,
772 .ops
= &clk_rcg2_ops
,
776 static struct freq_tbl ftbl_gp3_clk_src
[] = {
777 F(19200000, P_XO
, 1, 0, 0),
778 F(100000000, P_GPLL0
, 6, 0, 0),
779 F(200000000, P_GPLL0
, 3, 0, 0),
783 static struct clk_rcg2 gp3_clk_src
= {
787 .parent_map
= gcc_xo_gpll0_map
,
788 .freq_tbl
= ftbl_gp3_clk_src
,
789 .clkr
.hw
.init
= &(struct clk_init_data
)
791 .name
= "gp3_clk_src",
792 .parent_names
= gcc_xo_gpll0
,
794 .ops
= &clk_rcg2_ops
,
798 static struct freq_tbl ftbl_pcie_0_aux_clk_src
[] = {
799 F(1011000, P_XO
, 1, 1, 19),
803 static struct clk_rcg2 pcie_0_aux_clk_src
= {
807 .freq_tbl
= ftbl_pcie_0_aux_clk_src
,
808 .clkr
.hw
.init
= &(struct clk_init_data
)
810 .name
= "pcie_0_aux_clk_src",
811 .parent_names
= (const char *[]) { "xo" },
813 .ops
= &clk_rcg2_ops
,
817 static struct freq_tbl ftbl_pcie_pipe_clk_src
[] = {
818 F(125000000, P_XO
, 1, 0, 0),
822 static struct clk_rcg2 pcie_0_pipe_clk_src
= {
825 .freq_tbl
= ftbl_pcie_pipe_clk_src
,
826 .clkr
.hw
.init
= &(struct clk_init_data
)
828 .name
= "pcie_0_pipe_clk_src",
829 .parent_names
= (const char *[]) { "xo" },
831 .ops
= &clk_rcg2_ops
,
835 static struct freq_tbl ftbl_pcie_1_aux_clk_src
[] = {
836 F(1011000, P_XO
, 1, 1, 19),
840 static struct clk_rcg2 pcie_1_aux_clk_src
= {
844 .freq_tbl
= ftbl_pcie_1_aux_clk_src
,
845 .clkr
.hw
.init
= &(struct clk_init_data
)
847 .name
= "pcie_1_aux_clk_src",
848 .parent_names
= (const char *[]) { "xo" },
850 .ops
= &clk_rcg2_ops
,
854 static struct clk_rcg2 pcie_1_pipe_clk_src
= {
857 .freq_tbl
= ftbl_pcie_pipe_clk_src
,
858 .clkr
.hw
.init
= &(struct clk_init_data
)
860 .name
= "pcie_1_pipe_clk_src",
861 .parent_names
= (const char *[]) { "xo" },
863 .ops
= &clk_rcg2_ops
,
867 static struct freq_tbl ftbl_pdm2_clk_src
[] = {
868 F(60000000, P_GPLL0
, 10, 0, 0),
872 static struct clk_rcg2 pdm2_clk_src
= {
875 .parent_map
= gcc_xo_gpll0_map
,
876 .freq_tbl
= ftbl_pdm2_clk_src
,
877 .clkr
.hw
.init
= &(struct clk_init_data
)
879 .name
= "pdm2_clk_src",
880 .parent_names
= gcc_xo_gpll0
,
882 .ops
= &clk_rcg2_ops
,
886 static struct freq_tbl ftbl_sdcc1_apps_clk_src
[] = {
887 F(144000, P_XO
, 16, 3, 25),
888 F(400000, P_XO
, 12, 1, 4),
889 F(20000000, P_GPLL0
, 15, 1, 2),
890 F(25000000, P_GPLL0
, 12, 1, 2),
891 F(50000000, P_GPLL0
, 12, 0, 0),
892 F(100000000, P_GPLL0
, 6, 0, 0),
893 F(192000000, P_GPLL4
, 2, 0, 0),
894 F(384000000, P_GPLL4
, 1, 0, 0),
898 static struct clk_rcg2 sdcc1_apps_clk_src
= {
902 .parent_map
= gcc_xo_gpll0_gpll4_map
,
903 .freq_tbl
= ftbl_sdcc1_apps_clk_src
,
904 .clkr
.hw
.init
= &(struct clk_init_data
)
906 .name
= "sdcc1_apps_clk_src",
907 .parent_names
= gcc_xo_gpll0_gpll4
,
909 .ops
= &clk_rcg2_floor_ops
,
913 static struct freq_tbl ftbl_sdcc2_4_apps_clk_src
[] = {
914 F(144000, P_XO
, 16, 3, 25),
915 F(400000, P_XO
, 12, 1, 4),
916 F(20000000, P_GPLL0
, 15, 1, 2),
917 F(25000000, P_GPLL0
, 12, 1, 2),
918 F(50000000, P_GPLL0
, 12, 0, 0),
919 F(100000000, P_GPLL0
, 6, 0, 0),
920 F(200000000, P_GPLL0
, 3, 0, 0),
924 static struct clk_rcg2 sdcc2_apps_clk_src
= {
928 .parent_map
= gcc_xo_gpll0_map
,
929 .freq_tbl
= ftbl_sdcc2_4_apps_clk_src
,
930 .clkr
.hw
.init
= &(struct clk_init_data
)
932 .name
= "sdcc2_apps_clk_src",
933 .parent_names
= gcc_xo_gpll0
,
935 .ops
= &clk_rcg2_floor_ops
,
939 static struct clk_rcg2 sdcc3_apps_clk_src
= {
943 .parent_map
= gcc_xo_gpll0_map
,
944 .freq_tbl
= ftbl_sdcc2_4_apps_clk_src
,
945 .clkr
.hw
.init
= &(struct clk_init_data
)
947 .name
= "sdcc3_apps_clk_src",
948 .parent_names
= gcc_xo_gpll0
,
950 .ops
= &clk_rcg2_floor_ops
,
954 static struct clk_rcg2 sdcc4_apps_clk_src
= {
958 .parent_map
= gcc_xo_gpll0_map
,
959 .freq_tbl
= ftbl_sdcc2_4_apps_clk_src
,
960 .clkr
.hw
.init
= &(struct clk_init_data
)
962 .name
= "sdcc4_apps_clk_src",
963 .parent_names
= gcc_xo_gpll0
,
965 .ops
= &clk_rcg2_floor_ops
,
969 static struct freq_tbl ftbl_tsif_ref_clk_src
[] = {
970 F(105500, P_XO
, 1, 1, 182),
974 static struct clk_rcg2 tsif_ref_clk_src
= {
978 .freq_tbl
= ftbl_tsif_ref_clk_src
,
979 .clkr
.hw
.init
= &(struct clk_init_data
)
981 .name
= "tsif_ref_clk_src",
982 .parent_names
= (const char *[]) { "xo" },
984 .ops
= &clk_rcg2_ops
,
988 static struct freq_tbl ftbl_usb30_mock_utmi_clk_src
[] = {
989 F(19200000, P_XO
, 1, 0, 0),
990 F(60000000, P_GPLL0
, 10, 0, 0),
994 static struct clk_rcg2 usb30_mock_utmi_clk_src
= {
997 .parent_map
= gcc_xo_gpll0_map
,
998 .freq_tbl
= ftbl_usb30_mock_utmi_clk_src
,
999 .clkr
.hw
.init
= &(struct clk_init_data
)
1001 .name
= "usb30_mock_utmi_clk_src",
1002 .parent_names
= gcc_xo_gpll0
,
1004 .ops
= &clk_rcg2_ops
,
1008 static struct freq_tbl ftbl_usb3_phy_aux_clk_src
[] = {
1009 F(1200000, P_XO
, 16, 0, 0),
1013 static struct clk_rcg2 usb3_phy_aux_clk_src
= {
1016 .freq_tbl
= ftbl_usb3_phy_aux_clk_src
,
1017 .clkr
.hw
.init
= &(struct clk_init_data
)
1019 .name
= "usb3_phy_aux_clk_src",
1020 .parent_names
= (const char *[]) { "xo" },
1022 .ops
= &clk_rcg2_ops
,
1026 static struct freq_tbl ftbl_usb_hs_system_clk_src
[] = {
1027 F(75000000, P_GPLL0
, 8, 0, 0),
1031 static struct clk_rcg2 usb_hs_system_clk_src
= {
1034 .parent_map
= gcc_xo_gpll0_map
,
1035 .freq_tbl
= ftbl_usb_hs_system_clk_src
,
1036 .clkr
.hw
.init
= &(struct clk_init_data
)
1038 .name
= "usb_hs_system_clk_src",
1039 .parent_names
= gcc_xo_gpll0
,
1041 .ops
= &clk_rcg2_ops
,
1045 static struct clk_branch gcc_blsp1_ahb_clk
= {
1047 .halt_check
= BRANCH_HALT_VOTED
,
1049 .enable_reg
= 0x1484,
1050 .enable_mask
= BIT(17),
1051 .hw
.init
= &(struct clk_init_data
)
1053 .name
= "gcc_blsp1_ahb_clk",
1054 .ops
= &clk_branch2_ops
,
1059 static struct clk_branch gcc_blsp1_qup1_i2c_apps_clk
= {
1062 .enable_reg
= 0x0648,
1063 .enable_mask
= BIT(0),
1064 .hw
.init
= &(struct clk_init_data
)
1066 .name
= "gcc_blsp1_qup1_i2c_apps_clk",
1067 .parent_names
= (const char *[]) {
1068 "blsp1_qup1_i2c_apps_clk_src",
1071 .flags
= CLK_SET_RATE_PARENT
,
1072 .ops
= &clk_branch2_ops
,
1077 static struct clk_branch gcc_blsp1_qup1_spi_apps_clk
= {
1080 .enable_reg
= 0x0644,
1081 .enable_mask
= BIT(0),
1082 .hw
.init
= &(struct clk_init_data
)
1084 .name
= "gcc_blsp1_qup1_spi_apps_clk",
1085 .parent_names
= (const char *[]) {
1086 "blsp1_qup1_spi_apps_clk_src",
1089 .flags
= CLK_SET_RATE_PARENT
,
1090 .ops
= &clk_branch2_ops
,
1095 static struct clk_branch gcc_blsp1_qup2_i2c_apps_clk
= {
1098 .enable_reg
= 0x06c8,
1099 .enable_mask
= BIT(0),
1100 .hw
.init
= &(struct clk_init_data
)
1102 .name
= "gcc_blsp1_qup2_i2c_apps_clk",
1103 .parent_names
= (const char *[]) {
1104 "blsp1_qup2_i2c_apps_clk_src",
1107 .flags
= CLK_SET_RATE_PARENT
,
1108 .ops
= &clk_branch2_ops
,
1113 static struct clk_branch gcc_blsp1_qup2_spi_apps_clk
= {
1116 .enable_reg
= 0x06c4,
1117 .enable_mask
= BIT(0),
1118 .hw
.init
= &(struct clk_init_data
)
1120 .name
= "gcc_blsp1_qup2_spi_apps_clk",
1121 .parent_names
= (const char *[]) {
1122 "blsp1_qup2_spi_apps_clk_src",
1125 .flags
= CLK_SET_RATE_PARENT
,
1126 .ops
= &clk_branch2_ops
,
1131 static struct clk_branch gcc_blsp1_qup3_i2c_apps_clk
= {
1134 .enable_reg
= 0x0748,
1135 .enable_mask
= BIT(0),
1136 .hw
.init
= &(struct clk_init_data
)
1138 .name
= "gcc_blsp1_qup3_i2c_apps_clk",
1139 .parent_names
= (const char *[]) {
1140 "blsp1_qup3_i2c_apps_clk_src",
1143 .flags
= CLK_SET_RATE_PARENT
,
1144 .ops
= &clk_branch2_ops
,
1149 static struct clk_branch gcc_blsp1_qup3_spi_apps_clk
= {
1152 .enable_reg
= 0x0744,
1153 .enable_mask
= BIT(0),
1154 .hw
.init
= &(struct clk_init_data
)
1156 .name
= "gcc_blsp1_qup3_spi_apps_clk",
1157 .parent_names
= (const char *[]) {
1158 "blsp1_qup3_spi_apps_clk_src",
1161 .flags
= CLK_SET_RATE_PARENT
,
1162 .ops
= &clk_branch2_ops
,
1167 static struct clk_branch gcc_blsp1_qup4_i2c_apps_clk
= {
1170 .enable_reg
= 0x07c8,
1171 .enable_mask
= BIT(0),
1172 .hw
.init
= &(struct clk_init_data
)
1174 .name
= "gcc_blsp1_qup4_i2c_apps_clk",
1175 .parent_names
= (const char *[]) {
1176 "blsp1_qup4_i2c_apps_clk_src",
1179 .flags
= CLK_SET_RATE_PARENT
,
1180 .ops
= &clk_branch2_ops
,
1185 static struct clk_branch gcc_blsp1_qup4_spi_apps_clk
= {
1188 .enable_reg
= 0x07c4,
1189 .enable_mask
= BIT(0),
1190 .hw
.init
= &(struct clk_init_data
)
1192 .name
= "gcc_blsp1_qup4_spi_apps_clk",
1193 .parent_names
= (const char *[]) {
1194 "blsp1_qup4_spi_apps_clk_src",
1197 .flags
= CLK_SET_RATE_PARENT
,
1198 .ops
= &clk_branch2_ops
,
1203 static struct clk_branch gcc_blsp1_qup5_i2c_apps_clk
= {
1206 .enable_reg
= 0x0848,
1207 .enable_mask
= BIT(0),
1208 .hw
.init
= &(struct clk_init_data
)
1210 .name
= "gcc_blsp1_qup5_i2c_apps_clk",
1211 .parent_names
= (const char *[]) {
1212 "blsp1_qup5_i2c_apps_clk_src",
1215 .flags
= CLK_SET_RATE_PARENT
,
1216 .ops
= &clk_branch2_ops
,
1221 static struct clk_branch gcc_blsp1_qup5_spi_apps_clk
= {
1224 .enable_reg
= 0x0844,
1225 .enable_mask
= BIT(0),
1226 .hw
.init
= &(struct clk_init_data
)
1228 .name
= "gcc_blsp1_qup5_spi_apps_clk",
1229 .parent_names
= (const char *[]) {
1230 "blsp1_qup5_spi_apps_clk_src",
1233 .flags
= CLK_SET_RATE_PARENT
,
1234 .ops
= &clk_branch2_ops
,
1239 static struct clk_branch gcc_blsp1_qup6_i2c_apps_clk
= {
1242 .enable_reg
= 0x08c8,
1243 .enable_mask
= BIT(0),
1244 .hw
.init
= &(struct clk_init_data
)
1246 .name
= "gcc_blsp1_qup6_i2c_apps_clk",
1247 .parent_names
= (const char *[]) {
1248 "blsp1_qup6_i2c_apps_clk_src",
1251 .flags
= CLK_SET_RATE_PARENT
,
1252 .ops
= &clk_branch2_ops
,
1257 static struct clk_branch gcc_blsp1_qup6_spi_apps_clk
= {
1260 .enable_reg
= 0x08c4,
1261 .enable_mask
= BIT(0),
1262 .hw
.init
= &(struct clk_init_data
)
1264 .name
= "gcc_blsp1_qup6_spi_apps_clk",
1265 .parent_names
= (const char *[]) {
1266 "blsp1_qup6_spi_apps_clk_src",
1269 .flags
= CLK_SET_RATE_PARENT
,
1270 .ops
= &clk_branch2_ops
,
1275 static struct clk_branch gcc_blsp1_uart1_apps_clk
= {
1278 .enable_reg
= 0x0684,
1279 .enable_mask
= BIT(0),
1280 .hw
.init
= &(struct clk_init_data
)
1282 .name
= "gcc_blsp1_uart1_apps_clk",
1283 .parent_names
= (const char *[]) {
1284 "blsp1_uart1_apps_clk_src",
1287 .flags
= CLK_SET_RATE_PARENT
,
1288 .ops
= &clk_branch2_ops
,
1293 static struct clk_branch gcc_blsp1_uart2_apps_clk
= {
1296 .enable_reg
= 0x0704,
1297 .enable_mask
= BIT(0),
1298 .hw
.init
= &(struct clk_init_data
)
1300 .name
= "gcc_blsp1_uart2_apps_clk",
1301 .parent_names
= (const char *[]) {
1302 "blsp1_uart2_apps_clk_src",
1305 .flags
= CLK_SET_RATE_PARENT
,
1306 .ops
= &clk_branch2_ops
,
1311 static struct clk_branch gcc_blsp1_uart3_apps_clk
= {
1314 .enable_reg
= 0x0784,
1315 .enable_mask
= BIT(0),
1316 .hw
.init
= &(struct clk_init_data
)
1318 .name
= "gcc_blsp1_uart3_apps_clk",
1319 .parent_names
= (const char *[]) {
1320 "blsp1_uart3_apps_clk_src",
1323 .flags
= CLK_SET_RATE_PARENT
,
1324 .ops
= &clk_branch2_ops
,
1329 static struct clk_branch gcc_blsp1_uart4_apps_clk
= {
1332 .enable_reg
= 0x0804,
1333 .enable_mask
= BIT(0),
1334 .hw
.init
= &(struct clk_init_data
)
1336 .name
= "gcc_blsp1_uart4_apps_clk",
1337 .parent_names
= (const char *[]) {
1338 "blsp1_uart4_apps_clk_src",
1341 .flags
= CLK_SET_RATE_PARENT
,
1342 .ops
= &clk_branch2_ops
,
1347 static struct clk_branch gcc_blsp1_uart5_apps_clk
= {
1350 .enable_reg
= 0x0884,
1351 .enable_mask
= BIT(0),
1352 .hw
.init
= &(struct clk_init_data
)
1354 .name
= "gcc_blsp1_uart5_apps_clk",
1355 .parent_names
= (const char *[]) {
1356 "blsp1_uart5_apps_clk_src",
1359 .flags
= CLK_SET_RATE_PARENT
,
1360 .ops
= &clk_branch2_ops
,
1365 static struct clk_branch gcc_blsp1_uart6_apps_clk
= {
1368 .enable_reg
= 0x0904,
1369 .enable_mask
= BIT(0),
1370 .hw
.init
= &(struct clk_init_data
)
1372 .name
= "gcc_blsp1_uart6_apps_clk",
1373 .parent_names
= (const char *[]) {
1374 "blsp1_uart6_apps_clk_src",
1377 .flags
= CLK_SET_RATE_PARENT
,
1378 .ops
= &clk_branch2_ops
,
1383 static struct clk_branch gcc_blsp2_ahb_clk
= {
1385 .halt_check
= BRANCH_HALT_VOTED
,
1387 .enable_reg
= 0x1484,
1388 .enable_mask
= BIT(15),
1389 .hw
.init
= &(struct clk_init_data
)
1391 .name
= "gcc_blsp2_ahb_clk",
1392 .ops
= &clk_branch2_ops
,
1397 static struct clk_branch gcc_blsp2_qup1_i2c_apps_clk
= {
1400 .enable_reg
= 0x0988,
1401 .enable_mask
= BIT(0),
1402 .hw
.init
= &(struct clk_init_data
)
1404 .name
= "gcc_blsp2_qup1_i2c_apps_clk",
1405 .parent_names
= (const char *[]) {
1406 "blsp2_qup1_i2c_apps_clk_src",
1409 .flags
= CLK_SET_RATE_PARENT
,
1410 .ops
= &clk_branch2_ops
,
1415 static struct clk_branch gcc_blsp2_qup1_spi_apps_clk
= {
1418 .enable_reg
= 0x0984,
1419 .enable_mask
= BIT(0),
1420 .hw
.init
= &(struct clk_init_data
)
1422 .name
= "gcc_blsp2_qup1_spi_apps_clk",
1423 .parent_names
= (const char *[]) {
1424 "blsp2_qup1_spi_apps_clk_src",
1427 .flags
= CLK_SET_RATE_PARENT
,
1428 .ops
= &clk_branch2_ops
,
1433 static struct clk_branch gcc_blsp2_qup2_i2c_apps_clk
= {
1436 .enable_reg
= 0x0a08,
1437 .enable_mask
= BIT(0),
1438 .hw
.init
= &(struct clk_init_data
)
1440 .name
= "gcc_blsp2_qup2_i2c_apps_clk",
1441 .parent_names
= (const char *[]) {
1442 "blsp2_qup2_i2c_apps_clk_src",
1445 .flags
= CLK_SET_RATE_PARENT
,
1446 .ops
= &clk_branch2_ops
,
1451 static struct clk_branch gcc_blsp2_qup2_spi_apps_clk
= {
1454 .enable_reg
= 0x0a04,
1455 .enable_mask
= BIT(0),
1456 .hw
.init
= &(struct clk_init_data
)
1458 .name
= "gcc_blsp2_qup2_spi_apps_clk",
1459 .parent_names
= (const char *[]) {
1460 "blsp2_qup2_spi_apps_clk_src",
1463 .flags
= CLK_SET_RATE_PARENT
,
1464 .ops
= &clk_branch2_ops
,
1469 static struct clk_branch gcc_blsp2_qup3_i2c_apps_clk
= {
1472 .enable_reg
= 0x0a88,
1473 .enable_mask
= BIT(0),
1474 .hw
.init
= &(struct clk_init_data
)
1476 .name
= "gcc_blsp2_qup3_i2c_apps_clk",
1477 .parent_names
= (const char *[]) {
1478 "blsp2_qup3_i2c_apps_clk_src",
1481 .flags
= CLK_SET_RATE_PARENT
,
1482 .ops
= &clk_branch2_ops
,
1487 static struct clk_branch gcc_blsp2_qup3_spi_apps_clk
= {
1490 .enable_reg
= 0x0a84,
1491 .enable_mask
= BIT(0),
1492 .hw
.init
= &(struct clk_init_data
)
1494 .name
= "gcc_blsp2_qup3_spi_apps_clk",
1495 .parent_names
= (const char *[]) {
1496 "blsp2_qup3_spi_apps_clk_src",
1499 .flags
= CLK_SET_RATE_PARENT
,
1500 .ops
= &clk_branch2_ops
,
1505 static struct clk_branch gcc_blsp2_qup4_i2c_apps_clk
= {
1508 .enable_reg
= 0x0b08,
1509 .enable_mask
= BIT(0),
1510 .hw
.init
= &(struct clk_init_data
)
1512 .name
= "gcc_blsp2_qup4_i2c_apps_clk",
1513 .parent_names
= (const char *[]) {
1514 "blsp2_qup4_i2c_apps_clk_src",
1517 .flags
= CLK_SET_RATE_PARENT
,
1518 .ops
= &clk_branch2_ops
,
1523 static struct clk_branch gcc_blsp2_qup4_spi_apps_clk
= {
1526 .enable_reg
= 0x0b04,
1527 .enable_mask
= BIT(0),
1528 .hw
.init
= &(struct clk_init_data
)
1530 .name
= "gcc_blsp2_qup4_spi_apps_clk",
1531 .parent_names
= (const char *[]) {
1532 "blsp2_qup4_spi_apps_clk_src",
1535 .flags
= CLK_SET_RATE_PARENT
,
1536 .ops
= &clk_branch2_ops
,
1541 static struct clk_branch gcc_blsp2_qup5_i2c_apps_clk
= {
1544 .enable_reg
= 0x0b88,
1545 .enable_mask
= BIT(0),
1546 .hw
.init
= &(struct clk_init_data
)
1548 .name
= "gcc_blsp2_qup5_i2c_apps_clk",
1549 .parent_names
= (const char *[]) {
1550 "blsp2_qup5_i2c_apps_clk_src",
1553 .flags
= CLK_SET_RATE_PARENT
,
1554 .ops
= &clk_branch2_ops
,
1559 static struct clk_branch gcc_blsp2_qup5_spi_apps_clk
= {
1562 .enable_reg
= 0x0b84,
1563 .enable_mask
= BIT(0),
1564 .hw
.init
= &(struct clk_init_data
)
1566 .name
= "gcc_blsp2_qup5_spi_apps_clk",
1567 .parent_names
= (const char *[]) {
1568 "blsp2_qup5_spi_apps_clk_src",
1571 .flags
= CLK_SET_RATE_PARENT
,
1572 .ops
= &clk_branch2_ops
,
1577 static struct clk_branch gcc_blsp2_qup6_i2c_apps_clk
= {
1580 .enable_reg
= 0x0c08,
1581 .enable_mask
= BIT(0),
1582 .hw
.init
= &(struct clk_init_data
)
1584 .name
= "gcc_blsp2_qup6_i2c_apps_clk",
1585 .parent_names
= (const char *[]) {
1586 "blsp2_qup6_i2c_apps_clk_src",
1589 .flags
= CLK_SET_RATE_PARENT
,
1590 .ops
= &clk_branch2_ops
,
1595 static struct clk_branch gcc_blsp2_qup6_spi_apps_clk
= {
1598 .enable_reg
= 0x0c04,
1599 .enable_mask
= BIT(0),
1600 .hw
.init
= &(struct clk_init_data
)
1602 .name
= "gcc_blsp2_qup6_spi_apps_clk",
1603 .parent_names
= (const char *[]) {
1604 "blsp2_qup6_spi_apps_clk_src",
1607 .flags
= CLK_SET_RATE_PARENT
,
1608 .ops
= &clk_branch2_ops
,
1613 static struct clk_branch gcc_blsp2_uart1_apps_clk
= {
1616 .enable_reg
= 0x09c4,
1617 .enable_mask
= BIT(0),
1618 .hw
.init
= &(struct clk_init_data
)
1620 .name
= "gcc_blsp2_uart1_apps_clk",
1621 .parent_names
= (const char *[]) {
1622 "blsp2_uart1_apps_clk_src",
1625 .flags
= CLK_SET_RATE_PARENT
,
1626 .ops
= &clk_branch2_ops
,
1631 static struct clk_branch gcc_blsp2_uart2_apps_clk
= {
1634 .enable_reg
= 0x0a44,
1635 .enable_mask
= BIT(0),
1636 .hw
.init
= &(struct clk_init_data
)
1638 .name
= "gcc_blsp2_uart2_apps_clk",
1639 .parent_names
= (const char *[]) {
1640 "blsp2_uart2_apps_clk_src",
1643 .flags
= CLK_SET_RATE_PARENT
,
1644 .ops
= &clk_branch2_ops
,
1649 static struct clk_branch gcc_blsp2_uart3_apps_clk
= {
1652 .enable_reg
= 0x0ac4,
1653 .enable_mask
= BIT(0),
1654 .hw
.init
= &(struct clk_init_data
)
1656 .name
= "gcc_blsp2_uart3_apps_clk",
1657 .parent_names
= (const char *[]) {
1658 "blsp2_uart3_apps_clk_src",
1661 .flags
= CLK_SET_RATE_PARENT
,
1662 .ops
= &clk_branch2_ops
,
1667 static struct clk_branch gcc_blsp2_uart4_apps_clk
= {
1670 .enable_reg
= 0x0b44,
1671 .enable_mask
= BIT(0),
1672 .hw
.init
= &(struct clk_init_data
)
1674 .name
= "gcc_blsp2_uart4_apps_clk",
1675 .parent_names
= (const char *[]) {
1676 "blsp2_uart4_apps_clk_src",
1679 .flags
= CLK_SET_RATE_PARENT
,
1680 .ops
= &clk_branch2_ops
,
1685 static struct clk_branch gcc_blsp2_uart5_apps_clk
= {
1688 .enable_reg
= 0x0bc4,
1689 .enable_mask
= BIT(0),
1690 .hw
.init
= &(struct clk_init_data
)
1692 .name
= "gcc_blsp2_uart5_apps_clk",
1693 .parent_names
= (const char *[]) {
1694 "blsp2_uart5_apps_clk_src",
1697 .flags
= CLK_SET_RATE_PARENT
,
1698 .ops
= &clk_branch2_ops
,
1703 static struct clk_branch gcc_blsp2_uart6_apps_clk
= {
1706 .enable_reg
= 0x0c44,
1707 .enable_mask
= BIT(0),
1708 .hw
.init
= &(struct clk_init_data
)
1710 .name
= "gcc_blsp2_uart6_apps_clk",
1711 .parent_names
= (const char *[]) {
1712 "blsp2_uart6_apps_clk_src",
1715 .flags
= CLK_SET_RATE_PARENT
,
1716 .ops
= &clk_branch2_ops
,
1721 static struct clk_branch gcc_gp1_clk
= {
1724 .enable_reg
= 0x1900,
1725 .enable_mask
= BIT(0),
1726 .hw
.init
= &(struct clk_init_data
)
1728 .name
= "gcc_gp1_clk",
1729 .parent_names
= (const char *[]) {
1733 .flags
= CLK_SET_RATE_PARENT
,
1734 .ops
= &clk_branch2_ops
,
1739 static struct clk_branch gcc_gp2_clk
= {
1742 .enable_reg
= 0x1940,
1743 .enable_mask
= BIT(0),
1744 .hw
.init
= &(struct clk_init_data
)
1746 .name
= "gcc_gp2_clk",
1747 .parent_names
= (const char *[]) {
1751 .flags
= CLK_SET_RATE_PARENT
,
1752 .ops
= &clk_branch2_ops
,
1757 static struct clk_branch gcc_gp3_clk
= {
1760 .enable_reg
= 0x1980,
1761 .enable_mask
= BIT(0),
1762 .hw
.init
= &(struct clk_init_data
)
1764 .name
= "gcc_gp3_clk",
1765 .parent_names
= (const char *[]) {
1769 .flags
= CLK_SET_RATE_PARENT
,
1770 .ops
= &clk_branch2_ops
,
1775 static struct clk_branch gcc_pcie_0_aux_clk
= {
1778 .enable_reg
= 0x1ad4,
1779 .enable_mask
= BIT(0),
1780 .hw
.init
= &(struct clk_init_data
)
1782 .name
= "gcc_pcie_0_aux_clk",
1783 .parent_names
= (const char *[]) {
1784 "pcie_0_aux_clk_src",
1787 .flags
= CLK_SET_RATE_PARENT
,
1788 .ops
= &clk_branch2_ops
,
1793 static struct clk_branch gcc_pcie_0_pipe_clk
= {
1795 .halt_check
= BRANCH_HALT_DELAY
,
1797 .enable_reg
= 0x1ad8,
1798 .enable_mask
= BIT(0),
1799 .hw
.init
= &(struct clk_init_data
)
1801 .name
= "gcc_pcie_0_pipe_clk",
1802 .parent_names
= (const char *[]) {
1803 "pcie_0_pipe_clk_src",
1806 .flags
= CLK_SET_RATE_PARENT
,
1807 .ops
= &clk_branch2_ops
,
1812 static struct clk_branch gcc_pcie_1_aux_clk
= {
1815 .enable_reg
= 0x1b54,
1816 .enable_mask
= BIT(0),
1817 .hw
.init
= &(struct clk_init_data
)
1819 .name
= "gcc_pcie_1_aux_clk",
1820 .parent_names
= (const char *[]) {
1821 "pcie_1_aux_clk_src",
1824 .flags
= CLK_SET_RATE_PARENT
,
1825 .ops
= &clk_branch2_ops
,
1830 static struct clk_branch gcc_pcie_1_pipe_clk
= {
1832 .halt_check
= BRANCH_HALT_DELAY
,
1834 .enable_reg
= 0x1b58,
1835 .enable_mask
= BIT(0),
1836 .hw
.init
= &(struct clk_init_data
)
1838 .name
= "gcc_pcie_1_pipe_clk",
1839 .parent_names
= (const char *[]) {
1840 "pcie_1_pipe_clk_src",
1843 .flags
= CLK_SET_RATE_PARENT
,
1844 .ops
= &clk_branch2_ops
,
1849 static struct clk_branch gcc_pdm2_clk
= {
1852 .enable_reg
= 0x0ccc,
1853 .enable_mask
= BIT(0),
1854 .hw
.init
= &(struct clk_init_data
)
1856 .name
= "gcc_pdm2_clk",
1857 .parent_names
= (const char *[]) {
1861 .flags
= CLK_SET_RATE_PARENT
,
1862 .ops
= &clk_branch2_ops
,
1867 static struct clk_branch gcc_sdcc1_apps_clk
= {
1870 .enable_reg
= 0x04c4,
1871 .enable_mask
= BIT(0),
1872 .hw
.init
= &(struct clk_init_data
)
1874 .name
= "gcc_sdcc1_apps_clk",
1875 .parent_names
= (const char *[]) {
1876 "sdcc1_apps_clk_src",
1879 .flags
= CLK_SET_RATE_PARENT
,
1880 .ops
= &clk_branch2_ops
,
1885 static struct clk_branch gcc_sdcc1_ahb_clk
= {
1888 .enable_reg
= 0x04c8,
1889 .enable_mask
= BIT(0),
1890 .hw
.init
= &(struct clk_init_data
)
1892 .name
= "gcc_sdcc1_ahb_clk",
1893 .parent_names
= (const char *[]){
1894 "periph_noc_clk_src",
1897 .ops
= &clk_branch2_ops
,
1902 static struct clk_branch gcc_sdcc2_apps_clk
= {
1905 .enable_reg
= 0x0504,
1906 .enable_mask
= BIT(0),
1907 .hw
.init
= &(struct clk_init_data
)
1909 .name
= "gcc_sdcc2_apps_clk",
1910 .parent_names
= (const char *[]) {
1911 "sdcc2_apps_clk_src",
1914 .flags
= CLK_SET_RATE_PARENT
,
1915 .ops
= &clk_branch2_ops
,
1920 static struct clk_branch gcc_sdcc3_apps_clk
= {
1923 .enable_reg
= 0x0544,
1924 .enable_mask
= BIT(0),
1925 .hw
.init
= &(struct clk_init_data
)
1927 .name
= "gcc_sdcc3_apps_clk",
1928 .parent_names
= (const char *[]) {
1929 "sdcc3_apps_clk_src",
1932 .flags
= CLK_SET_RATE_PARENT
,
1933 .ops
= &clk_branch2_ops
,
1938 static struct clk_branch gcc_sdcc4_apps_clk
= {
1941 .enable_reg
= 0x0584,
1942 .enable_mask
= BIT(0),
1943 .hw
.init
= &(struct clk_init_data
)
1945 .name
= "gcc_sdcc4_apps_clk",
1946 .parent_names
= (const char *[]) {
1947 "sdcc4_apps_clk_src",
1950 .flags
= CLK_SET_RATE_PARENT
,
1951 .ops
= &clk_branch2_ops
,
1956 static struct clk_branch gcc_sys_noc_ufs_axi_clk
= {
1959 .enable_reg
= 0x1d7c,
1960 .enable_mask
= BIT(0),
1961 .hw
.init
= &(struct clk_init_data
)
1963 .name
= "gcc_sys_noc_ufs_axi_clk",
1964 .parent_names
= (const char *[]) {
1968 .flags
= CLK_SET_RATE_PARENT
,
1969 .ops
= &clk_branch2_ops
,
1974 static struct clk_branch gcc_sys_noc_usb3_axi_clk
= {
1977 .enable_reg
= 0x03fc,
1978 .enable_mask
= BIT(0),
1979 .hw
.init
= &(struct clk_init_data
)
1981 .name
= "gcc_sys_noc_usb3_axi_clk",
1982 .parent_names
= (const char *[]) {
1983 "usb30_master_clk_src",
1986 .flags
= CLK_SET_RATE_PARENT
,
1987 .ops
= &clk_branch2_ops
,
1992 static struct clk_branch gcc_tsif_ref_clk
= {
1995 .enable_reg
= 0x0d88,
1996 .enable_mask
= BIT(0),
1997 .hw
.init
= &(struct clk_init_data
)
1999 .name
= "gcc_tsif_ref_clk",
2000 .parent_names
= (const char *[]) {
2004 .flags
= CLK_SET_RATE_PARENT
,
2005 .ops
= &clk_branch2_ops
,
2010 static struct clk_branch gcc_ufs_axi_clk
= {
2013 .enable_reg
= 0x1d48,
2014 .enable_mask
= BIT(0),
2015 .hw
.init
= &(struct clk_init_data
)
2017 .name
= "gcc_ufs_axi_clk",
2018 .parent_names
= (const char *[]) {
2022 .flags
= CLK_SET_RATE_PARENT
,
2023 .ops
= &clk_branch2_ops
,
2028 static struct clk_branch gcc_ufs_rx_cfg_clk
= {
2031 .enable_reg
= 0x1d54,
2032 .enable_mask
= BIT(0),
2033 .hw
.init
= &(struct clk_init_data
)
2035 .name
= "gcc_ufs_rx_cfg_clk",
2036 .parent_names
= (const char *[]) {
2040 .flags
= CLK_SET_RATE_PARENT
,
2041 .ops
= &clk_branch2_ops
,
2046 static struct clk_branch gcc_ufs_tx_cfg_clk
= {
2049 .enable_reg
= 0x1d50,
2050 .enable_mask
= BIT(0),
2051 .hw
.init
= &(struct clk_init_data
)
2053 .name
= "gcc_ufs_tx_cfg_clk",
2054 .parent_names
= (const char *[]) {
2058 .flags
= CLK_SET_RATE_PARENT
,
2059 .ops
= &clk_branch2_ops
,
2064 static struct clk_branch gcc_usb30_master_clk
= {
2067 .enable_reg
= 0x03c8,
2068 .enable_mask
= BIT(0),
2069 .hw
.init
= &(struct clk_init_data
)
2071 .name
= "gcc_usb30_master_clk",
2072 .parent_names
= (const char *[]) {
2073 "usb30_master_clk_src",
2076 .flags
= CLK_SET_RATE_PARENT
,
2077 .ops
= &clk_branch2_ops
,
2082 static struct clk_branch gcc_usb30_mock_utmi_clk
= {
2085 .enable_reg
= 0x03d0,
2086 .enable_mask
= BIT(0),
2087 .hw
.init
= &(struct clk_init_data
)
2089 .name
= "gcc_usb30_mock_utmi_clk",
2090 .parent_names
= (const char *[]) {
2091 "usb30_mock_utmi_clk_src",
2094 .flags
= CLK_SET_RATE_PARENT
,
2095 .ops
= &clk_branch2_ops
,
2100 static struct clk_branch gcc_usb3_phy_aux_clk
= {
2103 .enable_reg
= 0x1408,
2104 .enable_mask
= BIT(0),
2105 .hw
.init
= &(struct clk_init_data
)
2107 .name
= "gcc_usb3_phy_aux_clk",
2108 .parent_names
= (const char *[]) {
2109 "usb3_phy_aux_clk_src",
2112 .flags
= CLK_SET_RATE_PARENT
,
2113 .ops
= &clk_branch2_ops
,
2118 static struct clk_branch gcc_usb_hs_system_clk
= {
2121 .enable_reg
= 0x0484,
2122 .enable_mask
= BIT(0),
2123 .hw
.init
= &(struct clk_init_data
)
2125 .name
= "gcc_usb_hs_system_clk",
2126 .parent_names
= (const char *[]) {
2127 "usb_hs_system_clk_src",
2130 .flags
= CLK_SET_RATE_PARENT
,
2131 .ops
= &clk_branch2_ops
,
2136 static struct clk_regmap
*gcc_msm8994_clocks
[] = {
2137 [GPLL0_EARLY
] = &gpll0_early
.clkr
,
2138 [GPLL0
] = &gpll0
.clkr
,
2139 [GPLL4_EARLY
] = &gpll4_early
.clkr
,
2140 [GPLL4
] = &gpll4
.clkr
,
2141 [UFS_AXI_CLK_SRC
] = &ufs_axi_clk_src
.clkr
,
2142 [USB30_MASTER_CLK_SRC
] = &usb30_master_clk_src
.clkr
,
2143 [BLSP1_QUP1_I2C_APPS_CLK_SRC
] = &blsp1_qup1_i2c_apps_clk_src
.clkr
,
2144 [BLSP1_QUP1_SPI_APPS_CLK_SRC
] = &blsp1_qup1_spi_apps_clk_src
.clkr
,
2145 [BLSP1_QUP2_I2C_APPS_CLK_SRC
] = &blsp1_qup2_i2c_apps_clk_src
.clkr
,
2146 [BLSP1_QUP2_SPI_APPS_CLK_SRC
] = &blsp1_qup2_spi_apps_clk_src
.clkr
,
2147 [BLSP1_QUP3_I2C_APPS_CLK_SRC
] = &blsp1_qup3_i2c_apps_clk_src
.clkr
,
2148 [BLSP1_QUP3_SPI_APPS_CLK_SRC
] = &blsp1_qup3_spi_apps_clk_src
.clkr
,
2149 [BLSP1_QUP4_I2C_APPS_CLK_SRC
] = &blsp1_qup4_i2c_apps_clk_src
.clkr
,
2150 [BLSP1_QUP4_SPI_APPS_CLK_SRC
] = &blsp1_qup4_spi_apps_clk_src
.clkr
,
2151 [BLSP1_QUP5_I2C_APPS_CLK_SRC
] = &blsp1_qup5_i2c_apps_clk_src
.clkr
,
2152 [BLSP1_QUP5_SPI_APPS_CLK_SRC
] = &blsp1_qup5_spi_apps_clk_src
.clkr
,
2153 [BLSP1_QUP6_I2C_APPS_CLK_SRC
] = &blsp1_qup6_i2c_apps_clk_src
.clkr
,
2154 [BLSP1_QUP6_SPI_APPS_CLK_SRC
] = &blsp1_qup6_spi_apps_clk_src
.clkr
,
2155 [BLSP1_UART1_APPS_CLK_SRC
] = &blsp1_uart1_apps_clk_src
.clkr
,
2156 [BLSP1_UART2_APPS_CLK_SRC
] = &blsp1_uart2_apps_clk_src
.clkr
,
2157 [BLSP1_UART3_APPS_CLK_SRC
] = &blsp1_uart3_apps_clk_src
.clkr
,
2158 [BLSP1_UART4_APPS_CLK_SRC
] = &blsp1_uart4_apps_clk_src
.clkr
,
2159 [BLSP1_UART5_APPS_CLK_SRC
] = &blsp1_uart5_apps_clk_src
.clkr
,
2160 [BLSP1_UART6_APPS_CLK_SRC
] = &blsp1_uart6_apps_clk_src
.clkr
,
2161 [BLSP2_QUP1_I2C_APPS_CLK_SRC
] = &blsp2_qup1_i2c_apps_clk_src
.clkr
,
2162 [BLSP2_QUP1_SPI_APPS_CLK_SRC
] = &blsp2_qup1_spi_apps_clk_src
.clkr
,
2163 [BLSP2_QUP2_I2C_APPS_CLK_SRC
] = &blsp2_qup2_i2c_apps_clk_src
.clkr
,
2164 [BLSP2_QUP2_SPI_APPS_CLK_SRC
] = &blsp2_qup2_spi_apps_clk_src
.clkr
,
2165 [BLSP2_QUP3_I2C_APPS_CLK_SRC
] = &blsp2_qup3_i2c_apps_clk_src
.clkr
,
2166 [BLSP2_QUP3_SPI_APPS_CLK_SRC
] = &blsp2_qup3_spi_apps_clk_src
.clkr
,
2167 [BLSP2_QUP4_I2C_APPS_CLK_SRC
] = &blsp2_qup4_i2c_apps_clk_src
.clkr
,
2168 [BLSP2_QUP4_SPI_APPS_CLK_SRC
] = &blsp2_qup4_spi_apps_clk_src
.clkr
,
2169 [BLSP2_QUP5_I2C_APPS_CLK_SRC
] = &blsp2_qup5_i2c_apps_clk_src
.clkr
,
2170 [BLSP2_QUP5_SPI_APPS_CLK_SRC
] = &blsp2_qup5_spi_apps_clk_src
.clkr
,
2171 [BLSP2_QUP6_I2C_APPS_CLK_SRC
] = &blsp2_qup6_i2c_apps_clk_src
.clkr
,
2172 [BLSP2_QUP6_SPI_APPS_CLK_SRC
] = &blsp2_qup6_spi_apps_clk_src
.clkr
,
2173 [BLSP2_UART1_APPS_CLK_SRC
] = &blsp2_uart1_apps_clk_src
.clkr
,
2174 [BLSP2_UART2_APPS_CLK_SRC
] = &blsp2_uart2_apps_clk_src
.clkr
,
2175 [BLSP2_UART3_APPS_CLK_SRC
] = &blsp2_uart3_apps_clk_src
.clkr
,
2176 [BLSP2_UART4_APPS_CLK_SRC
] = &blsp2_uart4_apps_clk_src
.clkr
,
2177 [BLSP2_UART5_APPS_CLK_SRC
] = &blsp2_uart5_apps_clk_src
.clkr
,
2178 [BLSP2_UART6_APPS_CLK_SRC
] = &blsp2_uart6_apps_clk_src
.clkr
,
2179 [GP1_CLK_SRC
] = &gp1_clk_src
.clkr
,
2180 [GP2_CLK_SRC
] = &gp2_clk_src
.clkr
,
2181 [GP3_CLK_SRC
] = &gp3_clk_src
.clkr
,
2182 [PCIE_0_AUX_CLK_SRC
] = &pcie_0_aux_clk_src
.clkr
,
2183 [PCIE_0_PIPE_CLK_SRC
] = &pcie_0_pipe_clk_src
.clkr
,
2184 [PCIE_1_AUX_CLK_SRC
] = &pcie_1_aux_clk_src
.clkr
,
2185 [PCIE_1_PIPE_CLK_SRC
] = &pcie_1_pipe_clk_src
.clkr
,
2186 [PDM2_CLK_SRC
] = &pdm2_clk_src
.clkr
,
2187 [SDCC1_APPS_CLK_SRC
] = &sdcc1_apps_clk_src
.clkr
,
2188 [SDCC2_APPS_CLK_SRC
] = &sdcc2_apps_clk_src
.clkr
,
2189 [SDCC3_APPS_CLK_SRC
] = &sdcc3_apps_clk_src
.clkr
,
2190 [SDCC4_APPS_CLK_SRC
] = &sdcc4_apps_clk_src
.clkr
,
2191 [TSIF_REF_CLK_SRC
] = &tsif_ref_clk_src
.clkr
,
2192 [USB30_MOCK_UTMI_CLK_SRC
] = &usb30_mock_utmi_clk_src
.clkr
,
2193 [USB3_PHY_AUX_CLK_SRC
] = &usb3_phy_aux_clk_src
.clkr
,
2194 [USB_HS_SYSTEM_CLK_SRC
] = &usb_hs_system_clk_src
.clkr
,
2195 [GCC_BLSP1_AHB_CLK
] = &gcc_blsp1_ahb_clk
.clkr
,
2196 [GCC_BLSP1_QUP1_I2C_APPS_CLK
] = &gcc_blsp1_qup1_i2c_apps_clk
.clkr
,
2197 [GCC_BLSP1_QUP1_SPI_APPS_CLK
] = &gcc_blsp1_qup1_spi_apps_clk
.clkr
,
2198 [GCC_BLSP1_QUP2_I2C_APPS_CLK
] = &gcc_blsp1_qup2_i2c_apps_clk
.clkr
,
2199 [GCC_BLSP1_QUP2_SPI_APPS_CLK
] = &gcc_blsp1_qup2_spi_apps_clk
.clkr
,
2200 [GCC_BLSP1_QUP3_I2C_APPS_CLK
] = &gcc_blsp1_qup3_i2c_apps_clk
.clkr
,
2201 [GCC_BLSP1_QUP3_SPI_APPS_CLK
] = &gcc_blsp1_qup3_spi_apps_clk
.clkr
,
2202 [GCC_BLSP1_QUP4_I2C_APPS_CLK
] = &gcc_blsp1_qup4_i2c_apps_clk
.clkr
,
2203 [GCC_BLSP1_QUP4_SPI_APPS_CLK
] = &gcc_blsp1_qup4_spi_apps_clk
.clkr
,
2204 [GCC_BLSP1_QUP5_I2C_APPS_CLK
] = &gcc_blsp1_qup5_i2c_apps_clk
.clkr
,
2205 [GCC_BLSP1_QUP5_SPI_APPS_CLK
] = &gcc_blsp1_qup5_spi_apps_clk
.clkr
,
2206 [GCC_BLSP1_QUP6_I2C_APPS_CLK
] = &gcc_blsp1_qup6_i2c_apps_clk
.clkr
,
2207 [GCC_BLSP1_QUP6_SPI_APPS_CLK
] = &gcc_blsp1_qup6_spi_apps_clk
.clkr
,
2208 [GCC_BLSP1_UART1_APPS_CLK
] = &gcc_blsp1_uart1_apps_clk
.clkr
,
2209 [GCC_BLSP1_UART2_APPS_CLK
] = &gcc_blsp1_uart2_apps_clk
.clkr
,
2210 [GCC_BLSP1_UART3_APPS_CLK
] = &gcc_blsp1_uart3_apps_clk
.clkr
,
2211 [GCC_BLSP1_UART4_APPS_CLK
] = &gcc_blsp1_uart4_apps_clk
.clkr
,
2212 [GCC_BLSP1_UART5_APPS_CLK
] = &gcc_blsp1_uart5_apps_clk
.clkr
,
2213 [GCC_BLSP1_UART6_APPS_CLK
] = &gcc_blsp1_uart6_apps_clk
.clkr
,
2214 [GCC_BLSP2_AHB_CLK
] = &gcc_blsp2_ahb_clk
.clkr
,
2215 [GCC_BLSP2_QUP1_I2C_APPS_CLK
] = &gcc_blsp2_qup1_i2c_apps_clk
.clkr
,
2216 [GCC_BLSP2_QUP1_SPI_APPS_CLK
] = &gcc_blsp2_qup1_spi_apps_clk
.clkr
,
2217 [GCC_BLSP2_QUP2_I2C_APPS_CLK
] = &gcc_blsp2_qup2_i2c_apps_clk
.clkr
,
2218 [GCC_BLSP2_QUP2_SPI_APPS_CLK
] = &gcc_blsp2_qup2_spi_apps_clk
.clkr
,
2219 [GCC_BLSP2_QUP3_I2C_APPS_CLK
] = &gcc_blsp2_qup3_i2c_apps_clk
.clkr
,
2220 [GCC_BLSP2_QUP3_SPI_APPS_CLK
] = &gcc_blsp2_qup3_spi_apps_clk
.clkr
,
2221 [GCC_BLSP2_QUP4_I2C_APPS_CLK
] = &gcc_blsp2_qup4_i2c_apps_clk
.clkr
,
2222 [GCC_BLSP2_QUP4_SPI_APPS_CLK
] = &gcc_blsp2_qup4_spi_apps_clk
.clkr
,
2223 [GCC_BLSP2_QUP5_I2C_APPS_CLK
] = &gcc_blsp2_qup5_i2c_apps_clk
.clkr
,
2224 [GCC_BLSP2_QUP5_SPI_APPS_CLK
] = &gcc_blsp2_qup5_spi_apps_clk
.clkr
,
2225 [GCC_BLSP2_QUP6_I2C_APPS_CLK
] = &gcc_blsp2_qup6_i2c_apps_clk
.clkr
,
2226 [GCC_BLSP2_QUP6_SPI_APPS_CLK
] = &gcc_blsp2_qup6_spi_apps_clk
.clkr
,
2227 [GCC_BLSP2_UART1_APPS_CLK
] = &gcc_blsp2_uart1_apps_clk
.clkr
,
2228 [GCC_BLSP2_UART2_APPS_CLK
] = &gcc_blsp2_uart2_apps_clk
.clkr
,
2229 [GCC_BLSP2_UART3_APPS_CLK
] = &gcc_blsp2_uart3_apps_clk
.clkr
,
2230 [GCC_BLSP2_UART4_APPS_CLK
] = &gcc_blsp2_uart4_apps_clk
.clkr
,
2231 [GCC_BLSP2_UART5_APPS_CLK
] = &gcc_blsp2_uart5_apps_clk
.clkr
,
2232 [GCC_BLSP2_UART6_APPS_CLK
] = &gcc_blsp2_uart6_apps_clk
.clkr
,
2233 [GCC_GP1_CLK
] = &gcc_gp1_clk
.clkr
,
2234 [GCC_GP2_CLK
] = &gcc_gp2_clk
.clkr
,
2235 [GCC_GP3_CLK
] = &gcc_gp3_clk
.clkr
,
2236 [GCC_PCIE_0_AUX_CLK
] = &gcc_pcie_0_aux_clk
.clkr
,
2237 [GCC_PCIE_0_PIPE_CLK
] = &gcc_pcie_0_pipe_clk
.clkr
,
2238 [GCC_PCIE_1_AUX_CLK
] = &gcc_pcie_1_aux_clk
.clkr
,
2239 [GCC_PCIE_1_PIPE_CLK
] = &gcc_pcie_1_pipe_clk
.clkr
,
2240 [GCC_PDM2_CLK
] = &gcc_pdm2_clk
.clkr
,
2241 [GCC_SDCC1_APPS_CLK
] = &gcc_sdcc1_apps_clk
.clkr
,
2242 [GCC_SDCC2_APPS_CLK
] = &gcc_sdcc2_apps_clk
.clkr
,
2243 [GCC_SDCC3_APPS_CLK
] = &gcc_sdcc3_apps_clk
.clkr
,
2244 [GCC_SDCC4_APPS_CLK
] = &gcc_sdcc4_apps_clk
.clkr
,
2245 [GCC_SDCC1_AHB_CLK
] = &gcc_sdcc1_ahb_clk
.clkr
,
2246 [GCC_SYS_NOC_UFS_AXI_CLK
] = &gcc_sys_noc_ufs_axi_clk
.clkr
,
2247 [GCC_SYS_NOC_USB3_AXI_CLK
] = &gcc_sys_noc_usb3_axi_clk
.clkr
,
2248 [GCC_TSIF_REF_CLK
] = &gcc_tsif_ref_clk
.clkr
,
2249 [GCC_UFS_AXI_CLK
] = &gcc_ufs_axi_clk
.clkr
,
2250 [GCC_UFS_RX_CFG_CLK
] = &gcc_ufs_rx_cfg_clk
.clkr
,
2251 [GCC_UFS_TX_CFG_CLK
] = &gcc_ufs_tx_cfg_clk
.clkr
,
2252 [GCC_USB30_MASTER_CLK
] = &gcc_usb30_master_clk
.clkr
,
2253 [GCC_USB30_MOCK_UTMI_CLK
] = &gcc_usb30_mock_utmi_clk
.clkr
,
2254 [GCC_USB3_PHY_AUX_CLK
] = &gcc_usb3_phy_aux_clk
.clkr
,
2255 [GCC_USB_HS_SYSTEM_CLK
] = &gcc_usb_hs_system_clk
.clkr
,
2258 static const struct regmap_config gcc_msm8994_regmap_config
= {
2262 .max_register
= 0x2000,
2266 static const struct qcom_cc_desc gcc_msm8994_desc
= {
2267 .config
= &gcc_msm8994_regmap_config
,
2268 .clks
= gcc_msm8994_clocks
,
2269 .num_clks
= ARRAY_SIZE(gcc_msm8994_clocks
),
2272 static const struct of_device_id gcc_msm8994_match_table
[] = {
2273 { .compatible
= "qcom,gcc-msm8994" },
2276 MODULE_DEVICE_TABLE(of
, gcc_msm8994_match_table
);
2278 static int gcc_msm8994_probe(struct platform_device
*pdev
)
2280 struct device
*dev
= &pdev
->dev
;
2283 clk
= devm_clk_register(dev
, &xo
.hw
);
2285 return PTR_ERR(clk
);
2287 return qcom_cc_probe(pdev
, &gcc_msm8994_desc
);
2290 static struct platform_driver gcc_msm8994_driver
= {
2291 .probe
= gcc_msm8994_probe
,
2293 .name
= "gcc-msm8994",
2294 .of_match_table
= gcc_msm8994_match_table
,
2298 static int __init
gcc_msm8994_init(void)
2300 return platform_driver_register(&gcc_msm8994_driver
);
2302 core_initcall(gcc_msm8994_init
);
2304 static void __exit
gcc_msm8994_exit(void)
2306 platform_driver_unregister(&gcc_msm8994_driver
);
2308 module_exit(gcc_msm8994_exit
);
2310 MODULE_DESCRIPTION("Qualcomm GCC MSM8994 Driver");
2311 MODULE_LICENSE("GPL v2");
2312 MODULE_ALIAS("platform:gcc-msm8994");