1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
6 #include <linux/kernel.h>
8 #include <linux/platform_device.h>
9 #include <linux/module.h>
11 #include <linux/of_device.h>
12 #include <linux/clk-provider.h>
13 #include <linux/regmap.h>
15 #include <dt-bindings/clock/qcom,gcc-ipq8074.h>
18 #include "clk-regmap.h"
21 #include "clk-branch.h"
22 #include "clk-alpha-pll.h"
23 #include "clk-regmap-divider.h"
24 #include "clk-regmap-mux.h"
51 static const char * const gcc_xo_gpll0_gpll0_out_main_div2
[] = {
54 "gpll0_out_main_div2",
57 static const struct parent_map gcc_xo_gpll0_gpll0_out_main_div2_map
[] = {
63 static const char * const gcc_xo_gpll0
[] = {
68 static const struct parent_map gcc_xo_gpll0_map
[] = {
73 static const char * const gcc_xo_gpll0_gpll2_gpll0_out_main_div2
[] = {
77 "gpll0_out_main_div2",
80 static const struct parent_map gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map
[] = {
87 static const char * const gcc_xo_gpll0_sleep_clk
[] = {
93 static const struct parent_map gcc_xo_gpll0_sleep_clk_map
[] = {
99 static const char * const gcc_xo_gpll6_gpll0_gpll0_out_main_div2
[] = {
103 "gpll0_out_main_div2",
106 static const struct parent_map gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map
[] = {
113 static const char * const gcc_xo_gpll0_out_main_div2_gpll0
[] = {
115 "gpll0_out_main_div2",
119 static const struct parent_map gcc_xo_gpll0_out_main_div2_gpll0_map
[] = {
125 static const char * const gcc_usb3phy_0_cc_pipe_clk_xo
[] = {
126 "usb3phy_0_cc_pipe_clk",
130 static const struct parent_map gcc_usb3phy_0_cc_pipe_clk_xo_map
[] = {
131 { P_USB3PHY_0_PIPE
, 0 },
135 static const char * const gcc_usb3phy_1_cc_pipe_clk_xo
[] = {
136 "usb3phy_1_cc_pipe_clk",
140 static const struct parent_map gcc_usb3phy_1_cc_pipe_clk_xo_map
[] = {
141 { P_USB3PHY_1_PIPE
, 0 },
145 static const char * const gcc_pcie20_phy0_pipe_clk_xo
[] = {
146 "pcie20_phy0_pipe_clk",
150 static const struct parent_map gcc_pcie20_phy0_pipe_clk_xo_map
[] = {
151 { P_PCIE20_PHY0_PIPE
, 0 },
155 static const char * const gcc_pcie20_phy1_pipe_clk_xo
[] = {
156 "pcie20_phy1_pipe_clk",
160 static const struct parent_map gcc_pcie20_phy1_pipe_clk_xo_map
[] = {
161 { P_PCIE20_PHY1_PIPE
, 0 },
165 static const char * const gcc_xo_gpll0_gpll6_gpll0_div2
[] = {
169 "gpll0_out_main_div2",
172 static const struct parent_map gcc_xo_gpll0_gpll6_gpll0_div2_map
[] = {
179 static const char * const gcc_xo_gpll0_gpll6_gpll0_out_main_div2
[] = {
183 "gpll0_out_main_div2",
186 static const struct parent_map gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map
[] = {
193 static const char * const gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2
[] = {
195 "bias_pll_nss_noc_clk",
200 static const struct parent_map gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2_map
[] = {
202 { P_BIAS_PLL_NSS_NOC
, 1 },
207 static const char * const gcc_xo_nss_crypto_pll_gpll0
[] = {
213 static const struct parent_map gcc_xo_nss_crypto_pll_gpll0_map
[] = {
215 { P_NSS_CRYPTO_PLL
, 1 },
219 static const char * const gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6
[] = {
228 static const struct parent_map gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map
[] = {
237 static const char * const gcc_xo_gpll0_out_main_div2
[] = {
239 "gpll0_out_main_div2",
242 static const struct parent_map gcc_xo_gpll0_out_main_div2_map
[] = {
247 static const char * const gcc_xo_bias_gpll0_gpll4_nss_ubi32
[] = {
256 static const struct parent_map gcc_xo_bias_gpll0_gpll4_nss_ubi32_map
[] = {
261 { P_NSS_CRYPTO_PLL
, 4 },
265 static const char * const gcc_xo_gpll0_gpll4
[] = {
271 static const struct parent_map gcc_xo_gpll0_gpll4_map
[] = {
277 static const char * const gcc_xo_uniphy0_rx_tx_ubi32_bias
[] = {
279 "uniphy0_gcc_rx_clk",
280 "uniphy0_gcc_tx_clk",
285 static const struct parent_map gcc_xo_uniphy0_rx_tx_ubi32_bias_map
[] = {
293 static const char * const gcc_xo_uniphy0_tx_rx_ubi32_bias
[] = {
295 "uniphy0_gcc_tx_clk",
296 "uniphy0_gcc_rx_clk",
301 static const struct parent_map gcc_xo_uniphy0_tx_rx_ubi32_bias_map
[] = {
309 static const char * const gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias
[] = {
311 "uniphy0_gcc_rx_clk",
312 "uniphy0_gcc_tx_clk",
313 "uniphy1_gcc_rx_clk",
314 "uniphy1_gcc_tx_clk",
319 static const struct parent_map
320 gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map
[] = {
330 static const char * const gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias
[] = {
332 "uniphy0_gcc_tx_clk",
333 "uniphy0_gcc_rx_clk",
334 "uniphy1_gcc_tx_clk",
335 "uniphy1_gcc_rx_clk",
340 static const struct parent_map
341 gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map
[] = {
351 static const char * const gcc_xo_uniphy2_rx_tx_ubi32_bias
[] = {
353 "uniphy2_gcc_rx_clk",
354 "uniphy2_gcc_tx_clk",
359 static const struct parent_map gcc_xo_uniphy2_rx_tx_ubi32_bias_map
[] = {
367 static const char * const gcc_xo_uniphy2_tx_rx_ubi32_bias
[] = {
369 "uniphy2_gcc_tx_clk",
370 "uniphy2_gcc_rx_clk",
375 static const struct parent_map gcc_xo_uniphy2_tx_rx_ubi32_bias_map
[] = {
383 static const char * const gcc_xo_gpll0_gpll6_gpll0_sleep_clk
[] = {
387 "gpll0_out_main_div2",
391 static const struct parent_map gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
[] = {
399 static struct clk_alpha_pll gpll0_main
= {
401 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
403 .enable_reg
= 0x0b000,
404 .enable_mask
= BIT(0),
405 .hw
.init
= &(struct clk_init_data
){
406 .name
= "gpll0_main",
407 .parent_names
= (const char *[]){
411 .ops
= &clk_alpha_pll_ops
,
416 static struct clk_fixed_factor gpll0_out_main_div2
= {
419 .hw
.init
= &(struct clk_init_data
){
420 .name
= "gpll0_out_main_div2",
421 .parent_names
= (const char *[]){
425 .ops
= &clk_fixed_factor_ops
,
426 .flags
= CLK_SET_RATE_PARENT
,
430 static struct clk_alpha_pll_postdiv gpll0
= {
432 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
434 .clkr
.hw
.init
= &(struct clk_init_data
){
436 .parent_names
= (const char *[]){
440 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
444 static struct clk_alpha_pll gpll2_main
= {
446 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
448 .enable_reg
= 0x0b000,
449 .enable_mask
= BIT(2),
450 .hw
.init
= &(struct clk_init_data
){
451 .name
= "gpll2_main",
452 .parent_names
= (const char *[]){
456 .ops
= &clk_alpha_pll_ops
,
457 .flags
= CLK_IS_CRITICAL
,
462 static struct clk_alpha_pll_postdiv gpll2
= {
464 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
466 .clkr
.hw
.init
= &(struct clk_init_data
){
468 .parent_names
= (const char *[]){
472 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
473 .flags
= CLK_SET_RATE_PARENT
,
477 static struct clk_alpha_pll gpll4_main
= {
479 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
481 .enable_reg
= 0x0b000,
482 .enable_mask
= BIT(5),
483 .hw
.init
= &(struct clk_init_data
){
484 .name
= "gpll4_main",
485 .parent_names
= (const char *[]){
489 .ops
= &clk_alpha_pll_ops
,
490 .flags
= CLK_IS_CRITICAL
,
495 static struct clk_alpha_pll_postdiv gpll4
= {
497 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
499 .clkr
.hw
.init
= &(struct clk_init_data
){
501 .parent_names
= (const char *[]){
505 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
506 .flags
= CLK_SET_RATE_PARENT
,
510 static struct clk_alpha_pll gpll6_main
= {
512 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_BRAMMO
],
513 .flags
= SUPPORTS_DYNAMIC_UPDATE
,
515 .enable_reg
= 0x0b000,
516 .enable_mask
= BIT(7),
517 .hw
.init
= &(struct clk_init_data
){
518 .name
= "gpll6_main",
519 .parent_names
= (const char *[]){
523 .ops
= &clk_alpha_pll_ops
,
524 .flags
= CLK_IS_CRITICAL
,
529 static struct clk_alpha_pll_postdiv gpll6
= {
531 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_BRAMMO
],
533 .clkr
.hw
.init
= &(struct clk_init_data
){
535 .parent_names
= (const char *[]){
539 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
540 .flags
= CLK_SET_RATE_PARENT
,
544 static struct clk_fixed_factor gpll6_out_main_div2
= {
547 .hw
.init
= &(struct clk_init_data
){
548 .name
= "gpll6_out_main_div2",
549 .parent_names
= (const char *[]){
553 .ops
= &clk_fixed_factor_ops
,
554 .flags
= CLK_SET_RATE_PARENT
,
558 static struct clk_alpha_pll ubi32_pll_main
= {
560 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_HUAYRA
],
561 .flags
= SUPPORTS_DYNAMIC_UPDATE
,
563 .enable_reg
= 0x0b000,
564 .enable_mask
= BIT(6),
565 .hw
.init
= &(struct clk_init_data
){
566 .name
= "ubi32_pll_main",
567 .parent_names
= (const char *[]){
571 .ops
= &clk_alpha_pll_huayra_ops
,
576 static struct clk_alpha_pll_postdiv ubi32_pll
= {
578 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_HUAYRA
],
580 .clkr
.hw
.init
= &(struct clk_init_data
){
582 .parent_names
= (const char *[]){
586 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
587 .flags
= CLK_SET_RATE_PARENT
,
591 static struct clk_alpha_pll nss_crypto_pll_main
= {
593 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
595 .enable_reg
= 0x0b000,
596 .enable_mask
= BIT(4),
597 .hw
.init
= &(struct clk_init_data
){
598 .name
= "nss_crypto_pll_main",
599 .parent_names
= (const char *[]){
603 .ops
= &clk_alpha_pll_ops
,
608 static struct clk_alpha_pll_postdiv nss_crypto_pll
= {
610 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
612 .clkr
.hw
.init
= &(struct clk_init_data
){
613 .name
= "nss_crypto_pll",
614 .parent_names
= (const char *[]){
615 "nss_crypto_pll_main"
618 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
619 .flags
= CLK_SET_RATE_PARENT
,
623 static const struct freq_tbl ftbl_pcnoc_bfdcd_clk_src
[] = {
624 F(19200000, P_XO
, 1, 0, 0),
625 F(50000000, P_GPLL0
, 16, 0, 0),
626 F(100000000, P_GPLL0
, 8, 0, 0),
630 static struct clk_rcg2 pcnoc_bfdcd_clk_src
= {
632 .freq_tbl
= ftbl_pcnoc_bfdcd_clk_src
,
634 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
635 .clkr
.hw
.init
= &(struct clk_init_data
){
636 .name
= "pcnoc_bfdcd_clk_src",
637 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
639 .ops
= &clk_rcg2_ops
,
640 .flags
= CLK_IS_CRITICAL
,
644 static struct clk_fixed_factor pcnoc_clk_src
= {
647 .hw
.init
= &(struct clk_init_data
){
648 .name
= "pcnoc_clk_src",
649 .parent_names
= (const char *[]){
650 "pcnoc_bfdcd_clk_src"
653 .ops
= &clk_fixed_factor_ops
,
654 .flags
= CLK_SET_RATE_PARENT
,
658 static struct clk_branch gcc_sleep_clk_src
= {
661 .enable_reg
= 0x30000,
662 .enable_mask
= BIT(1),
663 .hw
.init
= &(struct clk_init_data
){
664 .name
= "gcc_sleep_clk_src",
665 .parent_names
= (const char *[]){
669 .ops
= &clk_branch2_ops
,
674 static const struct freq_tbl ftbl_blsp1_qup_i2c_apps_clk_src
[] = {
675 F(19200000, P_XO
, 1, 0, 0),
676 F(25000000, P_GPLL0_DIV2
, 16, 0, 0),
677 F(50000000, P_GPLL0
, 16, 0, 0),
681 static struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src
= {
683 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
685 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
686 .clkr
.hw
.init
= &(struct clk_init_data
){
687 .name
= "blsp1_qup1_i2c_apps_clk_src",
688 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
690 .ops
= &clk_rcg2_ops
,
694 static const struct freq_tbl ftbl_blsp1_qup_spi_apps_clk_src
[] = {
695 F(960000, P_XO
, 10, 1, 2),
696 F(4800000, P_XO
, 4, 0, 0),
697 F(9600000, P_XO
, 2, 0, 0),
698 F(12500000, P_GPLL0_DIV2
, 16, 1, 2),
699 F(16000000, P_GPLL0
, 10, 1, 5),
700 F(19200000, P_XO
, 1, 0, 0),
701 F(25000000, P_GPLL0
, 16, 1, 2),
702 F(50000000, P_GPLL0
, 16, 0, 0),
706 static struct clk_rcg2 blsp1_qup1_spi_apps_clk_src
= {
708 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
711 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
712 .clkr
.hw
.init
= &(struct clk_init_data
){
713 .name
= "blsp1_qup1_spi_apps_clk_src",
714 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
716 .ops
= &clk_rcg2_ops
,
720 static struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src
= {
722 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
724 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
725 .clkr
.hw
.init
= &(struct clk_init_data
){
726 .name
= "blsp1_qup2_i2c_apps_clk_src",
727 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
729 .ops
= &clk_rcg2_ops
,
733 static struct clk_rcg2 blsp1_qup2_spi_apps_clk_src
= {
735 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
738 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
739 .clkr
.hw
.init
= &(struct clk_init_data
){
740 .name
= "blsp1_qup2_spi_apps_clk_src",
741 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
743 .ops
= &clk_rcg2_ops
,
747 static struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src
= {
749 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
751 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
752 .clkr
.hw
.init
= &(struct clk_init_data
){
753 .name
= "blsp1_qup3_i2c_apps_clk_src",
754 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
756 .ops
= &clk_rcg2_ops
,
760 static struct clk_rcg2 blsp1_qup3_spi_apps_clk_src
= {
762 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
765 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
766 .clkr
.hw
.init
= &(struct clk_init_data
){
767 .name
= "blsp1_qup3_spi_apps_clk_src",
768 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
770 .ops
= &clk_rcg2_ops
,
774 static struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src
= {
776 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
778 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
779 .clkr
.hw
.init
= &(struct clk_init_data
){
780 .name
= "blsp1_qup4_i2c_apps_clk_src",
781 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
783 .ops
= &clk_rcg2_ops
,
787 static struct clk_rcg2 blsp1_qup4_spi_apps_clk_src
= {
789 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
792 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
793 .clkr
.hw
.init
= &(struct clk_init_data
){
794 .name
= "blsp1_qup4_spi_apps_clk_src",
795 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
797 .ops
= &clk_rcg2_ops
,
801 static struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src
= {
803 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
805 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
806 .clkr
.hw
.init
= &(struct clk_init_data
){
807 .name
= "blsp1_qup5_i2c_apps_clk_src",
808 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
810 .ops
= &clk_rcg2_ops
,
814 static struct clk_rcg2 blsp1_qup5_spi_apps_clk_src
= {
816 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
819 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
820 .clkr
.hw
.init
= &(struct clk_init_data
){
821 .name
= "blsp1_qup5_spi_apps_clk_src",
822 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
824 .ops
= &clk_rcg2_ops
,
828 static struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src
= {
830 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
832 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
833 .clkr
.hw
.init
= &(struct clk_init_data
){
834 .name
= "blsp1_qup6_i2c_apps_clk_src",
835 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
837 .ops
= &clk_rcg2_ops
,
841 static struct clk_rcg2 blsp1_qup6_spi_apps_clk_src
= {
843 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
846 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
847 .clkr
.hw
.init
= &(struct clk_init_data
){
848 .name
= "blsp1_qup6_spi_apps_clk_src",
849 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
851 .ops
= &clk_rcg2_ops
,
855 static const struct freq_tbl ftbl_blsp1_uart_apps_clk_src
[] = {
856 F(3686400, P_GPLL0_DIV2
, 1, 144, 15625),
857 F(7372800, P_GPLL0_DIV2
, 1, 288, 15625),
858 F(14745600, P_GPLL0_DIV2
, 1, 576, 15625),
859 F(16000000, P_GPLL0_DIV2
, 5, 1, 5),
860 F(19200000, P_XO
, 1, 0, 0),
861 F(24000000, P_GPLL0
, 1, 3, 100),
862 F(25000000, P_GPLL0
, 16, 1, 2),
863 F(32000000, P_GPLL0
, 1, 1, 25),
864 F(40000000, P_GPLL0
, 1, 1, 20),
865 F(46400000, P_GPLL0
, 1, 29, 500),
866 F(48000000, P_GPLL0
, 1, 3, 50),
867 F(51200000, P_GPLL0
, 1, 8, 125),
868 F(56000000, P_GPLL0
, 1, 7, 100),
869 F(58982400, P_GPLL0
, 1, 1152, 15625),
870 F(60000000, P_GPLL0
, 1, 3, 40),
871 F(64000000, P_GPLL0
, 12.5, 1, 1),
875 static struct clk_rcg2 blsp1_uart1_apps_clk_src
= {
877 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
880 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
881 .clkr
.hw
.init
= &(struct clk_init_data
){
882 .name
= "blsp1_uart1_apps_clk_src",
883 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
885 .ops
= &clk_rcg2_ops
,
889 static struct clk_rcg2 blsp1_uart2_apps_clk_src
= {
891 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
894 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
895 .clkr
.hw
.init
= &(struct clk_init_data
){
896 .name
= "blsp1_uart2_apps_clk_src",
897 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
899 .ops
= &clk_rcg2_ops
,
903 static struct clk_rcg2 blsp1_uart3_apps_clk_src
= {
905 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
908 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
909 .clkr
.hw
.init
= &(struct clk_init_data
){
910 .name
= "blsp1_uart3_apps_clk_src",
911 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
913 .ops
= &clk_rcg2_ops
,
917 static struct clk_rcg2 blsp1_uart4_apps_clk_src
= {
919 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
922 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
923 .clkr
.hw
.init
= &(struct clk_init_data
){
924 .name
= "blsp1_uart4_apps_clk_src",
925 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
927 .ops
= &clk_rcg2_ops
,
931 static struct clk_rcg2 blsp1_uart5_apps_clk_src
= {
933 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
936 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
937 .clkr
.hw
.init
= &(struct clk_init_data
){
938 .name
= "blsp1_uart5_apps_clk_src",
939 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
941 .ops
= &clk_rcg2_ops
,
945 static struct clk_rcg2 blsp1_uart6_apps_clk_src
= {
947 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
950 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
951 .clkr
.hw
.init
= &(struct clk_init_data
){
952 .name
= "blsp1_uart6_apps_clk_src",
953 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
955 .ops
= &clk_rcg2_ops
,
959 static const struct freq_tbl ftbl_pcie_axi_clk_src
[] = {
960 F(19200000, P_XO
, 1, 0, 0),
961 F(200000000, P_GPLL0
, 4, 0, 0),
965 static struct clk_rcg2 pcie0_axi_clk_src
= {
967 .freq_tbl
= ftbl_pcie_axi_clk_src
,
969 .parent_map
= gcc_xo_gpll0_map
,
970 .clkr
.hw
.init
= &(struct clk_init_data
){
971 .name
= "pcie0_axi_clk_src",
972 .parent_names
= gcc_xo_gpll0
,
974 .ops
= &clk_rcg2_ops
,
978 static const struct freq_tbl ftbl_pcie_aux_clk_src
[] = {
979 F(19200000, P_XO
, 1, 0, 0),
982 static struct clk_rcg2 pcie0_aux_clk_src
= {
984 .freq_tbl
= ftbl_pcie_aux_clk_src
,
987 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
988 .clkr
.hw
.init
= &(struct clk_init_data
){
989 .name
= "pcie0_aux_clk_src",
990 .parent_names
= gcc_xo_gpll0_sleep_clk
,
992 .ops
= &clk_rcg2_ops
,
996 static struct clk_regmap_mux pcie0_pipe_clk_src
= {
1000 .parent_map
= gcc_pcie20_phy0_pipe_clk_xo_map
,
1002 .hw
.init
= &(struct clk_init_data
){
1003 .name
= "pcie0_pipe_clk_src",
1004 .parent_names
= gcc_pcie20_phy0_pipe_clk_xo
,
1006 .ops
= &clk_regmap_mux_closest_ops
,
1007 .flags
= CLK_SET_RATE_PARENT
,
1012 static struct clk_rcg2 pcie1_axi_clk_src
= {
1013 .cmd_rcgr
= 0x76054,
1014 .freq_tbl
= ftbl_pcie_axi_clk_src
,
1016 .parent_map
= gcc_xo_gpll0_map
,
1017 .clkr
.hw
.init
= &(struct clk_init_data
){
1018 .name
= "pcie1_axi_clk_src",
1019 .parent_names
= gcc_xo_gpll0
,
1021 .ops
= &clk_rcg2_ops
,
1025 static struct clk_rcg2 pcie1_aux_clk_src
= {
1026 .cmd_rcgr
= 0x76024,
1027 .freq_tbl
= ftbl_pcie_aux_clk_src
,
1030 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
1031 .clkr
.hw
.init
= &(struct clk_init_data
){
1032 .name
= "pcie1_aux_clk_src",
1033 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1035 .ops
= &clk_rcg2_ops
,
1039 static struct clk_regmap_mux pcie1_pipe_clk_src
= {
1043 .parent_map
= gcc_pcie20_phy1_pipe_clk_xo_map
,
1045 .hw
.init
= &(struct clk_init_data
){
1046 .name
= "pcie1_pipe_clk_src",
1047 .parent_names
= gcc_pcie20_phy1_pipe_clk_xo
,
1049 .ops
= &clk_regmap_mux_closest_ops
,
1050 .flags
= CLK_SET_RATE_PARENT
,
1055 static const struct freq_tbl ftbl_sdcc_apps_clk_src
[] = {
1056 F(144000, P_XO
, 16, 3, 25),
1057 F(400000, P_XO
, 12, 1, 4),
1058 F(24000000, P_GPLL2
, 12, 1, 4),
1059 F(48000000, P_GPLL2
, 12, 1, 2),
1060 F(96000000, P_GPLL2
, 12, 0, 0),
1061 F(177777778, P_GPLL0
, 4.5, 0, 0),
1062 F(192000000, P_GPLL2
, 6, 0, 0),
1063 F(384000000, P_GPLL2
, 3, 0, 0),
1067 static struct clk_rcg2 sdcc1_apps_clk_src
= {
1068 .cmd_rcgr
= 0x42004,
1069 .freq_tbl
= ftbl_sdcc_apps_clk_src
,
1072 .parent_map
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map
,
1073 .clkr
.hw
.init
= &(struct clk_init_data
){
1074 .name
= "sdcc1_apps_clk_src",
1075 .parent_names
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2
,
1077 .ops
= &clk_rcg2_ops
,
1081 static const struct freq_tbl ftbl_sdcc_ice_core_clk_src
[] = {
1082 F(19200000, P_XO
, 1, 0, 0),
1083 F(160000000, P_GPLL0
, 5, 0, 0),
1084 F(308570000, P_GPLL6
, 3.5, 0, 0),
1087 static struct clk_rcg2 sdcc1_ice_core_clk_src
= {
1088 .cmd_rcgr
= 0x5d000,
1089 .freq_tbl
= ftbl_sdcc_ice_core_clk_src
,
1092 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_div2_map
,
1093 .clkr
.hw
.init
= &(struct clk_init_data
){
1094 .name
= "sdcc1_ice_core_clk_src",
1095 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_div2
,
1097 .ops
= &clk_rcg2_ops
,
1101 static struct clk_rcg2 sdcc2_apps_clk_src
= {
1102 .cmd_rcgr
= 0x43004,
1103 .freq_tbl
= ftbl_sdcc_apps_clk_src
,
1106 .parent_map
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map
,
1107 .clkr
.hw
.init
= &(struct clk_init_data
){
1108 .name
= "sdcc2_apps_clk_src",
1109 .parent_names
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2
,
1111 .ops
= &clk_rcg2_floor_ops
,
1115 static const struct freq_tbl ftbl_usb_master_clk_src
[] = {
1116 F(80000000, P_GPLL0_DIV2
, 5, 0, 0),
1117 F(100000000, P_GPLL0
, 8, 0, 0),
1118 F(133330000, P_GPLL0
, 6, 0, 0),
1122 static struct clk_rcg2 usb0_master_clk_src
= {
1123 .cmd_rcgr
= 0x3e00c,
1124 .freq_tbl
= ftbl_usb_master_clk_src
,
1127 .parent_map
= gcc_xo_gpll0_out_main_div2_gpll0_map
,
1128 .clkr
.hw
.init
= &(struct clk_init_data
){
1129 .name
= "usb0_master_clk_src",
1130 .parent_names
= gcc_xo_gpll0_out_main_div2_gpll0
,
1132 .ops
= &clk_rcg2_ops
,
1136 static const struct freq_tbl ftbl_usb_aux_clk_src
[] = {
1137 F(19200000, P_XO
, 1, 0, 0),
1141 static struct clk_rcg2 usb0_aux_clk_src
= {
1142 .cmd_rcgr
= 0x3e05c,
1143 .freq_tbl
= ftbl_usb_aux_clk_src
,
1146 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
1147 .clkr
.hw
.init
= &(struct clk_init_data
){
1148 .name
= "usb0_aux_clk_src",
1149 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1151 .ops
= &clk_rcg2_ops
,
1155 static const struct freq_tbl ftbl_usb_mock_utmi_clk_src
[] = {
1156 F(19200000, P_XO
, 1, 0, 0),
1157 F(20000000, P_GPLL6
, 6, 1, 9),
1158 F(60000000, P_GPLL6
, 6, 1, 3),
1162 static struct clk_rcg2 usb0_mock_utmi_clk_src
= {
1163 .cmd_rcgr
= 0x3e020,
1164 .freq_tbl
= ftbl_usb_mock_utmi_clk_src
,
1167 .parent_map
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map
,
1168 .clkr
.hw
.init
= &(struct clk_init_data
){
1169 .name
= "usb0_mock_utmi_clk_src",
1170 .parent_names
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2
,
1172 .ops
= &clk_rcg2_ops
,
1176 static struct clk_regmap_mux usb0_pipe_clk_src
= {
1180 .parent_map
= gcc_usb3phy_0_cc_pipe_clk_xo_map
,
1182 .hw
.init
= &(struct clk_init_data
){
1183 .name
= "usb0_pipe_clk_src",
1184 .parent_names
= gcc_usb3phy_0_cc_pipe_clk_xo
,
1186 .ops
= &clk_regmap_mux_closest_ops
,
1187 .flags
= CLK_SET_RATE_PARENT
,
1192 static struct clk_rcg2 usb1_master_clk_src
= {
1193 .cmd_rcgr
= 0x3f00c,
1194 .freq_tbl
= ftbl_usb_master_clk_src
,
1197 .parent_map
= gcc_xo_gpll0_out_main_div2_gpll0_map
,
1198 .clkr
.hw
.init
= &(struct clk_init_data
){
1199 .name
= "usb1_master_clk_src",
1200 .parent_names
= gcc_xo_gpll0_out_main_div2_gpll0
,
1202 .ops
= &clk_rcg2_ops
,
1206 static struct clk_rcg2 usb1_aux_clk_src
= {
1207 .cmd_rcgr
= 0x3f05c,
1208 .freq_tbl
= ftbl_usb_aux_clk_src
,
1211 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
1212 .clkr
.hw
.init
= &(struct clk_init_data
){
1213 .name
= "usb1_aux_clk_src",
1214 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1216 .ops
= &clk_rcg2_ops
,
1220 static struct clk_rcg2 usb1_mock_utmi_clk_src
= {
1221 .cmd_rcgr
= 0x3f020,
1222 .freq_tbl
= ftbl_usb_mock_utmi_clk_src
,
1225 .parent_map
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map
,
1226 .clkr
.hw
.init
= &(struct clk_init_data
){
1227 .name
= "usb1_mock_utmi_clk_src",
1228 .parent_names
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2
,
1230 .ops
= &clk_rcg2_ops
,
1234 static struct clk_regmap_mux usb1_pipe_clk_src
= {
1238 .parent_map
= gcc_usb3phy_1_cc_pipe_clk_xo_map
,
1240 .hw
.init
= &(struct clk_init_data
){
1241 .name
= "usb1_pipe_clk_src",
1242 .parent_names
= gcc_usb3phy_1_cc_pipe_clk_xo
,
1244 .ops
= &clk_regmap_mux_closest_ops
,
1245 .flags
= CLK_SET_RATE_PARENT
,
1250 static struct clk_branch gcc_xo_clk_src
= {
1251 .halt_reg
= 0x30018,
1253 .enable_reg
= 0x30018,
1254 .enable_mask
= BIT(1),
1255 .hw
.init
= &(struct clk_init_data
){
1256 .name
= "gcc_xo_clk_src",
1257 .parent_names
= (const char *[]){
1261 .flags
= CLK_SET_RATE_PARENT
| CLK_IS_CRITICAL
,
1262 .ops
= &clk_branch2_ops
,
1267 static struct clk_fixed_factor gcc_xo_div4_clk_src
= {
1270 .hw
.init
= &(struct clk_init_data
){
1271 .name
= "gcc_xo_div4_clk_src",
1272 .parent_names
= (const char *[]){
1276 .ops
= &clk_fixed_factor_ops
,
1277 .flags
= CLK_SET_RATE_PARENT
,
1281 static const struct freq_tbl ftbl_system_noc_bfdcd_clk_src
[] = {
1282 F(19200000, P_XO
, 1, 0, 0),
1283 F(50000000, P_GPLL0_DIV2
, 8, 0, 0),
1284 F(100000000, P_GPLL0
, 8, 0, 0),
1285 F(133333333, P_GPLL0
, 6, 0, 0),
1286 F(160000000, P_GPLL0
, 5, 0, 0),
1287 F(200000000, P_GPLL0
, 4, 0, 0),
1288 F(266666667, P_GPLL0
, 3, 0, 0),
1292 static struct clk_rcg2 system_noc_bfdcd_clk_src
= {
1293 .cmd_rcgr
= 0x26004,
1294 .freq_tbl
= ftbl_system_noc_bfdcd_clk_src
,
1296 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map
,
1297 .clkr
.hw
.init
= &(struct clk_init_data
){
1298 .name
= "system_noc_bfdcd_clk_src",
1299 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_out_main_div2
,
1301 .ops
= &clk_rcg2_ops
,
1302 .flags
= CLK_IS_CRITICAL
,
1306 static struct clk_fixed_factor system_noc_clk_src
= {
1309 .hw
.init
= &(struct clk_init_data
){
1310 .name
= "system_noc_clk_src",
1311 .parent_names
= (const char *[]){
1312 "system_noc_bfdcd_clk_src"
1315 .ops
= &clk_fixed_factor_ops
,
1316 .flags
= CLK_SET_RATE_PARENT
,
1320 static const struct freq_tbl ftbl_nss_ce_clk_src
[] = {
1321 F(19200000, P_XO
, 1, 0, 0),
1322 F(200000000, P_GPLL0
, 4, 0, 0),
1326 static struct clk_rcg2 nss_ce_clk_src
= {
1327 .cmd_rcgr
= 0x68098,
1328 .freq_tbl
= ftbl_nss_ce_clk_src
,
1330 .parent_map
= gcc_xo_gpll0_map
,
1331 .clkr
.hw
.init
= &(struct clk_init_data
){
1332 .name
= "nss_ce_clk_src",
1333 .parent_names
= gcc_xo_gpll0
,
1335 .ops
= &clk_rcg2_ops
,
1339 static const struct freq_tbl ftbl_nss_noc_bfdcd_clk_src
[] = {
1340 F(19200000, P_XO
, 1, 0, 0),
1341 F(461500000, P_BIAS_PLL_NSS_NOC
, 1, 0, 0),
1345 static struct clk_rcg2 nss_noc_bfdcd_clk_src
= {
1346 .cmd_rcgr
= 0x68088,
1347 .freq_tbl
= ftbl_nss_noc_bfdcd_clk_src
,
1349 .parent_map
= gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2_map
,
1350 .clkr
.hw
.init
= &(struct clk_init_data
){
1351 .name
= "nss_noc_bfdcd_clk_src",
1352 .parent_names
= gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2
,
1354 .ops
= &clk_rcg2_ops
,
1358 static struct clk_fixed_factor nss_noc_clk_src
= {
1361 .hw
.init
= &(struct clk_init_data
){
1362 .name
= "nss_noc_clk_src",
1363 .parent_names
= (const char *[]){
1364 "nss_noc_bfdcd_clk_src"
1367 .ops
= &clk_fixed_factor_ops
,
1368 .flags
= CLK_SET_RATE_PARENT
,
1372 static const struct freq_tbl ftbl_nss_crypto_clk_src
[] = {
1373 F(19200000, P_XO
, 1, 0, 0),
1374 F(600000000, P_NSS_CRYPTO_PLL
, 1, 0, 0),
1378 static struct clk_rcg2 nss_crypto_clk_src
= {
1379 .cmd_rcgr
= 0x68144,
1380 .freq_tbl
= ftbl_nss_crypto_clk_src
,
1383 .parent_map
= gcc_xo_nss_crypto_pll_gpll0_map
,
1384 .clkr
.hw
.init
= &(struct clk_init_data
){
1385 .name
= "nss_crypto_clk_src",
1386 .parent_names
= gcc_xo_nss_crypto_pll_gpll0
,
1388 .ops
= &clk_rcg2_ops
,
1392 static const struct freq_tbl ftbl_nss_ubi_clk_src
[] = {
1393 F(19200000, P_XO
, 1, 0, 0),
1394 F(187200000, P_UBI32_PLL
, 8, 0, 0),
1395 F(748800000, P_UBI32_PLL
, 2, 0, 0),
1396 F(1497600000, P_UBI32_PLL
, 1, 0, 0),
1397 F(1689600000, P_UBI32_PLL
, 1, 0, 0),
1401 static struct clk_rcg2 nss_ubi0_clk_src
= {
1402 .cmd_rcgr
= 0x68104,
1403 .freq_tbl
= ftbl_nss_ubi_clk_src
,
1405 .parent_map
= gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map
,
1406 .clkr
.hw
.init
= &(struct clk_init_data
){
1407 .name
= "nss_ubi0_clk_src",
1408 .parent_names
= gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6
,
1410 .ops
= &clk_rcg2_ops
,
1411 .flags
= CLK_SET_RATE_PARENT
,
1415 static struct clk_regmap_div nss_ubi0_div_clk_src
= {
1420 .hw
.init
= &(struct clk_init_data
){
1421 .name
= "nss_ubi0_div_clk_src",
1422 .parent_names
= (const char *[]){
1426 .ops
= &clk_regmap_div_ro_ops
,
1427 .flags
= CLK_SET_RATE_PARENT
,
1432 static struct clk_rcg2 nss_ubi1_clk_src
= {
1433 .cmd_rcgr
= 0x68124,
1434 .freq_tbl
= ftbl_nss_ubi_clk_src
,
1436 .parent_map
= gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map
,
1437 .clkr
.hw
.init
= &(struct clk_init_data
){
1438 .name
= "nss_ubi1_clk_src",
1439 .parent_names
= gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6
,
1441 .ops
= &clk_rcg2_ops
,
1442 .flags
= CLK_SET_RATE_PARENT
,
1446 static struct clk_regmap_div nss_ubi1_div_clk_src
= {
1451 .hw
.init
= &(struct clk_init_data
){
1452 .name
= "nss_ubi1_div_clk_src",
1453 .parent_names
= (const char *[]){
1457 .ops
= &clk_regmap_div_ro_ops
,
1458 .flags
= CLK_SET_RATE_PARENT
,
1463 static const struct freq_tbl ftbl_ubi_mpt_clk_src
[] = {
1464 F(19200000, P_XO
, 1, 0, 0),
1465 F(25000000, P_GPLL0_DIV2
, 16, 0, 0),
1469 static struct clk_rcg2 ubi_mpt_clk_src
= {
1470 .cmd_rcgr
= 0x68090,
1471 .freq_tbl
= ftbl_ubi_mpt_clk_src
,
1473 .parent_map
= gcc_xo_gpll0_out_main_div2_map
,
1474 .clkr
.hw
.init
= &(struct clk_init_data
){
1475 .name
= "ubi_mpt_clk_src",
1476 .parent_names
= gcc_xo_gpll0_out_main_div2
,
1478 .ops
= &clk_rcg2_ops
,
1482 static const struct freq_tbl ftbl_nss_imem_clk_src
[] = {
1483 F(19200000, P_XO
, 1, 0, 0),
1484 F(400000000, P_GPLL0
, 2, 0, 0),
1488 static struct clk_rcg2 nss_imem_clk_src
= {
1489 .cmd_rcgr
= 0x68158,
1490 .freq_tbl
= ftbl_nss_imem_clk_src
,
1492 .parent_map
= gcc_xo_gpll0_gpll4_map
,
1493 .clkr
.hw
.init
= &(struct clk_init_data
){
1494 .name
= "nss_imem_clk_src",
1495 .parent_names
= gcc_xo_gpll0_gpll4
,
1497 .ops
= &clk_rcg2_ops
,
1501 static const struct freq_tbl ftbl_nss_ppe_clk_src
[] = {
1502 F(19200000, P_XO
, 1, 0, 0),
1503 F(300000000, P_BIAS_PLL
, 1, 0, 0),
1507 static struct clk_rcg2 nss_ppe_clk_src
= {
1508 .cmd_rcgr
= 0x68080,
1509 .freq_tbl
= ftbl_nss_ppe_clk_src
,
1511 .parent_map
= gcc_xo_bias_gpll0_gpll4_nss_ubi32_map
,
1512 .clkr
.hw
.init
= &(struct clk_init_data
){
1513 .name
= "nss_ppe_clk_src",
1514 .parent_names
= gcc_xo_bias_gpll0_gpll4_nss_ubi32
,
1516 .ops
= &clk_rcg2_ops
,
1520 static struct clk_fixed_factor nss_ppe_cdiv_clk_src
= {
1523 .hw
.init
= &(struct clk_init_data
){
1524 .name
= "nss_ppe_cdiv_clk_src",
1525 .parent_names
= (const char *[]){
1529 .ops
= &clk_fixed_factor_ops
,
1530 .flags
= CLK_SET_RATE_PARENT
,
1534 static const struct freq_tbl ftbl_nss_port1_rx_clk_src
[] = {
1535 F(19200000, P_XO
, 1, 0, 0),
1536 F(25000000, P_UNIPHY0_RX
, 5, 0, 0),
1537 F(125000000, P_UNIPHY0_RX
, 1, 0, 0),
1541 static struct clk_rcg2 nss_port1_rx_clk_src
= {
1542 .cmd_rcgr
= 0x68020,
1543 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1545 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1546 .clkr
.hw
.init
= &(struct clk_init_data
){
1547 .name
= "nss_port1_rx_clk_src",
1548 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1550 .ops
= &clk_rcg2_ops
,
1554 static struct clk_regmap_div nss_port1_rx_div_clk_src
= {
1559 .hw
.init
= &(struct clk_init_data
){
1560 .name
= "nss_port1_rx_div_clk_src",
1561 .parent_names
= (const char *[]){
1562 "nss_port1_rx_clk_src"
1565 .ops
= &clk_regmap_div_ops
,
1566 .flags
= CLK_SET_RATE_PARENT
,
1571 static const struct freq_tbl ftbl_nss_port1_tx_clk_src
[] = {
1572 F(19200000, P_XO
, 1, 0, 0),
1573 F(25000000, P_UNIPHY0_TX
, 5, 0, 0),
1574 F(125000000, P_UNIPHY0_TX
, 1, 0, 0),
1578 static struct clk_rcg2 nss_port1_tx_clk_src
= {
1579 .cmd_rcgr
= 0x68028,
1580 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1582 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1583 .clkr
.hw
.init
= &(struct clk_init_data
){
1584 .name
= "nss_port1_tx_clk_src",
1585 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1587 .ops
= &clk_rcg2_ops
,
1591 static struct clk_regmap_div nss_port1_tx_div_clk_src
= {
1596 .hw
.init
= &(struct clk_init_data
){
1597 .name
= "nss_port1_tx_div_clk_src",
1598 .parent_names
= (const char *[]){
1599 "nss_port1_tx_clk_src"
1602 .ops
= &clk_regmap_div_ops
,
1603 .flags
= CLK_SET_RATE_PARENT
,
1608 static struct clk_rcg2 nss_port2_rx_clk_src
= {
1609 .cmd_rcgr
= 0x68030,
1610 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1612 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1613 .clkr
.hw
.init
= &(struct clk_init_data
){
1614 .name
= "nss_port2_rx_clk_src",
1615 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1617 .ops
= &clk_rcg2_ops
,
1621 static struct clk_regmap_div nss_port2_rx_div_clk_src
= {
1626 .hw
.init
= &(struct clk_init_data
){
1627 .name
= "nss_port2_rx_div_clk_src",
1628 .parent_names
= (const char *[]){
1629 "nss_port2_rx_clk_src"
1632 .ops
= &clk_regmap_div_ops
,
1633 .flags
= CLK_SET_RATE_PARENT
,
1638 static struct clk_rcg2 nss_port2_tx_clk_src
= {
1639 .cmd_rcgr
= 0x68038,
1640 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1642 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1643 .clkr
.hw
.init
= &(struct clk_init_data
){
1644 .name
= "nss_port2_tx_clk_src",
1645 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1647 .ops
= &clk_rcg2_ops
,
1651 static struct clk_regmap_div nss_port2_tx_div_clk_src
= {
1656 .hw
.init
= &(struct clk_init_data
){
1657 .name
= "nss_port2_tx_div_clk_src",
1658 .parent_names
= (const char *[]){
1659 "nss_port2_tx_clk_src"
1662 .ops
= &clk_regmap_div_ops
,
1663 .flags
= CLK_SET_RATE_PARENT
,
1668 static struct clk_rcg2 nss_port3_rx_clk_src
= {
1669 .cmd_rcgr
= 0x68040,
1670 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1672 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1673 .clkr
.hw
.init
= &(struct clk_init_data
){
1674 .name
= "nss_port3_rx_clk_src",
1675 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1677 .ops
= &clk_rcg2_ops
,
1681 static struct clk_regmap_div nss_port3_rx_div_clk_src
= {
1686 .hw
.init
= &(struct clk_init_data
){
1687 .name
= "nss_port3_rx_div_clk_src",
1688 .parent_names
= (const char *[]){
1689 "nss_port3_rx_clk_src"
1692 .ops
= &clk_regmap_div_ops
,
1693 .flags
= CLK_SET_RATE_PARENT
,
1698 static struct clk_rcg2 nss_port3_tx_clk_src
= {
1699 .cmd_rcgr
= 0x68048,
1700 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1702 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1703 .clkr
.hw
.init
= &(struct clk_init_data
){
1704 .name
= "nss_port3_tx_clk_src",
1705 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1707 .ops
= &clk_rcg2_ops
,
1711 static struct clk_regmap_div nss_port3_tx_div_clk_src
= {
1716 .hw
.init
= &(struct clk_init_data
){
1717 .name
= "nss_port3_tx_div_clk_src",
1718 .parent_names
= (const char *[]){
1719 "nss_port3_tx_clk_src"
1722 .ops
= &clk_regmap_div_ops
,
1723 .flags
= CLK_SET_RATE_PARENT
,
1728 static struct clk_rcg2 nss_port4_rx_clk_src
= {
1729 .cmd_rcgr
= 0x68050,
1730 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1732 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1733 .clkr
.hw
.init
= &(struct clk_init_data
){
1734 .name
= "nss_port4_rx_clk_src",
1735 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1737 .ops
= &clk_rcg2_ops
,
1741 static struct clk_regmap_div nss_port4_rx_div_clk_src
= {
1746 .hw
.init
= &(struct clk_init_data
){
1747 .name
= "nss_port4_rx_div_clk_src",
1748 .parent_names
= (const char *[]){
1749 "nss_port4_rx_clk_src"
1752 .ops
= &clk_regmap_div_ops
,
1753 .flags
= CLK_SET_RATE_PARENT
,
1758 static struct clk_rcg2 nss_port4_tx_clk_src
= {
1759 .cmd_rcgr
= 0x68058,
1760 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1762 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1763 .clkr
.hw
.init
= &(struct clk_init_data
){
1764 .name
= "nss_port4_tx_clk_src",
1765 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1767 .ops
= &clk_rcg2_ops
,
1771 static struct clk_regmap_div nss_port4_tx_div_clk_src
= {
1776 .hw
.init
= &(struct clk_init_data
){
1777 .name
= "nss_port4_tx_div_clk_src",
1778 .parent_names
= (const char *[]){
1779 "nss_port4_tx_clk_src"
1782 .ops
= &clk_regmap_div_ops
,
1783 .flags
= CLK_SET_RATE_PARENT
,
1788 static const struct freq_tbl ftbl_nss_port5_rx_clk_src
[] = {
1789 F(19200000, P_XO
, 1, 0, 0),
1790 F(25000000, P_UNIPHY1_RX
, 12.5, 0, 0),
1791 F(78125000, P_UNIPHY1_RX
, 4, 0, 0),
1792 F(125000000, P_UNIPHY1_RX
, 2.5, 0, 0),
1793 F(156250000, P_UNIPHY1_RX
, 2, 0, 0),
1794 F(312500000, P_UNIPHY1_RX
, 1, 0, 0),
1798 static struct clk_rcg2 nss_port5_rx_clk_src
= {
1799 .cmd_rcgr
= 0x68060,
1800 .freq_tbl
= ftbl_nss_port5_rx_clk_src
,
1802 .parent_map
= gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map
,
1803 .clkr
.hw
.init
= &(struct clk_init_data
){
1804 .name
= "nss_port5_rx_clk_src",
1805 .parent_names
= gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias
,
1807 .ops
= &clk_rcg2_ops
,
1811 static struct clk_regmap_div nss_port5_rx_div_clk_src
= {
1816 .hw
.init
= &(struct clk_init_data
){
1817 .name
= "nss_port5_rx_div_clk_src",
1818 .parent_names
= (const char *[]){
1819 "nss_port5_rx_clk_src"
1822 .ops
= &clk_regmap_div_ops
,
1823 .flags
= CLK_SET_RATE_PARENT
,
1828 static const struct freq_tbl ftbl_nss_port5_tx_clk_src
[] = {
1829 F(19200000, P_XO
, 1, 0, 0),
1830 F(25000000, P_UNIPHY1_TX
, 12.5, 0, 0),
1831 F(78125000, P_UNIPHY1_TX
, 4, 0, 0),
1832 F(125000000, P_UNIPHY1_TX
, 2.5, 0, 0),
1833 F(156250000, P_UNIPHY1_TX
, 2, 0, 0),
1834 F(312500000, P_UNIPHY1_TX
, 1, 0, 0),
1838 static struct clk_rcg2 nss_port5_tx_clk_src
= {
1839 .cmd_rcgr
= 0x68068,
1840 .freq_tbl
= ftbl_nss_port5_tx_clk_src
,
1842 .parent_map
= gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map
,
1843 .clkr
.hw
.init
= &(struct clk_init_data
){
1844 .name
= "nss_port5_tx_clk_src",
1845 .parent_names
= gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias
,
1847 .ops
= &clk_rcg2_ops
,
1851 static struct clk_regmap_div nss_port5_tx_div_clk_src
= {
1856 .hw
.init
= &(struct clk_init_data
){
1857 .name
= "nss_port5_tx_div_clk_src",
1858 .parent_names
= (const char *[]){
1859 "nss_port5_tx_clk_src"
1862 .ops
= &clk_regmap_div_ops
,
1863 .flags
= CLK_SET_RATE_PARENT
,
1868 static const struct freq_tbl ftbl_nss_port6_rx_clk_src
[] = {
1869 F(19200000, P_XO
, 1, 0, 0),
1870 F(25000000, P_UNIPHY2_RX
, 12.5, 0, 0),
1871 F(78125000, P_UNIPHY2_RX
, 4, 0, 0),
1872 F(125000000, P_UNIPHY2_RX
, 2.5, 0, 0),
1873 F(156250000, P_UNIPHY2_RX
, 2, 0, 0),
1874 F(312500000, P_UNIPHY2_RX
, 1, 0, 0),
1878 static struct clk_rcg2 nss_port6_rx_clk_src
= {
1879 .cmd_rcgr
= 0x68070,
1880 .freq_tbl
= ftbl_nss_port6_rx_clk_src
,
1882 .parent_map
= gcc_xo_uniphy2_rx_tx_ubi32_bias_map
,
1883 .clkr
.hw
.init
= &(struct clk_init_data
){
1884 .name
= "nss_port6_rx_clk_src",
1885 .parent_names
= gcc_xo_uniphy2_rx_tx_ubi32_bias
,
1887 .ops
= &clk_rcg2_ops
,
1891 static struct clk_regmap_div nss_port6_rx_div_clk_src
= {
1896 .hw
.init
= &(struct clk_init_data
){
1897 .name
= "nss_port6_rx_div_clk_src",
1898 .parent_names
= (const char *[]){
1899 "nss_port6_rx_clk_src"
1902 .ops
= &clk_regmap_div_ops
,
1903 .flags
= CLK_SET_RATE_PARENT
,
1908 static const struct freq_tbl ftbl_nss_port6_tx_clk_src
[] = {
1909 F(19200000, P_XO
, 1, 0, 0),
1910 F(25000000, P_UNIPHY2_TX
, 12.5, 0, 0),
1911 F(78125000, P_UNIPHY2_TX
, 4, 0, 0),
1912 F(125000000, P_UNIPHY2_TX
, 2.5, 0, 0),
1913 F(156250000, P_UNIPHY2_TX
, 2, 0, 0),
1914 F(312500000, P_UNIPHY2_TX
, 1, 0, 0),
1918 static struct clk_rcg2 nss_port6_tx_clk_src
= {
1919 .cmd_rcgr
= 0x68078,
1920 .freq_tbl
= ftbl_nss_port6_tx_clk_src
,
1922 .parent_map
= gcc_xo_uniphy2_tx_rx_ubi32_bias_map
,
1923 .clkr
.hw
.init
= &(struct clk_init_data
){
1924 .name
= "nss_port6_tx_clk_src",
1925 .parent_names
= gcc_xo_uniphy2_tx_rx_ubi32_bias
,
1927 .ops
= &clk_rcg2_ops
,
1931 static struct clk_regmap_div nss_port6_tx_div_clk_src
= {
1936 .hw
.init
= &(struct clk_init_data
){
1937 .name
= "nss_port6_tx_div_clk_src",
1938 .parent_names
= (const char *[]){
1939 "nss_port6_tx_clk_src"
1942 .ops
= &clk_regmap_div_ops
,
1943 .flags
= CLK_SET_RATE_PARENT
,
1948 static struct freq_tbl ftbl_crypto_clk_src
[] = {
1949 F(40000000, P_GPLL0_DIV2
, 10, 0, 0),
1950 F(80000000, P_GPLL0
, 10, 0, 0),
1951 F(100000000, P_GPLL0
, 8, 0, 0),
1952 F(160000000, P_GPLL0
, 5, 0, 0),
1956 static struct clk_rcg2 crypto_clk_src
= {
1957 .cmd_rcgr
= 0x16004,
1958 .freq_tbl
= ftbl_crypto_clk_src
,
1960 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
1961 .clkr
.hw
.init
= &(struct clk_init_data
){
1962 .name
= "crypto_clk_src",
1963 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
1965 .ops
= &clk_rcg2_ops
,
1969 static struct freq_tbl ftbl_gp_clk_src
[] = {
1970 F(19200000, P_XO
, 1, 0, 0),
1974 static struct clk_rcg2 gp1_clk_src
= {
1975 .cmd_rcgr
= 0x08004,
1976 .freq_tbl
= ftbl_gp_clk_src
,
1979 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
,
1980 .clkr
.hw
.init
= &(struct clk_init_data
){
1981 .name
= "gp1_clk_src",
1982 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk
,
1984 .ops
= &clk_rcg2_ops
,
1988 static struct clk_rcg2 gp2_clk_src
= {
1989 .cmd_rcgr
= 0x09004,
1990 .freq_tbl
= ftbl_gp_clk_src
,
1993 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
,
1994 .clkr
.hw
.init
= &(struct clk_init_data
){
1995 .name
= "gp2_clk_src",
1996 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk
,
1998 .ops
= &clk_rcg2_ops
,
2002 static struct clk_rcg2 gp3_clk_src
= {
2003 .cmd_rcgr
= 0x0a004,
2004 .freq_tbl
= ftbl_gp_clk_src
,
2007 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
,
2008 .clkr
.hw
.init
= &(struct clk_init_data
){
2009 .name
= "gp3_clk_src",
2010 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk
,
2012 .ops
= &clk_rcg2_ops
,
2016 static struct clk_branch gcc_blsp1_ahb_clk
= {
2017 .halt_reg
= 0x01008,
2019 .enable_reg
= 0x01008,
2020 .enable_mask
= BIT(0),
2021 .hw
.init
= &(struct clk_init_data
){
2022 .name
= "gcc_blsp1_ahb_clk",
2023 .parent_names
= (const char *[]){
2027 .flags
= CLK_SET_RATE_PARENT
,
2028 .ops
= &clk_branch2_ops
,
2033 static struct clk_branch gcc_blsp1_qup1_i2c_apps_clk
= {
2034 .halt_reg
= 0x02008,
2036 .enable_reg
= 0x02008,
2037 .enable_mask
= BIT(0),
2038 .hw
.init
= &(struct clk_init_data
){
2039 .name
= "gcc_blsp1_qup1_i2c_apps_clk",
2040 .parent_names
= (const char *[]){
2041 "blsp1_qup1_i2c_apps_clk_src"
2044 .flags
= CLK_SET_RATE_PARENT
,
2045 .ops
= &clk_branch2_ops
,
2050 static struct clk_branch gcc_blsp1_qup1_spi_apps_clk
= {
2051 .halt_reg
= 0x02004,
2053 .enable_reg
= 0x02004,
2054 .enable_mask
= BIT(0),
2055 .hw
.init
= &(struct clk_init_data
){
2056 .name
= "gcc_blsp1_qup1_spi_apps_clk",
2057 .parent_names
= (const char *[]){
2058 "blsp1_qup1_spi_apps_clk_src"
2061 .flags
= CLK_SET_RATE_PARENT
,
2062 .ops
= &clk_branch2_ops
,
2067 static struct clk_branch gcc_blsp1_qup2_i2c_apps_clk
= {
2068 .halt_reg
= 0x03010,
2070 .enable_reg
= 0x03010,
2071 .enable_mask
= BIT(0),
2072 .hw
.init
= &(struct clk_init_data
){
2073 .name
= "gcc_blsp1_qup2_i2c_apps_clk",
2074 .parent_names
= (const char *[]){
2075 "blsp1_qup2_i2c_apps_clk_src"
2078 .flags
= CLK_SET_RATE_PARENT
,
2079 .ops
= &clk_branch2_ops
,
2084 static struct clk_branch gcc_blsp1_qup2_spi_apps_clk
= {
2085 .halt_reg
= 0x0300c,
2087 .enable_reg
= 0x0300c,
2088 .enable_mask
= BIT(0),
2089 .hw
.init
= &(struct clk_init_data
){
2090 .name
= "gcc_blsp1_qup2_spi_apps_clk",
2091 .parent_names
= (const char *[]){
2092 "blsp1_qup2_spi_apps_clk_src"
2095 .flags
= CLK_SET_RATE_PARENT
,
2096 .ops
= &clk_branch2_ops
,
2101 static struct clk_branch gcc_blsp1_qup3_i2c_apps_clk
= {
2102 .halt_reg
= 0x04010,
2104 .enable_reg
= 0x04010,
2105 .enable_mask
= BIT(0),
2106 .hw
.init
= &(struct clk_init_data
){
2107 .name
= "gcc_blsp1_qup3_i2c_apps_clk",
2108 .parent_names
= (const char *[]){
2109 "blsp1_qup3_i2c_apps_clk_src"
2112 .flags
= CLK_SET_RATE_PARENT
,
2113 .ops
= &clk_branch2_ops
,
2118 static struct clk_branch gcc_blsp1_qup3_spi_apps_clk
= {
2119 .halt_reg
= 0x0400c,
2121 .enable_reg
= 0x0400c,
2122 .enable_mask
= BIT(0),
2123 .hw
.init
= &(struct clk_init_data
){
2124 .name
= "gcc_blsp1_qup3_spi_apps_clk",
2125 .parent_names
= (const char *[]){
2126 "blsp1_qup3_spi_apps_clk_src"
2129 .flags
= CLK_SET_RATE_PARENT
,
2130 .ops
= &clk_branch2_ops
,
2135 static struct clk_branch gcc_blsp1_qup4_i2c_apps_clk
= {
2136 .halt_reg
= 0x05010,
2138 .enable_reg
= 0x05010,
2139 .enable_mask
= BIT(0),
2140 .hw
.init
= &(struct clk_init_data
){
2141 .name
= "gcc_blsp1_qup4_i2c_apps_clk",
2142 .parent_names
= (const char *[]){
2143 "blsp1_qup4_i2c_apps_clk_src"
2146 .flags
= CLK_SET_RATE_PARENT
,
2147 .ops
= &clk_branch2_ops
,
2152 static struct clk_branch gcc_blsp1_qup4_spi_apps_clk
= {
2153 .halt_reg
= 0x0500c,
2155 .enable_reg
= 0x0500c,
2156 .enable_mask
= BIT(0),
2157 .hw
.init
= &(struct clk_init_data
){
2158 .name
= "gcc_blsp1_qup4_spi_apps_clk",
2159 .parent_names
= (const char *[]){
2160 "blsp1_qup4_spi_apps_clk_src"
2163 .flags
= CLK_SET_RATE_PARENT
,
2164 .ops
= &clk_branch2_ops
,
2169 static struct clk_branch gcc_blsp1_qup5_i2c_apps_clk
= {
2170 .halt_reg
= 0x06010,
2172 .enable_reg
= 0x06010,
2173 .enable_mask
= BIT(0),
2174 .hw
.init
= &(struct clk_init_data
){
2175 .name
= "gcc_blsp1_qup5_i2c_apps_clk",
2176 .parent_names
= (const char *[]){
2177 "blsp1_qup5_i2c_apps_clk_src"
2180 .flags
= CLK_SET_RATE_PARENT
,
2181 .ops
= &clk_branch2_ops
,
2186 static struct clk_branch gcc_blsp1_qup5_spi_apps_clk
= {
2187 .halt_reg
= 0x0600c,
2189 .enable_reg
= 0x0600c,
2190 .enable_mask
= BIT(0),
2191 .hw
.init
= &(struct clk_init_data
){
2192 .name
= "gcc_blsp1_qup5_spi_apps_clk",
2193 .parent_names
= (const char *[]){
2194 "blsp1_qup5_spi_apps_clk_src"
2197 .flags
= CLK_SET_RATE_PARENT
,
2198 .ops
= &clk_branch2_ops
,
2203 static struct clk_branch gcc_blsp1_qup6_i2c_apps_clk
= {
2204 .halt_reg
= 0x07010,
2206 .enable_reg
= 0x07010,
2207 .enable_mask
= BIT(0),
2208 .hw
.init
= &(struct clk_init_data
){
2209 .name
= "gcc_blsp1_qup6_i2c_apps_clk",
2210 .parent_names
= (const char *[]){
2211 "blsp1_qup6_i2c_apps_clk_src"
2214 .flags
= CLK_SET_RATE_PARENT
,
2215 .ops
= &clk_branch2_ops
,
2220 static struct clk_branch gcc_blsp1_qup6_spi_apps_clk
= {
2221 .halt_reg
= 0x0700c,
2223 .enable_reg
= 0x0700c,
2224 .enable_mask
= BIT(0),
2225 .hw
.init
= &(struct clk_init_data
){
2226 .name
= "gcc_blsp1_qup6_spi_apps_clk",
2227 .parent_names
= (const char *[]){
2228 "blsp1_qup6_spi_apps_clk_src"
2231 .flags
= CLK_SET_RATE_PARENT
,
2232 .ops
= &clk_branch2_ops
,
2237 static struct clk_branch gcc_blsp1_uart1_apps_clk
= {
2238 .halt_reg
= 0x0203c,
2240 .enable_reg
= 0x0203c,
2241 .enable_mask
= BIT(0),
2242 .hw
.init
= &(struct clk_init_data
){
2243 .name
= "gcc_blsp1_uart1_apps_clk",
2244 .parent_names
= (const char *[]){
2245 "blsp1_uart1_apps_clk_src"
2248 .flags
= CLK_SET_RATE_PARENT
,
2249 .ops
= &clk_branch2_ops
,
2254 static struct clk_branch gcc_blsp1_uart2_apps_clk
= {
2255 .halt_reg
= 0x0302c,
2257 .enable_reg
= 0x0302c,
2258 .enable_mask
= BIT(0),
2259 .hw
.init
= &(struct clk_init_data
){
2260 .name
= "gcc_blsp1_uart2_apps_clk",
2261 .parent_names
= (const char *[]){
2262 "blsp1_uart2_apps_clk_src"
2265 .flags
= CLK_SET_RATE_PARENT
,
2266 .ops
= &clk_branch2_ops
,
2271 static struct clk_branch gcc_blsp1_uart3_apps_clk
= {
2272 .halt_reg
= 0x0402c,
2274 .enable_reg
= 0x0402c,
2275 .enable_mask
= BIT(0),
2276 .hw
.init
= &(struct clk_init_data
){
2277 .name
= "gcc_blsp1_uart3_apps_clk",
2278 .parent_names
= (const char *[]){
2279 "blsp1_uart3_apps_clk_src"
2282 .flags
= CLK_SET_RATE_PARENT
,
2283 .ops
= &clk_branch2_ops
,
2288 static struct clk_branch gcc_blsp1_uart4_apps_clk
= {
2289 .halt_reg
= 0x0502c,
2291 .enable_reg
= 0x0502c,
2292 .enable_mask
= BIT(0),
2293 .hw
.init
= &(struct clk_init_data
){
2294 .name
= "gcc_blsp1_uart4_apps_clk",
2295 .parent_names
= (const char *[]){
2296 "blsp1_uart4_apps_clk_src"
2299 .flags
= CLK_SET_RATE_PARENT
,
2300 .ops
= &clk_branch2_ops
,
2305 static struct clk_branch gcc_blsp1_uart5_apps_clk
= {
2306 .halt_reg
= 0x0602c,
2308 .enable_reg
= 0x0602c,
2309 .enable_mask
= BIT(0),
2310 .hw
.init
= &(struct clk_init_data
){
2311 .name
= "gcc_blsp1_uart5_apps_clk",
2312 .parent_names
= (const char *[]){
2313 "blsp1_uart5_apps_clk_src"
2316 .flags
= CLK_SET_RATE_PARENT
,
2317 .ops
= &clk_branch2_ops
,
2322 static struct clk_branch gcc_blsp1_uart6_apps_clk
= {
2323 .halt_reg
= 0x0702c,
2325 .enable_reg
= 0x0702c,
2326 .enable_mask
= BIT(0),
2327 .hw
.init
= &(struct clk_init_data
){
2328 .name
= "gcc_blsp1_uart6_apps_clk",
2329 .parent_names
= (const char *[]){
2330 "blsp1_uart6_apps_clk_src"
2333 .flags
= CLK_SET_RATE_PARENT
,
2334 .ops
= &clk_branch2_ops
,
2339 static struct clk_branch gcc_prng_ahb_clk
= {
2340 .halt_reg
= 0x13004,
2341 .halt_check
= BRANCH_HALT_VOTED
,
2343 .enable_reg
= 0x0b004,
2344 .enable_mask
= BIT(8),
2345 .hw
.init
= &(struct clk_init_data
){
2346 .name
= "gcc_prng_ahb_clk",
2347 .parent_names
= (const char *[]){
2351 .flags
= CLK_SET_RATE_PARENT
,
2352 .ops
= &clk_branch2_ops
,
2357 static struct clk_branch gcc_qpic_ahb_clk
= {
2358 .halt_reg
= 0x57024,
2360 .enable_reg
= 0x57024,
2361 .enable_mask
= BIT(0),
2362 .hw
.init
= &(struct clk_init_data
){
2363 .name
= "gcc_qpic_ahb_clk",
2364 .parent_names
= (const char *[]){
2368 .flags
= CLK_SET_RATE_PARENT
,
2369 .ops
= &clk_branch2_ops
,
2374 static struct clk_branch gcc_qpic_clk
= {
2375 .halt_reg
= 0x57020,
2377 .enable_reg
= 0x57020,
2378 .enable_mask
= BIT(0),
2379 .hw
.init
= &(struct clk_init_data
){
2380 .name
= "gcc_qpic_clk",
2381 .parent_names
= (const char *[]){
2385 .flags
= CLK_SET_RATE_PARENT
,
2386 .ops
= &clk_branch2_ops
,
2391 static struct clk_branch gcc_pcie0_ahb_clk
= {
2392 .halt_reg
= 0x75010,
2394 .enable_reg
= 0x75010,
2395 .enable_mask
= BIT(0),
2396 .hw
.init
= &(struct clk_init_data
){
2397 .name
= "gcc_pcie0_ahb_clk",
2398 .parent_names
= (const char *[]){
2402 .flags
= CLK_SET_RATE_PARENT
,
2403 .ops
= &clk_branch2_ops
,
2408 static struct clk_branch gcc_pcie0_aux_clk
= {
2409 .halt_reg
= 0x75014,
2411 .enable_reg
= 0x75014,
2412 .enable_mask
= BIT(0),
2413 .hw
.init
= &(struct clk_init_data
){
2414 .name
= "gcc_pcie0_aux_clk",
2415 .parent_names
= (const char *[]){
2419 .flags
= CLK_SET_RATE_PARENT
,
2420 .ops
= &clk_branch2_ops
,
2425 static struct clk_branch gcc_pcie0_axi_m_clk
= {
2426 .halt_reg
= 0x75008,
2428 .enable_reg
= 0x75008,
2429 .enable_mask
= BIT(0),
2430 .hw
.init
= &(struct clk_init_data
){
2431 .name
= "gcc_pcie0_axi_m_clk",
2432 .parent_names
= (const char *[]){
2436 .flags
= CLK_SET_RATE_PARENT
,
2437 .ops
= &clk_branch2_ops
,
2442 static struct clk_branch gcc_pcie0_axi_s_clk
= {
2443 .halt_reg
= 0x7500c,
2445 .enable_reg
= 0x7500c,
2446 .enable_mask
= BIT(0),
2447 .hw
.init
= &(struct clk_init_data
){
2448 .name
= "gcc_pcie0_axi_s_clk",
2449 .parent_names
= (const char *[]){
2453 .flags
= CLK_SET_RATE_PARENT
,
2454 .ops
= &clk_branch2_ops
,
2459 static struct clk_branch gcc_pcie0_pipe_clk
= {
2460 .halt_reg
= 0x75018,
2461 .halt_check
= BRANCH_HALT_DELAY
,
2463 .enable_reg
= 0x75018,
2464 .enable_mask
= BIT(0),
2465 .hw
.init
= &(struct clk_init_data
){
2466 .name
= "gcc_pcie0_pipe_clk",
2467 .parent_names
= (const char *[]){
2468 "pcie0_pipe_clk_src"
2471 .flags
= CLK_SET_RATE_PARENT
,
2472 .ops
= &clk_branch2_ops
,
2477 static struct clk_branch gcc_sys_noc_pcie0_axi_clk
= {
2478 .halt_reg
= 0x26048,
2480 .enable_reg
= 0x26048,
2481 .enable_mask
= BIT(0),
2482 .hw
.init
= &(struct clk_init_data
){
2483 .name
= "gcc_sys_noc_pcie0_axi_clk",
2484 .parent_names
= (const char *[]){
2488 .flags
= CLK_SET_RATE_PARENT
,
2489 .ops
= &clk_branch2_ops
,
2494 static struct clk_branch gcc_pcie1_ahb_clk
= {
2495 .halt_reg
= 0x76010,
2497 .enable_reg
= 0x76010,
2498 .enable_mask
= BIT(0),
2499 .hw
.init
= &(struct clk_init_data
){
2500 .name
= "gcc_pcie1_ahb_clk",
2501 .parent_names
= (const char *[]){
2505 .flags
= CLK_SET_RATE_PARENT
,
2506 .ops
= &clk_branch2_ops
,
2511 static struct clk_branch gcc_pcie1_aux_clk
= {
2512 .halt_reg
= 0x76014,
2514 .enable_reg
= 0x76014,
2515 .enable_mask
= BIT(0),
2516 .hw
.init
= &(struct clk_init_data
){
2517 .name
= "gcc_pcie1_aux_clk",
2518 .parent_names
= (const char *[]){
2522 .flags
= CLK_SET_RATE_PARENT
,
2523 .ops
= &clk_branch2_ops
,
2528 static struct clk_branch gcc_pcie1_axi_m_clk
= {
2529 .halt_reg
= 0x76008,
2531 .enable_reg
= 0x76008,
2532 .enable_mask
= BIT(0),
2533 .hw
.init
= &(struct clk_init_data
){
2534 .name
= "gcc_pcie1_axi_m_clk",
2535 .parent_names
= (const char *[]){
2539 .flags
= CLK_SET_RATE_PARENT
,
2540 .ops
= &clk_branch2_ops
,
2545 static struct clk_branch gcc_pcie1_axi_s_clk
= {
2546 .halt_reg
= 0x7600c,
2548 .enable_reg
= 0x7600c,
2549 .enable_mask
= BIT(0),
2550 .hw
.init
= &(struct clk_init_data
){
2551 .name
= "gcc_pcie1_axi_s_clk",
2552 .parent_names
= (const char *[]){
2556 .flags
= CLK_SET_RATE_PARENT
,
2557 .ops
= &clk_branch2_ops
,
2562 static struct clk_branch gcc_pcie1_pipe_clk
= {
2563 .halt_reg
= 0x76018,
2564 .halt_check
= BRANCH_HALT_DELAY
,
2566 .enable_reg
= 0x76018,
2567 .enable_mask
= BIT(0),
2568 .hw
.init
= &(struct clk_init_data
){
2569 .name
= "gcc_pcie1_pipe_clk",
2570 .parent_names
= (const char *[]){
2571 "pcie1_pipe_clk_src"
2574 .flags
= CLK_SET_RATE_PARENT
,
2575 .ops
= &clk_branch2_ops
,
2580 static struct clk_branch gcc_sys_noc_pcie1_axi_clk
= {
2581 .halt_reg
= 0x2604c,
2583 .enable_reg
= 0x2604c,
2584 .enable_mask
= BIT(0),
2585 .hw
.init
= &(struct clk_init_data
){
2586 .name
= "gcc_sys_noc_pcie1_axi_clk",
2587 .parent_names
= (const char *[]){
2591 .flags
= CLK_SET_RATE_PARENT
,
2592 .ops
= &clk_branch2_ops
,
2597 static struct clk_branch gcc_usb0_aux_clk
= {
2598 .halt_reg
= 0x3e044,
2600 .enable_reg
= 0x3e044,
2601 .enable_mask
= BIT(0),
2602 .hw
.init
= &(struct clk_init_data
){
2603 .name
= "gcc_usb0_aux_clk",
2604 .parent_names
= (const char *[]){
2608 .flags
= CLK_SET_RATE_PARENT
,
2609 .ops
= &clk_branch2_ops
,
2614 static struct clk_branch gcc_sys_noc_usb0_axi_clk
= {
2615 .halt_reg
= 0x26040,
2617 .enable_reg
= 0x26040,
2618 .enable_mask
= BIT(0),
2619 .hw
.init
= &(struct clk_init_data
){
2620 .name
= "gcc_sys_noc_usb0_axi_clk",
2621 .parent_names
= (const char *[]){
2622 "usb0_master_clk_src"
2625 .flags
= CLK_SET_RATE_PARENT
,
2626 .ops
= &clk_branch2_ops
,
2631 static struct clk_branch gcc_usb0_master_clk
= {
2632 .halt_reg
= 0x3e000,
2634 .enable_reg
= 0x3e000,
2635 .enable_mask
= BIT(0),
2636 .hw
.init
= &(struct clk_init_data
){
2637 .name
= "gcc_usb0_master_clk",
2638 .parent_names
= (const char *[]){
2639 "usb0_master_clk_src"
2642 .flags
= CLK_SET_RATE_PARENT
,
2643 .ops
= &clk_branch2_ops
,
2648 static struct clk_branch gcc_usb0_mock_utmi_clk
= {
2649 .halt_reg
= 0x3e008,
2651 .enable_reg
= 0x3e008,
2652 .enable_mask
= BIT(0),
2653 .hw
.init
= &(struct clk_init_data
){
2654 .name
= "gcc_usb0_mock_utmi_clk",
2655 .parent_names
= (const char *[]){
2656 "usb0_mock_utmi_clk_src"
2659 .flags
= CLK_SET_RATE_PARENT
,
2660 .ops
= &clk_branch2_ops
,
2665 static struct clk_branch gcc_usb0_phy_cfg_ahb_clk
= {
2666 .halt_reg
= 0x3e080,
2668 .enable_reg
= 0x3e080,
2669 .enable_mask
= BIT(0),
2670 .hw
.init
= &(struct clk_init_data
){
2671 .name
= "gcc_usb0_phy_cfg_ahb_clk",
2672 .parent_names
= (const char *[]){
2676 .flags
= CLK_SET_RATE_PARENT
,
2677 .ops
= &clk_branch2_ops
,
2682 static struct clk_branch gcc_usb0_pipe_clk
= {
2683 .halt_reg
= 0x3e040,
2684 .halt_check
= BRANCH_HALT_DELAY
,
2686 .enable_reg
= 0x3e040,
2687 .enable_mask
= BIT(0),
2688 .hw
.init
= &(struct clk_init_data
){
2689 .name
= "gcc_usb0_pipe_clk",
2690 .parent_names
= (const char *[]){
2694 .flags
= CLK_SET_RATE_PARENT
,
2695 .ops
= &clk_branch2_ops
,
2700 static struct clk_branch gcc_usb0_sleep_clk
= {
2701 .halt_reg
= 0x3e004,
2703 .enable_reg
= 0x3e004,
2704 .enable_mask
= BIT(0),
2705 .hw
.init
= &(struct clk_init_data
){
2706 .name
= "gcc_usb0_sleep_clk",
2707 .parent_names
= (const char *[]){
2711 .flags
= CLK_SET_RATE_PARENT
,
2712 .ops
= &clk_branch2_ops
,
2717 static struct clk_branch gcc_usb1_aux_clk
= {
2718 .halt_reg
= 0x3f044,
2720 .enable_reg
= 0x3f044,
2721 .enable_mask
= BIT(0),
2722 .hw
.init
= &(struct clk_init_data
){
2723 .name
= "gcc_usb1_aux_clk",
2724 .parent_names
= (const char *[]){
2728 .flags
= CLK_SET_RATE_PARENT
,
2729 .ops
= &clk_branch2_ops
,
2734 static struct clk_branch gcc_sys_noc_usb1_axi_clk
= {
2735 .halt_reg
= 0x26044,
2737 .enable_reg
= 0x26044,
2738 .enable_mask
= BIT(0),
2739 .hw
.init
= &(struct clk_init_data
){
2740 .name
= "gcc_sys_noc_usb1_axi_clk",
2741 .parent_names
= (const char *[]){
2742 "usb1_master_clk_src"
2745 .flags
= CLK_SET_RATE_PARENT
,
2746 .ops
= &clk_branch2_ops
,
2751 static struct clk_branch gcc_usb1_master_clk
= {
2752 .halt_reg
= 0x3f000,
2754 .enable_reg
= 0x3f000,
2755 .enable_mask
= BIT(0),
2756 .hw
.init
= &(struct clk_init_data
){
2757 .name
= "gcc_usb1_master_clk",
2758 .parent_names
= (const char *[]){
2759 "usb1_master_clk_src"
2762 .flags
= CLK_SET_RATE_PARENT
,
2763 .ops
= &clk_branch2_ops
,
2768 static struct clk_branch gcc_usb1_mock_utmi_clk
= {
2769 .halt_reg
= 0x3f008,
2771 .enable_reg
= 0x3f008,
2772 .enable_mask
= BIT(0),
2773 .hw
.init
= &(struct clk_init_data
){
2774 .name
= "gcc_usb1_mock_utmi_clk",
2775 .parent_names
= (const char *[]){
2776 "usb1_mock_utmi_clk_src"
2779 .flags
= CLK_SET_RATE_PARENT
,
2780 .ops
= &clk_branch2_ops
,
2785 static struct clk_branch gcc_usb1_phy_cfg_ahb_clk
= {
2786 .halt_reg
= 0x3f080,
2788 .enable_reg
= 0x3f080,
2789 .enable_mask
= BIT(0),
2790 .hw
.init
= &(struct clk_init_data
){
2791 .name
= "gcc_usb1_phy_cfg_ahb_clk",
2792 .parent_names
= (const char *[]){
2796 .flags
= CLK_SET_RATE_PARENT
,
2797 .ops
= &clk_branch2_ops
,
2802 static struct clk_branch gcc_usb1_pipe_clk
= {
2803 .halt_reg
= 0x3f040,
2804 .halt_check
= BRANCH_HALT_DELAY
,
2806 .enable_reg
= 0x3f040,
2807 .enable_mask
= BIT(0),
2808 .hw
.init
= &(struct clk_init_data
){
2809 .name
= "gcc_usb1_pipe_clk",
2810 .parent_names
= (const char *[]){
2814 .flags
= CLK_SET_RATE_PARENT
,
2815 .ops
= &clk_branch2_ops
,
2820 static struct clk_branch gcc_usb1_sleep_clk
= {
2821 .halt_reg
= 0x3f004,
2823 .enable_reg
= 0x3f004,
2824 .enable_mask
= BIT(0),
2825 .hw
.init
= &(struct clk_init_data
){
2826 .name
= "gcc_usb1_sleep_clk",
2827 .parent_names
= (const char *[]){
2831 .flags
= CLK_SET_RATE_PARENT
,
2832 .ops
= &clk_branch2_ops
,
2837 static struct clk_branch gcc_sdcc1_ahb_clk
= {
2838 .halt_reg
= 0x4201c,
2840 .enable_reg
= 0x4201c,
2841 .enable_mask
= BIT(0),
2842 .hw
.init
= &(struct clk_init_data
){
2843 .name
= "gcc_sdcc1_ahb_clk",
2844 .parent_names
= (const char *[]){
2848 .flags
= CLK_SET_RATE_PARENT
,
2849 .ops
= &clk_branch2_ops
,
2854 static struct clk_branch gcc_sdcc1_apps_clk
= {
2855 .halt_reg
= 0x42018,
2857 .enable_reg
= 0x42018,
2858 .enable_mask
= BIT(0),
2859 .hw
.init
= &(struct clk_init_data
){
2860 .name
= "gcc_sdcc1_apps_clk",
2861 .parent_names
= (const char *[]){
2862 "sdcc1_apps_clk_src"
2865 .flags
= CLK_SET_RATE_PARENT
,
2866 .ops
= &clk_branch2_ops
,
2871 static struct clk_branch gcc_sdcc1_ice_core_clk
= {
2872 .halt_reg
= 0x5d014,
2874 .enable_reg
= 0x5d014,
2875 .enable_mask
= BIT(0),
2876 .hw
.init
= &(struct clk_init_data
){
2877 .name
= "gcc_sdcc1_ice_core_clk",
2878 .parent_names
= (const char *[]){
2879 "sdcc1_ice_core_clk_src"
2882 .flags
= CLK_SET_RATE_PARENT
,
2883 .ops
= &clk_branch2_ops
,
2888 static struct clk_branch gcc_sdcc2_ahb_clk
= {
2889 .halt_reg
= 0x4301c,
2891 .enable_reg
= 0x4301c,
2892 .enable_mask
= BIT(0),
2893 .hw
.init
= &(struct clk_init_data
){
2894 .name
= "gcc_sdcc2_ahb_clk",
2895 .parent_names
= (const char *[]){
2899 .flags
= CLK_SET_RATE_PARENT
,
2900 .ops
= &clk_branch2_ops
,
2905 static struct clk_branch gcc_sdcc2_apps_clk
= {
2906 .halt_reg
= 0x43018,
2908 .enable_reg
= 0x43018,
2909 .enable_mask
= BIT(0),
2910 .hw
.init
= &(struct clk_init_data
){
2911 .name
= "gcc_sdcc2_apps_clk",
2912 .parent_names
= (const char *[]){
2913 "sdcc2_apps_clk_src"
2916 .flags
= CLK_SET_RATE_PARENT
,
2917 .ops
= &clk_branch2_ops
,
2922 static struct clk_branch gcc_mem_noc_nss_axi_clk
= {
2923 .halt_reg
= 0x1d03c,
2925 .enable_reg
= 0x1d03c,
2926 .enable_mask
= BIT(0),
2927 .hw
.init
= &(struct clk_init_data
){
2928 .name
= "gcc_mem_noc_nss_axi_clk",
2929 .parent_names
= (const char *[]){
2933 .flags
= CLK_SET_RATE_PARENT
,
2934 .ops
= &clk_branch2_ops
,
2939 static struct clk_branch gcc_nss_ce_apb_clk
= {
2940 .halt_reg
= 0x68174,
2942 .enable_reg
= 0x68174,
2943 .enable_mask
= BIT(0),
2944 .hw
.init
= &(struct clk_init_data
){
2945 .name
= "gcc_nss_ce_apb_clk",
2946 .parent_names
= (const char *[]){
2950 .flags
= CLK_SET_RATE_PARENT
,
2951 .ops
= &clk_branch2_ops
,
2956 static struct clk_branch gcc_nss_ce_axi_clk
= {
2957 .halt_reg
= 0x68170,
2959 .enable_reg
= 0x68170,
2960 .enable_mask
= BIT(0),
2961 .hw
.init
= &(struct clk_init_data
){
2962 .name
= "gcc_nss_ce_axi_clk",
2963 .parent_names
= (const char *[]){
2967 .flags
= CLK_SET_RATE_PARENT
,
2968 .ops
= &clk_branch2_ops
,
2973 static struct clk_branch gcc_nss_cfg_clk
= {
2974 .halt_reg
= 0x68160,
2976 .enable_reg
= 0x68160,
2977 .enable_mask
= BIT(0),
2978 .hw
.init
= &(struct clk_init_data
){
2979 .name
= "gcc_nss_cfg_clk",
2980 .parent_names
= (const char *[]){
2984 .flags
= CLK_SET_RATE_PARENT
,
2985 .ops
= &clk_branch2_ops
,
2990 static struct clk_branch gcc_nss_crypto_clk
= {
2991 .halt_reg
= 0x68164,
2993 .enable_reg
= 0x68164,
2994 .enable_mask
= BIT(0),
2995 .hw
.init
= &(struct clk_init_data
){
2996 .name
= "gcc_nss_crypto_clk",
2997 .parent_names
= (const char *[]){
2998 "nss_crypto_clk_src"
3001 .flags
= CLK_SET_RATE_PARENT
,
3002 .ops
= &clk_branch2_ops
,
3007 static struct clk_branch gcc_nss_csr_clk
= {
3008 .halt_reg
= 0x68318,
3010 .enable_reg
= 0x68318,
3011 .enable_mask
= BIT(0),
3012 .hw
.init
= &(struct clk_init_data
){
3013 .name
= "gcc_nss_csr_clk",
3014 .parent_names
= (const char *[]){
3018 .flags
= CLK_SET_RATE_PARENT
,
3019 .ops
= &clk_branch2_ops
,
3024 static struct clk_branch gcc_nss_edma_cfg_clk
= {
3025 .halt_reg
= 0x6819c,
3027 .enable_reg
= 0x6819c,
3028 .enable_mask
= BIT(0),
3029 .hw
.init
= &(struct clk_init_data
){
3030 .name
= "gcc_nss_edma_cfg_clk",
3031 .parent_names
= (const char *[]){
3035 .flags
= CLK_SET_RATE_PARENT
,
3036 .ops
= &clk_branch2_ops
,
3041 static struct clk_branch gcc_nss_edma_clk
= {
3042 .halt_reg
= 0x68198,
3044 .enable_reg
= 0x68198,
3045 .enable_mask
= BIT(0),
3046 .hw
.init
= &(struct clk_init_data
){
3047 .name
= "gcc_nss_edma_clk",
3048 .parent_names
= (const char *[]){
3052 .flags
= CLK_SET_RATE_PARENT
,
3053 .ops
= &clk_branch2_ops
,
3058 static struct clk_branch gcc_nss_imem_clk
= {
3059 .halt_reg
= 0x68178,
3061 .enable_reg
= 0x68178,
3062 .enable_mask
= BIT(0),
3063 .hw
.init
= &(struct clk_init_data
){
3064 .name
= "gcc_nss_imem_clk",
3065 .parent_names
= (const char *[]){
3069 .flags
= CLK_SET_RATE_PARENT
,
3070 .ops
= &clk_branch2_ops
,
3075 static struct clk_branch gcc_nss_noc_clk
= {
3076 .halt_reg
= 0x68168,
3078 .enable_reg
= 0x68168,
3079 .enable_mask
= BIT(0),
3080 .hw
.init
= &(struct clk_init_data
){
3081 .name
= "gcc_nss_noc_clk",
3082 .parent_names
= (const char *[]){
3086 .flags
= CLK_SET_RATE_PARENT
,
3087 .ops
= &clk_branch2_ops
,
3092 static struct clk_branch gcc_nss_ppe_btq_clk
= {
3093 .halt_reg
= 0x6833c,
3095 .enable_reg
= 0x6833c,
3096 .enable_mask
= BIT(0),
3097 .hw
.init
= &(struct clk_init_data
){
3098 .name
= "gcc_nss_ppe_btq_clk",
3099 .parent_names
= (const char *[]){
3103 .flags
= CLK_SET_RATE_PARENT
,
3104 .ops
= &clk_branch2_ops
,
3109 static struct clk_branch gcc_nss_ppe_cfg_clk
= {
3110 .halt_reg
= 0x68194,
3112 .enable_reg
= 0x68194,
3113 .enable_mask
= BIT(0),
3114 .hw
.init
= &(struct clk_init_data
){
3115 .name
= "gcc_nss_ppe_cfg_clk",
3116 .parent_names
= (const char *[]){
3120 .flags
= CLK_SET_RATE_PARENT
,
3121 .ops
= &clk_branch2_ops
,
3126 static struct clk_branch gcc_nss_ppe_clk
= {
3127 .halt_reg
= 0x68190,
3129 .enable_reg
= 0x68190,
3130 .enable_mask
= BIT(0),
3131 .hw
.init
= &(struct clk_init_data
){
3132 .name
= "gcc_nss_ppe_clk",
3133 .parent_names
= (const char *[]){
3137 .flags
= CLK_SET_RATE_PARENT
,
3138 .ops
= &clk_branch2_ops
,
3143 static struct clk_branch gcc_nss_ppe_ipe_clk
= {
3144 .halt_reg
= 0x68338,
3146 .enable_reg
= 0x68338,
3147 .enable_mask
= BIT(0),
3148 .hw
.init
= &(struct clk_init_data
){
3149 .name
= "gcc_nss_ppe_ipe_clk",
3150 .parent_names
= (const char *[]){
3154 .flags
= CLK_SET_RATE_PARENT
,
3155 .ops
= &clk_branch2_ops
,
3160 static struct clk_branch gcc_nss_ptp_ref_clk
= {
3161 .halt_reg
= 0x6816c,
3163 .enable_reg
= 0x6816c,
3164 .enable_mask
= BIT(0),
3165 .hw
.init
= &(struct clk_init_data
){
3166 .name
= "gcc_nss_ptp_ref_clk",
3167 .parent_names
= (const char *[]){
3168 "nss_ppe_cdiv_clk_src"
3171 .flags
= CLK_SET_RATE_PARENT
,
3172 .ops
= &clk_branch2_ops
,
3177 static struct clk_branch gcc_nssnoc_ce_apb_clk
= {
3178 .halt_reg
= 0x6830c,
3180 .enable_reg
= 0x6830c,
3181 .enable_mask
= BIT(0),
3182 .hw
.init
= &(struct clk_init_data
){
3183 .name
= "gcc_nssnoc_ce_apb_clk",
3184 .parent_names
= (const char *[]){
3188 .flags
= CLK_SET_RATE_PARENT
,
3189 .ops
= &clk_branch2_ops
,
3194 static struct clk_branch gcc_nssnoc_ce_axi_clk
= {
3195 .halt_reg
= 0x68308,
3197 .enable_reg
= 0x68308,
3198 .enable_mask
= BIT(0),
3199 .hw
.init
= &(struct clk_init_data
){
3200 .name
= "gcc_nssnoc_ce_axi_clk",
3201 .parent_names
= (const char *[]){
3205 .flags
= CLK_SET_RATE_PARENT
,
3206 .ops
= &clk_branch2_ops
,
3211 static struct clk_branch gcc_nssnoc_crypto_clk
= {
3212 .halt_reg
= 0x68314,
3214 .enable_reg
= 0x68314,
3215 .enable_mask
= BIT(0),
3216 .hw
.init
= &(struct clk_init_data
){
3217 .name
= "gcc_nssnoc_crypto_clk",
3218 .parent_names
= (const char *[]){
3219 "nss_crypto_clk_src"
3222 .flags
= CLK_SET_RATE_PARENT
,
3223 .ops
= &clk_branch2_ops
,
3228 static struct clk_branch gcc_nssnoc_ppe_cfg_clk
= {
3229 .halt_reg
= 0x68304,
3231 .enable_reg
= 0x68304,
3232 .enable_mask
= BIT(0),
3233 .hw
.init
= &(struct clk_init_data
){
3234 .name
= "gcc_nssnoc_ppe_cfg_clk",
3235 .parent_names
= (const char *[]){
3239 .flags
= CLK_SET_RATE_PARENT
,
3240 .ops
= &clk_branch2_ops
,
3245 static struct clk_branch gcc_nssnoc_ppe_clk
= {
3246 .halt_reg
= 0x68300,
3248 .enable_reg
= 0x68300,
3249 .enable_mask
= BIT(0),
3250 .hw
.init
= &(struct clk_init_data
){
3251 .name
= "gcc_nssnoc_ppe_clk",
3252 .parent_names
= (const char *[]){
3256 .flags
= CLK_SET_RATE_PARENT
,
3257 .ops
= &clk_branch2_ops
,
3262 static struct clk_branch gcc_nssnoc_qosgen_ref_clk
= {
3263 .halt_reg
= 0x68180,
3265 .enable_reg
= 0x68180,
3266 .enable_mask
= BIT(0),
3267 .hw
.init
= &(struct clk_init_data
){
3268 .name
= "gcc_nssnoc_qosgen_ref_clk",
3269 .parent_names
= (const char *[]){
3273 .flags
= CLK_SET_RATE_PARENT
,
3274 .ops
= &clk_branch2_ops
,
3279 static struct clk_branch gcc_nssnoc_snoc_clk
= {
3280 .halt_reg
= 0x68188,
3282 .enable_reg
= 0x68188,
3283 .enable_mask
= BIT(0),
3284 .hw
.init
= &(struct clk_init_data
){
3285 .name
= "gcc_nssnoc_snoc_clk",
3286 .parent_names
= (const char *[]){
3287 "system_noc_clk_src"
3290 .flags
= CLK_SET_RATE_PARENT
,
3291 .ops
= &clk_branch2_ops
,
3296 static struct clk_branch gcc_nssnoc_timeout_ref_clk
= {
3297 .halt_reg
= 0x68184,
3299 .enable_reg
= 0x68184,
3300 .enable_mask
= BIT(0),
3301 .hw
.init
= &(struct clk_init_data
){
3302 .name
= "gcc_nssnoc_timeout_ref_clk",
3303 .parent_names
= (const char *[]){
3304 "gcc_xo_div4_clk_src"
3307 .flags
= CLK_SET_RATE_PARENT
,
3308 .ops
= &clk_branch2_ops
,
3313 static struct clk_branch gcc_nssnoc_ubi0_ahb_clk
= {
3314 .halt_reg
= 0x68270,
3316 .enable_reg
= 0x68270,
3317 .enable_mask
= BIT(0),
3318 .hw
.init
= &(struct clk_init_data
){
3319 .name
= "gcc_nssnoc_ubi0_ahb_clk",
3320 .parent_names
= (const char *[]){
3324 .flags
= CLK_SET_RATE_PARENT
,
3325 .ops
= &clk_branch2_ops
,
3330 static struct clk_branch gcc_nssnoc_ubi1_ahb_clk
= {
3331 .halt_reg
= 0x68274,
3333 .enable_reg
= 0x68274,
3334 .enable_mask
= BIT(0),
3335 .hw
.init
= &(struct clk_init_data
){
3336 .name
= "gcc_nssnoc_ubi1_ahb_clk",
3337 .parent_names
= (const char *[]){
3341 .flags
= CLK_SET_RATE_PARENT
,
3342 .ops
= &clk_branch2_ops
,
3347 static struct clk_branch gcc_ubi0_ahb_clk
= {
3348 .halt_reg
= 0x6820c,
3350 .enable_reg
= 0x6820c,
3351 .enable_mask
= BIT(0),
3352 .hw
.init
= &(struct clk_init_data
){
3353 .name
= "gcc_ubi0_ahb_clk",
3354 .parent_names
= (const char *[]){
3358 .flags
= CLK_SET_RATE_PARENT
,
3359 .ops
= &clk_branch2_ops
,
3364 static struct clk_branch gcc_ubi0_axi_clk
= {
3365 .halt_reg
= 0x68200,
3367 .enable_reg
= 0x68200,
3368 .enable_mask
= BIT(0),
3369 .hw
.init
= &(struct clk_init_data
){
3370 .name
= "gcc_ubi0_axi_clk",
3371 .parent_names
= (const char *[]){
3375 .flags
= CLK_SET_RATE_PARENT
,
3376 .ops
= &clk_branch2_ops
,
3381 static struct clk_branch gcc_ubi0_nc_axi_clk
= {
3382 .halt_reg
= 0x68204,
3384 .enable_reg
= 0x68204,
3385 .enable_mask
= BIT(0),
3386 .hw
.init
= &(struct clk_init_data
){
3387 .name
= "gcc_ubi0_nc_axi_clk",
3388 .parent_names
= (const char *[]){
3392 .flags
= CLK_SET_RATE_PARENT
,
3393 .ops
= &clk_branch2_ops
,
3398 static struct clk_branch gcc_ubi0_core_clk
= {
3399 .halt_reg
= 0x68210,
3401 .enable_reg
= 0x68210,
3402 .enable_mask
= BIT(0),
3403 .hw
.init
= &(struct clk_init_data
){
3404 .name
= "gcc_ubi0_core_clk",
3405 .parent_names
= (const char *[]){
3406 "nss_ubi0_div_clk_src"
3409 .flags
= CLK_SET_RATE_PARENT
,
3410 .ops
= &clk_branch2_ops
,
3415 static struct clk_branch gcc_ubi0_mpt_clk
= {
3416 .halt_reg
= 0x68208,
3418 .enable_reg
= 0x68208,
3419 .enable_mask
= BIT(0),
3420 .hw
.init
= &(struct clk_init_data
){
3421 .name
= "gcc_ubi0_mpt_clk",
3422 .parent_names
= (const char *[]){
3426 .flags
= CLK_SET_RATE_PARENT
,
3427 .ops
= &clk_branch2_ops
,
3432 static struct clk_branch gcc_ubi1_ahb_clk
= {
3433 .halt_reg
= 0x6822c,
3435 .enable_reg
= 0x6822c,
3436 .enable_mask
= BIT(0),
3437 .hw
.init
= &(struct clk_init_data
){
3438 .name
= "gcc_ubi1_ahb_clk",
3439 .parent_names
= (const char *[]){
3443 .flags
= CLK_SET_RATE_PARENT
,
3444 .ops
= &clk_branch2_ops
,
3449 static struct clk_branch gcc_ubi1_axi_clk
= {
3450 .halt_reg
= 0x68220,
3452 .enable_reg
= 0x68220,
3453 .enable_mask
= BIT(0),
3454 .hw
.init
= &(struct clk_init_data
){
3455 .name
= "gcc_ubi1_axi_clk",
3456 .parent_names
= (const char *[]){
3460 .flags
= CLK_SET_RATE_PARENT
,
3461 .ops
= &clk_branch2_ops
,
3466 static struct clk_branch gcc_ubi1_nc_axi_clk
= {
3467 .halt_reg
= 0x68224,
3469 .enable_reg
= 0x68224,
3470 .enable_mask
= BIT(0),
3471 .hw
.init
= &(struct clk_init_data
){
3472 .name
= "gcc_ubi1_nc_axi_clk",
3473 .parent_names
= (const char *[]){
3477 .flags
= CLK_SET_RATE_PARENT
,
3478 .ops
= &clk_branch2_ops
,
3483 static struct clk_branch gcc_ubi1_core_clk
= {
3484 .halt_reg
= 0x68230,
3486 .enable_reg
= 0x68230,
3487 .enable_mask
= BIT(0),
3488 .hw
.init
= &(struct clk_init_data
){
3489 .name
= "gcc_ubi1_core_clk",
3490 .parent_names
= (const char *[]){
3491 "nss_ubi1_div_clk_src"
3494 .flags
= CLK_SET_RATE_PARENT
,
3495 .ops
= &clk_branch2_ops
,
3500 static struct clk_branch gcc_ubi1_mpt_clk
= {
3501 .halt_reg
= 0x68228,
3503 .enable_reg
= 0x68228,
3504 .enable_mask
= BIT(0),
3505 .hw
.init
= &(struct clk_init_data
){
3506 .name
= "gcc_ubi1_mpt_clk",
3507 .parent_names
= (const char *[]){
3511 .flags
= CLK_SET_RATE_PARENT
,
3512 .ops
= &clk_branch2_ops
,
3517 static struct clk_branch gcc_cmn_12gpll_ahb_clk
= {
3518 .halt_reg
= 0x56308,
3520 .enable_reg
= 0x56308,
3521 .enable_mask
= BIT(0),
3522 .hw
.init
= &(struct clk_init_data
){
3523 .name
= "gcc_cmn_12gpll_ahb_clk",
3524 .parent_names
= (const char *[]){
3528 .flags
= CLK_SET_RATE_PARENT
,
3529 .ops
= &clk_branch2_ops
,
3534 static struct clk_branch gcc_cmn_12gpll_sys_clk
= {
3535 .halt_reg
= 0x5630c,
3537 .enable_reg
= 0x5630c,
3538 .enable_mask
= BIT(0),
3539 .hw
.init
= &(struct clk_init_data
){
3540 .name
= "gcc_cmn_12gpll_sys_clk",
3541 .parent_names
= (const char *[]){
3545 .flags
= CLK_SET_RATE_PARENT
,
3546 .ops
= &clk_branch2_ops
,
3551 static struct clk_branch gcc_mdio_ahb_clk
= {
3552 .halt_reg
= 0x58004,
3554 .enable_reg
= 0x58004,
3555 .enable_mask
= BIT(0),
3556 .hw
.init
= &(struct clk_init_data
){
3557 .name
= "gcc_mdio_ahb_clk",
3558 .parent_names
= (const char *[]){
3562 .flags
= CLK_SET_RATE_PARENT
,
3563 .ops
= &clk_branch2_ops
,
3568 static struct clk_branch gcc_uniphy0_ahb_clk
= {
3569 .halt_reg
= 0x56008,
3571 .enable_reg
= 0x56008,
3572 .enable_mask
= BIT(0),
3573 .hw
.init
= &(struct clk_init_data
){
3574 .name
= "gcc_uniphy0_ahb_clk",
3575 .parent_names
= (const char *[]){
3579 .flags
= CLK_SET_RATE_PARENT
,
3580 .ops
= &clk_branch2_ops
,
3585 static struct clk_branch gcc_uniphy0_sys_clk
= {
3586 .halt_reg
= 0x5600c,
3588 .enable_reg
= 0x5600c,
3589 .enable_mask
= BIT(0),
3590 .hw
.init
= &(struct clk_init_data
){
3591 .name
= "gcc_uniphy0_sys_clk",
3592 .parent_names
= (const char *[]){
3596 .flags
= CLK_SET_RATE_PARENT
,
3597 .ops
= &clk_branch2_ops
,
3602 static struct clk_branch gcc_uniphy1_ahb_clk
= {
3603 .halt_reg
= 0x56108,
3605 .enable_reg
= 0x56108,
3606 .enable_mask
= BIT(0),
3607 .hw
.init
= &(struct clk_init_data
){
3608 .name
= "gcc_uniphy1_ahb_clk",
3609 .parent_names
= (const char *[]){
3613 .flags
= CLK_SET_RATE_PARENT
,
3614 .ops
= &clk_branch2_ops
,
3619 static struct clk_branch gcc_uniphy1_sys_clk
= {
3620 .halt_reg
= 0x5610c,
3622 .enable_reg
= 0x5610c,
3623 .enable_mask
= BIT(0),
3624 .hw
.init
= &(struct clk_init_data
){
3625 .name
= "gcc_uniphy1_sys_clk",
3626 .parent_names
= (const char *[]){
3630 .flags
= CLK_SET_RATE_PARENT
,
3631 .ops
= &clk_branch2_ops
,
3636 static struct clk_branch gcc_uniphy2_ahb_clk
= {
3637 .halt_reg
= 0x56208,
3639 .enable_reg
= 0x56208,
3640 .enable_mask
= BIT(0),
3641 .hw
.init
= &(struct clk_init_data
){
3642 .name
= "gcc_uniphy2_ahb_clk",
3643 .parent_names
= (const char *[]){
3647 .flags
= CLK_SET_RATE_PARENT
,
3648 .ops
= &clk_branch2_ops
,
3653 static struct clk_branch gcc_uniphy2_sys_clk
= {
3654 .halt_reg
= 0x5620c,
3656 .enable_reg
= 0x5620c,
3657 .enable_mask
= BIT(0),
3658 .hw
.init
= &(struct clk_init_data
){
3659 .name
= "gcc_uniphy2_sys_clk",
3660 .parent_names
= (const char *[]){
3664 .flags
= CLK_SET_RATE_PARENT
,
3665 .ops
= &clk_branch2_ops
,
3670 static struct clk_branch gcc_nss_port1_rx_clk
= {
3671 .halt_reg
= 0x68240,
3673 .enable_reg
= 0x68240,
3674 .enable_mask
= BIT(0),
3675 .hw
.init
= &(struct clk_init_data
){
3676 .name
= "gcc_nss_port1_rx_clk",
3677 .parent_names
= (const char *[]){
3678 "nss_port1_rx_div_clk_src"
3681 .flags
= CLK_SET_RATE_PARENT
,
3682 .ops
= &clk_branch2_ops
,
3687 static struct clk_branch gcc_nss_port1_tx_clk
= {
3688 .halt_reg
= 0x68244,
3690 .enable_reg
= 0x68244,
3691 .enable_mask
= BIT(0),
3692 .hw
.init
= &(struct clk_init_data
){
3693 .name
= "gcc_nss_port1_tx_clk",
3694 .parent_names
= (const char *[]){
3695 "nss_port1_tx_div_clk_src"
3698 .flags
= CLK_SET_RATE_PARENT
,
3699 .ops
= &clk_branch2_ops
,
3704 static struct clk_branch gcc_nss_port2_rx_clk
= {
3705 .halt_reg
= 0x68248,
3707 .enable_reg
= 0x68248,
3708 .enable_mask
= BIT(0),
3709 .hw
.init
= &(struct clk_init_data
){
3710 .name
= "gcc_nss_port2_rx_clk",
3711 .parent_names
= (const char *[]){
3712 "nss_port2_rx_div_clk_src"
3715 .flags
= CLK_SET_RATE_PARENT
,
3716 .ops
= &clk_branch2_ops
,
3721 static struct clk_branch gcc_nss_port2_tx_clk
= {
3722 .halt_reg
= 0x6824c,
3724 .enable_reg
= 0x6824c,
3725 .enable_mask
= BIT(0),
3726 .hw
.init
= &(struct clk_init_data
){
3727 .name
= "gcc_nss_port2_tx_clk",
3728 .parent_names
= (const char *[]){
3729 "nss_port2_tx_div_clk_src"
3732 .flags
= CLK_SET_RATE_PARENT
,
3733 .ops
= &clk_branch2_ops
,
3738 static struct clk_branch gcc_nss_port3_rx_clk
= {
3739 .halt_reg
= 0x68250,
3741 .enable_reg
= 0x68250,
3742 .enable_mask
= BIT(0),
3743 .hw
.init
= &(struct clk_init_data
){
3744 .name
= "gcc_nss_port3_rx_clk",
3745 .parent_names
= (const char *[]){
3746 "nss_port3_rx_div_clk_src"
3749 .flags
= CLK_SET_RATE_PARENT
,
3750 .ops
= &clk_branch2_ops
,
3755 static struct clk_branch gcc_nss_port3_tx_clk
= {
3756 .halt_reg
= 0x68254,
3758 .enable_reg
= 0x68254,
3759 .enable_mask
= BIT(0),
3760 .hw
.init
= &(struct clk_init_data
){
3761 .name
= "gcc_nss_port3_tx_clk",
3762 .parent_names
= (const char *[]){
3763 "nss_port3_tx_div_clk_src"
3766 .flags
= CLK_SET_RATE_PARENT
,
3767 .ops
= &clk_branch2_ops
,
3772 static struct clk_branch gcc_nss_port4_rx_clk
= {
3773 .halt_reg
= 0x68258,
3775 .enable_reg
= 0x68258,
3776 .enable_mask
= BIT(0),
3777 .hw
.init
= &(struct clk_init_data
){
3778 .name
= "gcc_nss_port4_rx_clk",
3779 .parent_names
= (const char *[]){
3780 "nss_port4_rx_div_clk_src"
3783 .flags
= CLK_SET_RATE_PARENT
,
3784 .ops
= &clk_branch2_ops
,
3789 static struct clk_branch gcc_nss_port4_tx_clk
= {
3790 .halt_reg
= 0x6825c,
3792 .enable_reg
= 0x6825c,
3793 .enable_mask
= BIT(0),
3794 .hw
.init
= &(struct clk_init_data
){
3795 .name
= "gcc_nss_port4_tx_clk",
3796 .parent_names
= (const char *[]){
3797 "nss_port4_tx_div_clk_src"
3800 .flags
= CLK_SET_RATE_PARENT
,
3801 .ops
= &clk_branch2_ops
,
3806 static struct clk_branch gcc_nss_port5_rx_clk
= {
3807 .halt_reg
= 0x68260,
3809 .enable_reg
= 0x68260,
3810 .enable_mask
= BIT(0),
3811 .hw
.init
= &(struct clk_init_data
){
3812 .name
= "gcc_nss_port5_rx_clk",
3813 .parent_names
= (const char *[]){
3814 "nss_port5_rx_div_clk_src"
3817 .flags
= CLK_SET_RATE_PARENT
,
3818 .ops
= &clk_branch2_ops
,
3823 static struct clk_branch gcc_nss_port5_tx_clk
= {
3824 .halt_reg
= 0x68264,
3826 .enable_reg
= 0x68264,
3827 .enable_mask
= BIT(0),
3828 .hw
.init
= &(struct clk_init_data
){
3829 .name
= "gcc_nss_port5_tx_clk",
3830 .parent_names
= (const char *[]){
3831 "nss_port5_tx_div_clk_src"
3834 .flags
= CLK_SET_RATE_PARENT
,
3835 .ops
= &clk_branch2_ops
,
3840 static struct clk_branch gcc_nss_port6_rx_clk
= {
3841 .halt_reg
= 0x68268,
3843 .enable_reg
= 0x68268,
3844 .enable_mask
= BIT(0),
3845 .hw
.init
= &(struct clk_init_data
){
3846 .name
= "gcc_nss_port6_rx_clk",
3847 .parent_names
= (const char *[]){
3848 "nss_port6_rx_div_clk_src"
3851 .flags
= CLK_SET_RATE_PARENT
,
3852 .ops
= &clk_branch2_ops
,
3857 static struct clk_branch gcc_nss_port6_tx_clk
= {
3858 .halt_reg
= 0x6826c,
3860 .enable_reg
= 0x6826c,
3861 .enable_mask
= BIT(0),
3862 .hw
.init
= &(struct clk_init_data
){
3863 .name
= "gcc_nss_port6_tx_clk",
3864 .parent_names
= (const char *[]){
3865 "nss_port6_tx_div_clk_src"
3868 .flags
= CLK_SET_RATE_PARENT
,
3869 .ops
= &clk_branch2_ops
,
3874 static struct clk_branch gcc_port1_mac_clk
= {
3875 .halt_reg
= 0x68320,
3877 .enable_reg
= 0x68320,
3878 .enable_mask
= BIT(0),
3879 .hw
.init
= &(struct clk_init_data
){
3880 .name
= "gcc_port1_mac_clk",
3881 .parent_names
= (const char *[]){
3885 .flags
= CLK_SET_RATE_PARENT
,
3886 .ops
= &clk_branch2_ops
,
3891 static struct clk_branch gcc_port2_mac_clk
= {
3892 .halt_reg
= 0x68324,
3894 .enable_reg
= 0x68324,
3895 .enable_mask
= BIT(0),
3896 .hw
.init
= &(struct clk_init_data
){
3897 .name
= "gcc_port2_mac_clk",
3898 .parent_names
= (const char *[]){
3902 .flags
= CLK_SET_RATE_PARENT
,
3903 .ops
= &clk_branch2_ops
,
3908 static struct clk_branch gcc_port3_mac_clk
= {
3909 .halt_reg
= 0x68328,
3911 .enable_reg
= 0x68328,
3912 .enable_mask
= BIT(0),
3913 .hw
.init
= &(struct clk_init_data
){
3914 .name
= "gcc_port3_mac_clk",
3915 .parent_names
= (const char *[]){
3919 .flags
= CLK_SET_RATE_PARENT
,
3920 .ops
= &clk_branch2_ops
,
3925 static struct clk_branch gcc_port4_mac_clk
= {
3926 .halt_reg
= 0x6832c,
3928 .enable_reg
= 0x6832c,
3929 .enable_mask
= BIT(0),
3930 .hw
.init
= &(struct clk_init_data
){
3931 .name
= "gcc_port4_mac_clk",
3932 .parent_names
= (const char *[]){
3936 .flags
= CLK_SET_RATE_PARENT
,
3937 .ops
= &clk_branch2_ops
,
3942 static struct clk_branch gcc_port5_mac_clk
= {
3943 .halt_reg
= 0x68330,
3945 .enable_reg
= 0x68330,
3946 .enable_mask
= BIT(0),
3947 .hw
.init
= &(struct clk_init_data
){
3948 .name
= "gcc_port5_mac_clk",
3949 .parent_names
= (const char *[]){
3953 .flags
= CLK_SET_RATE_PARENT
,
3954 .ops
= &clk_branch2_ops
,
3959 static struct clk_branch gcc_port6_mac_clk
= {
3960 .halt_reg
= 0x68334,
3962 .enable_reg
= 0x68334,
3963 .enable_mask
= BIT(0),
3964 .hw
.init
= &(struct clk_init_data
){
3965 .name
= "gcc_port6_mac_clk",
3966 .parent_names
= (const char *[]){
3970 .flags
= CLK_SET_RATE_PARENT
,
3971 .ops
= &clk_branch2_ops
,
3976 static struct clk_branch gcc_uniphy0_port1_rx_clk
= {
3977 .halt_reg
= 0x56010,
3979 .enable_reg
= 0x56010,
3980 .enable_mask
= BIT(0),
3981 .hw
.init
= &(struct clk_init_data
){
3982 .name
= "gcc_uniphy0_port1_rx_clk",
3983 .parent_names
= (const char *[]){
3984 "nss_port1_rx_div_clk_src"
3987 .flags
= CLK_SET_RATE_PARENT
,
3988 .ops
= &clk_branch2_ops
,
3993 static struct clk_branch gcc_uniphy0_port1_tx_clk
= {
3994 .halt_reg
= 0x56014,
3996 .enable_reg
= 0x56014,
3997 .enable_mask
= BIT(0),
3998 .hw
.init
= &(struct clk_init_data
){
3999 .name
= "gcc_uniphy0_port1_tx_clk",
4000 .parent_names
= (const char *[]){
4001 "nss_port1_tx_div_clk_src"
4004 .flags
= CLK_SET_RATE_PARENT
,
4005 .ops
= &clk_branch2_ops
,
4010 static struct clk_branch gcc_uniphy0_port2_rx_clk
= {
4011 .halt_reg
= 0x56018,
4013 .enable_reg
= 0x56018,
4014 .enable_mask
= BIT(0),
4015 .hw
.init
= &(struct clk_init_data
){
4016 .name
= "gcc_uniphy0_port2_rx_clk",
4017 .parent_names
= (const char *[]){
4018 "nss_port2_rx_div_clk_src"
4021 .flags
= CLK_SET_RATE_PARENT
,
4022 .ops
= &clk_branch2_ops
,
4027 static struct clk_branch gcc_uniphy0_port2_tx_clk
= {
4028 .halt_reg
= 0x5601c,
4030 .enable_reg
= 0x5601c,
4031 .enable_mask
= BIT(0),
4032 .hw
.init
= &(struct clk_init_data
){
4033 .name
= "gcc_uniphy0_port2_tx_clk",
4034 .parent_names
= (const char *[]){
4035 "nss_port2_tx_div_clk_src"
4038 .flags
= CLK_SET_RATE_PARENT
,
4039 .ops
= &clk_branch2_ops
,
4044 static struct clk_branch gcc_uniphy0_port3_rx_clk
= {
4045 .halt_reg
= 0x56020,
4047 .enable_reg
= 0x56020,
4048 .enable_mask
= BIT(0),
4049 .hw
.init
= &(struct clk_init_data
){
4050 .name
= "gcc_uniphy0_port3_rx_clk",
4051 .parent_names
= (const char *[]){
4052 "nss_port3_rx_div_clk_src"
4055 .flags
= CLK_SET_RATE_PARENT
,
4056 .ops
= &clk_branch2_ops
,
4061 static struct clk_branch gcc_uniphy0_port3_tx_clk
= {
4062 .halt_reg
= 0x56024,
4064 .enable_reg
= 0x56024,
4065 .enable_mask
= BIT(0),
4066 .hw
.init
= &(struct clk_init_data
){
4067 .name
= "gcc_uniphy0_port3_tx_clk",
4068 .parent_names
= (const char *[]){
4069 "nss_port3_tx_div_clk_src"
4072 .flags
= CLK_SET_RATE_PARENT
,
4073 .ops
= &clk_branch2_ops
,
4078 static struct clk_branch gcc_uniphy0_port4_rx_clk
= {
4079 .halt_reg
= 0x56028,
4081 .enable_reg
= 0x56028,
4082 .enable_mask
= BIT(0),
4083 .hw
.init
= &(struct clk_init_data
){
4084 .name
= "gcc_uniphy0_port4_rx_clk",
4085 .parent_names
= (const char *[]){
4086 "nss_port4_rx_div_clk_src"
4089 .flags
= CLK_SET_RATE_PARENT
,
4090 .ops
= &clk_branch2_ops
,
4095 static struct clk_branch gcc_uniphy0_port4_tx_clk
= {
4096 .halt_reg
= 0x5602c,
4098 .enable_reg
= 0x5602c,
4099 .enable_mask
= BIT(0),
4100 .hw
.init
= &(struct clk_init_data
){
4101 .name
= "gcc_uniphy0_port4_tx_clk",
4102 .parent_names
= (const char *[]){
4103 "nss_port4_tx_div_clk_src"
4106 .flags
= CLK_SET_RATE_PARENT
,
4107 .ops
= &clk_branch2_ops
,
4112 static struct clk_branch gcc_uniphy0_port5_rx_clk
= {
4113 .halt_reg
= 0x56030,
4115 .enable_reg
= 0x56030,
4116 .enable_mask
= BIT(0),
4117 .hw
.init
= &(struct clk_init_data
){
4118 .name
= "gcc_uniphy0_port5_rx_clk",
4119 .parent_names
= (const char *[]){
4120 "nss_port5_rx_div_clk_src"
4123 .flags
= CLK_SET_RATE_PARENT
,
4124 .ops
= &clk_branch2_ops
,
4129 static struct clk_branch gcc_uniphy0_port5_tx_clk
= {
4130 .halt_reg
= 0x56034,
4132 .enable_reg
= 0x56034,
4133 .enable_mask
= BIT(0),
4134 .hw
.init
= &(struct clk_init_data
){
4135 .name
= "gcc_uniphy0_port5_tx_clk",
4136 .parent_names
= (const char *[]){
4137 "nss_port5_tx_div_clk_src"
4140 .flags
= CLK_SET_RATE_PARENT
,
4141 .ops
= &clk_branch2_ops
,
4146 static struct clk_branch gcc_uniphy1_port5_rx_clk
= {
4147 .halt_reg
= 0x56110,
4149 .enable_reg
= 0x56110,
4150 .enable_mask
= BIT(0),
4151 .hw
.init
= &(struct clk_init_data
){
4152 .name
= "gcc_uniphy1_port5_rx_clk",
4153 .parent_names
= (const char *[]){
4154 "nss_port5_rx_div_clk_src"
4157 .flags
= CLK_SET_RATE_PARENT
,
4158 .ops
= &clk_branch2_ops
,
4163 static struct clk_branch gcc_uniphy1_port5_tx_clk
= {
4164 .halt_reg
= 0x56114,
4166 .enable_reg
= 0x56114,
4167 .enable_mask
= BIT(0),
4168 .hw
.init
= &(struct clk_init_data
){
4169 .name
= "gcc_uniphy1_port5_tx_clk",
4170 .parent_names
= (const char *[]){
4171 "nss_port5_tx_div_clk_src"
4174 .flags
= CLK_SET_RATE_PARENT
,
4175 .ops
= &clk_branch2_ops
,
4180 static struct clk_branch gcc_uniphy2_port6_rx_clk
= {
4181 .halt_reg
= 0x56210,
4183 .enable_reg
= 0x56210,
4184 .enable_mask
= BIT(0),
4185 .hw
.init
= &(struct clk_init_data
){
4186 .name
= "gcc_uniphy2_port6_rx_clk",
4187 .parent_names
= (const char *[]){
4188 "nss_port6_rx_div_clk_src"
4191 .flags
= CLK_SET_RATE_PARENT
,
4192 .ops
= &clk_branch2_ops
,
4197 static struct clk_branch gcc_uniphy2_port6_tx_clk
= {
4198 .halt_reg
= 0x56214,
4200 .enable_reg
= 0x56214,
4201 .enable_mask
= BIT(0),
4202 .hw
.init
= &(struct clk_init_data
){
4203 .name
= "gcc_uniphy2_port6_tx_clk",
4204 .parent_names
= (const char *[]){
4205 "nss_port6_tx_div_clk_src"
4208 .flags
= CLK_SET_RATE_PARENT
,
4209 .ops
= &clk_branch2_ops
,
4214 static struct clk_branch gcc_crypto_ahb_clk
= {
4215 .halt_reg
= 0x16024,
4216 .halt_check
= BRANCH_HALT_VOTED
,
4218 .enable_reg
= 0x0b004,
4219 .enable_mask
= BIT(0),
4220 .hw
.init
= &(struct clk_init_data
){
4221 .name
= "gcc_crypto_ahb_clk",
4222 .parent_names
= (const char *[]){
4226 .flags
= CLK_SET_RATE_PARENT
,
4227 .ops
= &clk_branch2_ops
,
4232 static struct clk_branch gcc_crypto_axi_clk
= {
4233 .halt_reg
= 0x16020,
4234 .halt_check
= BRANCH_HALT_VOTED
,
4236 .enable_reg
= 0x0b004,
4237 .enable_mask
= BIT(1),
4238 .hw
.init
= &(struct clk_init_data
){
4239 .name
= "gcc_crypto_axi_clk",
4240 .parent_names
= (const char *[]){
4244 .flags
= CLK_SET_RATE_PARENT
,
4245 .ops
= &clk_branch2_ops
,
4250 static struct clk_branch gcc_crypto_clk
= {
4251 .halt_reg
= 0x1601c,
4252 .halt_check
= BRANCH_HALT_VOTED
,
4254 .enable_reg
= 0x0b004,
4255 .enable_mask
= BIT(2),
4256 .hw
.init
= &(struct clk_init_data
){
4257 .name
= "gcc_crypto_clk",
4258 .parent_names
= (const char *[]){
4262 .flags
= CLK_SET_RATE_PARENT
,
4263 .ops
= &clk_branch2_ops
,
4268 static struct clk_branch gcc_gp1_clk
= {
4269 .halt_reg
= 0x08000,
4271 .enable_reg
= 0x08000,
4272 .enable_mask
= BIT(0),
4273 .hw
.init
= &(struct clk_init_data
){
4274 .name
= "gcc_gp1_clk",
4275 .parent_names
= (const char *[]){
4279 .flags
= CLK_SET_RATE_PARENT
,
4280 .ops
= &clk_branch2_ops
,
4285 static struct clk_branch gcc_gp2_clk
= {
4286 .halt_reg
= 0x09000,
4288 .enable_reg
= 0x09000,
4289 .enable_mask
= BIT(0),
4290 .hw
.init
= &(struct clk_init_data
){
4291 .name
= "gcc_gp2_clk",
4292 .parent_names
= (const char *[]){
4296 .flags
= CLK_SET_RATE_PARENT
,
4297 .ops
= &clk_branch2_ops
,
4302 static struct clk_branch gcc_gp3_clk
= {
4303 .halt_reg
= 0x0a000,
4305 .enable_reg
= 0x0a000,
4306 .enable_mask
= BIT(0),
4307 .hw
.init
= &(struct clk_init_data
){
4308 .name
= "gcc_gp3_clk",
4309 .parent_names
= (const char *[]){
4313 .flags
= CLK_SET_RATE_PARENT
,
4314 .ops
= &clk_branch2_ops
,
4319 static const struct freq_tbl ftbl_pcie_rchng_clk_src
[] = {
4320 F(19200000, P_XO
, 1, 0, 0),
4321 F(100000000, P_GPLL0
, 8, 0, 0),
4325 static struct clk_rcg2 pcie0_rchng_clk_src
= {
4326 .cmd_rcgr
= 0x75070,
4327 .freq_tbl
= ftbl_pcie_rchng_clk_src
,
4329 .parent_map
= gcc_xo_gpll0_map
,
4330 .clkr
.hw
.init
= &(struct clk_init_data
){
4331 .name
= "pcie0_rchng_clk_src",
4332 .parent_hws
= (const struct clk_hw
*[]) {
4335 .ops
= &clk_rcg2_ops
,
4339 static struct clk_branch gcc_pcie0_rchng_clk
= {
4340 .halt_reg
= 0x75070,
4343 .enable_reg
= 0x75070,
4344 .enable_mask
= BIT(1),
4345 .hw
.init
= &(struct clk_init_data
){
4346 .name
= "gcc_pcie0_rchng_clk",
4347 .parent_hws
= (const struct clk_hw
*[]){
4348 &pcie0_rchng_clk_src
.clkr
.hw
,
4351 .flags
= CLK_SET_RATE_PARENT
,
4352 .ops
= &clk_branch2_ops
,
4357 static struct clk_branch gcc_pcie0_axi_s_bridge_clk
= {
4358 .halt_reg
= 0x75048,
4361 .enable_reg
= 0x75048,
4362 .enable_mask
= BIT(0),
4363 .hw
.init
= &(struct clk_init_data
){
4364 .name
= "gcc_pcie0_axi_s_bridge_clk",
4365 .parent_hws
= (const struct clk_hw
*[]){
4366 &pcie0_axi_clk_src
.clkr
.hw
,
4369 .flags
= CLK_SET_RATE_PARENT
,
4370 .ops
= &clk_branch2_ops
,
4375 static struct clk_hw
*gcc_ipq8074_hws
[] = {
4376 &gpll0_out_main_div2
.hw
,
4377 &gpll6_out_main_div2
.hw
,
4379 &system_noc_clk_src
.hw
,
4380 &gcc_xo_div4_clk_src
.hw
,
4381 &nss_noc_clk_src
.hw
,
4382 &nss_ppe_cdiv_clk_src
.hw
,
4385 static struct clk_regmap
*gcc_ipq8074_clks
[] = {
4386 [GPLL0_MAIN
] = &gpll0_main
.clkr
,
4387 [GPLL0
] = &gpll0
.clkr
,
4388 [GPLL2_MAIN
] = &gpll2_main
.clkr
,
4389 [GPLL2
] = &gpll2
.clkr
,
4390 [GPLL4_MAIN
] = &gpll4_main
.clkr
,
4391 [GPLL4
] = &gpll4
.clkr
,
4392 [GPLL6_MAIN
] = &gpll6_main
.clkr
,
4393 [GPLL6
] = &gpll6
.clkr
,
4394 [UBI32_PLL_MAIN
] = &ubi32_pll_main
.clkr
,
4395 [UBI32_PLL
] = &ubi32_pll
.clkr
,
4396 [NSS_CRYPTO_PLL_MAIN
] = &nss_crypto_pll_main
.clkr
,
4397 [NSS_CRYPTO_PLL
] = &nss_crypto_pll
.clkr
,
4398 [PCNOC_BFDCD_CLK_SRC
] = &pcnoc_bfdcd_clk_src
.clkr
,
4399 [GCC_SLEEP_CLK_SRC
] = &gcc_sleep_clk_src
.clkr
,
4400 [BLSP1_QUP1_I2C_APPS_CLK_SRC
] = &blsp1_qup1_i2c_apps_clk_src
.clkr
,
4401 [BLSP1_QUP1_SPI_APPS_CLK_SRC
] = &blsp1_qup1_spi_apps_clk_src
.clkr
,
4402 [BLSP1_QUP2_I2C_APPS_CLK_SRC
] = &blsp1_qup2_i2c_apps_clk_src
.clkr
,
4403 [BLSP1_QUP2_SPI_APPS_CLK_SRC
] = &blsp1_qup2_spi_apps_clk_src
.clkr
,
4404 [BLSP1_QUP3_I2C_APPS_CLK_SRC
] = &blsp1_qup3_i2c_apps_clk_src
.clkr
,
4405 [BLSP1_QUP3_SPI_APPS_CLK_SRC
] = &blsp1_qup3_spi_apps_clk_src
.clkr
,
4406 [BLSP1_QUP4_I2C_APPS_CLK_SRC
] = &blsp1_qup4_i2c_apps_clk_src
.clkr
,
4407 [BLSP1_QUP4_SPI_APPS_CLK_SRC
] = &blsp1_qup4_spi_apps_clk_src
.clkr
,
4408 [BLSP1_QUP5_I2C_APPS_CLK_SRC
] = &blsp1_qup5_i2c_apps_clk_src
.clkr
,
4409 [BLSP1_QUP5_SPI_APPS_CLK_SRC
] = &blsp1_qup5_spi_apps_clk_src
.clkr
,
4410 [BLSP1_QUP6_I2C_APPS_CLK_SRC
] = &blsp1_qup6_i2c_apps_clk_src
.clkr
,
4411 [BLSP1_QUP6_SPI_APPS_CLK_SRC
] = &blsp1_qup6_spi_apps_clk_src
.clkr
,
4412 [BLSP1_UART1_APPS_CLK_SRC
] = &blsp1_uart1_apps_clk_src
.clkr
,
4413 [BLSP1_UART2_APPS_CLK_SRC
] = &blsp1_uart2_apps_clk_src
.clkr
,
4414 [BLSP1_UART3_APPS_CLK_SRC
] = &blsp1_uart3_apps_clk_src
.clkr
,
4415 [BLSP1_UART4_APPS_CLK_SRC
] = &blsp1_uart4_apps_clk_src
.clkr
,
4416 [BLSP1_UART5_APPS_CLK_SRC
] = &blsp1_uart5_apps_clk_src
.clkr
,
4417 [BLSP1_UART6_APPS_CLK_SRC
] = &blsp1_uart6_apps_clk_src
.clkr
,
4418 [PCIE0_AXI_CLK_SRC
] = &pcie0_axi_clk_src
.clkr
,
4419 [PCIE0_AUX_CLK_SRC
] = &pcie0_aux_clk_src
.clkr
,
4420 [PCIE0_PIPE_CLK_SRC
] = &pcie0_pipe_clk_src
.clkr
,
4421 [PCIE1_AXI_CLK_SRC
] = &pcie1_axi_clk_src
.clkr
,
4422 [PCIE1_AUX_CLK_SRC
] = &pcie1_aux_clk_src
.clkr
,
4423 [PCIE1_PIPE_CLK_SRC
] = &pcie1_pipe_clk_src
.clkr
,
4424 [SDCC1_APPS_CLK_SRC
] = &sdcc1_apps_clk_src
.clkr
,
4425 [SDCC1_ICE_CORE_CLK_SRC
] = &sdcc1_ice_core_clk_src
.clkr
,
4426 [SDCC2_APPS_CLK_SRC
] = &sdcc2_apps_clk_src
.clkr
,
4427 [USB0_MASTER_CLK_SRC
] = &usb0_master_clk_src
.clkr
,
4428 [USB0_AUX_CLK_SRC
] = &usb0_aux_clk_src
.clkr
,
4429 [USB0_MOCK_UTMI_CLK_SRC
] = &usb0_mock_utmi_clk_src
.clkr
,
4430 [USB0_PIPE_CLK_SRC
] = &usb0_pipe_clk_src
.clkr
,
4431 [USB1_MASTER_CLK_SRC
] = &usb1_master_clk_src
.clkr
,
4432 [USB1_AUX_CLK_SRC
] = &usb1_aux_clk_src
.clkr
,
4433 [USB1_MOCK_UTMI_CLK_SRC
] = &usb1_mock_utmi_clk_src
.clkr
,
4434 [USB1_PIPE_CLK_SRC
] = &usb1_pipe_clk_src
.clkr
,
4435 [GCC_XO_CLK_SRC
] = &gcc_xo_clk_src
.clkr
,
4436 [SYSTEM_NOC_BFDCD_CLK_SRC
] = &system_noc_bfdcd_clk_src
.clkr
,
4437 [NSS_CE_CLK_SRC
] = &nss_ce_clk_src
.clkr
,
4438 [NSS_NOC_BFDCD_CLK_SRC
] = &nss_noc_bfdcd_clk_src
.clkr
,
4439 [NSS_CRYPTO_CLK_SRC
] = &nss_crypto_clk_src
.clkr
,
4440 [NSS_UBI0_CLK_SRC
] = &nss_ubi0_clk_src
.clkr
,
4441 [NSS_UBI0_DIV_CLK_SRC
] = &nss_ubi0_div_clk_src
.clkr
,
4442 [NSS_UBI1_CLK_SRC
] = &nss_ubi1_clk_src
.clkr
,
4443 [NSS_UBI1_DIV_CLK_SRC
] = &nss_ubi1_div_clk_src
.clkr
,
4444 [UBI_MPT_CLK_SRC
] = &ubi_mpt_clk_src
.clkr
,
4445 [NSS_IMEM_CLK_SRC
] = &nss_imem_clk_src
.clkr
,
4446 [NSS_PPE_CLK_SRC
] = &nss_ppe_clk_src
.clkr
,
4447 [NSS_PORT1_RX_CLK_SRC
] = &nss_port1_rx_clk_src
.clkr
,
4448 [NSS_PORT1_RX_DIV_CLK_SRC
] = &nss_port1_rx_div_clk_src
.clkr
,
4449 [NSS_PORT1_TX_CLK_SRC
] = &nss_port1_tx_clk_src
.clkr
,
4450 [NSS_PORT1_TX_DIV_CLK_SRC
] = &nss_port1_tx_div_clk_src
.clkr
,
4451 [NSS_PORT2_RX_CLK_SRC
] = &nss_port2_rx_clk_src
.clkr
,
4452 [NSS_PORT2_RX_DIV_CLK_SRC
] = &nss_port2_rx_div_clk_src
.clkr
,
4453 [NSS_PORT2_TX_CLK_SRC
] = &nss_port2_tx_clk_src
.clkr
,
4454 [NSS_PORT2_TX_DIV_CLK_SRC
] = &nss_port2_tx_div_clk_src
.clkr
,
4455 [NSS_PORT3_RX_CLK_SRC
] = &nss_port3_rx_clk_src
.clkr
,
4456 [NSS_PORT3_RX_DIV_CLK_SRC
] = &nss_port3_rx_div_clk_src
.clkr
,
4457 [NSS_PORT3_TX_CLK_SRC
] = &nss_port3_tx_clk_src
.clkr
,
4458 [NSS_PORT3_TX_DIV_CLK_SRC
] = &nss_port3_tx_div_clk_src
.clkr
,
4459 [NSS_PORT4_RX_CLK_SRC
] = &nss_port4_rx_clk_src
.clkr
,
4460 [NSS_PORT4_RX_DIV_CLK_SRC
] = &nss_port4_rx_div_clk_src
.clkr
,
4461 [NSS_PORT4_TX_CLK_SRC
] = &nss_port4_tx_clk_src
.clkr
,
4462 [NSS_PORT4_TX_DIV_CLK_SRC
] = &nss_port4_tx_div_clk_src
.clkr
,
4463 [NSS_PORT5_RX_CLK_SRC
] = &nss_port5_rx_clk_src
.clkr
,
4464 [NSS_PORT5_RX_DIV_CLK_SRC
] = &nss_port5_rx_div_clk_src
.clkr
,
4465 [NSS_PORT5_TX_CLK_SRC
] = &nss_port5_tx_clk_src
.clkr
,
4466 [NSS_PORT5_TX_DIV_CLK_SRC
] = &nss_port5_tx_div_clk_src
.clkr
,
4467 [NSS_PORT6_RX_CLK_SRC
] = &nss_port6_rx_clk_src
.clkr
,
4468 [NSS_PORT6_RX_DIV_CLK_SRC
] = &nss_port6_rx_div_clk_src
.clkr
,
4469 [NSS_PORT6_TX_CLK_SRC
] = &nss_port6_tx_clk_src
.clkr
,
4470 [NSS_PORT6_TX_DIV_CLK_SRC
] = &nss_port6_tx_div_clk_src
.clkr
,
4471 [CRYPTO_CLK_SRC
] = &crypto_clk_src
.clkr
,
4472 [GP1_CLK_SRC
] = &gp1_clk_src
.clkr
,
4473 [GP2_CLK_SRC
] = &gp2_clk_src
.clkr
,
4474 [GP3_CLK_SRC
] = &gp3_clk_src
.clkr
,
4475 [GCC_BLSP1_AHB_CLK
] = &gcc_blsp1_ahb_clk
.clkr
,
4476 [GCC_BLSP1_QUP1_I2C_APPS_CLK
] = &gcc_blsp1_qup1_i2c_apps_clk
.clkr
,
4477 [GCC_BLSP1_QUP1_SPI_APPS_CLK
] = &gcc_blsp1_qup1_spi_apps_clk
.clkr
,
4478 [GCC_BLSP1_QUP2_I2C_APPS_CLK
] = &gcc_blsp1_qup2_i2c_apps_clk
.clkr
,
4479 [GCC_BLSP1_QUP2_SPI_APPS_CLK
] = &gcc_blsp1_qup2_spi_apps_clk
.clkr
,
4480 [GCC_BLSP1_QUP3_I2C_APPS_CLK
] = &gcc_blsp1_qup3_i2c_apps_clk
.clkr
,
4481 [GCC_BLSP1_QUP3_SPI_APPS_CLK
] = &gcc_blsp1_qup3_spi_apps_clk
.clkr
,
4482 [GCC_BLSP1_QUP4_I2C_APPS_CLK
] = &gcc_blsp1_qup4_i2c_apps_clk
.clkr
,
4483 [GCC_BLSP1_QUP4_SPI_APPS_CLK
] = &gcc_blsp1_qup4_spi_apps_clk
.clkr
,
4484 [GCC_BLSP1_QUP5_I2C_APPS_CLK
] = &gcc_blsp1_qup5_i2c_apps_clk
.clkr
,
4485 [GCC_BLSP1_QUP5_SPI_APPS_CLK
] = &gcc_blsp1_qup5_spi_apps_clk
.clkr
,
4486 [GCC_BLSP1_QUP6_I2C_APPS_CLK
] = &gcc_blsp1_qup6_i2c_apps_clk
.clkr
,
4487 [GCC_BLSP1_QUP6_SPI_APPS_CLK
] = &gcc_blsp1_qup6_spi_apps_clk
.clkr
,
4488 [GCC_BLSP1_UART1_APPS_CLK
] = &gcc_blsp1_uart1_apps_clk
.clkr
,
4489 [GCC_BLSP1_UART2_APPS_CLK
] = &gcc_blsp1_uart2_apps_clk
.clkr
,
4490 [GCC_BLSP1_UART3_APPS_CLK
] = &gcc_blsp1_uart3_apps_clk
.clkr
,
4491 [GCC_BLSP1_UART4_APPS_CLK
] = &gcc_blsp1_uart4_apps_clk
.clkr
,
4492 [GCC_BLSP1_UART5_APPS_CLK
] = &gcc_blsp1_uart5_apps_clk
.clkr
,
4493 [GCC_BLSP1_UART6_APPS_CLK
] = &gcc_blsp1_uart6_apps_clk
.clkr
,
4494 [GCC_PRNG_AHB_CLK
] = &gcc_prng_ahb_clk
.clkr
,
4495 [GCC_QPIC_AHB_CLK
] = &gcc_qpic_ahb_clk
.clkr
,
4496 [GCC_QPIC_CLK
] = &gcc_qpic_clk
.clkr
,
4497 [GCC_PCIE0_AHB_CLK
] = &gcc_pcie0_ahb_clk
.clkr
,
4498 [GCC_PCIE0_AUX_CLK
] = &gcc_pcie0_aux_clk
.clkr
,
4499 [GCC_PCIE0_AXI_M_CLK
] = &gcc_pcie0_axi_m_clk
.clkr
,
4500 [GCC_PCIE0_AXI_S_CLK
] = &gcc_pcie0_axi_s_clk
.clkr
,
4501 [GCC_PCIE0_PIPE_CLK
] = &gcc_pcie0_pipe_clk
.clkr
,
4502 [GCC_SYS_NOC_PCIE0_AXI_CLK
] = &gcc_sys_noc_pcie0_axi_clk
.clkr
,
4503 [GCC_PCIE1_AHB_CLK
] = &gcc_pcie1_ahb_clk
.clkr
,
4504 [GCC_PCIE1_AUX_CLK
] = &gcc_pcie1_aux_clk
.clkr
,
4505 [GCC_PCIE1_AXI_M_CLK
] = &gcc_pcie1_axi_m_clk
.clkr
,
4506 [GCC_PCIE1_AXI_S_CLK
] = &gcc_pcie1_axi_s_clk
.clkr
,
4507 [GCC_PCIE1_PIPE_CLK
] = &gcc_pcie1_pipe_clk
.clkr
,
4508 [GCC_SYS_NOC_PCIE1_AXI_CLK
] = &gcc_sys_noc_pcie1_axi_clk
.clkr
,
4509 [GCC_USB0_AUX_CLK
] = &gcc_usb0_aux_clk
.clkr
,
4510 [GCC_SYS_NOC_USB0_AXI_CLK
] = &gcc_sys_noc_usb0_axi_clk
.clkr
,
4511 [GCC_USB0_MASTER_CLK
] = &gcc_usb0_master_clk
.clkr
,
4512 [GCC_USB0_MOCK_UTMI_CLK
] = &gcc_usb0_mock_utmi_clk
.clkr
,
4513 [GCC_USB0_PHY_CFG_AHB_CLK
] = &gcc_usb0_phy_cfg_ahb_clk
.clkr
,
4514 [GCC_USB0_PIPE_CLK
] = &gcc_usb0_pipe_clk
.clkr
,
4515 [GCC_USB0_SLEEP_CLK
] = &gcc_usb0_sleep_clk
.clkr
,
4516 [GCC_USB1_AUX_CLK
] = &gcc_usb1_aux_clk
.clkr
,
4517 [GCC_SYS_NOC_USB1_AXI_CLK
] = &gcc_sys_noc_usb1_axi_clk
.clkr
,
4518 [GCC_USB1_MASTER_CLK
] = &gcc_usb1_master_clk
.clkr
,
4519 [GCC_USB1_MOCK_UTMI_CLK
] = &gcc_usb1_mock_utmi_clk
.clkr
,
4520 [GCC_USB1_PHY_CFG_AHB_CLK
] = &gcc_usb1_phy_cfg_ahb_clk
.clkr
,
4521 [GCC_USB1_PIPE_CLK
] = &gcc_usb1_pipe_clk
.clkr
,
4522 [GCC_USB1_SLEEP_CLK
] = &gcc_usb1_sleep_clk
.clkr
,
4523 [GCC_SDCC1_AHB_CLK
] = &gcc_sdcc1_ahb_clk
.clkr
,
4524 [GCC_SDCC1_APPS_CLK
] = &gcc_sdcc1_apps_clk
.clkr
,
4525 [GCC_SDCC1_ICE_CORE_CLK
] = &gcc_sdcc1_ice_core_clk
.clkr
,
4526 [GCC_SDCC2_AHB_CLK
] = &gcc_sdcc2_ahb_clk
.clkr
,
4527 [GCC_SDCC2_APPS_CLK
] = &gcc_sdcc2_apps_clk
.clkr
,
4528 [GCC_MEM_NOC_NSS_AXI_CLK
] = &gcc_mem_noc_nss_axi_clk
.clkr
,
4529 [GCC_NSS_CE_APB_CLK
] = &gcc_nss_ce_apb_clk
.clkr
,
4530 [GCC_NSS_CE_AXI_CLK
] = &gcc_nss_ce_axi_clk
.clkr
,
4531 [GCC_NSS_CFG_CLK
] = &gcc_nss_cfg_clk
.clkr
,
4532 [GCC_NSS_CRYPTO_CLK
] = &gcc_nss_crypto_clk
.clkr
,
4533 [GCC_NSS_CSR_CLK
] = &gcc_nss_csr_clk
.clkr
,
4534 [GCC_NSS_EDMA_CFG_CLK
] = &gcc_nss_edma_cfg_clk
.clkr
,
4535 [GCC_NSS_EDMA_CLK
] = &gcc_nss_edma_clk
.clkr
,
4536 [GCC_NSS_IMEM_CLK
] = &gcc_nss_imem_clk
.clkr
,
4537 [GCC_NSS_NOC_CLK
] = &gcc_nss_noc_clk
.clkr
,
4538 [GCC_NSS_PPE_BTQ_CLK
] = &gcc_nss_ppe_btq_clk
.clkr
,
4539 [GCC_NSS_PPE_CFG_CLK
] = &gcc_nss_ppe_cfg_clk
.clkr
,
4540 [GCC_NSS_PPE_CLK
] = &gcc_nss_ppe_clk
.clkr
,
4541 [GCC_NSS_PPE_IPE_CLK
] = &gcc_nss_ppe_ipe_clk
.clkr
,
4542 [GCC_NSS_PTP_REF_CLK
] = &gcc_nss_ptp_ref_clk
.clkr
,
4543 [GCC_NSSNOC_CE_APB_CLK
] = &gcc_nssnoc_ce_apb_clk
.clkr
,
4544 [GCC_NSSNOC_CE_AXI_CLK
] = &gcc_nssnoc_ce_axi_clk
.clkr
,
4545 [GCC_NSSNOC_CRYPTO_CLK
] = &gcc_nssnoc_crypto_clk
.clkr
,
4546 [GCC_NSSNOC_PPE_CFG_CLK
] = &gcc_nssnoc_ppe_cfg_clk
.clkr
,
4547 [GCC_NSSNOC_PPE_CLK
] = &gcc_nssnoc_ppe_clk
.clkr
,
4548 [GCC_NSSNOC_QOSGEN_REF_CLK
] = &gcc_nssnoc_qosgen_ref_clk
.clkr
,
4549 [GCC_NSSNOC_SNOC_CLK
] = &gcc_nssnoc_snoc_clk
.clkr
,
4550 [GCC_NSSNOC_TIMEOUT_REF_CLK
] = &gcc_nssnoc_timeout_ref_clk
.clkr
,
4551 [GCC_NSSNOC_UBI0_AHB_CLK
] = &gcc_nssnoc_ubi0_ahb_clk
.clkr
,
4552 [GCC_NSSNOC_UBI1_AHB_CLK
] = &gcc_nssnoc_ubi1_ahb_clk
.clkr
,
4553 [GCC_UBI0_AHB_CLK
] = &gcc_ubi0_ahb_clk
.clkr
,
4554 [GCC_UBI0_AXI_CLK
] = &gcc_ubi0_axi_clk
.clkr
,
4555 [GCC_UBI0_NC_AXI_CLK
] = &gcc_ubi0_nc_axi_clk
.clkr
,
4556 [GCC_UBI0_CORE_CLK
] = &gcc_ubi0_core_clk
.clkr
,
4557 [GCC_UBI0_MPT_CLK
] = &gcc_ubi0_mpt_clk
.clkr
,
4558 [GCC_UBI1_AHB_CLK
] = &gcc_ubi1_ahb_clk
.clkr
,
4559 [GCC_UBI1_AXI_CLK
] = &gcc_ubi1_axi_clk
.clkr
,
4560 [GCC_UBI1_NC_AXI_CLK
] = &gcc_ubi1_nc_axi_clk
.clkr
,
4561 [GCC_UBI1_CORE_CLK
] = &gcc_ubi1_core_clk
.clkr
,
4562 [GCC_UBI1_MPT_CLK
] = &gcc_ubi1_mpt_clk
.clkr
,
4563 [GCC_CMN_12GPLL_AHB_CLK
] = &gcc_cmn_12gpll_ahb_clk
.clkr
,
4564 [GCC_CMN_12GPLL_SYS_CLK
] = &gcc_cmn_12gpll_sys_clk
.clkr
,
4565 [GCC_MDIO_AHB_CLK
] = &gcc_mdio_ahb_clk
.clkr
,
4566 [GCC_UNIPHY0_AHB_CLK
] = &gcc_uniphy0_ahb_clk
.clkr
,
4567 [GCC_UNIPHY0_SYS_CLK
] = &gcc_uniphy0_sys_clk
.clkr
,
4568 [GCC_UNIPHY1_AHB_CLK
] = &gcc_uniphy1_ahb_clk
.clkr
,
4569 [GCC_UNIPHY1_SYS_CLK
] = &gcc_uniphy1_sys_clk
.clkr
,
4570 [GCC_UNIPHY2_AHB_CLK
] = &gcc_uniphy2_ahb_clk
.clkr
,
4571 [GCC_UNIPHY2_SYS_CLK
] = &gcc_uniphy2_sys_clk
.clkr
,
4572 [GCC_NSS_PORT1_RX_CLK
] = &gcc_nss_port1_rx_clk
.clkr
,
4573 [GCC_NSS_PORT1_TX_CLK
] = &gcc_nss_port1_tx_clk
.clkr
,
4574 [GCC_NSS_PORT2_RX_CLK
] = &gcc_nss_port2_rx_clk
.clkr
,
4575 [GCC_NSS_PORT2_TX_CLK
] = &gcc_nss_port2_tx_clk
.clkr
,
4576 [GCC_NSS_PORT3_RX_CLK
] = &gcc_nss_port3_rx_clk
.clkr
,
4577 [GCC_NSS_PORT3_TX_CLK
] = &gcc_nss_port3_tx_clk
.clkr
,
4578 [GCC_NSS_PORT4_RX_CLK
] = &gcc_nss_port4_rx_clk
.clkr
,
4579 [GCC_NSS_PORT4_TX_CLK
] = &gcc_nss_port4_tx_clk
.clkr
,
4580 [GCC_NSS_PORT5_RX_CLK
] = &gcc_nss_port5_rx_clk
.clkr
,
4581 [GCC_NSS_PORT5_TX_CLK
] = &gcc_nss_port5_tx_clk
.clkr
,
4582 [GCC_NSS_PORT6_RX_CLK
] = &gcc_nss_port6_rx_clk
.clkr
,
4583 [GCC_NSS_PORT6_TX_CLK
] = &gcc_nss_port6_tx_clk
.clkr
,
4584 [GCC_PORT1_MAC_CLK
] = &gcc_port1_mac_clk
.clkr
,
4585 [GCC_PORT2_MAC_CLK
] = &gcc_port2_mac_clk
.clkr
,
4586 [GCC_PORT3_MAC_CLK
] = &gcc_port3_mac_clk
.clkr
,
4587 [GCC_PORT4_MAC_CLK
] = &gcc_port4_mac_clk
.clkr
,
4588 [GCC_PORT5_MAC_CLK
] = &gcc_port5_mac_clk
.clkr
,
4589 [GCC_PORT6_MAC_CLK
] = &gcc_port6_mac_clk
.clkr
,
4590 [GCC_UNIPHY0_PORT1_RX_CLK
] = &gcc_uniphy0_port1_rx_clk
.clkr
,
4591 [GCC_UNIPHY0_PORT1_TX_CLK
] = &gcc_uniphy0_port1_tx_clk
.clkr
,
4592 [GCC_UNIPHY0_PORT2_RX_CLK
] = &gcc_uniphy0_port2_rx_clk
.clkr
,
4593 [GCC_UNIPHY0_PORT2_TX_CLK
] = &gcc_uniphy0_port2_tx_clk
.clkr
,
4594 [GCC_UNIPHY0_PORT3_RX_CLK
] = &gcc_uniphy0_port3_rx_clk
.clkr
,
4595 [GCC_UNIPHY0_PORT3_TX_CLK
] = &gcc_uniphy0_port3_tx_clk
.clkr
,
4596 [GCC_UNIPHY0_PORT4_RX_CLK
] = &gcc_uniphy0_port4_rx_clk
.clkr
,
4597 [GCC_UNIPHY0_PORT4_TX_CLK
] = &gcc_uniphy0_port4_tx_clk
.clkr
,
4598 [GCC_UNIPHY0_PORT5_RX_CLK
] = &gcc_uniphy0_port5_rx_clk
.clkr
,
4599 [GCC_UNIPHY0_PORT5_TX_CLK
] = &gcc_uniphy0_port5_tx_clk
.clkr
,
4600 [GCC_UNIPHY1_PORT5_RX_CLK
] = &gcc_uniphy1_port5_rx_clk
.clkr
,
4601 [GCC_UNIPHY1_PORT5_TX_CLK
] = &gcc_uniphy1_port5_tx_clk
.clkr
,
4602 [GCC_UNIPHY2_PORT6_RX_CLK
] = &gcc_uniphy2_port6_rx_clk
.clkr
,
4603 [GCC_UNIPHY2_PORT6_TX_CLK
] = &gcc_uniphy2_port6_tx_clk
.clkr
,
4604 [GCC_CRYPTO_AHB_CLK
] = &gcc_crypto_ahb_clk
.clkr
,
4605 [GCC_CRYPTO_AXI_CLK
] = &gcc_crypto_axi_clk
.clkr
,
4606 [GCC_CRYPTO_CLK
] = &gcc_crypto_clk
.clkr
,
4607 [GCC_GP1_CLK
] = &gcc_gp1_clk
.clkr
,
4608 [GCC_GP2_CLK
] = &gcc_gp2_clk
.clkr
,
4609 [GCC_GP3_CLK
] = &gcc_gp3_clk
.clkr
,
4610 [GCC_PCIE0_RCHNG_CLK_SRC
] = &pcie0_rchng_clk_src
.clkr
,
4611 [GCC_PCIE0_RCHNG_CLK
] = &gcc_pcie0_rchng_clk
.clkr
,
4612 [GCC_PCIE0_AXI_S_BRIDGE_CLK
] = &gcc_pcie0_axi_s_bridge_clk
.clkr
,
4615 static const struct qcom_reset_map gcc_ipq8074_resets
[] = {
4616 [GCC_BLSP1_BCR
] = { 0x01000, 0 },
4617 [GCC_BLSP1_QUP1_BCR
] = { 0x02000, 0 },
4618 [GCC_BLSP1_UART1_BCR
] = { 0x02038, 0 },
4619 [GCC_BLSP1_QUP2_BCR
] = { 0x03008, 0 },
4620 [GCC_BLSP1_UART2_BCR
] = { 0x03028, 0 },
4621 [GCC_BLSP1_QUP3_BCR
] = { 0x04008, 0 },
4622 [GCC_BLSP1_UART3_BCR
] = { 0x04028, 0 },
4623 [GCC_BLSP1_QUP4_BCR
] = { 0x05008, 0 },
4624 [GCC_BLSP1_UART4_BCR
] = { 0x05028, 0 },
4625 [GCC_BLSP1_QUP5_BCR
] = { 0x06008, 0 },
4626 [GCC_BLSP1_UART5_BCR
] = { 0x06028, 0 },
4627 [GCC_BLSP1_QUP6_BCR
] = { 0x07008, 0 },
4628 [GCC_BLSP1_UART6_BCR
] = { 0x07028, 0 },
4629 [GCC_IMEM_BCR
] = { 0x0e000, 0 },
4630 [GCC_SMMU_BCR
] = { 0x12000, 0 },
4631 [GCC_APSS_TCU_BCR
] = { 0x12050, 0 },
4632 [GCC_SMMU_XPU_BCR
] = { 0x12054, 0 },
4633 [GCC_PCNOC_TBU_BCR
] = { 0x12058, 0 },
4634 [GCC_SMMU_CFG_BCR
] = { 0x1208c, 0 },
4635 [GCC_PRNG_BCR
] = { 0x13000, 0 },
4636 [GCC_BOOT_ROM_BCR
] = { 0x13008, 0 },
4637 [GCC_CRYPTO_BCR
] = { 0x16000, 0 },
4638 [GCC_WCSS_BCR
] = { 0x18000, 0 },
4639 [GCC_WCSS_Q6_BCR
] = { 0x18100, 0 },
4640 [GCC_NSS_BCR
] = { 0x19000, 0 },
4641 [GCC_SEC_CTRL_BCR
] = { 0x1a000, 0 },
4642 [GCC_ADSS_BCR
] = { 0x1c000, 0 },
4643 [GCC_DDRSS_BCR
] = { 0x1e000, 0 },
4644 [GCC_SYSTEM_NOC_BCR
] = { 0x26000, 0 },
4645 [GCC_PCNOC_BCR
] = { 0x27018, 0 },
4646 [GCC_TCSR_BCR
] = { 0x28000, 0 },
4647 [GCC_QDSS_BCR
] = { 0x29000, 0 },
4648 [GCC_DCD_BCR
] = { 0x2a000, 0 },
4649 [GCC_MSG_RAM_BCR
] = { 0x2b000, 0 },
4650 [GCC_MPM_BCR
] = { 0x2c000, 0 },
4651 [GCC_SPMI_BCR
] = { 0x2e000, 0 },
4652 [GCC_SPDM_BCR
] = { 0x2f000, 0 },
4653 [GCC_RBCPR_BCR
] = { 0x33000, 0 },
4654 [GCC_RBCPR_MX_BCR
] = { 0x33014, 0 },
4655 [GCC_TLMM_BCR
] = { 0x34000, 0 },
4656 [GCC_RBCPR_WCSS_BCR
] = { 0x3a000, 0 },
4657 [GCC_USB0_PHY_BCR
] = { 0x3e034, 0 },
4658 [GCC_USB3PHY_0_PHY_BCR
] = { 0x3e03c, 0 },
4659 [GCC_USB0_BCR
] = { 0x3e070, 0 },
4660 [GCC_USB1_PHY_BCR
] = { 0x3f034, 0 },
4661 [GCC_USB3PHY_1_PHY_BCR
] = { 0x3f03c, 0 },
4662 [GCC_USB1_BCR
] = { 0x3f070, 0 },
4663 [GCC_QUSB2_0_PHY_BCR
] = { 0x4103c, 0 },
4664 [GCC_QUSB2_1_PHY_BCR
] = { 0x41040, 0 },
4665 [GCC_SDCC1_BCR
] = { 0x42000, 0 },
4666 [GCC_SDCC2_BCR
] = { 0x43000, 0 },
4667 [GCC_SNOC_BUS_TIMEOUT0_BCR
] = { 0x47000, 0 },
4668 [GCC_SNOC_BUS_TIMEOUT2_BCR
] = { 0x47008, 0 },
4669 [GCC_SNOC_BUS_TIMEOUT3_BCR
] = { 0x47010, 0 },
4670 [GCC_PCNOC_BUS_TIMEOUT0_BCR
] = { 0x48000, 0 },
4671 [GCC_PCNOC_BUS_TIMEOUT1_BCR
] = { 0x48008, 0 },
4672 [GCC_PCNOC_BUS_TIMEOUT2_BCR
] = { 0x48010, 0 },
4673 [GCC_PCNOC_BUS_TIMEOUT3_BCR
] = { 0x48018, 0 },
4674 [GCC_PCNOC_BUS_TIMEOUT4_BCR
] = { 0x48020, 0 },
4675 [GCC_PCNOC_BUS_TIMEOUT5_BCR
] = { 0x48028, 0 },
4676 [GCC_PCNOC_BUS_TIMEOUT6_BCR
] = { 0x48030, 0 },
4677 [GCC_PCNOC_BUS_TIMEOUT7_BCR
] = { 0x48038, 0 },
4678 [GCC_PCNOC_BUS_TIMEOUT8_BCR
] = { 0x48040, 0 },
4679 [GCC_PCNOC_BUS_TIMEOUT9_BCR
] = { 0x48048, 0 },
4680 [GCC_UNIPHY0_BCR
] = { 0x56000, 0 },
4681 [GCC_UNIPHY1_BCR
] = { 0x56100, 0 },
4682 [GCC_UNIPHY2_BCR
] = { 0x56200, 0 },
4683 [GCC_CMN_12GPLL_BCR
] = { 0x56300, 0 },
4684 [GCC_QPIC_BCR
] = { 0x57018, 0 },
4685 [GCC_MDIO_BCR
] = { 0x58000, 0 },
4686 [GCC_PCIE1_TBU_BCR
] = { 0x65000, 0 },
4687 [GCC_WCSS_CORE_TBU_BCR
] = { 0x66000, 0 },
4688 [GCC_WCSS_Q6_TBU_BCR
] = { 0x67000, 0 },
4689 [GCC_USB0_TBU_BCR
] = { 0x6a000, 0 },
4690 [GCC_USB1_TBU_BCR
] = { 0x6a004, 0 },
4691 [GCC_PCIE0_TBU_BCR
] = { 0x6b000, 0 },
4692 [GCC_NSS_NOC_TBU_BCR
] = { 0x6e000, 0 },
4693 [GCC_PCIE0_BCR
] = { 0x75004, 0 },
4694 [GCC_PCIE0_PHY_BCR
] = { 0x75038, 0 },
4695 [GCC_PCIE0PHY_PHY_BCR
] = { 0x7503c, 0 },
4696 [GCC_PCIE0_LINK_DOWN_BCR
] = { 0x75044, 0 },
4697 [GCC_PCIE1_BCR
] = { 0x76004, 0 },
4698 [GCC_PCIE1_PHY_BCR
] = { 0x76038, 0 },
4699 [GCC_PCIE1PHY_PHY_BCR
] = { 0x7603c, 0 },
4700 [GCC_PCIE1_LINK_DOWN_BCR
] = { 0x76044, 0 },
4701 [GCC_DCC_BCR
] = { 0x77000, 0 },
4702 [GCC_APC0_VOLTAGE_DROOP_DETECTOR_BCR
] = { 0x78000, 0 },
4703 [GCC_APC1_VOLTAGE_DROOP_DETECTOR_BCR
] = { 0x79000, 0 },
4704 [GCC_SMMU_CATS_BCR
] = { 0x7c000, 0 },
4705 [GCC_UBI0_AXI_ARES
] = { 0x68010, 0 },
4706 [GCC_UBI0_AHB_ARES
] = { 0x68010, 1 },
4707 [GCC_UBI0_NC_AXI_ARES
] = { 0x68010, 2 },
4708 [GCC_UBI0_DBG_ARES
] = { 0x68010, 3 },
4709 [GCC_UBI0_CORE_CLAMP_ENABLE
] = { 0x68010, 4 },
4710 [GCC_UBI0_CLKRST_CLAMP_ENABLE
] = { 0x68010, 5 },
4711 [GCC_UBI1_AXI_ARES
] = { 0x68010, 8 },
4712 [GCC_UBI1_AHB_ARES
] = { 0x68010, 9 },
4713 [GCC_UBI1_NC_AXI_ARES
] = { 0x68010, 10 },
4714 [GCC_UBI1_DBG_ARES
] = { 0x68010, 11 },
4715 [GCC_UBI1_CORE_CLAMP_ENABLE
] = { 0x68010, 12 },
4716 [GCC_UBI1_CLKRST_CLAMP_ENABLE
] = { 0x68010, 13 },
4717 [GCC_NSS_CFG_ARES
] = { 0x68010, 16 },
4718 [GCC_NSS_IMEM_ARES
] = { 0x68010, 17 },
4719 [GCC_NSS_NOC_ARES
] = { 0x68010, 18 },
4720 [GCC_NSS_CRYPTO_ARES
] = { 0x68010, 19 },
4721 [GCC_NSS_CSR_ARES
] = { 0x68010, 20 },
4722 [GCC_NSS_CE_APB_ARES
] = { 0x68010, 21 },
4723 [GCC_NSS_CE_AXI_ARES
] = { 0x68010, 22 },
4724 [GCC_NSSNOC_CE_APB_ARES
] = { 0x68010, 23 },
4725 [GCC_NSSNOC_CE_AXI_ARES
] = { 0x68010, 24 },
4726 [GCC_NSSNOC_UBI0_AHB_ARES
] = { 0x68010, 25 },
4727 [GCC_NSSNOC_UBI1_AHB_ARES
] = { 0x68010, 26 },
4728 [GCC_NSSNOC_SNOC_ARES
] = { 0x68010, 27 },
4729 [GCC_NSSNOC_CRYPTO_ARES
] = { 0x68010, 28 },
4730 [GCC_NSSNOC_ATB_ARES
] = { 0x68010, 29 },
4731 [GCC_NSSNOC_QOSGEN_REF_ARES
] = { 0x68010, 30 },
4732 [GCC_NSSNOC_TIMEOUT_REF_ARES
] = { 0x68010, 31 },
4733 [GCC_PCIE0_PIPE_ARES
] = { 0x75040, 0 },
4734 [GCC_PCIE0_SLEEP_ARES
] = { 0x75040, 1 },
4735 [GCC_PCIE0_CORE_STICKY_ARES
] = { 0x75040, 2 },
4736 [GCC_PCIE0_AXI_MASTER_ARES
] = { 0x75040, 3 },
4737 [GCC_PCIE0_AXI_SLAVE_ARES
] = { 0x75040, 4 },
4738 [GCC_PCIE0_AHB_ARES
] = { 0x75040, 5 },
4739 [GCC_PCIE0_AXI_MASTER_STICKY_ARES
] = { 0x75040, 6 },
4740 [GCC_PCIE0_AXI_SLAVE_STICKY_ARES
] = { 0x75040, 7 },
4741 [GCC_PCIE1_PIPE_ARES
] = { 0x76040, 0 },
4742 [GCC_PCIE1_SLEEP_ARES
] = { 0x76040, 1 },
4743 [GCC_PCIE1_CORE_STICKY_ARES
] = { 0x76040, 2 },
4744 [GCC_PCIE1_AXI_MASTER_ARES
] = { 0x76040, 3 },
4745 [GCC_PCIE1_AXI_SLAVE_ARES
] = { 0x76040, 4 },
4746 [GCC_PCIE1_AHB_ARES
] = { 0x76040, 5 },
4747 [GCC_PCIE1_AXI_MASTER_STICKY_ARES
] = { 0x76040, 6 },
4750 static const struct of_device_id gcc_ipq8074_match_table
[] = {
4751 { .compatible
= "qcom,gcc-ipq8074" },
4754 MODULE_DEVICE_TABLE(of
, gcc_ipq8074_match_table
);
4756 static const struct regmap_config gcc_ipq8074_regmap_config
= {
4760 .max_register
= 0x7fffc,
4764 static const struct qcom_cc_desc gcc_ipq8074_desc
= {
4765 .config
= &gcc_ipq8074_regmap_config
,
4766 .clks
= gcc_ipq8074_clks
,
4767 .num_clks
= ARRAY_SIZE(gcc_ipq8074_clks
),
4768 .resets
= gcc_ipq8074_resets
,
4769 .num_resets
= ARRAY_SIZE(gcc_ipq8074_resets
),
4770 .clk_hws
= gcc_ipq8074_hws
,
4771 .num_clk_hws
= ARRAY_SIZE(gcc_ipq8074_hws
),
4774 static int gcc_ipq8074_probe(struct platform_device
*pdev
)
4776 return qcom_cc_probe(pdev
, &gcc_ipq8074_desc
);
4779 static struct platform_driver gcc_ipq8074_driver
= {
4780 .probe
= gcc_ipq8074_probe
,
4782 .name
= "qcom,gcc-ipq8074",
4783 .of_match_table
= gcc_ipq8074_match_table
,
4787 static int __init
gcc_ipq8074_init(void)
4789 return platform_driver_register(&gcc_ipq8074_driver
);
4791 core_initcall(gcc_ipq8074_init
);
4793 static void __exit
gcc_ipq8074_exit(void)
4795 platform_driver_unregister(&gcc_ipq8074_driver
);
4797 module_exit(gcc_ipq8074_exit
);
4799 MODULE_DESCRIPTION("QCOM GCC IPQ8074 Driver");
4800 MODULE_LICENSE("GPL v2");
4801 MODULE_ALIAS("platform:gcc-ipq8074");