2 * Copyright (c) 2014, The Linux Foundation. All rights reserved.
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #include <linux/kernel.h>
15 #include <linux/bitops.h>
16 #include <linux/err.h>
17 #include <linux/platform_device.h>
18 #include <linux/module.h>
20 #include <linux/of_device.h>
21 #include <linux/clk-provider.h>
22 #include <linux/regmap.h>
23 #include <linux/reset-controller.h>
25 #include <dt-bindings/clock/qcom,gcc-apq8084.h>
26 #include <dt-bindings/reset/qcom,gcc-apq8084.h>
29 #include "clk-regmap.h"
32 #include "clk-branch.h"
39 #define P_PCIE_0_1_PIPE_CLK 1
40 #define P_SATA_ASIC0_CLK 1
41 #define P_SATA_RX_CLK 1
44 static const u8 gcc_xo_gpll0_map
[] = {
49 static const char *gcc_xo_gpll0
[] = {
54 static const u8 gcc_xo_gpll0_gpll4_map
[] = {
60 static const char *gcc_xo_gpll0_gpll4
[] = {
66 static const u8 gcc_xo_sata_asic0_map
[] = {
68 [P_SATA_ASIC0_CLK
] = 2,
71 static const char *gcc_xo_sata_asic0
[] = {
76 static const u8 gcc_xo_sata_rx_map
[] = {
81 static const char *gcc_xo_sata_rx
[] = {
86 static const u8 gcc_xo_pcie_map
[] = {
88 [P_PCIE_0_1_PIPE_CLK
] = 2,
91 static const char *gcc_xo_pcie
[] = {
96 static const u8 gcc_xo_pcie_sleep_map
[] = {
101 static const char *gcc_xo_pcie_sleep
[] = {
106 #define F(f, s, h, m, n) { (f), (s), (2 * (h) - 1), (m), (n) }
108 static struct clk_pll gpll0
= {
112 .config_reg
= 0x0014,
114 .status_reg
= 0x001c,
116 .clkr
.hw
.init
= &(struct clk_init_data
){
118 .parent_names
= (const char *[]){ "xo" },
124 static struct clk_regmap gpll0_vote
= {
125 .enable_reg
= 0x1480,
126 .enable_mask
= BIT(0),
127 .hw
.init
= &(struct clk_init_data
){
128 .name
= "gpll0_vote",
129 .parent_names
= (const char *[]){ "gpll0" },
131 .ops
= &clk_pll_vote_ops
,
135 static struct clk_rcg2 config_noc_clk_src
= {
138 .parent_map
= gcc_xo_gpll0_map
,
139 .clkr
.hw
.init
= &(struct clk_init_data
){
140 .name
= "config_noc_clk_src",
141 .parent_names
= gcc_xo_gpll0
,
143 .ops
= &clk_rcg2_ops
,
147 static struct clk_rcg2 periph_noc_clk_src
= {
150 .parent_map
= gcc_xo_gpll0_map
,
151 .clkr
.hw
.init
= &(struct clk_init_data
){
152 .name
= "periph_noc_clk_src",
153 .parent_names
= gcc_xo_gpll0
,
155 .ops
= &clk_rcg2_ops
,
159 static struct clk_rcg2 system_noc_clk_src
= {
162 .parent_map
= gcc_xo_gpll0_map
,
163 .clkr
.hw
.init
= &(struct clk_init_data
){
164 .name
= "system_noc_clk_src",
165 .parent_names
= gcc_xo_gpll0
,
167 .ops
= &clk_rcg2_ops
,
171 static struct clk_pll gpll1
= {
175 .config_reg
= 0x0054,
177 .status_reg
= 0x005c,
179 .clkr
.hw
.init
= &(struct clk_init_data
){
181 .parent_names
= (const char *[]){ "xo" },
187 static struct clk_regmap gpll1_vote
= {
188 .enable_reg
= 0x1480,
189 .enable_mask
= BIT(1),
190 .hw
.init
= &(struct clk_init_data
){
191 .name
= "gpll1_vote",
192 .parent_names
= (const char *[]){ "gpll1" },
194 .ops
= &clk_pll_vote_ops
,
198 static struct clk_pll gpll4
= {
202 .config_reg
= 0x1dd4,
204 .status_reg
= 0x1ddc,
206 .clkr
.hw
.init
= &(struct clk_init_data
){
208 .parent_names
= (const char *[]){ "xo" },
214 static struct clk_regmap gpll4_vote
= {
215 .enable_reg
= 0x1480,
216 .enable_mask
= BIT(4),
217 .hw
.init
= &(struct clk_init_data
){
218 .name
= "gpll4_vote",
219 .parent_names
= (const char *[]){ "gpll4" },
221 .ops
= &clk_pll_vote_ops
,
225 static const struct freq_tbl ftbl_gcc_ufs_axi_clk
[] = {
226 F(100000000, P_GPLL0
, 6, 0, 0),
227 F(200000000, P_GPLL0
, 3, 0, 0),
228 F(240000000, P_GPLL0
, 2.5, 0, 0),
232 static struct clk_rcg2 ufs_axi_clk_src
= {
236 .parent_map
= gcc_xo_gpll0_map
,
237 .freq_tbl
= ftbl_gcc_ufs_axi_clk
,
238 .clkr
.hw
.init
= &(struct clk_init_data
){
239 .name
= "ufs_axi_clk_src",
240 .parent_names
= gcc_xo_gpll0
,
242 .ops
= &clk_rcg2_ops
,
246 static const struct freq_tbl ftbl_gcc_usb30_master_clk
[] = {
247 F(125000000, P_GPLL0
, 1, 5, 24),
251 static struct clk_rcg2 usb30_master_clk_src
= {
255 .parent_map
= gcc_xo_gpll0_map
,
256 .freq_tbl
= ftbl_gcc_usb30_master_clk
,
257 .clkr
.hw
.init
= &(struct clk_init_data
){
258 .name
= "usb30_master_clk_src",
259 .parent_names
= gcc_xo_gpll0
,
261 .ops
= &clk_rcg2_ops
,
265 static const struct freq_tbl ftbl_gcc_usb30_sec_master_clk
[] = {
266 F(125000000, P_GPLL0
, 1, 5, 24),
270 static struct clk_rcg2 usb30_sec_master_clk_src
= {
274 .parent_map
= gcc_xo_gpll0_map
,
275 .freq_tbl
= ftbl_gcc_usb30_sec_master_clk
,
276 .clkr
.hw
.init
= &(struct clk_init_data
){
277 .name
= "usb30_sec_master_clk_src",
278 .parent_names
= gcc_xo_gpll0
,
280 .ops
= &clk_rcg2_ops
,
284 static struct clk_branch gcc_usb30_sec_mock_utmi_clk
= {
287 .enable_reg
= 0x1bd0,
288 .enable_mask
= BIT(0),
289 .hw
.init
= &(struct clk_init_data
){
290 .name
= "gcc_usb30_sec_mock_utmi_clk",
291 .parent_names
= (const char *[]){
292 "usb30_sec_mock_utmi_clk_src",
295 .flags
= CLK_SET_RATE_PARENT
,
296 .ops
= &clk_branch2_ops
,
301 static struct clk_branch gcc_usb30_sec_sleep_clk
= {
304 .enable_reg
= 0x1bcc,
305 .enable_mask
= BIT(0),
306 .hw
.init
= &(struct clk_init_data
){
307 .name
= "gcc_usb30_sec_sleep_clk",
308 .parent_names
= (const char *[]){
312 .flags
= CLK_SET_RATE_PARENT
,
313 .ops
= &clk_branch2_ops
,
318 static const struct freq_tbl ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
[] = {
319 F(19200000, P_XO
, 1, 0, 0),
320 F(50000000, P_GPLL0
, 12, 0, 0),
324 static struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src
= {
327 .parent_map
= gcc_xo_gpll0_map
,
328 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
329 .clkr
.hw
.init
= &(struct clk_init_data
){
330 .name
= "blsp1_qup1_i2c_apps_clk_src",
331 .parent_names
= gcc_xo_gpll0
,
333 .ops
= &clk_rcg2_ops
,
337 static const struct freq_tbl ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
[] = {
338 F(960000, P_XO
, 10, 1, 2),
339 F(4800000, P_XO
, 4, 0, 0),
340 F(9600000, P_XO
, 2, 0, 0),
341 F(15000000, P_GPLL0
, 10, 1, 4),
342 F(19200000, P_XO
, 1, 0, 0),
343 F(25000000, P_GPLL0
, 12, 1, 2),
344 F(50000000, P_GPLL0
, 12, 0, 0),
348 static struct clk_rcg2 blsp1_qup1_spi_apps_clk_src
= {
352 .parent_map
= gcc_xo_gpll0_map
,
353 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
354 .clkr
.hw
.init
= &(struct clk_init_data
){
355 .name
= "blsp1_qup1_spi_apps_clk_src",
356 .parent_names
= gcc_xo_gpll0
,
358 .ops
= &clk_rcg2_ops
,
362 static struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src
= {
365 .parent_map
= gcc_xo_gpll0_map
,
366 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
367 .clkr
.hw
.init
= &(struct clk_init_data
){
368 .name
= "blsp1_qup2_i2c_apps_clk_src",
369 .parent_names
= gcc_xo_gpll0
,
371 .ops
= &clk_rcg2_ops
,
375 static struct clk_rcg2 blsp1_qup2_spi_apps_clk_src
= {
379 .parent_map
= gcc_xo_gpll0_map
,
380 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
381 .clkr
.hw
.init
= &(struct clk_init_data
){
382 .name
= "blsp1_qup2_spi_apps_clk_src",
383 .parent_names
= gcc_xo_gpll0
,
385 .ops
= &clk_rcg2_ops
,
389 static struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src
= {
392 .parent_map
= gcc_xo_gpll0_map
,
393 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
394 .clkr
.hw
.init
= &(struct clk_init_data
){
395 .name
= "blsp1_qup3_i2c_apps_clk_src",
396 .parent_names
= gcc_xo_gpll0
,
398 .ops
= &clk_rcg2_ops
,
402 static struct clk_rcg2 blsp1_qup3_spi_apps_clk_src
= {
406 .parent_map
= gcc_xo_gpll0_map
,
407 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
408 .clkr
.hw
.init
= &(struct clk_init_data
){
409 .name
= "blsp1_qup3_spi_apps_clk_src",
410 .parent_names
= gcc_xo_gpll0
,
412 .ops
= &clk_rcg2_ops
,
416 static struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src
= {
419 .parent_map
= gcc_xo_gpll0_map
,
420 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
421 .clkr
.hw
.init
= &(struct clk_init_data
){
422 .name
= "blsp1_qup4_i2c_apps_clk_src",
423 .parent_names
= gcc_xo_gpll0
,
425 .ops
= &clk_rcg2_ops
,
429 static struct clk_rcg2 blsp1_qup4_spi_apps_clk_src
= {
433 .parent_map
= gcc_xo_gpll0_map
,
434 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
435 .clkr
.hw
.init
= &(struct clk_init_data
){
436 .name
= "blsp1_qup4_spi_apps_clk_src",
437 .parent_names
= gcc_xo_gpll0
,
439 .ops
= &clk_rcg2_ops
,
443 static struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src
= {
446 .parent_map
= gcc_xo_gpll0_map
,
447 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
448 .clkr
.hw
.init
= &(struct clk_init_data
){
449 .name
= "blsp1_qup5_i2c_apps_clk_src",
450 .parent_names
= gcc_xo_gpll0
,
452 .ops
= &clk_rcg2_ops
,
456 static struct clk_rcg2 blsp1_qup5_spi_apps_clk_src
= {
460 .parent_map
= gcc_xo_gpll0_map
,
461 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
462 .clkr
.hw
.init
= &(struct clk_init_data
){
463 .name
= "blsp1_qup5_spi_apps_clk_src",
464 .parent_names
= gcc_xo_gpll0
,
466 .ops
= &clk_rcg2_ops
,
470 static struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src
= {
473 .parent_map
= gcc_xo_gpll0_map
,
474 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
475 .clkr
.hw
.init
= &(struct clk_init_data
){
476 .name
= "blsp1_qup6_i2c_apps_clk_src",
477 .parent_names
= gcc_xo_gpll0
,
479 .ops
= &clk_rcg2_ops
,
483 static struct clk_rcg2 blsp1_qup6_spi_apps_clk_src
= {
487 .parent_map
= gcc_xo_gpll0_map
,
488 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
489 .clkr
.hw
.init
= &(struct clk_init_data
){
490 .name
= "blsp1_qup6_spi_apps_clk_src",
491 .parent_names
= gcc_xo_gpll0
,
493 .ops
= &clk_rcg2_ops
,
497 static const struct freq_tbl ftbl_gcc_blsp1_2_uart1_6_apps_clk
[] = {
498 F(3686400, P_GPLL0
, 1, 96, 15625),
499 F(7372800, P_GPLL0
, 1, 192, 15625),
500 F(14745600, P_GPLL0
, 1, 384, 15625),
501 F(16000000, P_GPLL0
, 5, 2, 15),
502 F(19200000, P_XO
, 1, 0, 0),
503 F(24000000, P_GPLL0
, 5, 1, 5),
504 F(32000000, P_GPLL0
, 1, 4, 75),
505 F(40000000, P_GPLL0
, 15, 0, 0),
506 F(46400000, P_GPLL0
, 1, 29, 375),
507 F(48000000, P_GPLL0
, 12.5, 0, 0),
508 F(51200000, P_GPLL0
, 1, 32, 375),
509 F(56000000, P_GPLL0
, 1, 7, 75),
510 F(58982400, P_GPLL0
, 1, 1536, 15625),
511 F(60000000, P_GPLL0
, 10, 0, 0),
512 F(63160000, P_GPLL0
, 9.5, 0, 0),
516 static struct clk_rcg2 blsp1_uart1_apps_clk_src
= {
520 .parent_map
= gcc_xo_gpll0_map
,
521 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
522 .clkr
.hw
.init
= &(struct clk_init_data
){
523 .name
= "blsp1_uart1_apps_clk_src",
524 .parent_names
= gcc_xo_gpll0
,
526 .ops
= &clk_rcg2_ops
,
530 static struct clk_rcg2 blsp1_uart2_apps_clk_src
= {
534 .parent_map
= gcc_xo_gpll0_map
,
535 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
536 .clkr
.hw
.init
= &(struct clk_init_data
){
537 .name
= "blsp1_uart2_apps_clk_src",
538 .parent_names
= gcc_xo_gpll0
,
540 .ops
= &clk_rcg2_ops
,
544 static struct clk_rcg2 blsp1_uart3_apps_clk_src
= {
548 .parent_map
= gcc_xo_gpll0_map
,
549 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
550 .clkr
.hw
.init
= &(struct clk_init_data
){
551 .name
= "blsp1_uart3_apps_clk_src",
552 .parent_names
= gcc_xo_gpll0
,
554 .ops
= &clk_rcg2_ops
,
558 static struct clk_rcg2 blsp1_uart4_apps_clk_src
= {
562 .parent_map
= gcc_xo_gpll0_map
,
563 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
564 .clkr
.hw
.init
= &(struct clk_init_data
){
565 .name
= "blsp1_uart4_apps_clk_src",
566 .parent_names
= gcc_xo_gpll0
,
568 .ops
= &clk_rcg2_ops
,
572 static struct clk_rcg2 blsp1_uart5_apps_clk_src
= {
576 .parent_map
= gcc_xo_gpll0_map
,
577 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
578 .clkr
.hw
.init
= &(struct clk_init_data
){
579 .name
= "blsp1_uart5_apps_clk_src",
580 .parent_names
= gcc_xo_gpll0
,
582 .ops
= &clk_rcg2_ops
,
586 static struct clk_rcg2 blsp1_uart6_apps_clk_src
= {
590 .parent_map
= gcc_xo_gpll0_map
,
591 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
592 .clkr
.hw
.init
= &(struct clk_init_data
){
593 .name
= "blsp1_uart6_apps_clk_src",
594 .parent_names
= gcc_xo_gpll0
,
596 .ops
= &clk_rcg2_ops
,
600 static struct clk_rcg2 blsp2_qup1_i2c_apps_clk_src
= {
603 .parent_map
= gcc_xo_gpll0_map
,
604 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
605 .clkr
.hw
.init
= &(struct clk_init_data
){
606 .name
= "blsp2_qup1_i2c_apps_clk_src",
607 .parent_names
= gcc_xo_gpll0
,
609 .ops
= &clk_rcg2_ops
,
613 static struct clk_rcg2 blsp2_qup1_spi_apps_clk_src
= {
617 .parent_map
= gcc_xo_gpll0_map
,
618 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
619 .clkr
.hw
.init
= &(struct clk_init_data
){
620 .name
= "blsp2_qup1_spi_apps_clk_src",
621 .parent_names
= gcc_xo_gpll0
,
623 .ops
= &clk_rcg2_ops
,
627 static struct clk_rcg2 blsp2_qup2_i2c_apps_clk_src
= {
630 .parent_map
= gcc_xo_gpll0_map
,
631 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
632 .clkr
.hw
.init
= &(struct clk_init_data
){
633 .name
= "blsp2_qup2_i2c_apps_clk_src",
634 .parent_names
= gcc_xo_gpll0
,
636 .ops
= &clk_rcg2_ops
,
640 static struct clk_rcg2 blsp2_qup2_spi_apps_clk_src
= {
644 .parent_map
= gcc_xo_gpll0_map
,
645 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
646 .clkr
.hw
.init
= &(struct clk_init_data
){
647 .name
= "blsp2_qup2_spi_apps_clk_src",
648 .parent_names
= gcc_xo_gpll0
,
650 .ops
= &clk_rcg2_ops
,
654 static struct clk_rcg2 blsp2_qup3_i2c_apps_clk_src
= {
657 .parent_map
= gcc_xo_gpll0_map
,
658 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
659 .clkr
.hw
.init
= &(struct clk_init_data
){
660 .name
= "blsp2_qup3_i2c_apps_clk_src",
661 .parent_names
= gcc_xo_gpll0
,
663 .ops
= &clk_rcg2_ops
,
667 static struct clk_rcg2 blsp2_qup3_spi_apps_clk_src
= {
671 .parent_map
= gcc_xo_gpll0_map
,
672 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
673 .clkr
.hw
.init
= &(struct clk_init_data
){
674 .name
= "blsp2_qup3_spi_apps_clk_src",
675 .parent_names
= gcc_xo_gpll0
,
677 .ops
= &clk_rcg2_ops
,
681 static struct clk_rcg2 blsp2_qup4_i2c_apps_clk_src
= {
684 .parent_map
= gcc_xo_gpll0_map
,
685 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
686 .clkr
.hw
.init
= &(struct clk_init_data
){
687 .name
= "blsp2_qup4_i2c_apps_clk_src",
688 .parent_names
= gcc_xo_gpll0
,
690 .ops
= &clk_rcg2_ops
,
694 static struct clk_rcg2 blsp2_qup4_spi_apps_clk_src
= {
698 .parent_map
= gcc_xo_gpll0_map
,
699 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
700 .clkr
.hw
.init
= &(struct clk_init_data
){
701 .name
= "blsp2_qup4_spi_apps_clk_src",
702 .parent_names
= gcc_xo_gpll0
,
704 .ops
= &clk_rcg2_ops
,
708 static struct clk_rcg2 blsp2_qup5_i2c_apps_clk_src
= {
711 .parent_map
= gcc_xo_gpll0_map
,
712 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
713 .clkr
.hw
.init
= &(struct clk_init_data
){
714 .name
= "blsp2_qup5_i2c_apps_clk_src",
715 .parent_names
= gcc_xo_gpll0
,
717 .ops
= &clk_rcg2_ops
,
721 static struct clk_rcg2 blsp2_qup5_spi_apps_clk_src
= {
725 .parent_map
= gcc_xo_gpll0_map
,
726 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
727 .clkr
.hw
.init
= &(struct clk_init_data
){
728 .name
= "blsp2_qup5_spi_apps_clk_src",
729 .parent_names
= gcc_xo_gpll0
,
731 .ops
= &clk_rcg2_ops
,
735 static struct clk_rcg2 blsp2_qup6_i2c_apps_clk_src
= {
738 .parent_map
= gcc_xo_gpll0_map
,
739 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_i2c_apps_clk
,
740 .clkr
.hw
.init
= &(struct clk_init_data
){
741 .name
= "blsp2_qup6_i2c_apps_clk_src",
742 .parent_names
= gcc_xo_gpll0
,
744 .ops
= &clk_rcg2_ops
,
748 static struct clk_rcg2 blsp2_qup6_spi_apps_clk_src
= {
752 .parent_map
= gcc_xo_gpll0_map
,
753 .freq_tbl
= ftbl_gcc_blsp1_2_qup1_6_spi_apps_clk
,
754 .clkr
.hw
.init
= &(struct clk_init_data
){
755 .name
= "blsp2_qup6_spi_apps_clk_src",
756 .parent_names
= gcc_xo_gpll0
,
758 .ops
= &clk_rcg2_ops
,
762 static struct clk_rcg2 blsp2_uart1_apps_clk_src
= {
766 .parent_map
= gcc_xo_gpll0_map
,
767 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
768 .clkr
.hw
.init
= &(struct clk_init_data
){
769 .name
= "blsp2_uart1_apps_clk_src",
770 .parent_names
= gcc_xo_gpll0
,
772 .ops
= &clk_rcg2_ops
,
776 static struct clk_rcg2 blsp2_uart2_apps_clk_src
= {
780 .parent_map
= gcc_xo_gpll0_map
,
781 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
782 .clkr
.hw
.init
= &(struct clk_init_data
){
783 .name
= "blsp2_uart2_apps_clk_src",
784 .parent_names
= gcc_xo_gpll0
,
786 .ops
= &clk_rcg2_ops
,
790 static struct clk_rcg2 blsp2_uart3_apps_clk_src
= {
794 .parent_map
= gcc_xo_gpll0_map
,
795 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
796 .clkr
.hw
.init
= &(struct clk_init_data
){
797 .name
= "blsp2_uart3_apps_clk_src",
798 .parent_names
= gcc_xo_gpll0
,
800 .ops
= &clk_rcg2_ops
,
804 static struct clk_rcg2 blsp2_uart4_apps_clk_src
= {
808 .parent_map
= gcc_xo_gpll0_map
,
809 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
810 .clkr
.hw
.init
= &(struct clk_init_data
){
811 .name
= "blsp2_uart4_apps_clk_src",
812 .parent_names
= gcc_xo_gpll0
,
814 .ops
= &clk_rcg2_ops
,
818 static struct clk_rcg2 blsp2_uart5_apps_clk_src
= {
822 .parent_map
= gcc_xo_gpll0_map
,
823 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
824 .clkr
.hw
.init
= &(struct clk_init_data
){
825 .name
= "blsp2_uart5_apps_clk_src",
826 .parent_names
= gcc_xo_gpll0
,
828 .ops
= &clk_rcg2_ops
,
832 static struct clk_rcg2 blsp2_uart6_apps_clk_src
= {
836 .parent_map
= gcc_xo_gpll0_map
,
837 .freq_tbl
= ftbl_gcc_blsp1_2_uart1_6_apps_clk
,
838 .clkr
.hw
.init
= &(struct clk_init_data
){
839 .name
= "blsp2_uart6_apps_clk_src",
840 .parent_names
= gcc_xo_gpll0
,
842 .ops
= &clk_rcg2_ops
,
846 static const struct freq_tbl ftbl_gcc_ce1_clk
[] = {
847 F(50000000, P_GPLL0
, 12, 0, 0),
848 F(85710000, P_GPLL0
, 7, 0, 0),
849 F(100000000, P_GPLL0
, 6, 0, 0),
850 F(171430000, P_GPLL0
, 3.5, 0, 0),
854 static struct clk_rcg2 ce1_clk_src
= {
857 .parent_map
= gcc_xo_gpll0_map
,
858 .freq_tbl
= ftbl_gcc_ce1_clk
,
859 .clkr
.hw
.init
= &(struct clk_init_data
){
860 .name
= "ce1_clk_src",
861 .parent_names
= gcc_xo_gpll0
,
863 .ops
= &clk_rcg2_ops
,
867 static const struct freq_tbl ftbl_gcc_ce2_clk
[] = {
868 F(50000000, P_GPLL0
, 12, 0, 0),
869 F(85710000, P_GPLL0
, 7, 0, 0),
870 F(100000000, P_GPLL0
, 6, 0, 0),
871 F(171430000, P_GPLL0
, 3.5, 0, 0),
875 static struct clk_rcg2 ce2_clk_src
= {
878 .parent_map
= gcc_xo_gpll0_map
,
879 .freq_tbl
= ftbl_gcc_ce2_clk
,
880 .clkr
.hw
.init
= &(struct clk_init_data
){
881 .name
= "ce2_clk_src",
882 .parent_names
= gcc_xo_gpll0
,
884 .ops
= &clk_rcg2_ops
,
888 static const struct freq_tbl ftbl_gcc_ce3_clk
[] = {
889 F(50000000, P_GPLL0
, 12, 0, 0),
890 F(85710000, P_GPLL0
, 7, 0, 0),
891 F(100000000, P_GPLL0
, 6, 0, 0),
892 F(171430000, P_GPLL0
, 3.5, 0, 0),
896 static struct clk_rcg2 ce3_clk_src
= {
899 .parent_map
= gcc_xo_gpll0_map
,
900 .freq_tbl
= ftbl_gcc_ce3_clk
,
901 .clkr
.hw
.init
= &(struct clk_init_data
){
902 .name
= "ce3_clk_src",
903 .parent_names
= gcc_xo_gpll0
,
905 .ops
= &clk_rcg2_ops
,
909 static const struct freq_tbl ftbl_gcc_gp_clk
[] = {
910 F(19200000, P_XO
, 1, 0, 0),
911 F(100000000, P_GPLL0
, 6, 0, 0),
912 F(200000000, P_GPLL0
, 3, 0, 0),
916 static struct clk_rcg2 gp1_clk_src
= {
920 .parent_map
= gcc_xo_gpll0_map
,
921 .freq_tbl
= ftbl_gcc_gp_clk
,
922 .clkr
.hw
.init
= &(struct clk_init_data
){
923 .name
= "gp1_clk_src",
924 .parent_names
= gcc_xo_gpll0
,
926 .ops
= &clk_rcg2_ops
,
930 static struct clk_rcg2 gp2_clk_src
= {
934 .parent_map
= gcc_xo_gpll0_map
,
935 .freq_tbl
= ftbl_gcc_gp_clk
,
936 .clkr
.hw
.init
= &(struct clk_init_data
){
937 .name
= "gp2_clk_src",
938 .parent_names
= gcc_xo_gpll0
,
940 .ops
= &clk_rcg2_ops
,
944 static struct clk_rcg2 gp3_clk_src
= {
948 .parent_map
= gcc_xo_gpll0_map
,
949 .freq_tbl
= ftbl_gcc_gp_clk
,
950 .clkr
.hw
.init
= &(struct clk_init_data
){
951 .name
= "gp3_clk_src",
952 .parent_names
= gcc_xo_gpll0
,
954 .ops
= &clk_rcg2_ops
,
958 static const struct freq_tbl ftbl_gcc_pcie_0_1_aux_clk
[] = {
959 F(1010000, P_XO
, 1, 1, 19),
963 static struct clk_rcg2 pcie_0_aux_clk_src
= {
967 .parent_map
= gcc_xo_pcie_sleep_map
,
968 .freq_tbl
= ftbl_gcc_pcie_0_1_aux_clk
,
969 .clkr
.hw
.init
= &(struct clk_init_data
){
970 .name
= "pcie_0_aux_clk_src",
971 .parent_names
= gcc_xo_pcie_sleep
,
973 .ops
= &clk_rcg2_ops
,
977 static struct clk_rcg2 pcie_1_aux_clk_src
= {
981 .parent_map
= gcc_xo_pcie_sleep_map
,
982 .freq_tbl
= ftbl_gcc_pcie_0_1_aux_clk
,
983 .clkr
.hw
.init
= &(struct clk_init_data
){
984 .name
= "pcie_1_aux_clk_src",
985 .parent_names
= gcc_xo_pcie_sleep
,
987 .ops
= &clk_rcg2_ops
,
991 static const struct freq_tbl ftbl_gcc_pcie_0_1_pipe_clk
[] = {
992 F(125000000, P_PCIE_0_1_PIPE_CLK
, 1, 0, 0),
993 F(250000000, P_PCIE_0_1_PIPE_CLK
, 1, 0, 0),
997 static struct clk_rcg2 pcie_0_pipe_clk_src
= {
1000 .parent_map
= gcc_xo_pcie_map
,
1001 .freq_tbl
= ftbl_gcc_pcie_0_1_pipe_clk
,
1002 .clkr
.hw
.init
= &(struct clk_init_data
){
1003 .name
= "pcie_0_pipe_clk_src",
1004 .parent_names
= gcc_xo_pcie
,
1006 .ops
= &clk_rcg2_ops
,
1010 static struct clk_rcg2 pcie_1_pipe_clk_src
= {
1013 .parent_map
= gcc_xo_pcie_map
,
1014 .freq_tbl
= ftbl_gcc_pcie_0_1_pipe_clk
,
1015 .clkr
.hw
.init
= &(struct clk_init_data
){
1016 .name
= "pcie_1_pipe_clk_src",
1017 .parent_names
= gcc_xo_pcie
,
1019 .ops
= &clk_rcg2_ops
,
1023 static const struct freq_tbl ftbl_gcc_pdm2_clk
[] = {
1024 F(60000000, P_GPLL0
, 10, 0, 0),
1028 static struct clk_rcg2 pdm2_clk_src
= {
1031 .parent_map
= gcc_xo_gpll0_map
,
1032 .freq_tbl
= ftbl_gcc_pdm2_clk
,
1033 .clkr
.hw
.init
= &(struct clk_init_data
){
1034 .name
= "pdm2_clk_src",
1035 .parent_names
= gcc_xo_gpll0
,
1037 .ops
= &clk_rcg2_ops
,
1041 static const struct freq_tbl ftbl_gcc_sata_asic0_clk
[] = {
1042 F(75000000, P_SATA_ASIC0_CLK
, 1, 0, 0),
1043 F(150000000, P_SATA_ASIC0_CLK
, 1, 0, 0),
1044 F(300000000, P_SATA_ASIC0_CLK
, 1, 0, 0),
1048 static struct clk_rcg2 sata_asic0_clk_src
= {
1051 .parent_map
= gcc_xo_sata_asic0_map
,
1052 .freq_tbl
= ftbl_gcc_sata_asic0_clk
,
1053 .clkr
.hw
.init
= &(struct clk_init_data
){
1054 .name
= "sata_asic0_clk_src",
1055 .parent_names
= gcc_xo_sata_asic0
,
1057 .ops
= &clk_rcg2_ops
,
1061 static const struct freq_tbl ftbl_gcc_sata_pmalive_clk
[] = {
1062 F(19200000, P_XO
, 1, 0, 0),
1063 F(50000000, P_GPLL0
, 12, 0, 0),
1064 F(100000000, P_GPLL0
, 6, 0, 0),
1068 static struct clk_rcg2 sata_pmalive_clk_src
= {
1071 .parent_map
= gcc_xo_gpll0_map
,
1072 .freq_tbl
= ftbl_gcc_sata_pmalive_clk
,
1073 .clkr
.hw
.init
= &(struct clk_init_data
){
1074 .name
= "sata_pmalive_clk_src",
1075 .parent_names
= gcc_xo_gpll0
,
1077 .ops
= &clk_rcg2_ops
,
1081 static const struct freq_tbl ftbl_gcc_sata_rx_clk
[] = {
1082 F(75000000, P_SATA_RX_CLK
, 1, 0, 0),
1083 F(150000000, P_SATA_RX_CLK
, 1, 0, 0),
1084 F(300000000, P_SATA_RX_CLK
, 1, 0, 0),
1088 static struct clk_rcg2 sata_rx_clk_src
= {
1091 .parent_map
= gcc_xo_sata_rx_map
,
1092 .freq_tbl
= ftbl_gcc_sata_rx_clk
,
1093 .clkr
.hw
.init
= &(struct clk_init_data
){
1094 .name
= "sata_rx_clk_src",
1095 .parent_names
= gcc_xo_sata_rx
,
1097 .ops
= &clk_rcg2_ops
,
1101 static const struct freq_tbl ftbl_gcc_sata_rx_oob_clk
[] = {
1102 F(100000000, P_GPLL0
, 6, 0, 0),
1106 static struct clk_rcg2 sata_rx_oob_clk_src
= {
1109 .parent_map
= gcc_xo_gpll0_map
,
1110 .freq_tbl
= ftbl_gcc_sata_rx_oob_clk
,
1111 .clkr
.hw
.init
= &(struct clk_init_data
){
1112 .name
= "sata_rx_oob_clk_src",
1113 .parent_names
= gcc_xo_gpll0
,
1115 .ops
= &clk_rcg2_ops
,
1119 static const struct freq_tbl ftbl_gcc_sdcc1_4_apps_clk
[] = {
1120 F(144000, P_XO
, 16, 3, 25),
1121 F(400000, P_XO
, 12, 1, 4),
1122 F(20000000, P_GPLL0
, 15, 1, 2),
1123 F(25000000, P_GPLL0
, 12, 1, 2),
1124 F(50000000, P_GPLL0
, 12, 0, 0),
1125 F(100000000, P_GPLL0
, 6, 0, 0),
1126 F(192000000, P_GPLL4
, 4, 0, 0),
1127 F(200000000, P_GPLL0
, 3, 0, 0),
1128 F(384000000, P_GPLL4
, 2, 0, 0),
1132 static struct clk_rcg2 sdcc1_apps_clk_src
= {
1136 .parent_map
= gcc_xo_gpll0_gpll4_map
,
1137 .freq_tbl
= ftbl_gcc_sdcc1_4_apps_clk
,
1138 .clkr
.hw
.init
= &(struct clk_init_data
){
1139 .name
= "sdcc1_apps_clk_src",
1140 .parent_names
= gcc_xo_gpll0_gpll4
,
1142 .ops
= &clk_rcg2_ops
,
1146 static struct clk_rcg2 sdcc2_apps_clk_src
= {
1150 .parent_map
= gcc_xo_gpll0_map
,
1151 .freq_tbl
= ftbl_gcc_sdcc1_4_apps_clk
,
1152 .clkr
.hw
.init
= &(struct clk_init_data
){
1153 .name
= "sdcc2_apps_clk_src",
1154 .parent_names
= gcc_xo_gpll0
,
1156 .ops
= &clk_rcg2_ops
,
1160 static struct clk_rcg2 sdcc3_apps_clk_src
= {
1164 .parent_map
= gcc_xo_gpll0_map
,
1165 .freq_tbl
= ftbl_gcc_sdcc1_4_apps_clk
,
1166 .clkr
.hw
.init
= &(struct clk_init_data
){
1167 .name
= "sdcc3_apps_clk_src",
1168 .parent_names
= gcc_xo_gpll0
,
1170 .ops
= &clk_rcg2_ops
,
1174 static struct clk_rcg2 sdcc4_apps_clk_src
= {
1178 .parent_map
= gcc_xo_gpll0_map
,
1179 .freq_tbl
= ftbl_gcc_sdcc1_4_apps_clk
,
1180 .clkr
.hw
.init
= &(struct clk_init_data
){
1181 .name
= "sdcc4_apps_clk_src",
1182 .parent_names
= gcc_xo_gpll0
,
1184 .ops
= &clk_rcg2_ops
,
1188 static const struct freq_tbl ftbl_gcc_tsif_ref_clk
[] = {
1189 F(105000, P_XO
, 2, 1, 91),
1193 static struct clk_rcg2 tsif_ref_clk_src
= {
1197 .parent_map
= gcc_xo_gpll0_map
,
1198 .freq_tbl
= ftbl_gcc_tsif_ref_clk
,
1199 .clkr
.hw
.init
= &(struct clk_init_data
){
1200 .name
= "tsif_ref_clk_src",
1201 .parent_names
= gcc_xo_gpll0
,
1203 .ops
= &clk_rcg2_ops
,
1207 static const struct freq_tbl ftbl_gcc_usb30_mock_utmi_clk
[] = {
1208 F(60000000, P_GPLL0
, 10, 0, 0),
1212 static struct clk_rcg2 usb30_mock_utmi_clk_src
= {
1215 .parent_map
= gcc_xo_gpll0_map
,
1216 .freq_tbl
= ftbl_gcc_usb30_mock_utmi_clk
,
1217 .clkr
.hw
.init
= &(struct clk_init_data
){
1218 .name
= "usb30_mock_utmi_clk_src",
1219 .parent_names
= gcc_xo_gpll0
,
1221 .ops
= &clk_rcg2_ops
,
1225 static const struct freq_tbl ftbl_gcc_usb30_sec_mock_utmi_clk
[] = {
1226 F(125000000, P_GPLL0
, 1, 5, 24),
1230 static struct clk_rcg2 usb30_sec_mock_utmi_clk_src
= {
1233 .parent_map
= gcc_xo_gpll0_map
,
1234 .freq_tbl
= ftbl_gcc_usb30_sec_mock_utmi_clk
,
1235 .clkr
.hw
.init
= &(struct clk_init_data
){
1236 .name
= "usb30_sec_mock_utmi_clk_src",
1237 .parent_names
= gcc_xo_gpll0
,
1239 .ops
= &clk_rcg2_ops
,
1243 static const struct freq_tbl ftbl_gcc_usb_hs_system_clk
[] = {
1244 F(75000000, P_GPLL0
, 8, 0, 0),
1248 static struct clk_rcg2 usb_hs_system_clk_src
= {
1251 .parent_map
= gcc_xo_gpll0_map
,
1252 .freq_tbl
= ftbl_gcc_usb_hs_system_clk
,
1253 .clkr
.hw
.init
= &(struct clk_init_data
){
1254 .name
= "usb_hs_system_clk_src",
1255 .parent_names
= gcc_xo_gpll0
,
1257 .ops
= &clk_rcg2_ops
,
1261 static const struct freq_tbl ftbl_gcc_usb_hsic_clk
[] = {
1262 F(480000000, P_GPLL1
, 1, 0, 0),
1266 static u8 usb_hsic_clk_src_map
[] = {
1271 static struct clk_rcg2 usb_hsic_clk_src
= {
1274 .parent_map
= usb_hsic_clk_src_map
,
1275 .freq_tbl
= ftbl_gcc_usb_hsic_clk
,
1276 .clkr
.hw
.init
= &(struct clk_init_data
){
1277 .name
= "usb_hsic_clk_src",
1278 .parent_names
= (const char *[]){
1283 .ops
= &clk_rcg2_ops
,
1287 static const struct freq_tbl ftbl_gcc_usb_hsic_ahb_clk_src
[] = {
1288 F(60000000, P_GPLL1
, 8, 0, 0),
1292 static struct clk_rcg2 usb_hsic_ahb_clk_src
= {
1296 .parent_map
= usb_hsic_clk_src_map
,
1297 .freq_tbl
= ftbl_gcc_usb_hsic_ahb_clk_src
,
1298 .clkr
.hw
.init
= &(struct clk_init_data
){
1299 .name
= "usb_hsic_ahb_clk_src",
1300 .parent_names
= (const char *[]){
1305 .ops
= &clk_rcg2_ops
,
1309 static const struct freq_tbl ftbl_gcc_usb_hsic_io_cal_clk
[] = {
1310 F(9600000, P_XO
, 2, 0, 0),
1314 static struct clk_rcg2 usb_hsic_io_cal_clk_src
= {
1317 .parent_map
= gcc_xo_gpll0_map
,
1318 .freq_tbl
= ftbl_gcc_usb_hsic_io_cal_clk
,
1319 .clkr
.hw
.init
= &(struct clk_init_data
){
1320 .name
= "usb_hsic_io_cal_clk_src",
1321 .parent_names
= gcc_xo_gpll0
,
1323 .ops
= &clk_rcg2_ops
,
1327 static struct clk_branch gcc_usb_hsic_mock_utmi_clk
= {
1330 .enable_reg
= 0x1f14,
1331 .enable_mask
= BIT(0),
1332 .hw
.init
= &(struct clk_init_data
){
1333 .name
= "gcc_usb_hsic_mock_utmi_clk",
1334 .parent_names
= (const char *[]){
1335 "usb_hsic_mock_utmi_clk_src",
1338 .flags
= CLK_SET_RATE_PARENT
,
1339 .ops
= &clk_branch2_ops
,
1344 static const struct freq_tbl ftbl_gcc_usb_hsic_mock_utmi_clk
[] = {
1345 F(60000000, P_GPLL0
, 10, 0, 0),
1349 static struct clk_rcg2 usb_hsic_mock_utmi_clk_src
= {
1352 .parent_map
= gcc_xo_gpll0_map
,
1353 .freq_tbl
= ftbl_gcc_usb_hsic_mock_utmi_clk
,
1354 .clkr
.hw
.init
= &(struct clk_init_data
){
1355 .name
= "usb_hsic_mock_utmi_clk_src",
1356 .parent_names
= gcc_xo_gpll0
,
1358 .ops
= &clk_rcg2_ops
,
1362 static const struct freq_tbl ftbl_gcc_usb_hsic_system_clk
[] = {
1363 F(75000000, P_GPLL0
, 8, 0, 0),
1367 static struct clk_rcg2 usb_hsic_system_clk_src
= {
1370 .parent_map
= gcc_xo_gpll0_map
,
1371 .freq_tbl
= ftbl_gcc_usb_hsic_system_clk
,
1372 .clkr
.hw
.init
= &(struct clk_init_data
){
1373 .name
= "usb_hsic_system_clk_src",
1374 .parent_names
= gcc_xo_gpll0
,
1376 .ops
= &clk_rcg2_ops
,
1380 static struct clk_branch gcc_bam_dma_ahb_clk
= {
1382 .halt_check
= BRANCH_HALT_VOTED
,
1384 .enable_reg
= 0x1484,
1385 .enable_mask
= BIT(12),
1386 .hw
.init
= &(struct clk_init_data
){
1387 .name
= "gcc_bam_dma_ahb_clk",
1388 .parent_names
= (const char *[]){
1389 "periph_noc_clk_src",
1392 .ops
= &clk_branch2_ops
,
1397 static struct clk_branch gcc_blsp1_ahb_clk
= {
1399 .halt_check
= BRANCH_HALT_VOTED
,
1401 .enable_reg
= 0x1484,
1402 .enable_mask
= BIT(17),
1403 .hw
.init
= &(struct clk_init_data
){
1404 .name
= "gcc_blsp1_ahb_clk",
1405 .parent_names
= (const char *[]){
1406 "periph_noc_clk_src",
1409 .ops
= &clk_branch2_ops
,
1414 static struct clk_branch gcc_blsp1_qup1_i2c_apps_clk
= {
1417 .enable_reg
= 0x0648,
1418 .enable_mask
= BIT(0),
1419 .hw
.init
= &(struct clk_init_data
){
1420 .name
= "gcc_blsp1_qup1_i2c_apps_clk",
1421 .parent_names
= (const char *[]){
1422 "blsp1_qup1_i2c_apps_clk_src",
1425 .flags
= CLK_SET_RATE_PARENT
,
1426 .ops
= &clk_branch2_ops
,
1431 static struct clk_branch gcc_blsp1_qup1_spi_apps_clk
= {
1434 .enable_reg
= 0x0644,
1435 .enable_mask
= BIT(0),
1436 .hw
.init
= &(struct clk_init_data
){
1437 .name
= "gcc_blsp1_qup1_spi_apps_clk",
1438 .parent_names
= (const char *[]){
1439 "blsp1_qup1_spi_apps_clk_src",
1442 .flags
= CLK_SET_RATE_PARENT
,
1443 .ops
= &clk_branch2_ops
,
1448 static struct clk_branch gcc_blsp1_qup2_i2c_apps_clk
= {
1451 .enable_reg
= 0x06c8,
1452 .enable_mask
= BIT(0),
1453 .hw
.init
= &(struct clk_init_data
){
1454 .name
= "gcc_blsp1_qup2_i2c_apps_clk",
1455 .parent_names
= (const char *[]){
1456 "blsp1_qup2_i2c_apps_clk_src",
1459 .flags
= CLK_SET_RATE_PARENT
,
1460 .ops
= &clk_branch2_ops
,
1465 static struct clk_branch gcc_blsp1_qup2_spi_apps_clk
= {
1468 .enable_reg
= 0x06c4,
1469 .enable_mask
= BIT(0),
1470 .hw
.init
= &(struct clk_init_data
){
1471 .name
= "gcc_blsp1_qup2_spi_apps_clk",
1472 .parent_names
= (const char *[]){
1473 "blsp1_qup2_spi_apps_clk_src",
1476 .flags
= CLK_SET_RATE_PARENT
,
1477 .ops
= &clk_branch2_ops
,
1482 static struct clk_branch gcc_blsp1_qup3_i2c_apps_clk
= {
1485 .enable_reg
= 0x0748,
1486 .enable_mask
= BIT(0),
1487 .hw
.init
= &(struct clk_init_data
){
1488 .name
= "gcc_blsp1_qup3_i2c_apps_clk",
1489 .parent_names
= (const char *[]){
1490 "blsp1_qup3_i2c_apps_clk_src",
1493 .flags
= CLK_SET_RATE_PARENT
,
1494 .ops
= &clk_branch2_ops
,
1499 static struct clk_branch gcc_blsp1_qup3_spi_apps_clk
= {
1502 .enable_reg
= 0x0744,
1503 .enable_mask
= BIT(0),
1504 .hw
.init
= &(struct clk_init_data
){
1505 .name
= "gcc_blsp1_qup3_spi_apps_clk",
1506 .parent_names
= (const char *[]){
1507 "blsp1_qup3_spi_apps_clk_src",
1510 .flags
= CLK_SET_RATE_PARENT
,
1511 .ops
= &clk_branch2_ops
,
1516 static struct clk_branch gcc_blsp1_qup4_i2c_apps_clk
= {
1519 .enable_reg
= 0x07c8,
1520 .enable_mask
= BIT(0),
1521 .hw
.init
= &(struct clk_init_data
){
1522 .name
= "gcc_blsp1_qup4_i2c_apps_clk",
1523 .parent_names
= (const char *[]){
1524 "blsp1_qup4_i2c_apps_clk_src",
1527 .flags
= CLK_SET_RATE_PARENT
,
1528 .ops
= &clk_branch2_ops
,
1533 static struct clk_branch gcc_blsp1_qup4_spi_apps_clk
= {
1536 .enable_reg
= 0x07c4,
1537 .enable_mask
= BIT(0),
1538 .hw
.init
= &(struct clk_init_data
){
1539 .name
= "gcc_blsp1_qup4_spi_apps_clk",
1540 .parent_names
= (const char *[]){
1541 "blsp1_qup4_spi_apps_clk_src",
1544 .flags
= CLK_SET_RATE_PARENT
,
1545 .ops
= &clk_branch2_ops
,
1550 static struct clk_branch gcc_blsp1_qup5_i2c_apps_clk
= {
1553 .enable_reg
= 0x0848,
1554 .enable_mask
= BIT(0),
1555 .hw
.init
= &(struct clk_init_data
){
1556 .name
= "gcc_blsp1_qup5_i2c_apps_clk",
1557 .parent_names
= (const char *[]){
1558 "blsp1_qup5_i2c_apps_clk_src",
1561 .flags
= CLK_SET_RATE_PARENT
,
1562 .ops
= &clk_branch2_ops
,
1567 static struct clk_branch gcc_blsp1_qup5_spi_apps_clk
= {
1570 .enable_reg
= 0x0844,
1571 .enable_mask
= BIT(0),
1572 .hw
.init
= &(struct clk_init_data
){
1573 .name
= "gcc_blsp1_qup5_spi_apps_clk",
1574 .parent_names
= (const char *[]){
1575 "blsp1_qup5_spi_apps_clk_src",
1578 .flags
= CLK_SET_RATE_PARENT
,
1579 .ops
= &clk_branch2_ops
,
1584 static struct clk_branch gcc_blsp1_qup6_i2c_apps_clk
= {
1587 .enable_reg
= 0x08c8,
1588 .enable_mask
= BIT(0),
1589 .hw
.init
= &(struct clk_init_data
){
1590 .name
= "gcc_blsp1_qup6_i2c_apps_clk",
1591 .parent_names
= (const char *[]){
1592 "blsp1_qup6_i2c_apps_clk_src",
1595 .flags
= CLK_SET_RATE_PARENT
,
1596 .ops
= &clk_branch2_ops
,
1601 static struct clk_branch gcc_blsp1_qup6_spi_apps_clk
= {
1604 .enable_reg
= 0x08c4,
1605 .enable_mask
= BIT(0),
1606 .hw
.init
= &(struct clk_init_data
){
1607 .name
= "gcc_blsp1_qup6_spi_apps_clk",
1608 .parent_names
= (const char *[]){
1609 "blsp1_qup6_spi_apps_clk_src",
1612 .flags
= CLK_SET_RATE_PARENT
,
1613 .ops
= &clk_branch2_ops
,
1618 static struct clk_branch gcc_blsp1_uart1_apps_clk
= {
1621 .enable_reg
= 0x0684,
1622 .enable_mask
= BIT(0),
1623 .hw
.init
= &(struct clk_init_data
){
1624 .name
= "gcc_blsp1_uart1_apps_clk",
1625 .parent_names
= (const char *[]){
1626 "blsp1_uart1_apps_clk_src",
1629 .flags
= CLK_SET_RATE_PARENT
,
1630 .ops
= &clk_branch2_ops
,
1635 static struct clk_branch gcc_blsp1_uart2_apps_clk
= {
1638 .enable_reg
= 0x0704,
1639 .enable_mask
= BIT(0),
1640 .hw
.init
= &(struct clk_init_data
){
1641 .name
= "gcc_blsp1_uart2_apps_clk",
1642 .parent_names
= (const char *[]){
1643 "blsp1_uart2_apps_clk_src",
1646 .flags
= CLK_SET_RATE_PARENT
,
1647 .ops
= &clk_branch2_ops
,
1652 static struct clk_branch gcc_blsp1_uart3_apps_clk
= {
1655 .enable_reg
= 0x0784,
1656 .enable_mask
= BIT(0),
1657 .hw
.init
= &(struct clk_init_data
){
1658 .name
= "gcc_blsp1_uart3_apps_clk",
1659 .parent_names
= (const char *[]){
1660 "blsp1_uart3_apps_clk_src",
1663 .flags
= CLK_SET_RATE_PARENT
,
1664 .ops
= &clk_branch2_ops
,
1669 static struct clk_branch gcc_blsp1_uart4_apps_clk
= {
1672 .enable_reg
= 0x0804,
1673 .enable_mask
= BIT(0),
1674 .hw
.init
= &(struct clk_init_data
){
1675 .name
= "gcc_blsp1_uart4_apps_clk",
1676 .parent_names
= (const char *[]){
1677 "blsp1_uart4_apps_clk_src",
1680 .flags
= CLK_SET_RATE_PARENT
,
1681 .ops
= &clk_branch2_ops
,
1686 static struct clk_branch gcc_blsp1_uart5_apps_clk
= {
1689 .enable_reg
= 0x0884,
1690 .enable_mask
= BIT(0),
1691 .hw
.init
= &(struct clk_init_data
){
1692 .name
= "gcc_blsp1_uart5_apps_clk",
1693 .parent_names
= (const char *[]){
1694 "blsp1_uart5_apps_clk_src",
1697 .flags
= CLK_SET_RATE_PARENT
,
1698 .ops
= &clk_branch2_ops
,
1703 static struct clk_branch gcc_blsp1_uart6_apps_clk
= {
1706 .enable_reg
= 0x0904,
1707 .enable_mask
= BIT(0),
1708 .hw
.init
= &(struct clk_init_data
){
1709 .name
= "gcc_blsp1_uart6_apps_clk",
1710 .parent_names
= (const char *[]){
1711 "blsp1_uart6_apps_clk_src",
1714 .flags
= CLK_SET_RATE_PARENT
,
1715 .ops
= &clk_branch2_ops
,
1720 static struct clk_branch gcc_blsp2_ahb_clk
= {
1722 .halt_check
= BRANCH_HALT_VOTED
,
1724 .enable_reg
= 0x1484,
1725 .enable_mask
= BIT(15),
1726 .hw
.init
= &(struct clk_init_data
){
1727 .name
= "gcc_blsp2_ahb_clk",
1728 .parent_names
= (const char *[]){
1729 "periph_noc_clk_src",
1732 .ops
= &clk_branch2_ops
,
1737 static struct clk_branch gcc_blsp2_qup1_i2c_apps_clk
= {
1740 .enable_reg
= 0x0988,
1741 .enable_mask
= BIT(0),
1742 .hw
.init
= &(struct clk_init_data
){
1743 .name
= "gcc_blsp2_qup1_i2c_apps_clk",
1744 .parent_names
= (const char *[]){
1745 "blsp2_qup1_i2c_apps_clk_src",
1748 .flags
= CLK_SET_RATE_PARENT
,
1749 .ops
= &clk_branch2_ops
,
1754 static struct clk_branch gcc_blsp2_qup1_spi_apps_clk
= {
1757 .enable_reg
= 0x0984,
1758 .enable_mask
= BIT(0),
1759 .hw
.init
= &(struct clk_init_data
){
1760 .name
= "gcc_blsp2_qup1_spi_apps_clk",
1761 .parent_names
= (const char *[]){
1762 "blsp2_qup1_spi_apps_clk_src",
1765 .flags
= CLK_SET_RATE_PARENT
,
1766 .ops
= &clk_branch2_ops
,
1771 static struct clk_branch gcc_blsp2_qup2_i2c_apps_clk
= {
1774 .enable_reg
= 0x0a08,
1775 .enable_mask
= BIT(0),
1776 .hw
.init
= &(struct clk_init_data
){
1777 .name
= "gcc_blsp2_qup2_i2c_apps_clk",
1778 .parent_names
= (const char *[]){
1779 "blsp2_qup2_i2c_apps_clk_src",
1782 .flags
= CLK_SET_RATE_PARENT
,
1783 .ops
= &clk_branch2_ops
,
1788 static struct clk_branch gcc_blsp2_qup2_spi_apps_clk
= {
1791 .enable_reg
= 0x0a04,
1792 .enable_mask
= BIT(0),
1793 .hw
.init
= &(struct clk_init_data
){
1794 .name
= "gcc_blsp2_qup2_spi_apps_clk",
1795 .parent_names
= (const char *[]){
1796 "blsp2_qup2_spi_apps_clk_src",
1799 .flags
= CLK_SET_RATE_PARENT
,
1800 .ops
= &clk_branch2_ops
,
1805 static struct clk_branch gcc_blsp2_qup3_i2c_apps_clk
= {
1808 .enable_reg
= 0x0a88,
1809 .enable_mask
= BIT(0),
1810 .hw
.init
= &(struct clk_init_data
){
1811 .name
= "gcc_blsp2_qup3_i2c_apps_clk",
1812 .parent_names
= (const char *[]){
1813 "blsp2_qup3_i2c_apps_clk_src",
1816 .flags
= CLK_SET_RATE_PARENT
,
1817 .ops
= &clk_branch2_ops
,
1822 static struct clk_branch gcc_blsp2_qup3_spi_apps_clk
= {
1825 .enable_reg
= 0x0a84,
1826 .enable_mask
= BIT(0),
1827 .hw
.init
= &(struct clk_init_data
){
1828 .name
= "gcc_blsp2_qup3_spi_apps_clk",
1829 .parent_names
= (const char *[]){
1830 "blsp2_qup3_spi_apps_clk_src",
1833 .flags
= CLK_SET_RATE_PARENT
,
1834 .ops
= &clk_branch2_ops
,
1839 static struct clk_branch gcc_blsp2_qup4_i2c_apps_clk
= {
1842 .enable_reg
= 0x0b08,
1843 .enable_mask
= BIT(0),
1844 .hw
.init
= &(struct clk_init_data
){
1845 .name
= "gcc_blsp2_qup4_i2c_apps_clk",
1846 .parent_names
= (const char *[]){
1847 "blsp2_qup4_i2c_apps_clk_src",
1850 .flags
= CLK_SET_RATE_PARENT
,
1851 .ops
= &clk_branch2_ops
,
1856 static struct clk_branch gcc_blsp2_qup4_spi_apps_clk
= {
1859 .enable_reg
= 0x0b04,
1860 .enable_mask
= BIT(0),
1861 .hw
.init
= &(struct clk_init_data
){
1862 .name
= "gcc_blsp2_qup4_spi_apps_clk",
1863 .parent_names
= (const char *[]){
1864 "blsp2_qup4_spi_apps_clk_src",
1867 .flags
= CLK_SET_RATE_PARENT
,
1868 .ops
= &clk_branch2_ops
,
1873 static struct clk_branch gcc_blsp2_qup5_i2c_apps_clk
= {
1876 .enable_reg
= 0x0b88,
1877 .enable_mask
= BIT(0),
1878 .hw
.init
= &(struct clk_init_data
){
1879 .name
= "gcc_blsp2_qup5_i2c_apps_clk",
1880 .parent_names
= (const char *[]){
1881 "blsp2_qup5_i2c_apps_clk_src",
1884 .flags
= CLK_SET_RATE_PARENT
,
1885 .ops
= &clk_branch2_ops
,
1890 static struct clk_branch gcc_blsp2_qup5_spi_apps_clk
= {
1893 .enable_reg
= 0x0b84,
1894 .enable_mask
= BIT(0),
1895 .hw
.init
= &(struct clk_init_data
){
1896 .name
= "gcc_blsp2_qup5_spi_apps_clk",
1897 .parent_names
= (const char *[]){
1898 "blsp2_qup5_spi_apps_clk_src",
1901 .flags
= CLK_SET_RATE_PARENT
,
1902 .ops
= &clk_branch2_ops
,
1907 static struct clk_branch gcc_blsp2_qup6_i2c_apps_clk
= {
1910 .enable_reg
= 0x0c08,
1911 .enable_mask
= BIT(0),
1912 .hw
.init
= &(struct clk_init_data
){
1913 .name
= "gcc_blsp2_qup6_i2c_apps_clk",
1914 .parent_names
= (const char *[]){
1915 "blsp2_qup6_i2c_apps_clk_src",
1918 .flags
= CLK_SET_RATE_PARENT
,
1919 .ops
= &clk_branch2_ops
,
1924 static struct clk_branch gcc_blsp2_qup6_spi_apps_clk
= {
1927 .enable_reg
= 0x0c04,
1928 .enable_mask
= BIT(0),
1929 .hw
.init
= &(struct clk_init_data
){
1930 .name
= "gcc_blsp2_qup6_spi_apps_clk",
1931 .parent_names
= (const char *[]){
1932 "blsp2_qup6_spi_apps_clk_src",
1935 .flags
= CLK_SET_RATE_PARENT
,
1936 .ops
= &clk_branch2_ops
,
1941 static struct clk_branch gcc_blsp2_uart1_apps_clk
= {
1944 .enable_reg
= 0x09c4,
1945 .enable_mask
= BIT(0),
1946 .hw
.init
= &(struct clk_init_data
){
1947 .name
= "gcc_blsp2_uart1_apps_clk",
1948 .parent_names
= (const char *[]){
1949 "blsp2_uart1_apps_clk_src",
1952 .flags
= CLK_SET_RATE_PARENT
,
1953 .ops
= &clk_branch2_ops
,
1958 static struct clk_branch gcc_blsp2_uart2_apps_clk
= {
1961 .enable_reg
= 0x0a44,
1962 .enable_mask
= BIT(0),
1963 .hw
.init
= &(struct clk_init_data
){
1964 .name
= "gcc_blsp2_uart2_apps_clk",
1965 .parent_names
= (const char *[]){
1966 "blsp2_uart2_apps_clk_src",
1969 .flags
= CLK_SET_RATE_PARENT
,
1970 .ops
= &clk_branch2_ops
,
1975 static struct clk_branch gcc_blsp2_uart3_apps_clk
= {
1978 .enable_reg
= 0x0ac4,
1979 .enable_mask
= BIT(0),
1980 .hw
.init
= &(struct clk_init_data
){
1981 .name
= "gcc_blsp2_uart3_apps_clk",
1982 .parent_names
= (const char *[]){
1983 "blsp2_uart3_apps_clk_src",
1986 .flags
= CLK_SET_RATE_PARENT
,
1987 .ops
= &clk_branch2_ops
,
1992 static struct clk_branch gcc_blsp2_uart4_apps_clk
= {
1995 .enable_reg
= 0x0b44,
1996 .enable_mask
= BIT(0),
1997 .hw
.init
= &(struct clk_init_data
){
1998 .name
= "gcc_blsp2_uart4_apps_clk",
1999 .parent_names
= (const char *[]){
2000 "blsp2_uart4_apps_clk_src",
2003 .flags
= CLK_SET_RATE_PARENT
,
2004 .ops
= &clk_branch2_ops
,
2009 static struct clk_branch gcc_blsp2_uart5_apps_clk
= {
2012 .enable_reg
= 0x0bc4,
2013 .enable_mask
= BIT(0),
2014 .hw
.init
= &(struct clk_init_data
){
2015 .name
= "gcc_blsp2_uart5_apps_clk",
2016 .parent_names
= (const char *[]){
2017 "blsp2_uart5_apps_clk_src",
2020 .flags
= CLK_SET_RATE_PARENT
,
2021 .ops
= &clk_branch2_ops
,
2026 static struct clk_branch gcc_blsp2_uart6_apps_clk
= {
2029 .enable_reg
= 0x0c44,
2030 .enable_mask
= BIT(0),
2031 .hw
.init
= &(struct clk_init_data
){
2032 .name
= "gcc_blsp2_uart6_apps_clk",
2033 .parent_names
= (const char *[]){
2034 "blsp2_uart6_apps_clk_src",
2037 .flags
= CLK_SET_RATE_PARENT
,
2038 .ops
= &clk_branch2_ops
,
2043 static struct clk_branch gcc_boot_rom_ahb_clk
= {
2045 .halt_check
= BRANCH_HALT_VOTED
,
2047 .enable_reg
= 0x1484,
2048 .enable_mask
= BIT(10),
2049 .hw
.init
= &(struct clk_init_data
){
2050 .name
= "gcc_boot_rom_ahb_clk",
2051 .parent_names
= (const char *[]){
2052 "config_noc_clk_src",
2055 .ops
= &clk_branch2_ops
,
2060 static struct clk_branch gcc_ce1_ahb_clk
= {
2062 .halt_check
= BRANCH_HALT_VOTED
,
2064 .enable_reg
= 0x1484,
2065 .enable_mask
= BIT(3),
2066 .hw
.init
= &(struct clk_init_data
){
2067 .name
= "gcc_ce1_ahb_clk",
2068 .parent_names
= (const char *[]){
2069 "config_noc_clk_src",
2072 .ops
= &clk_branch2_ops
,
2077 static struct clk_branch gcc_ce1_axi_clk
= {
2079 .halt_check
= BRANCH_HALT_VOTED
,
2081 .enable_reg
= 0x1484,
2082 .enable_mask
= BIT(4),
2083 .hw
.init
= &(struct clk_init_data
){
2084 .name
= "gcc_ce1_axi_clk",
2085 .parent_names
= (const char *[]){
2086 "system_noc_clk_src",
2089 .ops
= &clk_branch2_ops
,
2094 static struct clk_branch gcc_ce1_clk
= {
2096 .halt_check
= BRANCH_HALT_VOTED
,
2098 .enable_reg
= 0x1484,
2099 .enable_mask
= BIT(5),
2100 .hw
.init
= &(struct clk_init_data
){
2101 .name
= "gcc_ce1_clk",
2102 .parent_names
= (const char *[]){
2106 .ops
= &clk_branch2_ops
,
2111 static struct clk_branch gcc_ce2_ahb_clk
= {
2113 .halt_check
= BRANCH_HALT_VOTED
,
2115 .enable_reg
= 0x1484,
2116 .enable_mask
= BIT(0),
2117 .hw
.init
= &(struct clk_init_data
){
2118 .name
= "gcc_ce2_ahb_clk",
2119 .parent_names
= (const char *[]){
2120 "config_noc_clk_src",
2123 .ops
= &clk_branch2_ops
,
2128 static struct clk_branch gcc_ce2_axi_clk
= {
2130 .halt_check
= BRANCH_HALT_VOTED
,
2132 .enable_reg
= 0x1484,
2133 .enable_mask
= BIT(1),
2134 .hw
.init
= &(struct clk_init_data
){
2135 .name
= "gcc_ce2_axi_clk",
2136 .parent_names
= (const char *[]){
2137 "system_noc_clk_src",
2140 .ops
= &clk_branch2_ops
,
2145 static struct clk_branch gcc_ce2_clk
= {
2147 .halt_check
= BRANCH_HALT_VOTED
,
2149 .enable_reg
= 0x1484,
2150 .enable_mask
= BIT(2),
2151 .hw
.init
= &(struct clk_init_data
){
2152 .name
= "gcc_ce2_clk",
2153 .parent_names
= (const char *[]){
2157 .flags
= CLK_SET_RATE_PARENT
,
2158 .ops
= &clk_branch2_ops
,
2163 static struct clk_branch gcc_ce3_ahb_clk
= {
2165 .halt_check
= BRANCH_HALT_VOTED
,
2167 .enable_reg
= 0x1d0c,
2168 .enable_mask
= BIT(0),
2169 .hw
.init
= &(struct clk_init_data
){
2170 .name
= "gcc_ce3_ahb_clk",
2171 .parent_names
= (const char *[]){
2172 "config_noc_clk_src",
2175 .ops
= &clk_branch2_ops
,
2180 static struct clk_branch gcc_ce3_axi_clk
= {
2182 .halt_check
= BRANCH_HALT_VOTED
,
2184 .enable_reg
= 0x1d08,
2185 .enable_mask
= BIT(0),
2186 .hw
.init
= &(struct clk_init_data
){
2187 .name
= "gcc_ce3_axi_clk",
2188 .parent_names
= (const char *[]){
2189 "system_noc_clk_src",
2192 .ops
= &clk_branch2_ops
,
2197 static struct clk_branch gcc_ce3_clk
= {
2199 .halt_check
= BRANCH_HALT_VOTED
,
2201 .enable_reg
= 0x1d04,
2202 .enable_mask
= BIT(0),
2203 .hw
.init
= &(struct clk_init_data
){
2204 .name
= "gcc_ce3_clk",
2205 .parent_names
= (const char *[]){
2209 .flags
= CLK_SET_RATE_PARENT
,
2210 .ops
= &clk_branch2_ops
,
2215 static struct clk_branch gcc_gp1_clk
= {
2218 .enable_reg
= 0x1900,
2219 .enable_mask
= BIT(0),
2220 .hw
.init
= &(struct clk_init_data
){
2221 .name
= "gcc_gp1_clk",
2222 .parent_names
= (const char *[]){
2226 .flags
= CLK_SET_RATE_PARENT
,
2227 .ops
= &clk_branch2_ops
,
2232 static struct clk_branch gcc_gp2_clk
= {
2235 .enable_reg
= 0x1940,
2236 .enable_mask
= BIT(0),
2237 .hw
.init
= &(struct clk_init_data
){
2238 .name
= "gcc_gp2_clk",
2239 .parent_names
= (const char *[]){
2243 .flags
= CLK_SET_RATE_PARENT
,
2244 .ops
= &clk_branch2_ops
,
2249 static struct clk_branch gcc_gp3_clk
= {
2252 .enable_reg
= 0x1980,
2253 .enable_mask
= BIT(0),
2254 .hw
.init
= &(struct clk_init_data
){
2255 .name
= "gcc_gp3_clk",
2256 .parent_names
= (const char *[]){
2260 .flags
= CLK_SET_RATE_PARENT
,
2261 .ops
= &clk_branch2_ops
,
2266 static struct clk_branch gcc_ocmem_noc_cfg_ahb_clk
= {
2269 .enable_reg
= 0x0248,
2270 .enable_mask
= BIT(0),
2271 .hw
.init
= &(struct clk_init_data
){
2272 .name
= "gcc_ocmem_noc_cfg_ahb_clk",
2273 .parent_names
= (const char *[]){
2274 "config_noc_clk_src",
2277 .ops
= &clk_branch2_ops
,
2282 static struct clk_branch gcc_pcie_0_aux_clk
= {
2285 .enable_reg
= 0x1b10,
2286 .enable_mask
= BIT(0),
2287 .hw
.init
= &(struct clk_init_data
){
2288 .name
= "gcc_pcie_0_aux_clk",
2289 .parent_names
= (const char *[]){
2290 "pcie_0_aux_clk_src",
2293 .flags
= CLK_SET_RATE_PARENT
,
2294 .ops
= &clk_branch2_ops
,
2299 static struct clk_branch gcc_pcie_0_cfg_ahb_clk
= {
2302 .enable_reg
= 0x1b0c,
2303 .enable_mask
= BIT(0),
2304 .hw
.init
= &(struct clk_init_data
){
2305 .name
= "gcc_pcie_0_cfg_ahb_clk",
2306 .parent_names
= (const char *[]){
2307 "config_noc_clk_src",
2310 .flags
= CLK_SET_RATE_PARENT
,
2311 .ops
= &clk_branch2_ops
,
2316 static struct clk_branch gcc_pcie_0_mstr_axi_clk
= {
2319 .enable_reg
= 0x1b08,
2320 .enable_mask
= BIT(0),
2321 .hw
.init
= &(struct clk_init_data
){
2322 .name
= "gcc_pcie_0_mstr_axi_clk",
2323 .parent_names
= (const char *[]){
2324 "config_noc_clk_src",
2327 .flags
= CLK_SET_RATE_PARENT
,
2328 .ops
= &clk_branch2_ops
,
2333 static struct clk_branch gcc_pcie_0_pipe_clk
= {
2336 .enable_reg
= 0x1b14,
2337 .enable_mask
= BIT(0),
2338 .hw
.init
= &(struct clk_init_data
){
2339 .name
= "gcc_pcie_0_pipe_clk",
2340 .parent_names
= (const char *[]){
2341 "pcie_0_pipe_clk_src",
2344 .flags
= CLK_SET_RATE_PARENT
,
2345 .ops
= &clk_branch2_ops
,
2350 static struct clk_branch gcc_pcie_0_slv_axi_clk
= {
2353 .enable_reg
= 0x1b04,
2354 .enable_mask
= BIT(0),
2355 .hw
.init
= &(struct clk_init_data
){
2356 .name
= "gcc_pcie_0_slv_axi_clk",
2357 .parent_names
= (const char *[]){
2358 "config_noc_clk_src",
2361 .flags
= CLK_SET_RATE_PARENT
,
2362 .ops
= &clk_branch2_ops
,
2367 static struct clk_branch gcc_pcie_1_aux_clk
= {
2370 .enable_reg
= 0x1b90,
2371 .enable_mask
= BIT(0),
2372 .hw
.init
= &(struct clk_init_data
){
2373 .name
= "gcc_pcie_1_aux_clk",
2374 .parent_names
= (const char *[]){
2375 "pcie_1_aux_clk_src",
2378 .flags
= CLK_SET_RATE_PARENT
,
2379 .ops
= &clk_branch2_ops
,
2384 static struct clk_branch gcc_pcie_1_cfg_ahb_clk
= {
2387 .enable_reg
= 0x1b8c,
2388 .enable_mask
= BIT(0),
2389 .hw
.init
= &(struct clk_init_data
){
2390 .name
= "gcc_pcie_1_cfg_ahb_clk",
2391 .parent_names
= (const char *[]){
2392 "config_noc_clk_src",
2395 .flags
= CLK_SET_RATE_PARENT
,
2396 .ops
= &clk_branch2_ops
,
2401 static struct clk_branch gcc_pcie_1_mstr_axi_clk
= {
2404 .enable_reg
= 0x1b88,
2405 .enable_mask
= BIT(0),
2406 .hw
.init
= &(struct clk_init_data
){
2407 .name
= "gcc_pcie_1_mstr_axi_clk",
2408 .parent_names
= (const char *[]){
2409 "config_noc_clk_src",
2412 .flags
= CLK_SET_RATE_PARENT
,
2413 .ops
= &clk_branch2_ops
,
2418 static struct clk_branch gcc_pcie_1_pipe_clk
= {
2421 .enable_reg
= 0x1b94,
2422 .enable_mask
= BIT(0),
2423 .hw
.init
= &(struct clk_init_data
){
2424 .name
= "gcc_pcie_1_pipe_clk",
2425 .parent_names
= (const char *[]){
2426 "pcie_1_pipe_clk_src",
2429 .flags
= CLK_SET_RATE_PARENT
,
2430 .ops
= &clk_branch2_ops
,
2435 static struct clk_branch gcc_pcie_1_slv_axi_clk
= {
2438 .enable_reg
= 0x1b84,
2439 .enable_mask
= BIT(0),
2440 .hw
.init
= &(struct clk_init_data
){
2441 .name
= "gcc_pcie_1_slv_axi_clk",
2442 .parent_names
= (const char *[]){
2443 "config_noc_clk_src",
2446 .flags
= CLK_SET_RATE_PARENT
,
2447 .ops
= &clk_branch2_ops
,
2452 static struct clk_branch gcc_pdm2_clk
= {
2455 .enable_reg
= 0x0ccc,
2456 .enable_mask
= BIT(0),
2457 .hw
.init
= &(struct clk_init_data
){
2458 .name
= "gcc_pdm2_clk",
2459 .parent_names
= (const char *[]){
2463 .flags
= CLK_SET_RATE_PARENT
,
2464 .ops
= &clk_branch2_ops
,
2469 static struct clk_branch gcc_pdm_ahb_clk
= {
2472 .enable_reg
= 0x0cc4,
2473 .enable_mask
= BIT(0),
2474 .hw
.init
= &(struct clk_init_data
){
2475 .name
= "gcc_pdm_ahb_clk",
2476 .parent_names
= (const char *[]){
2477 "periph_noc_clk_src",
2480 .ops
= &clk_branch2_ops
,
2485 static struct clk_branch gcc_periph_noc_usb_hsic_ahb_clk
= {
2488 .enable_reg
= 0x01a4,
2489 .enable_mask
= BIT(0),
2490 .hw
.init
= &(struct clk_init_data
){
2491 .name
= "gcc_periph_noc_usb_hsic_ahb_clk",
2492 .parent_names
= (const char *[]){
2493 "usb_hsic_ahb_clk_src",
2496 .flags
= CLK_SET_RATE_PARENT
,
2497 .ops
= &clk_branch2_ops
,
2502 static struct clk_branch gcc_prng_ahb_clk
= {
2504 .halt_check
= BRANCH_HALT_VOTED
,
2506 .enable_reg
= 0x1484,
2507 .enable_mask
= BIT(13),
2508 .hw
.init
= &(struct clk_init_data
){
2509 .name
= "gcc_prng_ahb_clk",
2510 .parent_names
= (const char *[]){
2511 "periph_noc_clk_src",
2514 .ops
= &clk_branch2_ops
,
2519 static struct clk_branch gcc_sata_asic0_clk
= {
2522 .enable_reg
= 0x1c54,
2523 .enable_mask
= BIT(0),
2524 .hw
.init
= &(struct clk_init_data
){
2525 .name
= "gcc_sata_asic0_clk",
2526 .parent_names
= (const char *[]){
2527 "sata_asic0_clk_src",
2530 .flags
= CLK_SET_RATE_PARENT
,
2531 .ops
= &clk_branch2_ops
,
2536 static struct clk_branch gcc_sata_axi_clk
= {
2539 .enable_reg
= 0x1c44,
2540 .enable_mask
= BIT(0),
2541 .hw
.init
= &(struct clk_init_data
){
2542 .name
= "gcc_sata_axi_clk",
2543 .parent_names
= (const char *[]){
2544 "config_noc_clk_src",
2547 .flags
= CLK_SET_RATE_PARENT
,
2548 .ops
= &clk_branch2_ops
,
2553 static struct clk_branch gcc_sata_cfg_ahb_clk
= {
2556 .enable_reg
= 0x1c48,
2557 .enable_mask
= BIT(0),
2558 .hw
.init
= &(struct clk_init_data
){
2559 .name
= "gcc_sata_cfg_ahb_clk",
2560 .parent_names
= (const char *[]){
2561 "config_noc_clk_src",
2564 .flags
= CLK_SET_RATE_PARENT
,
2565 .ops
= &clk_branch2_ops
,
2570 static struct clk_branch gcc_sata_pmalive_clk
= {
2573 .enable_reg
= 0x1c50,
2574 .enable_mask
= BIT(0),
2575 .hw
.init
= &(struct clk_init_data
){
2576 .name
= "gcc_sata_pmalive_clk",
2577 .parent_names
= (const char *[]){
2578 "sata_pmalive_clk_src",
2581 .flags
= CLK_SET_RATE_PARENT
,
2582 .ops
= &clk_branch2_ops
,
2587 static struct clk_branch gcc_sata_rx_clk
= {
2590 .enable_reg
= 0x1c58,
2591 .enable_mask
= BIT(0),
2592 .hw
.init
= &(struct clk_init_data
){
2593 .name
= "gcc_sata_rx_clk",
2594 .parent_names
= (const char *[]){
2598 .flags
= CLK_SET_RATE_PARENT
,
2599 .ops
= &clk_branch2_ops
,
2604 static struct clk_branch gcc_sata_rx_oob_clk
= {
2607 .enable_reg
= 0x1c4c,
2608 .enable_mask
= BIT(0),
2609 .hw
.init
= &(struct clk_init_data
){
2610 .name
= "gcc_sata_rx_oob_clk",
2611 .parent_names
= (const char *[]){
2612 "sata_rx_oob_clk_src",
2615 .flags
= CLK_SET_RATE_PARENT
,
2616 .ops
= &clk_branch2_ops
,
2621 static struct clk_branch gcc_sdcc1_ahb_clk
= {
2624 .enable_reg
= 0x04c8,
2625 .enable_mask
= BIT(0),
2626 .hw
.init
= &(struct clk_init_data
){
2627 .name
= "gcc_sdcc1_ahb_clk",
2628 .parent_names
= (const char *[]){
2629 "periph_noc_clk_src",
2632 .ops
= &clk_branch2_ops
,
2637 static struct clk_branch gcc_sdcc1_apps_clk
= {
2640 .enable_reg
= 0x04c4,
2641 .enable_mask
= BIT(0),
2642 .hw
.init
= &(struct clk_init_data
){
2643 .name
= "gcc_sdcc1_apps_clk",
2644 .parent_names
= (const char *[]){
2645 "sdcc1_apps_clk_src",
2648 .flags
= CLK_SET_RATE_PARENT
,
2649 .ops
= &clk_branch2_ops
,
2654 static struct clk_branch gcc_sdcc1_cdccal_ff_clk
= {
2657 .enable_reg
= 0x04e8,
2658 .enable_mask
= BIT(0),
2659 .hw
.init
= &(struct clk_init_data
){
2660 .name
= "gcc_sdcc1_cdccal_ff_clk",
2661 .parent_names
= (const char *[]){
2665 .ops
= &clk_branch2_ops
,
2670 static struct clk_branch gcc_sdcc1_cdccal_sleep_clk
= {
2673 .enable_reg
= 0x04e4,
2674 .enable_mask
= BIT(0),
2675 .hw
.init
= &(struct clk_init_data
){
2676 .name
= "gcc_sdcc1_cdccal_sleep_clk",
2677 .parent_names
= (const char *[]){
2681 .ops
= &clk_branch2_ops
,
2686 static struct clk_branch gcc_sdcc2_ahb_clk
= {
2689 .enable_reg
= 0x0508,
2690 .enable_mask
= BIT(0),
2691 .hw
.init
= &(struct clk_init_data
){
2692 .name
= "gcc_sdcc2_ahb_clk",
2693 .parent_names
= (const char *[]){
2694 "periph_noc_clk_src",
2697 .ops
= &clk_branch2_ops
,
2702 static struct clk_branch gcc_sdcc2_apps_clk
= {
2705 .enable_reg
= 0x0504,
2706 .enable_mask
= BIT(0),
2707 .hw
.init
= &(struct clk_init_data
){
2708 .name
= "gcc_sdcc2_apps_clk",
2709 .parent_names
= (const char *[]){
2710 "sdcc2_apps_clk_src",
2713 .flags
= CLK_SET_RATE_PARENT
,
2714 .ops
= &clk_branch2_ops
,
2719 static struct clk_branch gcc_sdcc3_ahb_clk
= {
2722 .enable_reg
= 0x0548,
2723 .enable_mask
= BIT(0),
2724 .hw
.init
= &(struct clk_init_data
){
2725 .name
= "gcc_sdcc3_ahb_clk",
2726 .parent_names
= (const char *[]){
2727 "periph_noc_clk_src",
2730 .ops
= &clk_branch2_ops
,
2735 static struct clk_branch gcc_sdcc3_apps_clk
= {
2738 .enable_reg
= 0x0544,
2739 .enable_mask
= BIT(0),
2740 .hw
.init
= &(struct clk_init_data
){
2741 .name
= "gcc_sdcc3_apps_clk",
2742 .parent_names
= (const char *[]){
2743 "sdcc3_apps_clk_src",
2746 .flags
= CLK_SET_RATE_PARENT
,
2747 .ops
= &clk_branch2_ops
,
2752 static struct clk_branch gcc_sdcc4_ahb_clk
= {
2755 .enable_reg
= 0x0588,
2756 .enable_mask
= BIT(0),
2757 .hw
.init
= &(struct clk_init_data
){
2758 .name
= "gcc_sdcc4_ahb_clk",
2759 .parent_names
= (const char *[]){
2760 "periph_noc_clk_src",
2763 .ops
= &clk_branch2_ops
,
2768 static struct clk_branch gcc_sdcc4_apps_clk
= {
2771 .enable_reg
= 0x0584,
2772 .enable_mask
= BIT(0),
2773 .hw
.init
= &(struct clk_init_data
){
2774 .name
= "gcc_sdcc4_apps_clk",
2775 .parent_names
= (const char *[]){
2776 "sdcc4_apps_clk_src",
2779 .flags
= CLK_SET_RATE_PARENT
,
2780 .ops
= &clk_branch2_ops
,
2785 static struct clk_branch gcc_sys_noc_ufs_axi_clk
= {
2788 .enable_reg
= 0x013c,
2789 .enable_mask
= BIT(0),
2790 .hw
.init
= &(struct clk_init_data
){
2791 .name
= "gcc_sys_noc_ufs_axi_clk",
2792 .parent_names
= (const char *[]){
2796 .flags
= CLK_SET_RATE_PARENT
,
2797 .ops
= &clk_branch2_ops
,
2802 static struct clk_branch gcc_sys_noc_usb3_axi_clk
= {
2805 .enable_reg
= 0x0108,
2806 .enable_mask
= BIT(0),
2807 .hw
.init
= &(struct clk_init_data
){
2808 .name
= "gcc_sys_noc_usb3_axi_clk",
2809 .parent_names
= (const char *[]){
2810 "usb30_master_clk_src",
2813 .flags
= CLK_SET_RATE_PARENT
,
2814 .ops
= &clk_branch2_ops
,
2819 static struct clk_branch gcc_sys_noc_usb3_sec_axi_clk
= {
2822 .enable_reg
= 0x0138,
2823 .enable_mask
= BIT(0),
2824 .hw
.init
= &(struct clk_init_data
){
2825 .name
= "gcc_sys_noc_usb3_sec_axi_clk",
2826 .parent_names
= (const char *[]){
2827 "usb30_sec_master_clk_src",
2830 .flags
= CLK_SET_RATE_PARENT
,
2831 .ops
= &clk_branch2_ops
,
2836 static struct clk_branch gcc_tsif_ahb_clk
= {
2839 .enable_reg
= 0x0d84,
2840 .enable_mask
= BIT(0),
2841 .hw
.init
= &(struct clk_init_data
){
2842 .name
= "gcc_tsif_ahb_clk",
2843 .parent_names
= (const char *[]){
2844 "periph_noc_clk_src",
2847 .ops
= &clk_branch2_ops
,
2852 static struct clk_branch gcc_tsif_inactivity_timers_clk
= {
2855 .enable_reg
= 0x0d8c,
2856 .enable_mask
= BIT(0),
2857 .hw
.init
= &(struct clk_init_data
){
2858 .name
= "gcc_tsif_inactivity_timers_clk",
2859 .parent_names
= (const char *[]){
2863 .flags
= CLK_SET_RATE_PARENT
,
2864 .ops
= &clk_branch2_ops
,
2869 static struct clk_branch gcc_tsif_ref_clk
= {
2872 .enable_reg
= 0x0d88,
2873 .enable_mask
= BIT(0),
2874 .hw
.init
= &(struct clk_init_data
){
2875 .name
= "gcc_tsif_ref_clk",
2876 .parent_names
= (const char *[]){
2880 .flags
= CLK_SET_RATE_PARENT
,
2881 .ops
= &clk_branch2_ops
,
2886 static struct clk_branch gcc_ufs_ahb_clk
= {
2889 .enable_reg
= 0x1d48,
2890 .enable_mask
= BIT(0),
2891 .hw
.init
= &(struct clk_init_data
){
2892 .name
= "gcc_ufs_ahb_clk",
2893 .parent_names
= (const char *[]){
2894 "config_noc_clk_src",
2897 .flags
= CLK_SET_RATE_PARENT
,
2898 .ops
= &clk_branch2_ops
,
2903 static struct clk_branch gcc_ufs_axi_clk
= {
2906 .enable_reg
= 0x1d44,
2907 .enable_mask
= BIT(0),
2908 .hw
.init
= &(struct clk_init_data
){
2909 .name
= "gcc_ufs_axi_clk",
2910 .parent_names
= (const char *[]){
2914 .flags
= CLK_SET_RATE_PARENT
,
2915 .ops
= &clk_branch2_ops
,
2920 static struct clk_branch gcc_ufs_rx_cfg_clk
= {
2923 .enable_reg
= 0x1d50,
2924 .enable_mask
= BIT(0),
2925 .hw
.init
= &(struct clk_init_data
){
2926 .name
= "gcc_ufs_rx_cfg_clk",
2927 .parent_names
= (const char *[]){
2931 .flags
= CLK_SET_RATE_PARENT
,
2932 .ops
= &clk_branch2_ops
,
2937 static struct clk_branch gcc_ufs_rx_symbol_0_clk
= {
2940 .enable_reg
= 0x1d5c,
2941 .enable_mask
= BIT(0),
2942 .hw
.init
= &(struct clk_init_data
){
2943 .name
= "gcc_ufs_rx_symbol_0_clk",
2944 .parent_names
= (const char *[]){
2945 "ufs_rx_symbol_0_clk_src",
2948 .flags
= CLK_SET_RATE_PARENT
,
2949 .ops
= &clk_branch2_ops
,
2954 static struct clk_branch gcc_ufs_rx_symbol_1_clk
= {
2957 .enable_reg
= 0x1d60,
2958 .enable_mask
= BIT(0),
2959 .hw
.init
= &(struct clk_init_data
){
2960 .name
= "gcc_ufs_rx_symbol_1_clk",
2961 .parent_names
= (const char *[]){
2962 "ufs_rx_symbol_1_clk_src",
2965 .flags
= CLK_SET_RATE_PARENT
,
2966 .ops
= &clk_branch2_ops
,
2971 static struct clk_branch gcc_ufs_tx_cfg_clk
= {
2974 .enable_reg
= 0x1d4c,
2975 .enable_mask
= BIT(0),
2976 .hw
.init
= &(struct clk_init_data
){
2977 .name
= "gcc_ufs_tx_cfg_clk",
2978 .parent_names
= (const char *[]){
2982 .flags
= CLK_SET_RATE_PARENT
,
2983 .ops
= &clk_branch2_ops
,
2988 static struct clk_branch gcc_ufs_tx_symbol_0_clk
= {
2991 .enable_reg
= 0x1d54,
2992 .enable_mask
= BIT(0),
2993 .hw
.init
= &(struct clk_init_data
){
2994 .name
= "gcc_ufs_tx_symbol_0_clk",
2995 .parent_names
= (const char *[]){
2996 "ufs_tx_symbol_0_clk_src",
2999 .flags
= CLK_SET_RATE_PARENT
,
3000 .ops
= &clk_branch2_ops
,
3005 static struct clk_branch gcc_ufs_tx_symbol_1_clk
= {
3008 .enable_reg
= 0x1d58,
3009 .enable_mask
= BIT(0),
3010 .hw
.init
= &(struct clk_init_data
){
3011 .name
= "gcc_ufs_tx_symbol_1_clk",
3012 .parent_names
= (const char *[]){
3013 "ufs_tx_symbol_1_clk_src",
3016 .flags
= CLK_SET_RATE_PARENT
,
3017 .ops
= &clk_branch2_ops
,
3022 static struct clk_branch gcc_usb2a_phy_sleep_clk
= {
3025 .enable_reg
= 0x04ac,
3026 .enable_mask
= BIT(0),
3027 .hw
.init
= &(struct clk_init_data
){
3028 .name
= "gcc_usb2a_phy_sleep_clk",
3029 .parent_names
= (const char *[]){
3033 .ops
= &clk_branch2_ops
,
3038 static struct clk_branch gcc_usb2b_phy_sleep_clk
= {
3041 .enable_reg
= 0x04b4,
3042 .enable_mask
= BIT(0),
3043 .hw
.init
= &(struct clk_init_data
){
3044 .name
= "gcc_usb2b_phy_sleep_clk",
3045 .parent_names
= (const char *[]){
3049 .ops
= &clk_branch2_ops
,
3054 static struct clk_branch gcc_usb30_master_clk
= {
3057 .enable_reg
= 0x03c8,
3058 .enable_mask
= BIT(0),
3059 .hw
.init
= &(struct clk_init_data
){
3060 .name
= "gcc_usb30_master_clk",
3061 .parent_names
= (const char *[]){
3062 "usb30_master_clk_src",
3065 .flags
= CLK_SET_RATE_PARENT
,
3066 .ops
= &clk_branch2_ops
,
3071 static struct clk_branch gcc_usb30_sec_master_clk
= {
3074 .enable_reg
= 0x1bc8,
3075 .enable_mask
= BIT(0),
3076 .hw
.init
= &(struct clk_init_data
){
3077 .name
= "gcc_usb30_sec_master_clk",
3078 .parent_names
= (const char *[]){
3079 "usb30_sec_master_clk_src",
3082 .flags
= CLK_SET_RATE_PARENT
,
3083 .ops
= &clk_branch2_ops
,
3088 static struct clk_branch gcc_usb30_mock_utmi_clk
= {
3091 .enable_reg
= 0x03d0,
3092 .enable_mask
= BIT(0),
3093 .hw
.init
= &(struct clk_init_data
){
3094 .name
= "gcc_usb30_mock_utmi_clk",
3095 .parent_names
= (const char *[]){
3096 "usb30_mock_utmi_clk_src",
3099 .flags
= CLK_SET_RATE_PARENT
,
3100 .ops
= &clk_branch2_ops
,
3105 static struct clk_branch gcc_usb30_sleep_clk
= {
3108 .enable_reg
= 0x03cc,
3109 .enable_mask
= BIT(0),
3110 .hw
.init
= &(struct clk_init_data
){
3111 .name
= "gcc_usb30_sleep_clk",
3112 .parent_names
= (const char *[]){
3116 .ops
= &clk_branch2_ops
,
3121 static struct clk_branch gcc_usb_hs_ahb_clk
= {
3124 .enable_reg
= 0x0488,
3125 .enable_mask
= BIT(0),
3126 .hw
.init
= &(struct clk_init_data
){
3127 .name
= "gcc_usb_hs_ahb_clk",
3128 .parent_names
= (const char *[]){
3129 "periph_noc_clk_src",
3132 .ops
= &clk_branch2_ops
,
3137 static struct clk_branch gcc_usb_hs_inactivity_timers_clk
= {
3140 .enable_reg
= 0x048c,
3141 .enable_mask
= BIT(0),
3142 .hw
.init
= &(struct clk_init_data
){
3143 .name
= "gcc_usb_hs_inactivity_timers_clk",
3144 .parent_names
= (const char *[]){
3148 .flags
= CLK_SET_RATE_PARENT
,
3149 .ops
= &clk_branch2_ops
,
3154 static struct clk_branch gcc_usb_hs_system_clk
= {
3157 .enable_reg
= 0x0484,
3158 .enable_mask
= BIT(0),
3159 .hw
.init
= &(struct clk_init_data
){
3160 .name
= "gcc_usb_hs_system_clk",
3161 .parent_names
= (const char *[]){
3162 "usb_hs_system_clk_src",
3165 .flags
= CLK_SET_RATE_PARENT
,
3166 .ops
= &clk_branch2_ops
,
3171 static struct clk_branch gcc_usb_hsic_ahb_clk
= {
3174 .enable_reg
= 0x0408,
3175 .enable_mask
= BIT(0),
3176 .hw
.init
= &(struct clk_init_data
){
3177 .name
= "gcc_usb_hsic_ahb_clk",
3178 .parent_names
= (const char *[]){
3179 "periph_noc_clk_src",
3182 .ops
= &clk_branch2_ops
,
3187 static struct clk_branch gcc_usb_hsic_clk
= {
3190 .enable_reg
= 0x0410,
3191 .enable_mask
= BIT(0),
3192 .hw
.init
= &(struct clk_init_data
){
3193 .name
= "gcc_usb_hsic_clk",
3194 .parent_names
= (const char *[]){
3198 .flags
= CLK_SET_RATE_PARENT
,
3199 .ops
= &clk_branch2_ops
,
3204 static struct clk_branch gcc_usb_hsic_io_cal_clk
= {
3207 .enable_reg
= 0x0414,
3208 .enable_mask
= BIT(0),
3209 .hw
.init
= &(struct clk_init_data
){
3210 .name
= "gcc_usb_hsic_io_cal_clk",
3211 .parent_names
= (const char *[]){
3212 "usb_hsic_io_cal_clk_src",
3215 .flags
= CLK_SET_RATE_PARENT
,
3216 .ops
= &clk_branch2_ops
,
3221 static struct clk_branch gcc_usb_hsic_io_cal_sleep_clk
= {
3224 .enable_reg
= 0x0418,
3225 .enable_mask
= BIT(0),
3226 .hw
.init
= &(struct clk_init_data
){
3227 .name
= "gcc_usb_hsic_io_cal_sleep_clk",
3228 .parent_names
= (const char *[]){
3232 .ops
= &clk_branch2_ops
,
3237 static struct clk_branch gcc_usb_hsic_system_clk
= {
3240 .enable_reg
= 0x040c,
3241 .enable_mask
= BIT(0),
3242 .hw
.init
= &(struct clk_init_data
){
3243 .name
= "gcc_usb_hsic_system_clk",
3244 .parent_names
= (const char *[]){
3245 "usb_hsic_system_clk_src",
3248 .flags
= CLK_SET_RATE_PARENT
,
3249 .ops
= &clk_branch2_ops
,
3254 static struct clk_regmap
*gcc_apq8084_clocks
[] = {
3255 [GPLL0
] = &gpll0
.clkr
,
3256 [GPLL0_VOTE
] = &gpll0_vote
,
3257 [GPLL1
] = &gpll1
.clkr
,
3258 [GPLL1_VOTE
] = &gpll1_vote
,
3259 [GPLL4
] = &gpll4
.clkr
,
3260 [GPLL4_VOTE
] = &gpll4_vote
,
3261 [CONFIG_NOC_CLK_SRC
] = &config_noc_clk_src
.clkr
,
3262 [PERIPH_NOC_CLK_SRC
] = &periph_noc_clk_src
.clkr
,
3263 [SYSTEM_NOC_CLK_SRC
] = &system_noc_clk_src
.clkr
,
3264 [UFS_AXI_CLK_SRC
] = &ufs_axi_clk_src
.clkr
,
3265 [USB30_MASTER_CLK_SRC
] = &usb30_master_clk_src
.clkr
,
3266 [USB30_SEC_MASTER_CLK_SRC
] = &usb30_sec_master_clk_src
.clkr
,
3267 [USB_HSIC_AHB_CLK_SRC
] = &usb_hsic_ahb_clk_src
.clkr
,
3268 [BLSP1_QUP1_I2C_APPS_CLK_SRC
] = &blsp1_qup1_i2c_apps_clk_src
.clkr
,
3269 [BLSP1_QUP1_SPI_APPS_CLK_SRC
] = &blsp1_qup1_spi_apps_clk_src
.clkr
,
3270 [BLSP1_QUP2_I2C_APPS_CLK_SRC
] = &blsp1_qup2_i2c_apps_clk_src
.clkr
,
3271 [BLSP1_QUP2_SPI_APPS_CLK_SRC
] = &blsp1_qup2_spi_apps_clk_src
.clkr
,
3272 [BLSP1_QUP3_I2C_APPS_CLK_SRC
] = &blsp1_qup3_i2c_apps_clk_src
.clkr
,
3273 [BLSP1_QUP3_SPI_APPS_CLK_SRC
] = &blsp1_qup3_spi_apps_clk_src
.clkr
,
3274 [BLSP1_QUP4_I2C_APPS_CLK_SRC
] = &blsp1_qup4_i2c_apps_clk_src
.clkr
,
3275 [BLSP1_QUP4_SPI_APPS_CLK_SRC
] = &blsp1_qup4_spi_apps_clk_src
.clkr
,
3276 [BLSP1_QUP5_I2C_APPS_CLK_SRC
] = &blsp1_qup5_i2c_apps_clk_src
.clkr
,
3277 [BLSP1_QUP5_SPI_APPS_CLK_SRC
] = &blsp1_qup5_spi_apps_clk_src
.clkr
,
3278 [BLSP1_QUP6_I2C_APPS_CLK_SRC
] = &blsp1_qup6_i2c_apps_clk_src
.clkr
,
3279 [BLSP1_QUP6_SPI_APPS_CLK_SRC
] = &blsp1_qup6_spi_apps_clk_src
.clkr
,
3280 [BLSP1_UART1_APPS_CLK_SRC
] = &blsp1_uart1_apps_clk_src
.clkr
,
3281 [BLSP1_UART2_APPS_CLK_SRC
] = &blsp1_uart2_apps_clk_src
.clkr
,
3282 [BLSP1_UART3_APPS_CLK_SRC
] = &blsp1_uart3_apps_clk_src
.clkr
,
3283 [BLSP1_UART4_APPS_CLK_SRC
] = &blsp1_uart4_apps_clk_src
.clkr
,
3284 [BLSP1_UART5_APPS_CLK_SRC
] = &blsp1_uart5_apps_clk_src
.clkr
,
3285 [BLSP1_UART6_APPS_CLK_SRC
] = &blsp1_uart6_apps_clk_src
.clkr
,
3286 [BLSP2_QUP1_I2C_APPS_CLK_SRC
] = &blsp2_qup1_i2c_apps_clk_src
.clkr
,
3287 [BLSP2_QUP1_SPI_APPS_CLK_SRC
] = &blsp2_qup1_spi_apps_clk_src
.clkr
,
3288 [BLSP2_QUP2_I2C_APPS_CLK_SRC
] = &blsp2_qup2_i2c_apps_clk_src
.clkr
,
3289 [BLSP2_QUP2_SPI_APPS_CLK_SRC
] = &blsp2_qup2_spi_apps_clk_src
.clkr
,
3290 [BLSP2_QUP3_I2C_APPS_CLK_SRC
] = &blsp2_qup3_i2c_apps_clk_src
.clkr
,
3291 [BLSP2_QUP3_SPI_APPS_CLK_SRC
] = &blsp2_qup3_spi_apps_clk_src
.clkr
,
3292 [BLSP2_QUP4_I2C_APPS_CLK_SRC
] = &blsp2_qup4_i2c_apps_clk_src
.clkr
,
3293 [BLSP2_QUP4_SPI_APPS_CLK_SRC
] = &blsp2_qup4_spi_apps_clk_src
.clkr
,
3294 [BLSP2_QUP5_I2C_APPS_CLK_SRC
] = &blsp2_qup5_i2c_apps_clk_src
.clkr
,
3295 [BLSP2_QUP5_SPI_APPS_CLK_SRC
] = &blsp2_qup5_spi_apps_clk_src
.clkr
,
3296 [BLSP2_QUP6_I2C_APPS_CLK_SRC
] = &blsp2_qup6_i2c_apps_clk_src
.clkr
,
3297 [BLSP2_QUP6_SPI_APPS_CLK_SRC
] = &blsp2_qup6_spi_apps_clk_src
.clkr
,
3298 [BLSP2_UART1_APPS_CLK_SRC
] = &blsp2_uart1_apps_clk_src
.clkr
,
3299 [BLSP2_UART2_APPS_CLK_SRC
] = &blsp2_uart2_apps_clk_src
.clkr
,
3300 [BLSP2_UART3_APPS_CLK_SRC
] = &blsp2_uart3_apps_clk_src
.clkr
,
3301 [BLSP2_UART4_APPS_CLK_SRC
] = &blsp2_uart4_apps_clk_src
.clkr
,
3302 [BLSP2_UART5_APPS_CLK_SRC
] = &blsp2_uart5_apps_clk_src
.clkr
,
3303 [BLSP2_UART6_APPS_CLK_SRC
] = &blsp2_uart6_apps_clk_src
.clkr
,
3304 [CE1_CLK_SRC
] = &ce1_clk_src
.clkr
,
3305 [CE2_CLK_SRC
] = &ce2_clk_src
.clkr
,
3306 [CE3_CLK_SRC
] = &ce3_clk_src
.clkr
,
3307 [GP1_CLK_SRC
] = &gp1_clk_src
.clkr
,
3308 [GP2_CLK_SRC
] = &gp2_clk_src
.clkr
,
3309 [GP3_CLK_SRC
] = &gp3_clk_src
.clkr
,
3310 [PCIE_0_AUX_CLK_SRC
] = &pcie_0_aux_clk_src
.clkr
,
3311 [PCIE_0_PIPE_CLK_SRC
] = &pcie_0_pipe_clk_src
.clkr
,
3312 [PCIE_1_AUX_CLK_SRC
] = &pcie_1_aux_clk_src
.clkr
,
3313 [PCIE_1_PIPE_CLK_SRC
] = &pcie_1_pipe_clk_src
.clkr
,
3314 [PDM2_CLK_SRC
] = &pdm2_clk_src
.clkr
,
3315 [SATA_ASIC0_CLK_SRC
] = &sata_asic0_clk_src
.clkr
,
3316 [SATA_PMALIVE_CLK_SRC
] = &sata_pmalive_clk_src
.clkr
,
3317 [SATA_RX_CLK_SRC
] = &sata_rx_clk_src
.clkr
,
3318 [SATA_RX_OOB_CLK_SRC
] = &sata_rx_oob_clk_src
.clkr
,
3319 [SDCC1_APPS_CLK_SRC
] = &sdcc1_apps_clk_src
.clkr
,
3320 [SDCC2_APPS_CLK_SRC
] = &sdcc2_apps_clk_src
.clkr
,
3321 [SDCC3_APPS_CLK_SRC
] = &sdcc3_apps_clk_src
.clkr
,
3322 [SDCC4_APPS_CLK_SRC
] = &sdcc4_apps_clk_src
.clkr
,
3323 [TSIF_REF_CLK_SRC
] = &tsif_ref_clk_src
.clkr
,
3324 [USB30_MOCK_UTMI_CLK_SRC
] = &usb30_mock_utmi_clk_src
.clkr
,
3325 [USB30_SEC_MOCK_UTMI_CLK_SRC
] = &usb30_sec_mock_utmi_clk_src
.clkr
,
3326 [USB_HS_SYSTEM_CLK_SRC
] = &usb_hs_system_clk_src
.clkr
,
3327 [USB_HSIC_CLK_SRC
] = &usb_hsic_clk_src
.clkr
,
3328 [USB_HSIC_IO_CAL_CLK_SRC
] = &usb_hsic_io_cal_clk_src
.clkr
,
3329 [USB_HSIC_MOCK_UTMI_CLK_SRC
] = &usb_hsic_mock_utmi_clk_src
.clkr
,
3330 [USB_HSIC_SYSTEM_CLK_SRC
] = &usb_hsic_system_clk_src
.clkr
,
3331 [GCC_BAM_DMA_AHB_CLK
] = &gcc_bam_dma_ahb_clk
.clkr
,
3332 [GCC_BLSP1_AHB_CLK
] = &gcc_blsp1_ahb_clk
.clkr
,
3333 [GCC_BLSP1_QUP1_I2C_APPS_CLK
] = &gcc_blsp1_qup1_i2c_apps_clk
.clkr
,
3334 [GCC_BLSP1_QUP1_SPI_APPS_CLK
] = &gcc_blsp1_qup1_spi_apps_clk
.clkr
,
3335 [GCC_BLSP1_QUP2_I2C_APPS_CLK
] = &gcc_blsp1_qup2_i2c_apps_clk
.clkr
,
3336 [GCC_BLSP1_QUP2_SPI_APPS_CLK
] = &gcc_blsp1_qup2_spi_apps_clk
.clkr
,
3337 [GCC_BLSP1_QUP3_I2C_APPS_CLK
] = &gcc_blsp1_qup3_i2c_apps_clk
.clkr
,
3338 [GCC_BLSP1_QUP3_SPI_APPS_CLK
] = &gcc_blsp1_qup3_spi_apps_clk
.clkr
,
3339 [GCC_BLSP1_QUP4_I2C_APPS_CLK
] = &gcc_blsp1_qup4_i2c_apps_clk
.clkr
,
3340 [GCC_BLSP1_QUP4_SPI_APPS_CLK
] = &gcc_blsp1_qup4_spi_apps_clk
.clkr
,
3341 [GCC_BLSP1_QUP5_I2C_APPS_CLK
] = &gcc_blsp1_qup5_i2c_apps_clk
.clkr
,
3342 [GCC_BLSP1_QUP5_SPI_APPS_CLK
] = &gcc_blsp1_qup5_spi_apps_clk
.clkr
,
3343 [GCC_BLSP1_QUP6_I2C_APPS_CLK
] = &gcc_blsp1_qup6_i2c_apps_clk
.clkr
,
3344 [GCC_BLSP1_QUP6_SPI_APPS_CLK
] = &gcc_blsp1_qup6_spi_apps_clk
.clkr
,
3345 [GCC_BLSP1_UART1_APPS_CLK
] = &gcc_blsp1_uart1_apps_clk
.clkr
,
3346 [GCC_BLSP1_UART2_APPS_CLK
] = &gcc_blsp1_uart2_apps_clk
.clkr
,
3347 [GCC_BLSP1_UART3_APPS_CLK
] = &gcc_blsp1_uart3_apps_clk
.clkr
,
3348 [GCC_BLSP1_UART4_APPS_CLK
] = &gcc_blsp1_uart4_apps_clk
.clkr
,
3349 [GCC_BLSP1_UART5_APPS_CLK
] = &gcc_blsp1_uart5_apps_clk
.clkr
,
3350 [GCC_BLSP1_UART6_APPS_CLK
] = &gcc_blsp1_uart6_apps_clk
.clkr
,
3351 [GCC_BLSP2_AHB_CLK
] = &gcc_blsp2_ahb_clk
.clkr
,
3352 [GCC_BLSP2_QUP1_I2C_APPS_CLK
] = &gcc_blsp2_qup1_i2c_apps_clk
.clkr
,
3353 [GCC_BLSP2_QUP1_SPI_APPS_CLK
] = &gcc_blsp2_qup1_spi_apps_clk
.clkr
,
3354 [GCC_BLSP2_QUP2_I2C_APPS_CLK
] = &gcc_blsp2_qup2_i2c_apps_clk
.clkr
,
3355 [GCC_BLSP2_QUP2_SPI_APPS_CLK
] = &gcc_blsp2_qup2_spi_apps_clk
.clkr
,
3356 [GCC_BLSP2_QUP3_I2C_APPS_CLK
] = &gcc_blsp2_qup3_i2c_apps_clk
.clkr
,
3357 [GCC_BLSP2_QUP3_SPI_APPS_CLK
] = &gcc_blsp2_qup3_spi_apps_clk
.clkr
,
3358 [GCC_BLSP2_QUP4_I2C_APPS_CLK
] = &gcc_blsp2_qup4_i2c_apps_clk
.clkr
,
3359 [GCC_BLSP2_QUP4_SPI_APPS_CLK
] = &gcc_blsp2_qup4_spi_apps_clk
.clkr
,
3360 [GCC_BLSP2_QUP5_I2C_APPS_CLK
] = &gcc_blsp2_qup5_i2c_apps_clk
.clkr
,
3361 [GCC_BLSP2_QUP5_SPI_APPS_CLK
] = &gcc_blsp2_qup5_spi_apps_clk
.clkr
,
3362 [GCC_BLSP2_QUP6_I2C_APPS_CLK
] = &gcc_blsp2_qup6_i2c_apps_clk
.clkr
,
3363 [GCC_BLSP2_QUP6_SPI_APPS_CLK
] = &gcc_blsp2_qup6_spi_apps_clk
.clkr
,
3364 [GCC_BLSP2_UART1_APPS_CLK
] = &gcc_blsp2_uart1_apps_clk
.clkr
,
3365 [GCC_BLSP2_UART2_APPS_CLK
] = &gcc_blsp2_uart2_apps_clk
.clkr
,
3366 [GCC_BLSP2_UART3_APPS_CLK
] = &gcc_blsp2_uart3_apps_clk
.clkr
,
3367 [GCC_BLSP2_UART4_APPS_CLK
] = &gcc_blsp2_uart4_apps_clk
.clkr
,
3368 [GCC_BLSP2_UART5_APPS_CLK
] = &gcc_blsp2_uart5_apps_clk
.clkr
,
3369 [GCC_BLSP2_UART6_APPS_CLK
] = &gcc_blsp2_uart6_apps_clk
.clkr
,
3370 [GCC_BOOT_ROM_AHB_CLK
] = &gcc_boot_rom_ahb_clk
.clkr
,
3371 [GCC_CE1_AHB_CLK
] = &gcc_ce1_ahb_clk
.clkr
,
3372 [GCC_CE1_AXI_CLK
] = &gcc_ce1_axi_clk
.clkr
,
3373 [GCC_CE1_CLK
] = &gcc_ce1_clk
.clkr
,
3374 [GCC_CE2_AHB_CLK
] = &gcc_ce2_ahb_clk
.clkr
,
3375 [GCC_CE2_AXI_CLK
] = &gcc_ce2_axi_clk
.clkr
,
3376 [GCC_CE2_CLK
] = &gcc_ce2_clk
.clkr
,
3377 [GCC_CE3_AHB_CLK
] = &gcc_ce3_ahb_clk
.clkr
,
3378 [GCC_CE3_AXI_CLK
] = &gcc_ce3_axi_clk
.clkr
,
3379 [GCC_CE3_CLK
] = &gcc_ce3_clk
.clkr
,
3380 [GCC_GP1_CLK
] = &gcc_gp1_clk
.clkr
,
3381 [GCC_GP2_CLK
] = &gcc_gp2_clk
.clkr
,
3382 [GCC_GP3_CLK
] = &gcc_gp3_clk
.clkr
,
3383 [GCC_OCMEM_NOC_CFG_AHB_CLK
] = &gcc_ocmem_noc_cfg_ahb_clk
.clkr
,
3384 [GCC_PCIE_0_AUX_CLK
] = &gcc_pcie_0_aux_clk
.clkr
,
3385 [GCC_PCIE_0_CFG_AHB_CLK
] = &gcc_pcie_0_cfg_ahb_clk
.clkr
,
3386 [GCC_PCIE_0_MSTR_AXI_CLK
] = &gcc_pcie_0_mstr_axi_clk
.clkr
,
3387 [GCC_PCIE_0_PIPE_CLK
] = &gcc_pcie_0_pipe_clk
.clkr
,
3388 [GCC_PCIE_0_SLV_AXI_CLK
] = &gcc_pcie_0_slv_axi_clk
.clkr
,
3389 [GCC_PCIE_1_AUX_CLK
] = &gcc_pcie_1_aux_clk
.clkr
,
3390 [GCC_PCIE_1_CFG_AHB_CLK
] = &gcc_pcie_1_cfg_ahb_clk
.clkr
,
3391 [GCC_PCIE_1_MSTR_AXI_CLK
] = &gcc_pcie_1_mstr_axi_clk
.clkr
,
3392 [GCC_PCIE_1_PIPE_CLK
] = &gcc_pcie_1_pipe_clk
.clkr
,
3393 [GCC_PCIE_1_SLV_AXI_CLK
] = &gcc_pcie_1_slv_axi_clk
.clkr
,
3394 [GCC_PDM2_CLK
] = &gcc_pdm2_clk
.clkr
,
3395 [GCC_PDM_AHB_CLK
] = &gcc_pdm_ahb_clk
.clkr
,
3396 [GCC_PERIPH_NOC_USB_HSIC_AHB_CLK
] = &gcc_periph_noc_usb_hsic_ahb_clk
.clkr
,
3397 [GCC_PRNG_AHB_CLK
] = &gcc_prng_ahb_clk
.clkr
,
3398 [GCC_SATA_ASIC0_CLK
] = &gcc_sata_asic0_clk
.clkr
,
3399 [GCC_SATA_AXI_CLK
] = &gcc_sata_axi_clk
.clkr
,
3400 [GCC_SATA_CFG_AHB_CLK
] = &gcc_sata_cfg_ahb_clk
.clkr
,
3401 [GCC_SATA_PMALIVE_CLK
] = &gcc_sata_pmalive_clk
.clkr
,
3402 [GCC_SATA_RX_CLK
] = &gcc_sata_rx_clk
.clkr
,
3403 [GCC_SATA_RX_OOB_CLK
] = &gcc_sata_rx_oob_clk
.clkr
,
3404 [GCC_SDCC1_AHB_CLK
] = &gcc_sdcc1_ahb_clk
.clkr
,
3405 [GCC_SDCC1_APPS_CLK
] = &gcc_sdcc1_apps_clk
.clkr
,
3406 [GCC_SDCC1_CDCCAL_FF_CLK
] = &gcc_sdcc1_cdccal_ff_clk
.clkr
,
3407 [GCC_SDCC1_CDCCAL_SLEEP_CLK
] = &gcc_sdcc1_cdccal_sleep_clk
.clkr
,
3408 [GCC_SDCC2_AHB_CLK
] = &gcc_sdcc2_ahb_clk
.clkr
,
3409 [GCC_SDCC2_APPS_CLK
] = &gcc_sdcc2_apps_clk
.clkr
,
3410 [GCC_SDCC3_AHB_CLK
] = &gcc_sdcc3_ahb_clk
.clkr
,
3411 [GCC_SDCC3_APPS_CLK
] = &gcc_sdcc3_apps_clk
.clkr
,
3412 [GCC_SDCC4_AHB_CLK
] = &gcc_sdcc4_ahb_clk
.clkr
,
3413 [GCC_SDCC4_APPS_CLK
] = &gcc_sdcc4_apps_clk
.clkr
,
3414 [GCC_SYS_NOC_UFS_AXI_CLK
] = &gcc_sys_noc_ufs_axi_clk
.clkr
,
3415 [GCC_SYS_NOC_USB3_AXI_CLK
] = &gcc_sys_noc_usb3_axi_clk
.clkr
,
3416 [GCC_SYS_NOC_USB3_SEC_AXI_CLK
] = &gcc_sys_noc_usb3_sec_axi_clk
.clkr
,
3417 [GCC_TSIF_AHB_CLK
] = &gcc_tsif_ahb_clk
.clkr
,
3418 [GCC_TSIF_INACTIVITY_TIMERS_CLK
] = &gcc_tsif_inactivity_timers_clk
.clkr
,
3419 [GCC_TSIF_REF_CLK
] = &gcc_tsif_ref_clk
.clkr
,
3420 [GCC_UFS_AHB_CLK
] = &gcc_ufs_ahb_clk
.clkr
,
3421 [GCC_UFS_AXI_CLK
] = &gcc_ufs_axi_clk
.clkr
,
3422 [GCC_UFS_RX_CFG_CLK
] = &gcc_ufs_rx_cfg_clk
.clkr
,
3423 [GCC_UFS_RX_SYMBOL_0_CLK
] = &gcc_ufs_rx_symbol_0_clk
.clkr
,
3424 [GCC_UFS_RX_SYMBOL_1_CLK
] = &gcc_ufs_rx_symbol_1_clk
.clkr
,
3425 [GCC_UFS_TX_CFG_CLK
] = &gcc_ufs_tx_cfg_clk
.clkr
,
3426 [GCC_UFS_TX_SYMBOL_0_CLK
] = &gcc_ufs_tx_symbol_0_clk
.clkr
,
3427 [GCC_UFS_TX_SYMBOL_1_CLK
] = &gcc_ufs_tx_symbol_1_clk
.clkr
,
3428 [GCC_USB2A_PHY_SLEEP_CLK
] = &gcc_usb2a_phy_sleep_clk
.clkr
,
3429 [GCC_USB2B_PHY_SLEEP_CLK
] = &gcc_usb2b_phy_sleep_clk
.clkr
,
3430 [GCC_USB30_MASTER_CLK
] = &gcc_usb30_master_clk
.clkr
,
3431 [GCC_USB30_MOCK_UTMI_CLK
] = &gcc_usb30_mock_utmi_clk
.clkr
,
3432 [GCC_USB30_SLEEP_CLK
] = &gcc_usb30_sleep_clk
.clkr
,
3433 [GCC_USB30_SEC_MASTER_CLK
] = &gcc_usb30_sec_master_clk
.clkr
,
3434 [GCC_USB30_SEC_MOCK_UTMI_CLK
] = &gcc_usb30_sec_mock_utmi_clk
.clkr
,
3435 [GCC_USB30_SEC_SLEEP_CLK
] = &gcc_usb30_sec_sleep_clk
.clkr
,
3436 [GCC_USB_HS_AHB_CLK
] = &gcc_usb_hs_ahb_clk
.clkr
,
3437 [GCC_USB_HS_INACTIVITY_TIMERS_CLK
] = &gcc_usb_hs_inactivity_timers_clk
.clkr
,
3438 [GCC_USB_HS_SYSTEM_CLK
] = &gcc_usb_hs_system_clk
.clkr
,
3439 [GCC_USB_HSIC_AHB_CLK
] = &gcc_usb_hsic_ahb_clk
.clkr
,
3440 [GCC_USB_HSIC_CLK
] = &gcc_usb_hsic_clk
.clkr
,
3441 [GCC_USB_HSIC_IO_CAL_CLK
] = &gcc_usb_hsic_io_cal_clk
.clkr
,
3442 [GCC_USB_HSIC_IO_CAL_SLEEP_CLK
] = &gcc_usb_hsic_io_cal_sleep_clk
.clkr
,
3443 [GCC_USB_HSIC_MOCK_UTMI_CLK
] = &gcc_usb_hsic_mock_utmi_clk
.clkr
,
3444 [GCC_USB_HSIC_SYSTEM_CLK
] = &gcc_usb_hsic_system_clk
.clkr
,
3447 static const struct qcom_reset_map gcc_apq8084_resets
[] = {
3448 [GCC_SYSTEM_NOC_BCR
] = { 0x0100 },
3449 [GCC_CONFIG_NOC_BCR
] = { 0x0140 },
3450 [GCC_PERIPH_NOC_BCR
] = { 0x0180 },
3451 [GCC_IMEM_BCR
] = { 0x0200 },
3452 [GCC_MMSS_BCR
] = { 0x0240 },
3453 [GCC_QDSS_BCR
] = { 0x0300 },
3454 [GCC_USB_30_BCR
] = { 0x03c0 },
3455 [GCC_USB3_PHY_BCR
] = { 0x03fc },
3456 [GCC_USB_HS_HSIC_BCR
] = { 0x0400 },
3457 [GCC_USB_HS_BCR
] = { 0x0480 },
3458 [GCC_USB2A_PHY_BCR
] = { 0x04a8 },
3459 [GCC_USB2B_PHY_BCR
] = { 0x04b0 },
3460 [GCC_SDCC1_BCR
] = { 0x04c0 },
3461 [GCC_SDCC2_BCR
] = { 0x0500 },
3462 [GCC_SDCC3_BCR
] = { 0x0540 },
3463 [GCC_SDCC4_BCR
] = { 0x0580 },
3464 [GCC_BLSP1_BCR
] = { 0x05c0 },
3465 [GCC_BLSP1_QUP1_BCR
] = { 0x0640 },
3466 [GCC_BLSP1_UART1_BCR
] = { 0x0680 },
3467 [GCC_BLSP1_QUP2_BCR
] = { 0x06c0 },
3468 [GCC_BLSP1_UART2_BCR
] = { 0x0700 },
3469 [GCC_BLSP1_QUP3_BCR
] = { 0x0740 },
3470 [GCC_BLSP1_UART3_BCR
] = { 0x0780 },
3471 [GCC_BLSP1_QUP4_BCR
] = { 0x07c0 },
3472 [GCC_BLSP1_UART4_BCR
] = { 0x0800 },
3473 [GCC_BLSP1_QUP5_BCR
] = { 0x0840 },
3474 [GCC_BLSP1_UART5_BCR
] = { 0x0880 },
3475 [GCC_BLSP1_QUP6_BCR
] = { 0x08c0 },
3476 [GCC_BLSP1_UART6_BCR
] = { 0x0900 },
3477 [GCC_BLSP2_BCR
] = { 0x0940 },
3478 [GCC_BLSP2_QUP1_BCR
] = { 0x0980 },
3479 [GCC_BLSP2_UART1_BCR
] = { 0x09c0 },
3480 [GCC_BLSP2_QUP2_BCR
] = { 0x0a00 },
3481 [GCC_BLSP2_UART2_BCR
] = { 0x0a40 },
3482 [GCC_BLSP2_QUP3_BCR
] = { 0x0a80 },
3483 [GCC_BLSP2_UART3_BCR
] = { 0x0ac0 },
3484 [GCC_BLSP2_QUP4_BCR
] = { 0x0b00 },
3485 [GCC_BLSP2_UART4_BCR
] = { 0x0b40 },
3486 [GCC_BLSP2_QUP5_BCR
] = { 0x0b80 },
3487 [GCC_BLSP2_UART5_BCR
] = { 0x0bc0 },
3488 [GCC_BLSP2_QUP6_BCR
] = { 0x0c00 },
3489 [GCC_BLSP2_UART6_BCR
] = { 0x0c40 },
3490 [GCC_PDM_BCR
] = { 0x0cc0 },
3491 [GCC_PRNG_BCR
] = { 0x0d00 },
3492 [GCC_BAM_DMA_BCR
] = { 0x0d40 },
3493 [GCC_TSIF_BCR
] = { 0x0d80 },
3494 [GCC_TCSR_BCR
] = { 0x0dc0 },
3495 [GCC_BOOT_ROM_BCR
] = { 0x0e00 },
3496 [GCC_MSG_RAM_BCR
] = { 0x0e40 },
3497 [GCC_TLMM_BCR
] = { 0x0e80 },
3498 [GCC_MPM_BCR
] = { 0x0ec0 },
3499 [GCC_MPM_AHB_RESET
] = { 0x0ec4, 1 },
3500 [GCC_MPM_NON_AHB_RESET
] = { 0x0ec4, 2 },
3501 [GCC_SEC_CTRL_BCR
] = { 0x0f40 },
3502 [GCC_SPMI_BCR
] = { 0x0fc0 },
3503 [GCC_SPDM_BCR
] = { 0x1000 },
3504 [GCC_CE1_BCR
] = { 0x1040 },
3505 [GCC_CE2_BCR
] = { 0x1080 },
3506 [GCC_BIMC_BCR
] = { 0x1100 },
3507 [GCC_SNOC_BUS_TIMEOUT0_BCR
] = { 0x1240 },
3508 [GCC_SNOC_BUS_TIMEOUT2_BCR
] = { 0x1248 },
3509 [GCC_PNOC_BUS_TIMEOUT0_BCR
] = { 0x1280 },
3510 [GCC_PNOC_BUS_TIMEOUT1_BCR
] = { 0x1288 },
3511 [GCC_PNOC_BUS_TIMEOUT2_BCR
] = { 0x1290 },
3512 [GCC_PNOC_BUS_TIMEOUT3_BCR
] = { 0x1298 },
3513 [GCC_PNOC_BUS_TIMEOUT4_BCR
] = { 0x12a0 },
3514 [GCC_CNOC_BUS_TIMEOUT0_BCR
] = { 0x12c0 },
3515 [GCC_CNOC_BUS_TIMEOUT1_BCR
] = { 0x12c8 },
3516 [GCC_CNOC_BUS_TIMEOUT2_BCR
] = { 0x12d0 },
3517 [GCC_CNOC_BUS_TIMEOUT3_BCR
] = { 0x12d8 },
3518 [GCC_CNOC_BUS_TIMEOUT4_BCR
] = { 0x12e0 },
3519 [GCC_CNOC_BUS_TIMEOUT5_BCR
] = { 0x12e8 },
3520 [GCC_CNOC_BUS_TIMEOUT6_BCR
] = { 0x12f0 },
3521 [GCC_DEHR_BCR
] = { 0x1300 },
3522 [GCC_RBCPR_BCR
] = { 0x1380 },
3523 [GCC_MSS_RESTART
] = { 0x1680 },
3524 [GCC_LPASS_RESTART
] = { 0x16c0 },
3525 [GCC_WCSS_RESTART
] = { 0x1700 },
3526 [GCC_VENUS_RESTART
] = { 0x1740 },
3527 [GCC_COPSS_SMMU_BCR
] = { 0x1a40 },
3528 [GCC_SPSS_BCR
] = { 0x1a80 },
3529 [GCC_PCIE_0_BCR
] = { 0x1ac0 },
3530 [GCC_PCIE_0_PHY_BCR
] = { 0x1b00 },
3531 [GCC_PCIE_1_BCR
] = { 0x1b40 },
3532 [GCC_PCIE_1_PHY_BCR
] = { 0x1b80 },
3533 [GCC_USB_30_SEC_BCR
] = { 0x1bc0 },
3534 [GCC_USB3_SEC_PHY_BCR
] = { 0x1bfc },
3535 [GCC_SATA_BCR
] = { 0x1c40 },
3536 [GCC_CE3_BCR
] = { 0x1d00 },
3537 [GCC_UFS_BCR
] = { 0x1d40 },
3538 [GCC_USB30_PHY_COM_BCR
] = { 0x1e80 },
3541 static const struct regmap_config gcc_apq8084_regmap_config
= {
3545 .max_register
= 0x1fc0,
3549 static const struct qcom_cc_desc gcc_apq8084_desc
= {
3550 .config
= &gcc_apq8084_regmap_config
,
3551 .clks
= gcc_apq8084_clocks
,
3552 .num_clks
= ARRAY_SIZE(gcc_apq8084_clocks
),
3553 .resets
= gcc_apq8084_resets
,
3554 .num_resets
= ARRAY_SIZE(gcc_apq8084_resets
),
3557 static const struct of_device_id gcc_apq8084_match_table
[] = {
3558 { .compatible
= "qcom,gcc-apq8084" },
3561 MODULE_DEVICE_TABLE(of
, gcc_apq8084_match_table
);
3563 static int gcc_apq8084_probe(struct platform_device
*pdev
)
3566 struct device
*dev
= &pdev
->dev
;
3568 /* Temporary until RPM clocks supported */
3569 clk
= clk_register_fixed_rate(dev
, "xo", NULL
, CLK_IS_ROOT
, 19200000);
3571 return PTR_ERR(clk
);
3573 clk
= clk_register_fixed_rate(dev
, "sleep_clk_src", NULL
,
3574 CLK_IS_ROOT
, 32768);
3576 return PTR_ERR(clk
);
3578 return qcom_cc_probe(pdev
, &gcc_apq8084_desc
);
3581 static int gcc_apq8084_remove(struct platform_device
*pdev
)
3583 qcom_cc_remove(pdev
);
3587 static struct platform_driver gcc_apq8084_driver
= {
3588 .probe
= gcc_apq8084_probe
,
3589 .remove
= gcc_apq8084_remove
,
3591 .name
= "gcc-apq8084",
3592 .of_match_table
= gcc_apq8084_match_table
,
3596 static int __init
gcc_apq8084_init(void)
3598 return platform_driver_register(&gcc_apq8084_driver
);
3600 core_initcall(gcc_apq8084_init
);
3602 static void __exit
gcc_apq8084_exit(void)
3604 platform_driver_unregister(&gcc_apq8084_driver
);
3606 module_exit(gcc_apq8084_exit
);
3608 MODULE_DESCRIPTION("QCOM GCC APQ8084 Driver");
3609 MODULE_LICENSE("GPL v2");
3610 MODULE_ALIAS("platform:gcc-apq8084");