2 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #include <linux/kernel.h>
15 #include <linux/err.h>
16 #include <linux/platform_device.h>
17 #include <linux/module.h>
19 #include <linux/of_device.h>
20 #include <linux/clk-provider.h>
21 #include <linux/regmap.h>
23 #include <dt-bindings/clock/qcom,gcc-ipq8074.h>
26 #include "clk-regmap.h"
29 #include "clk-branch.h"
30 #include "clk-alpha-pll.h"
31 #include "clk-regmap-divider.h"
32 #include "clk-regmap-mux.h"
59 static const char * const gcc_xo_gpll0_gpll0_out_main_div2
[] = {
62 "gpll0_out_main_div2",
65 static const struct parent_map gcc_xo_gpll0_gpll0_out_main_div2_map
[] = {
71 static const char * const gcc_xo_gpll0
[] = {
76 static const struct parent_map gcc_xo_gpll0_map
[] = {
81 static const char * const gcc_xo_gpll0_gpll2_gpll0_out_main_div2
[] = {
85 "gpll0_out_main_div2",
88 static const struct parent_map gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map
[] = {
95 static const char * const gcc_xo_gpll0_sleep_clk
[] = {
101 static const struct parent_map gcc_xo_gpll0_sleep_clk_map
[] = {
107 static const char * const gcc_xo_gpll6_gpll0_gpll0_out_main_div2
[] = {
111 "gpll0_out_main_div2",
114 static const struct parent_map gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map
[] = {
121 static const char * const gcc_xo_gpll0_out_main_div2_gpll0
[] = {
123 "gpll0_out_main_div2",
127 static const struct parent_map gcc_xo_gpll0_out_main_div2_gpll0_map
[] = {
133 static const char * const gcc_usb3phy_0_cc_pipe_clk_xo
[] = {
134 "usb3phy_0_cc_pipe_clk",
138 static const struct parent_map gcc_usb3phy_0_cc_pipe_clk_xo_map
[] = {
139 { P_USB3PHY_0_PIPE
, 0 },
143 static const char * const gcc_usb3phy_1_cc_pipe_clk_xo
[] = {
144 "usb3phy_1_cc_pipe_clk",
148 static const struct parent_map gcc_usb3phy_1_cc_pipe_clk_xo_map
[] = {
149 { P_USB3PHY_1_PIPE
, 0 },
153 static const char * const gcc_pcie20_phy0_pipe_clk_xo
[] = {
154 "pcie20_phy0_pipe_clk",
158 static const struct parent_map gcc_pcie20_phy0_pipe_clk_xo_map
[] = {
159 { P_PCIE20_PHY0_PIPE
, 0 },
163 static const char * const gcc_pcie20_phy1_pipe_clk_xo
[] = {
164 "pcie20_phy1_pipe_clk",
168 static const struct parent_map gcc_pcie20_phy1_pipe_clk_xo_map
[] = {
169 { P_PCIE20_PHY1_PIPE
, 0 },
173 static const char * const gcc_xo_gpll0_gpll6_gpll0_div2
[] = {
177 "gpll0_out_main_div2",
180 static const struct parent_map gcc_xo_gpll0_gpll6_gpll0_div2_map
[] = {
187 static const char * const gcc_xo_gpll0_gpll6_gpll0_out_main_div2
[] = {
191 "gpll0_out_main_div2",
194 static const struct parent_map gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map
[] = {
201 static const char * const gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2
[] = {
203 "bias_pll_nss_noc_clk",
208 static const struct parent_map gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2_map
[] = {
210 { P_BIAS_PLL_NSS_NOC
, 1 },
215 static const char * const gcc_xo_nss_crypto_pll_gpll0
[] = {
221 static const struct parent_map gcc_xo_nss_crypto_pll_gpll0_map
[] = {
223 { P_NSS_CRYPTO_PLL
, 1 },
227 static const char * const gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6
[] = {
236 static const struct parent_map gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map
[] = {
245 static const char * const gcc_xo_gpll0_out_main_div2
[] = {
247 "gpll0_out_main_div2",
250 static const struct parent_map gcc_xo_gpll0_out_main_div2_map
[] = {
255 static const char * const gcc_xo_bias_gpll0_gpll4_nss_ubi32
[] = {
264 static const struct parent_map gcc_xo_bias_gpll0_gpll4_nss_ubi32_map
[] = {
269 { P_NSS_CRYPTO_PLL
, 4 },
273 static const char * const gcc_xo_gpll0_gpll4
[] = {
279 static const struct parent_map gcc_xo_gpll0_gpll4_map
[] = {
285 static const char * const gcc_xo_uniphy0_rx_tx_ubi32_bias
[] = {
287 "uniphy0_gcc_rx_clk",
288 "uniphy0_gcc_tx_clk",
293 static const struct parent_map gcc_xo_uniphy0_rx_tx_ubi32_bias_map
[] = {
301 static const char * const gcc_xo_uniphy0_tx_rx_ubi32_bias
[] = {
303 "uniphy0_gcc_tx_clk",
304 "uniphy0_gcc_rx_clk",
309 static const struct parent_map gcc_xo_uniphy0_tx_rx_ubi32_bias_map
[] = {
317 static const char * const gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias
[] = {
319 "uniphy0_gcc_rx_clk",
320 "uniphy0_gcc_tx_clk",
321 "uniphy1_gcc_rx_clk",
322 "uniphy1_gcc_tx_clk",
327 static const struct parent_map
328 gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map
[] = {
338 static const char * const gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias
[] = {
340 "uniphy0_gcc_tx_clk",
341 "uniphy0_gcc_rx_clk",
342 "uniphy1_gcc_tx_clk",
343 "uniphy1_gcc_rx_clk",
348 static const struct parent_map
349 gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map
[] = {
359 static const char * const gcc_xo_uniphy2_rx_tx_ubi32_bias
[] = {
361 "uniphy2_gcc_rx_clk",
362 "uniphy2_gcc_tx_clk",
367 static const struct parent_map gcc_xo_uniphy2_rx_tx_ubi32_bias_map
[] = {
375 static const char * const gcc_xo_uniphy2_tx_rx_ubi32_bias
[] = {
377 "uniphy2_gcc_tx_clk",
378 "uniphy2_gcc_rx_clk",
383 static const struct parent_map gcc_xo_uniphy2_tx_rx_ubi32_bias_map
[] = {
391 static const char * const gcc_xo_gpll0_gpll6_gpll0_sleep_clk
[] = {
395 "gpll0_out_main_div2",
399 static const struct parent_map gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
[] = {
407 static struct clk_alpha_pll gpll0_main
= {
409 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
411 .enable_reg
= 0x0b000,
412 .enable_mask
= BIT(0),
413 .hw
.init
= &(struct clk_init_data
){
414 .name
= "gpll0_main",
415 .parent_names
= (const char *[]){
419 .ops
= &clk_alpha_pll_ops
,
424 static struct clk_fixed_factor gpll0_out_main_div2
= {
427 .hw
.init
= &(struct clk_init_data
){
428 .name
= "gpll0_out_main_div2",
429 .parent_names
= (const char *[]){
433 .ops
= &clk_fixed_factor_ops
,
434 .flags
= CLK_SET_RATE_PARENT
,
438 static struct clk_alpha_pll_postdiv gpll0
= {
440 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
442 .clkr
.hw
.init
= &(struct clk_init_data
){
444 .parent_names
= (const char *[]){
448 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
452 static struct clk_alpha_pll gpll2_main
= {
454 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
456 .enable_reg
= 0x0b000,
457 .enable_mask
= BIT(2),
458 .hw
.init
= &(struct clk_init_data
){
459 .name
= "gpll2_main",
460 .parent_names
= (const char *[]){
464 .ops
= &clk_alpha_pll_ops
,
465 .flags
= CLK_IS_CRITICAL
,
470 static struct clk_alpha_pll_postdiv gpll2
= {
472 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
474 .clkr
.hw
.init
= &(struct clk_init_data
){
476 .parent_names
= (const char *[]){
480 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
481 .flags
= CLK_SET_RATE_PARENT
,
485 static struct clk_alpha_pll gpll4_main
= {
487 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
489 .enable_reg
= 0x0b000,
490 .enable_mask
= BIT(5),
491 .hw
.init
= &(struct clk_init_data
){
492 .name
= "gpll4_main",
493 .parent_names
= (const char *[]){
497 .ops
= &clk_alpha_pll_ops
,
498 .flags
= CLK_IS_CRITICAL
,
503 static struct clk_alpha_pll_postdiv gpll4
= {
505 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
507 .clkr
.hw
.init
= &(struct clk_init_data
){
509 .parent_names
= (const char *[]){
513 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
514 .flags
= CLK_SET_RATE_PARENT
,
518 static struct clk_alpha_pll gpll6_main
= {
520 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_BRAMMO
],
521 .flags
= SUPPORTS_DYNAMIC_UPDATE
,
523 .enable_reg
= 0x0b000,
524 .enable_mask
= BIT(7),
525 .hw
.init
= &(struct clk_init_data
){
526 .name
= "gpll6_main",
527 .parent_names
= (const char *[]){
531 .ops
= &clk_alpha_pll_ops
,
532 .flags
= CLK_IS_CRITICAL
,
537 static struct clk_alpha_pll_postdiv gpll6
= {
539 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_BRAMMO
],
541 .clkr
.hw
.init
= &(struct clk_init_data
){
543 .parent_names
= (const char *[]){
547 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
548 .flags
= CLK_SET_RATE_PARENT
,
552 static struct clk_fixed_factor gpll6_out_main_div2
= {
555 .hw
.init
= &(struct clk_init_data
){
556 .name
= "gpll6_out_main_div2",
557 .parent_names
= (const char *[]){
561 .ops
= &clk_fixed_factor_ops
,
562 .flags
= CLK_SET_RATE_PARENT
,
566 static struct clk_alpha_pll ubi32_pll_main
= {
568 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_HUAYRA
],
569 .flags
= SUPPORTS_DYNAMIC_UPDATE
,
571 .enable_reg
= 0x0b000,
572 .enable_mask
= BIT(6),
573 .hw
.init
= &(struct clk_init_data
){
574 .name
= "ubi32_pll_main",
575 .parent_names
= (const char *[]){
579 .ops
= &clk_alpha_pll_huayra_ops
,
584 static struct clk_alpha_pll_postdiv ubi32_pll
= {
586 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_HUAYRA
],
588 .clkr
.hw
.init
= &(struct clk_init_data
){
590 .parent_names
= (const char *[]){
594 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
595 .flags
= CLK_SET_RATE_PARENT
,
599 static struct clk_alpha_pll nss_crypto_pll_main
= {
601 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
603 .enable_reg
= 0x0b000,
604 .enable_mask
= BIT(4),
605 .hw
.init
= &(struct clk_init_data
){
606 .name
= "nss_crypto_pll_main",
607 .parent_names
= (const char *[]){
611 .ops
= &clk_alpha_pll_ops
,
616 static struct clk_alpha_pll_postdiv nss_crypto_pll
= {
618 .regs
= clk_alpha_pll_regs
[CLK_ALPHA_PLL_TYPE_DEFAULT
],
620 .clkr
.hw
.init
= &(struct clk_init_data
){
621 .name
= "nss_crypto_pll",
622 .parent_names
= (const char *[]){
623 "nss_crypto_pll_main"
626 .ops
= &clk_alpha_pll_postdiv_ro_ops
,
627 .flags
= CLK_SET_RATE_PARENT
,
631 static const struct freq_tbl ftbl_pcnoc_bfdcd_clk_src
[] = {
632 F(19200000, P_XO
, 1, 0, 0),
633 F(50000000, P_GPLL0
, 16, 0, 0),
634 F(100000000, P_GPLL0
, 8, 0, 0),
638 static struct clk_rcg2 pcnoc_bfdcd_clk_src
= {
640 .freq_tbl
= ftbl_pcnoc_bfdcd_clk_src
,
642 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
643 .clkr
.hw
.init
= &(struct clk_init_data
){
644 .name
= "pcnoc_bfdcd_clk_src",
645 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
647 .ops
= &clk_rcg2_ops
,
648 .flags
= CLK_IS_CRITICAL
,
652 static struct clk_fixed_factor pcnoc_clk_src
= {
655 .hw
.init
= &(struct clk_init_data
){
656 .name
= "pcnoc_clk_src",
657 .parent_names
= (const char *[]){
658 "pcnoc_bfdcd_clk_src"
661 .ops
= &clk_fixed_factor_ops
,
662 .flags
= CLK_SET_RATE_PARENT
,
666 static struct clk_branch gcc_sleep_clk_src
= {
669 .enable_reg
= 0x30000,
670 .enable_mask
= BIT(1),
671 .hw
.init
= &(struct clk_init_data
){
672 .name
= "gcc_sleep_clk_src",
673 .parent_names
= (const char *[]){
677 .ops
= &clk_branch2_ops
,
682 static const struct freq_tbl ftbl_blsp1_qup_i2c_apps_clk_src
[] = {
683 F(19200000, P_XO
, 1, 0, 0),
684 F(25000000, P_GPLL0_DIV2
, 16, 0, 0),
685 F(50000000, P_GPLL0
, 16, 0, 0),
689 static struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src
= {
691 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
693 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
694 .clkr
.hw
.init
= &(struct clk_init_data
){
695 .name
= "blsp1_qup1_i2c_apps_clk_src",
696 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
698 .ops
= &clk_rcg2_ops
,
702 static const struct freq_tbl ftbl_blsp1_qup_spi_apps_clk_src
[] = {
703 F(960000, P_XO
, 10, 1, 2),
704 F(4800000, P_XO
, 4, 0, 0),
705 F(9600000, P_XO
, 2, 0, 0),
706 F(12500000, P_GPLL0_DIV2
, 16, 1, 2),
707 F(16000000, P_GPLL0
, 10, 1, 5),
708 F(19200000, P_XO
, 1, 0, 0),
709 F(25000000, P_GPLL0
, 16, 1, 2),
710 F(50000000, P_GPLL0
, 16, 0, 0),
714 static struct clk_rcg2 blsp1_qup1_spi_apps_clk_src
= {
716 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
719 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
720 .clkr
.hw
.init
= &(struct clk_init_data
){
721 .name
= "blsp1_qup1_spi_apps_clk_src",
722 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
724 .ops
= &clk_rcg2_ops
,
728 static struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src
= {
730 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
732 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
733 .clkr
.hw
.init
= &(struct clk_init_data
){
734 .name
= "blsp1_qup2_i2c_apps_clk_src",
735 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
737 .ops
= &clk_rcg2_ops
,
741 static struct clk_rcg2 blsp1_qup2_spi_apps_clk_src
= {
743 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
746 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
747 .clkr
.hw
.init
= &(struct clk_init_data
){
748 .name
= "blsp1_qup2_spi_apps_clk_src",
749 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
751 .ops
= &clk_rcg2_ops
,
755 static struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src
= {
757 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
759 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
760 .clkr
.hw
.init
= &(struct clk_init_data
){
761 .name
= "blsp1_qup3_i2c_apps_clk_src",
762 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
764 .ops
= &clk_rcg2_ops
,
768 static struct clk_rcg2 blsp1_qup3_spi_apps_clk_src
= {
770 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
773 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
774 .clkr
.hw
.init
= &(struct clk_init_data
){
775 .name
= "blsp1_qup3_spi_apps_clk_src",
776 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
778 .ops
= &clk_rcg2_ops
,
782 static struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src
= {
784 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
786 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
787 .clkr
.hw
.init
= &(struct clk_init_data
){
788 .name
= "blsp1_qup4_i2c_apps_clk_src",
789 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
791 .ops
= &clk_rcg2_ops
,
795 static struct clk_rcg2 blsp1_qup4_spi_apps_clk_src
= {
797 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
800 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
801 .clkr
.hw
.init
= &(struct clk_init_data
){
802 .name
= "blsp1_qup4_spi_apps_clk_src",
803 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
805 .ops
= &clk_rcg2_ops
,
809 static struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src
= {
811 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
813 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
814 .clkr
.hw
.init
= &(struct clk_init_data
){
815 .name
= "blsp1_qup5_i2c_apps_clk_src",
816 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
818 .ops
= &clk_rcg2_ops
,
822 static struct clk_rcg2 blsp1_qup5_spi_apps_clk_src
= {
824 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
827 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
828 .clkr
.hw
.init
= &(struct clk_init_data
){
829 .name
= "blsp1_qup5_spi_apps_clk_src",
830 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
832 .ops
= &clk_rcg2_ops
,
836 static struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src
= {
838 .freq_tbl
= ftbl_blsp1_qup_i2c_apps_clk_src
,
840 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
841 .clkr
.hw
.init
= &(struct clk_init_data
){
842 .name
= "blsp1_qup6_i2c_apps_clk_src",
843 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
845 .ops
= &clk_rcg2_ops
,
849 static struct clk_rcg2 blsp1_qup6_spi_apps_clk_src
= {
851 .freq_tbl
= ftbl_blsp1_qup_spi_apps_clk_src
,
854 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
855 .clkr
.hw
.init
= &(struct clk_init_data
){
856 .name
= "blsp1_qup6_spi_apps_clk_src",
857 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
859 .ops
= &clk_rcg2_ops
,
863 static const struct freq_tbl ftbl_blsp1_uart_apps_clk_src
[] = {
864 F(3686400, P_GPLL0_DIV2
, 1, 144, 15625),
865 F(7372800, P_GPLL0_DIV2
, 1, 288, 15625),
866 F(14745600, P_GPLL0_DIV2
, 1, 576, 15625),
867 F(16000000, P_GPLL0_DIV2
, 5, 1, 5),
868 F(19200000, P_XO
, 1, 0, 0),
869 F(24000000, P_GPLL0
, 1, 3, 100),
870 F(25000000, P_GPLL0
, 16, 1, 2),
871 F(32000000, P_GPLL0
, 1, 1, 25),
872 F(40000000, P_GPLL0
, 1, 1, 20),
873 F(46400000, P_GPLL0
, 1, 29, 500),
874 F(48000000, P_GPLL0
, 1, 3, 50),
875 F(51200000, P_GPLL0
, 1, 8, 125),
876 F(56000000, P_GPLL0
, 1, 7, 100),
877 F(58982400, P_GPLL0
, 1, 1152, 15625),
878 F(60000000, P_GPLL0
, 1, 3, 40),
879 F(64000000, P_GPLL0
, 12.5, 1, 1),
883 static struct clk_rcg2 blsp1_uart1_apps_clk_src
= {
885 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
888 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
889 .clkr
.hw
.init
= &(struct clk_init_data
){
890 .name
= "blsp1_uart1_apps_clk_src",
891 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
893 .ops
= &clk_rcg2_ops
,
897 static struct clk_rcg2 blsp1_uart2_apps_clk_src
= {
899 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
902 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
903 .clkr
.hw
.init
= &(struct clk_init_data
){
904 .name
= "blsp1_uart2_apps_clk_src",
905 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
907 .ops
= &clk_rcg2_ops
,
911 static struct clk_rcg2 blsp1_uart3_apps_clk_src
= {
913 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
916 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
917 .clkr
.hw
.init
= &(struct clk_init_data
){
918 .name
= "blsp1_uart3_apps_clk_src",
919 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
921 .ops
= &clk_rcg2_ops
,
925 static struct clk_rcg2 blsp1_uart4_apps_clk_src
= {
927 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
930 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
931 .clkr
.hw
.init
= &(struct clk_init_data
){
932 .name
= "blsp1_uart4_apps_clk_src",
933 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
935 .ops
= &clk_rcg2_ops
,
939 static struct clk_rcg2 blsp1_uart5_apps_clk_src
= {
941 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
944 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
945 .clkr
.hw
.init
= &(struct clk_init_data
){
946 .name
= "blsp1_uart5_apps_clk_src",
947 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
949 .ops
= &clk_rcg2_ops
,
953 static struct clk_rcg2 blsp1_uart6_apps_clk_src
= {
955 .freq_tbl
= ftbl_blsp1_uart_apps_clk_src
,
958 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
959 .clkr
.hw
.init
= &(struct clk_init_data
){
960 .name
= "blsp1_uart6_apps_clk_src",
961 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
963 .ops
= &clk_rcg2_ops
,
967 static const struct freq_tbl ftbl_pcie_axi_clk_src
[] = {
968 F(19200000, P_XO
, 1, 0, 0),
969 F(200000000, P_GPLL0
, 4, 0, 0),
973 static struct clk_rcg2 pcie0_axi_clk_src
= {
975 .freq_tbl
= ftbl_pcie_axi_clk_src
,
977 .parent_map
= gcc_xo_gpll0_map
,
978 .clkr
.hw
.init
= &(struct clk_init_data
){
979 .name
= "pcie0_axi_clk_src",
980 .parent_names
= gcc_xo_gpll0
,
982 .ops
= &clk_rcg2_ops
,
986 static const struct freq_tbl ftbl_pcie_aux_clk_src
[] = {
987 F(19200000, P_XO
, 1, 0, 0),
990 static struct clk_rcg2 pcie0_aux_clk_src
= {
992 .freq_tbl
= ftbl_pcie_aux_clk_src
,
995 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
996 .clkr
.hw
.init
= &(struct clk_init_data
){
997 .name
= "pcie0_aux_clk_src",
998 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1000 .ops
= &clk_rcg2_ops
,
1004 static struct clk_regmap_mux pcie0_pipe_clk_src
= {
1008 .parent_map
= gcc_pcie20_phy0_pipe_clk_xo_map
,
1010 .hw
.init
= &(struct clk_init_data
){
1011 .name
= "pcie0_pipe_clk_src",
1012 .parent_names
= gcc_pcie20_phy0_pipe_clk_xo
,
1014 .ops
= &clk_regmap_mux_closest_ops
,
1015 .flags
= CLK_SET_RATE_PARENT
,
1020 static struct clk_rcg2 pcie1_axi_clk_src
= {
1021 .cmd_rcgr
= 0x76054,
1022 .freq_tbl
= ftbl_pcie_axi_clk_src
,
1024 .parent_map
= gcc_xo_gpll0_map
,
1025 .clkr
.hw
.init
= &(struct clk_init_data
){
1026 .name
= "pcie1_axi_clk_src",
1027 .parent_names
= gcc_xo_gpll0
,
1029 .ops
= &clk_rcg2_ops
,
1033 static struct clk_rcg2 pcie1_aux_clk_src
= {
1034 .cmd_rcgr
= 0x76024,
1035 .freq_tbl
= ftbl_pcie_aux_clk_src
,
1038 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
1039 .clkr
.hw
.init
= &(struct clk_init_data
){
1040 .name
= "pcie1_aux_clk_src",
1041 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1043 .ops
= &clk_rcg2_ops
,
1047 static struct clk_regmap_mux pcie1_pipe_clk_src
= {
1051 .parent_map
= gcc_pcie20_phy1_pipe_clk_xo_map
,
1053 .hw
.init
= &(struct clk_init_data
){
1054 .name
= "pcie1_pipe_clk_src",
1055 .parent_names
= gcc_pcie20_phy1_pipe_clk_xo
,
1057 .ops
= &clk_regmap_mux_closest_ops
,
1058 .flags
= CLK_SET_RATE_PARENT
,
1063 static const struct freq_tbl ftbl_sdcc_apps_clk_src
[] = {
1064 F(144000, P_XO
, 16, 3, 25),
1065 F(400000, P_XO
, 12, 1, 4),
1066 F(24000000, P_GPLL2
, 12, 1, 4),
1067 F(48000000, P_GPLL2
, 12, 1, 2),
1068 F(96000000, P_GPLL2
, 12, 0, 0),
1069 F(177777778, P_GPLL0
, 4.5, 0, 0),
1070 F(192000000, P_GPLL2
, 6, 0, 0),
1071 F(384000000, P_GPLL2
, 3, 0, 0),
1075 static struct clk_rcg2 sdcc1_apps_clk_src
= {
1076 .cmd_rcgr
= 0x42004,
1077 .freq_tbl
= ftbl_sdcc_apps_clk_src
,
1080 .parent_map
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map
,
1081 .clkr
.hw
.init
= &(struct clk_init_data
){
1082 .name
= "sdcc1_apps_clk_src",
1083 .parent_names
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2
,
1085 .ops
= &clk_rcg2_ops
,
1089 static const struct freq_tbl ftbl_sdcc_ice_core_clk_src
[] = {
1090 F(19200000, P_XO
, 1, 0, 0),
1091 F(160000000, P_GPLL0
, 5, 0, 0),
1092 F(308570000, P_GPLL6
, 3.5, 0, 0),
1095 static struct clk_rcg2 sdcc1_ice_core_clk_src
= {
1096 .cmd_rcgr
= 0x5d000,
1097 .freq_tbl
= ftbl_sdcc_ice_core_clk_src
,
1100 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_div2_map
,
1101 .clkr
.hw
.init
= &(struct clk_init_data
){
1102 .name
= "sdcc1_ice_core_clk_src",
1103 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_div2
,
1105 .ops
= &clk_rcg2_ops
,
1109 static struct clk_rcg2 sdcc2_apps_clk_src
= {
1110 .cmd_rcgr
= 0x43004,
1111 .freq_tbl
= ftbl_sdcc_apps_clk_src
,
1114 .parent_map
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2_map
,
1115 .clkr
.hw
.init
= &(struct clk_init_data
){
1116 .name
= "sdcc2_apps_clk_src",
1117 .parent_names
= gcc_xo_gpll0_gpll2_gpll0_out_main_div2
,
1119 .ops
= &clk_rcg2_ops
,
1123 static const struct freq_tbl ftbl_usb_master_clk_src
[] = {
1124 F(80000000, P_GPLL0_DIV2
, 5, 0, 0),
1125 F(100000000, P_GPLL0
, 8, 0, 0),
1126 F(133330000, P_GPLL0
, 6, 0, 0),
1130 static struct clk_rcg2 usb0_master_clk_src
= {
1131 .cmd_rcgr
= 0x3e00c,
1132 .freq_tbl
= ftbl_usb_master_clk_src
,
1135 .parent_map
= gcc_xo_gpll0_out_main_div2_gpll0_map
,
1136 .clkr
.hw
.init
= &(struct clk_init_data
){
1137 .name
= "usb0_master_clk_src",
1138 .parent_names
= gcc_xo_gpll0_out_main_div2_gpll0
,
1140 .ops
= &clk_rcg2_ops
,
1144 static const struct freq_tbl ftbl_usb_aux_clk_src
[] = {
1145 F(19200000, P_XO
, 1, 0, 0),
1149 static struct clk_rcg2 usb0_aux_clk_src
= {
1150 .cmd_rcgr
= 0x3e05c,
1151 .freq_tbl
= ftbl_usb_aux_clk_src
,
1154 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
1155 .clkr
.hw
.init
= &(struct clk_init_data
){
1156 .name
= "usb0_aux_clk_src",
1157 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1159 .ops
= &clk_rcg2_ops
,
1163 static const struct freq_tbl ftbl_usb_mock_utmi_clk_src
[] = {
1164 F(19200000, P_XO
, 1, 0, 0),
1165 F(20000000, P_GPLL6
, 6, 1, 9),
1166 F(60000000, P_GPLL6
, 6, 1, 3),
1170 static struct clk_rcg2 usb0_mock_utmi_clk_src
= {
1171 .cmd_rcgr
= 0x3e020,
1172 .freq_tbl
= ftbl_usb_mock_utmi_clk_src
,
1175 .parent_map
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map
,
1176 .clkr
.hw
.init
= &(struct clk_init_data
){
1177 .name
= "usb0_mock_utmi_clk_src",
1178 .parent_names
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2
,
1180 .ops
= &clk_rcg2_ops
,
1184 static struct clk_regmap_mux usb0_pipe_clk_src
= {
1188 .parent_map
= gcc_usb3phy_0_cc_pipe_clk_xo_map
,
1190 .hw
.init
= &(struct clk_init_data
){
1191 .name
= "usb0_pipe_clk_src",
1192 .parent_names
= gcc_usb3phy_0_cc_pipe_clk_xo
,
1194 .ops
= &clk_regmap_mux_closest_ops
,
1195 .flags
= CLK_SET_RATE_PARENT
,
1200 static struct clk_rcg2 usb1_master_clk_src
= {
1201 .cmd_rcgr
= 0x3f00c,
1202 .freq_tbl
= ftbl_usb_master_clk_src
,
1205 .parent_map
= gcc_xo_gpll0_out_main_div2_gpll0_map
,
1206 .clkr
.hw
.init
= &(struct clk_init_data
){
1207 .name
= "usb1_master_clk_src",
1208 .parent_names
= gcc_xo_gpll0_out_main_div2_gpll0
,
1210 .ops
= &clk_rcg2_ops
,
1214 static struct clk_rcg2 usb1_aux_clk_src
= {
1215 .cmd_rcgr
= 0x3f05c,
1216 .freq_tbl
= ftbl_usb_aux_clk_src
,
1219 .parent_map
= gcc_xo_gpll0_sleep_clk_map
,
1220 .clkr
.hw
.init
= &(struct clk_init_data
){
1221 .name
= "usb1_aux_clk_src",
1222 .parent_names
= gcc_xo_gpll0_sleep_clk
,
1224 .ops
= &clk_rcg2_ops
,
1228 static struct clk_rcg2 usb1_mock_utmi_clk_src
= {
1229 .cmd_rcgr
= 0x3f020,
1230 .freq_tbl
= ftbl_usb_mock_utmi_clk_src
,
1233 .parent_map
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2_map
,
1234 .clkr
.hw
.init
= &(struct clk_init_data
){
1235 .name
= "usb1_mock_utmi_clk_src",
1236 .parent_names
= gcc_xo_gpll6_gpll0_gpll0_out_main_div2
,
1238 .ops
= &clk_rcg2_ops
,
1242 static struct clk_regmap_mux usb1_pipe_clk_src
= {
1246 .parent_map
= gcc_usb3phy_1_cc_pipe_clk_xo_map
,
1248 .hw
.init
= &(struct clk_init_data
){
1249 .name
= "usb1_pipe_clk_src",
1250 .parent_names
= gcc_usb3phy_1_cc_pipe_clk_xo
,
1252 .ops
= &clk_regmap_mux_closest_ops
,
1253 .flags
= CLK_SET_RATE_PARENT
,
1258 static struct clk_branch gcc_xo_clk_src
= {
1259 .halt_reg
= 0x30018,
1261 .enable_reg
= 0x30018,
1262 .enable_mask
= BIT(1),
1263 .hw
.init
= &(struct clk_init_data
){
1264 .name
= "gcc_xo_clk_src",
1265 .parent_names
= (const char *[]){
1269 .flags
= CLK_SET_RATE_PARENT
| CLK_IS_CRITICAL
,
1270 .ops
= &clk_branch2_ops
,
1275 static struct clk_fixed_factor gcc_xo_div4_clk_src
= {
1278 .hw
.init
= &(struct clk_init_data
){
1279 .name
= "gcc_xo_div4_clk_src",
1280 .parent_names
= (const char *[]){
1284 .ops
= &clk_fixed_factor_ops
,
1285 .flags
= CLK_SET_RATE_PARENT
,
1289 static const struct freq_tbl ftbl_system_noc_bfdcd_clk_src
[] = {
1290 F(19200000, P_XO
, 1, 0, 0),
1291 F(50000000, P_GPLL0_DIV2
, 8, 0, 0),
1292 F(100000000, P_GPLL0
, 8, 0, 0),
1293 F(133333333, P_GPLL0
, 6, 0, 0),
1294 F(160000000, P_GPLL0
, 5, 0, 0),
1295 F(200000000, P_GPLL0
, 4, 0, 0),
1296 F(266666667, P_GPLL0
, 3, 0, 0),
1300 static struct clk_rcg2 system_noc_bfdcd_clk_src
= {
1301 .cmd_rcgr
= 0x26004,
1302 .freq_tbl
= ftbl_system_noc_bfdcd_clk_src
,
1304 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_out_main_div2_map
,
1305 .clkr
.hw
.init
= &(struct clk_init_data
){
1306 .name
= "system_noc_bfdcd_clk_src",
1307 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_out_main_div2
,
1309 .ops
= &clk_rcg2_ops
,
1310 .flags
= CLK_IS_CRITICAL
,
1314 static struct clk_fixed_factor system_noc_clk_src
= {
1317 .hw
.init
= &(struct clk_init_data
){
1318 .name
= "system_noc_clk_src",
1319 .parent_names
= (const char *[]){
1320 "system_noc_bfdcd_clk_src"
1323 .ops
= &clk_fixed_factor_ops
,
1324 .flags
= CLK_SET_RATE_PARENT
,
1328 static const struct freq_tbl ftbl_nss_ce_clk_src
[] = {
1329 F(19200000, P_XO
, 1, 0, 0),
1330 F(200000000, P_GPLL0
, 4, 0, 0),
1334 static struct clk_rcg2 nss_ce_clk_src
= {
1335 .cmd_rcgr
= 0x68098,
1336 .freq_tbl
= ftbl_nss_ce_clk_src
,
1338 .parent_map
= gcc_xo_gpll0_map
,
1339 .clkr
.hw
.init
= &(struct clk_init_data
){
1340 .name
= "nss_ce_clk_src",
1341 .parent_names
= gcc_xo_gpll0
,
1343 .ops
= &clk_rcg2_ops
,
1347 static const struct freq_tbl ftbl_nss_noc_bfdcd_clk_src
[] = {
1348 F(19200000, P_XO
, 1, 0, 0),
1349 F(461500000, P_BIAS_PLL_NSS_NOC
, 1, 0, 0),
1353 static struct clk_rcg2 nss_noc_bfdcd_clk_src
= {
1354 .cmd_rcgr
= 0x68088,
1355 .freq_tbl
= ftbl_nss_noc_bfdcd_clk_src
,
1357 .parent_map
= gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2_map
,
1358 .clkr
.hw
.init
= &(struct clk_init_data
){
1359 .name
= "nss_noc_bfdcd_clk_src",
1360 .parent_names
= gcc_xo_bias_pll_nss_noc_clk_gpll0_gpll2
,
1362 .ops
= &clk_rcg2_ops
,
1366 static struct clk_fixed_factor nss_noc_clk_src
= {
1369 .hw
.init
= &(struct clk_init_data
){
1370 .name
= "nss_noc_clk_src",
1371 .parent_names
= (const char *[]){
1372 "nss_noc_bfdcd_clk_src"
1375 .ops
= &clk_fixed_factor_ops
,
1376 .flags
= CLK_SET_RATE_PARENT
,
1380 static const struct freq_tbl ftbl_nss_crypto_clk_src
[] = {
1381 F(19200000, P_XO
, 1, 0, 0),
1382 F(600000000, P_NSS_CRYPTO_PLL
, 1, 0, 0),
1386 static struct clk_rcg2 nss_crypto_clk_src
= {
1387 .cmd_rcgr
= 0x68144,
1388 .freq_tbl
= ftbl_nss_crypto_clk_src
,
1391 .parent_map
= gcc_xo_nss_crypto_pll_gpll0_map
,
1392 .clkr
.hw
.init
= &(struct clk_init_data
){
1393 .name
= "nss_crypto_clk_src",
1394 .parent_names
= gcc_xo_nss_crypto_pll_gpll0
,
1396 .ops
= &clk_rcg2_ops
,
1400 static const struct freq_tbl ftbl_nss_ubi_clk_src
[] = {
1401 F(19200000, P_XO
, 1, 0, 0),
1402 F(187200000, P_UBI32_PLL
, 8, 0, 0),
1403 F(748800000, P_UBI32_PLL
, 2, 0, 0),
1404 F(1497600000, P_UBI32_PLL
, 1, 0, 0),
1405 F(1689600000, P_UBI32_PLL
, 1, 0, 0),
1409 static struct clk_rcg2 nss_ubi0_clk_src
= {
1410 .cmd_rcgr
= 0x68104,
1411 .freq_tbl
= ftbl_nss_ubi_clk_src
,
1413 .parent_map
= gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map
,
1414 .clkr
.hw
.init
= &(struct clk_init_data
){
1415 .name
= "nss_ubi0_clk_src",
1416 .parent_names
= gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6
,
1418 .ops
= &clk_rcg2_ops
,
1419 .flags
= CLK_SET_RATE_PARENT
,
1423 static struct clk_regmap_div nss_ubi0_div_clk_src
= {
1428 .hw
.init
= &(struct clk_init_data
){
1429 .name
= "nss_ubi0_div_clk_src",
1430 .parent_names
= (const char *[]){
1434 .ops
= &clk_regmap_div_ro_ops
,
1435 .flags
= CLK_SET_RATE_PARENT
,
1440 static struct clk_rcg2 nss_ubi1_clk_src
= {
1441 .cmd_rcgr
= 0x68124,
1442 .freq_tbl
= ftbl_nss_ubi_clk_src
,
1444 .parent_map
= gcc_xo_ubi32_gpll0_gpll2_gpll4_gpll6_map
,
1445 .clkr
.hw
.init
= &(struct clk_init_data
){
1446 .name
= "nss_ubi1_clk_src",
1447 .parent_names
= gcc_xo_ubi32_pll_gpll0_gpll2_gpll4_gpll6
,
1449 .ops
= &clk_rcg2_ops
,
1450 .flags
= CLK_SET_RATE_PARENT
,
1454 static struct clk_regmap_div nss_ubi1_div_clk_src
= {
1459 .hw
.init
= &(struct clk_init_data
){
1460 .name
= "nss_ubi1_div_clk_src",
1461 .parent_names
= (const char *[]){
1465 .ops
= &clk_regmap_div_ro_ops
,
1466 .flags
= CLK_SET_RATE_PARENT
,
1471 static const struct freq_tbl ftbl_ubi_mpt_clk_src
[] = {
1472 F(19200000, P_XO
, 1, 0, 0),
1473 F(25000000, P_GPLL0_DIV2
, 16, 0, 0),
1477 static struct clk_rcg2 ubi_mpt_clk_src
= {
1478 .cmd_rcgr
= 0x68090,
1479 .freq_tbl
= ftbl_ubi_mpt_clk_src
,
1481 .parent_map
= gcc_xo_gpll0_out_main_div2_map
,
1482 .clkr
.hw
.init
= &(struct clk_init_data
){
1483 .name
= "ubi_mpt_clk_src",
1484 .parent_names
= gcc_xo_gpll0_out_main_div2
,
1486 .ops
= &clk_rcg2_ops
,
1490 static const struct freq_tbl ftbl_nss_imem_clk_src
[] = {
1491 F(19200000, P_XO
, 1, 0, 0),
1492 F(400000000, P_GPLL0
, 2, 0, 0),
1496 static struct clk_rcg2 nss_imem_clk_src
= {
1497 .cmd_rcgr
= 0x68158,
1498 .freq_tbl
= ftbl_nss_imem_clk_src
,
1500 .parent_map
= gcc_xo_gpll0_gpll4_map
,
1501 .clkr
.hw
.init
= &(struct clk_init_data
){
1502 .name
= "nss_imem_clk_src",
1503 .parent_names
= gcc_xo_gpll0_gpll4
,
1505 .ops
= &clk_rcg2_ops
,
1509 static const struct freq_tbl ftbl_nss_ppe_clk_src
[] = {
1510 F(19200000, P_XO
, 1, 0, 0),
1511 F(300000000, P_BIAS_PLL
, 1, 0, 0),
1515 static struct clk_rcg2 nss_ppe_clk_src
= {
1516 .cmd_rcgr
= 0x68080,
1517 .freq_tbl
= ftbl_nss_ppe_clk_src
,
1519 .parent_map
= gcc_xo_bias_gpll0_gpll4_nss_ubi32_map
,
1520 .clkr
.hw
.init
= &(struct clk_init_data
){
1521 .name
= "nss_ppe_clk_src",
1522 .parent_names
= gcc_xo_bias_gpll0_gpll4_nss_ubi32
,
1524 .ops
= &clk_rcg2_ops
,
1528 static struct clk_fixed_factor nss_ppe_cdiv_clk_src
= {
1531 .hw
.init
= &(struct clk_init_data
){
1532 .name
= "nss_ppe_cdiv_clk_src",
1533 .parent_names
= (const char *[]){
1537 .ops
= &clk_fixed_factor_ops
,
1538 .flags
= CLK_SET_RATE_PARENT
,
1542 static const struct freq_tbl ftbl_nss_port1_rx_clk_src
[] = {
1543 F(19200000, P_XO
, 1, 0, 0),
1544 F(25000000, P_UNIPHY0_RX
, 5, 0, 0),
1545 F(125000000, P_UNIPHY0_RX
, 1, 0, 0),
1549 static struct clk_rcg2 nss_port1_rx_clk_src
= {
1550 .cmd_rcgr
= 0x68020,
1551 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1553 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1554 .clkr
.hw
.init
= &(struct clk_init_data
){
1555 .name
= "nss_port1_rx_clk_src",
1556 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1558 .ops
= &clk_rcg2_ops
,
1562 static struct clk_regmap_div nss_port1_rx_div_clk_src
= {
1567 .hw
.init
= &(struct clk_init_data
){
1568 .name
= "nss_port1_rx_div_clk_src",
1569 .parent_names
= (const char *[]){
1570 "nss_port1_rx_clk_src"
1573 .ops
= &clk_regmap_div_ops
,
1574 .flags
= CLK_SET_RATE_PARENT
,
1579 static const struct freq_tbl ftbl_nss_port1_tx_clk_src
[] = {
1580 F(19200000, P_XO
, 1, 0, 0),
1581 F(25000000, P_UNIPHY0_TX
, 5, 0, 0),
1582 F(125000000, P_UNIPHY0_TX
, 1, 0, 0),
1586 static struct clk_rcg2 nss_port1_tx_clk_src
= {
1587 .cmd_rcgr
= 0x68028,
1588 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1590 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1591 .clkr
.hw
.init
= &(struct clk_init_data
){
1592 .name
= "nss_port1_tx_clk_src",
1593 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1595 .ops
= &clk_rcg2_ops
,
1599 static struct clk_regmap_div nss_port1_tx_div_clk_src
= {
1604 .hw
.init
= &(struct clk_init_data
){
1605 .name
= "nss_port1_tx_div_clk_src",
1606 .parent_names
= (const char *[]){
1607 "nss_port1_tx_clk_src"
1610 .ops
= &clk_regmap_div_ops
,
1611 .flags
= CLK_SET_RATE_PARENT
,
1616 static struct clk_rcg2 nss_port2_rx_clk_src
= {
1617 .cmd_rcgr
= 0x68030,
1618 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1620 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1621 .clkr
.hw
.init
= &(struct clk_init_data
){
1622 .name
= "nss_port2_rx_clk_src",
1623 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1625 .ops
= &clk_rcg2_ops
,
1629 static struct clk_regmap_div nss_port2_rx_div_clk_src
= {
1634 .hw
.init
= &(struct clk_init_data
){
1635 .name
= "nss_port2_rx_div_clk_src",
1636 .parent_names
= (const char *[]){
1637 "nss_port2_rx_clk_src"
1640 .ops
= &clk_regmap_div_ops
,
1641 .flags
= CLK_SET_RATE_PARENT
,
1646 static struct clk_rcg2 nss_port2_tx_clk_src
= {
1647 .cmd_rcgr
= 0x68038,
1648 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1650 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1651 .clkr
.hw
.init
= &(struct clk_init_data
){
1652 .name
= "nss_port2_tx_clk_src",
1653 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1655 .ops
= &clk_rcg2_ops
,
1659 static struct clk_regmap_div nss_port2_tx_div_clk_src
= {
1664 .hw
.init
= &(struct clk_init_data
){
1665 .name
= "nss_port2_tx_div_clk_src",
1666 .parent_names
= (const char *[]){
1667 "nss_port2_tx_clk_src"
1670 .ops
= &clk_regmap_div_ops
,
1671 .flags
= CLK_SET_RATE_PARENT
,
1676 static struct clk_rcg2 nss_port3_rx_clk_src
= {
1677 .cmd_rcgr
= 0x68040,
1678 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1680 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1681 .clkr
.hw
.init
= &(struct clk_init_data
){
1682 .name
= "nss_port3_rx_clk_src",
1683 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1685 .ops
= &clk_rcg2_ops
,
1689 static struct clk_regmap_div nss_port3_rx_div_clk_src
= {
1694 .hw
.init
= &(struct clk_init_data
){
1695 .name
= "nss_port3_rx_div_clk_src",
1696 .parent_names
= (const char *[]){
1697 "nss_port3_rx_clk_src"
1700 .ops
= &clk_regmap_div_ops
,
1701 .flags
= CLK_SET_RATE_PARENT
,
1706 static struct clk_rcg2 nss_port3_tx_clk_src
= {
1707 .cmd_rcgr
= 0x68048,
1708 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1710 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1711 .clkr
.hw
.init
= &(struct clk_init_data
){
1712 .name
= "nss_port3_tx_clk_src",
1713 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1715 .ops
= &clk_rcg2_ops
,
1719 static struct clk_regmap_div nss_port3_tx_div_clk_src
= {
1724 .hw
.init
= &(struct clk_init_data
){
1725 .name
= "nss_port3_tx_div_clk_src",
1726 .parent_names
= (const char *[]){
1727 "nss_port3_tx_clk_src"
1730 .ops
= &clk_regmap_div_ops
,
1731 .flags
= CLK_SET_RATE_PARENT
,
1736 static struct clk_rcg2 nss_port4_rx_clk_src
= {
1737 .cmd_rcgr
= 0x68050,
1738 .freq_tbl
= ftbl_nss_port1_rx_clk_src
,
1740 .parent_map
= gcc_xo_uniphy0_rx_tx_ubi32_bias_map
,
1741 .clkr
.hw
.init
= &(struct clk_init_data
){
1742 .name
= "nss_port4_rx_clk_src",
1743 .parent_names
= gcc_xo_uniphy0_rx_tx_ubi32_bias
,
1745 .ops
= &clk_rcg2_ops
,
1749 static struct clk_regmap_div nss_port4_rx_div_clk_src
= {
1754 .hw
.init
= &(struct clk_init_data
){
1755 .name
= "nss_port4_rx_div_clk_src",
1756 .parent_names
= (const char *[]){
1757 "nss_port4_rx_clk_src"
1760 .ops
= &clk_regmap_div_ops
,
1761 .flags
= CLK_SET_RATE_PARENT
,
1766 static struct clk_rcg2 nss_port4_tx_clk_src
= {
1767 .cmd_rcgr
= 0x68058,
1768 .freq_tbl
= ftbl_nss_port1_tx_clk_src
,
1770 .parent_map
= gcc_xo_uniphy0_tx_rx_ubi32_bias_map
,
1771 .clkr
.hw
.init
= &(struct clk_init_data
){
1772 .name
= "nss_port4_tx_clk_src",
1773 .parent_names
= gcc_xo_uniphy0_tx_rx_ubi32_bias
,
1775 .ops
= &clk_rcg2_ops
,
1779 static struct clk_regmap_div nss_port4_tx_div_clk_src
= {
1784 .hw
.init
= &(struct clk_init_data
){
1785 .name
= "nss_port4_tx_div_clk_src",
1786 .parent_names
= (const char *[]){
1787 "nss_port4_tx_clk_src"
1790 .ops
= &clk_regmap_div_ops
,
1791 .flags
= CLK_SET_RATE_PARENT
,
1796 static const struct freq_tbl ftbl_nss_port5_rx_clk_src
[] = {
1797 F(19200000, P_XO
, 1, 0, 0),
1798 F(25000000, P_UNIPHY1_RX
, 12.5, 0, 0),
1799 F(78125000, P_UNIPHY1_RX
, 4, 0, 0),
1800 F(125000000, P_UNIPHY1_RX
, 2.5, 0, 0),
1801 F(156250000, P_UNIPHY1_RX
, 2, 0, 0),
1802 F(312500000, P_UNIPHY1_RX
, 1, 0, 0),
1806 static struct clk_rcg2 nss_port5_rx_clk_src
= {
1807 .cmd_rcgr
= 0x68060,
1808 .freq_tbl
= ftbl_nss_port5_rx_clk_src
,
1810 .parent_map
= gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias_map
,
1811 .clkr
.hw
.init
= &(struct clk_init_data
){
1812 .name
= "nss_port5_rx_clk_src",
1813 .parent_names
= gcc_xo_uniphy0_rx_tx_uniphy1_rx_tx_ubi32_bias
,
1815 .ops
= &clk_rcg2_ops
,
1819 static struct clk_regmap_div nss_port5_rx_div_clk_src
= {
1824 .hw
.init
= &(struct clk_init_data
){
1825 .name
= "nss_port5_rx_div_clk_src",
1826 .parent_names
= (const char *[]){
1827 "nss_port5_rx_clk_src"
1830 .ops
= &clk_regmap_div_ops
,
1831 .flags
= CLK_SET_RATE_PARENT
,
1836 static const struct freq_tbl ftbl_nss_port5_tx_clk_src
[] = {
1837 F(19200000, P_XO
, 1, 0, 0),
1838 F(25000000, P_UNIPHY1_TX
, 12.5, 0, 0),
1839 F(78125000, P_UNIPHY1_TX
, 4, 0, 0),
1840 F(125000000, P_UNIPHY1_TX
, 2.5, 0, 0),
1841 F(156250000, P_UNIPHY1_TX
, 2, 0, 0),
1842 F(312500000, P_UNIPHY1_TX
, 1, 0, 0),
1846 static struct clk_rcg2 nss_port5_tx_clk_src
= {
1847 .cmd_rcgr
= 0x68068,
1848 .freq_tbl
= ftbl_nss_port5_tx_clk_src
,
1850 .parent_map
= gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias_map
,
1851 .clkr
.hw
.init
= &(struct clk_init_data
){
1852 .name
= "nss_port5_tx_clk_src",
1853 .parent_names
= gcc_xo_uniphy0_tx_rx_uniphy1_tx_rx_ubi32_bias
,
1855 .ops
= &clk_rcg2_ops
,
1859 static struct clk_regmap_div nss_port5_tx_div_clk_src
= {
1864 .hw
.init
= &(struct clk_init_data
){
1865 .name
= "nss_port5_tx_div_clk_src",
1866 .parent_names
= (const char *[]){
1867 "nss_port5_tx_clk_src"
1870 .ops
= &clk_regmap_div_ops
,
1871 .flags
= CLK_SET_RATE_PARENT
,
1876 static const struct freq_tbl ftbl_nss_port6_rx_clk_src
[] = {
1877 F(19200000, P_XO
, 1, 0, 0),
1878 F(25000000, P_UNIPHY2_RX
, 12.5, 0, 0),
1879 F(78125000, P_UNIPHY2_RX
, 4, 0, 0),
1880 F(125000000, P_UNIPHY2_RX
, 2.5, 0, 0),
1881 F(156250000, P_UNIPHY2_RX
, 2, 0, 0),
1882 F(312500000, P_UNIPHY2_RX
, 1, 0, 0),
1886 static struct clk_rcg2 nss_port6_rx_clk_src
= {
1887 .cmd_rcgr
= 0x68070,
1888 .freq_tbl
= ftbl_nss_port6_rx_clk_src
,
1890 .parent_map
= gcc_xo_uniphy2_rx_tx_ubi32_bias_map
,
1891 .clkr
.hw
.init
= &(struct clk_init_data
){
1892 .name
= "nss_port6_rx_clk_src",
1893 .parent_names
= gcc_xo_uniphy2_rx_tx_ubi32_bias
,
1895 .ops
= &clk_rcg2_ops
,
1899 static struct clk_regmap_div nss_port6_rx_div_clk_src
= {
1904 .hw
.init
= &(struct clk_init_data
){
1905 .name
= "nss_port6_rx_div_clk_src",
1906 .parent_names
= (const char *[]){
1907 "nss_port6_rx_clk_src"
1910 .ops
= &clk_regmap_div_ops
,
1911 .flags
= CLK_SET_RATE_PARENT
,
1916 static const struct freq_tbl ftbl_nss_port6_tx_clk_src
[] = {
1917 F(19200000, P_XO
, 1, 0, 0),
1918 F(25000000, P_UNIPHY2_TX
, 12.5, 0, 0),
1919 F(78125000, P_UNIPHY2_TX
, 4, 0, 0),
1920 F(125000000, P_UNIPHY2_TX
, 2.5, 0, 0),
1921 F(156250000, P_UNIPHY2_TX
, 2, 0, 0),
1922 F(312500000, P_UNIPHY2_TX
, 1, 0, 0),
1926 static struct clk_rcg2 nss_port6_tx_clk_src
= {
1927 .cmd_rcgr
= 0x68078,
1928 .freq_tbl
= ftbl_nss_port6_tx_clk_src
,
1930 .parent_map
= gcc_xo_uniphy2_tx_rx_ubi32_bias_map
,
1931 .clkr
.hw
.init
= &(struct clk_init_data
){
1932 .name
= "nss_port6_tx_clk_src",
1933 .parent_names
= gcc_xo_uniphy2_tx_rx_ubi32_bias
,
1935 .ops
= &clk_rcg2_ops
,
1939 static struct clk_regmap_div nss_port6_tx_div_clk_src
= {
1944 .hw
.init
= &(struct clk_init_data
){
1945 .name
= "nss_port6_tx_div_clk_src",
1946 .parent_names
= (const char *[]){
1947 "nss_port6_tx_clk_src"
1950 .ops
= &clk_regmap_div_ops
,
1951 .flags
= CLK_SET_RATE_PARENT
,
1956 static struct freq_tbl ftbl_crypto_clk_src
[] = {
1957 F(40000000, P_GPLL0_DIV2
, 10, 0, 0),
1958 F(80000000, P_GPLL0
, 10, 0, 0),
1959 F(100000000, P_GPLL0
, 8, 0, 0),
1960 F(160000000, P_GPLL0
, 5, 0, 0),
1964 static struct clk_rcg2 crypto_clk_src
= {
1965 .cmd_rcgr
= 0x16004,
1966 .freq_tbl
= ftbl_crypto_clk_src
,
1968 .parent_map
= gcc_xo_gpll0_gpll0_out_main_div2_map
,
1969 .clkr
.hw
.init
= &(struct clk_init_data
){
1970 .name
= "crypto_clk_src",
1971 .parent_names
= gcc_xo_gpll0_gpll0_out_main_div2
,
1973 .ops
= &clk_rcg2_ops
,
1977 static struct freq_tbl ftbl_gp_clk_src
[] = {
1978 F(19200000, P_XO
, 1, 0, 0),
1982 static struct clk_rcg2 gp1_clk_src
= {
1983 .cmd_rcgr
= 0x08004,
1984 .freq_tbl
= ftbl_gp_clk_src
,
1987 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
,
1988 .clkr
.hw
.init
= &(struct clk_init_data
){
1989 .name
= "gp1_clk_src",
1990 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk
,
1992 .ops
= &clk_rcg2_ops
,
1996 static struct clk_rcg2 gp2_clk_src
= {
1997 .cmd_rcgr
= 0x09004,
1998 .freq_tbl
= ftbl_gp_clk_src
,
2001 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
,
2002 .clkr
.hw
.init
= &(struct clk_init_data
){
2003 .name
= "gp2_clk_src",
2004 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk
,
2006 .ops
= &clk_rcg2_ops
,
2010 static struct clk_rcg2 gp3_clk_src
= {
2011 .cmd_rcgr
= 0x0a004,
2012 .freq_tbl
= ftbl_gp_clk_src
,
2015 .parent_map
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk_map
,
2016 .clkr
.hw
.init
= &(struct clk_init_data
){
2017 .name
= "gp3_clk_src",
2018 .parent_names
= gcc_xo_gpll0_gpll6_gpll0_sleep_clk
,
2020 .ops
= &clk_rcg2_ops
,
2024 static struct clk_branch gcc_blsp1_ahb_clk
= {
2025 .halt_reg
= 0x01008,
2027 .enable_reg
= 0x01008,
2028 .enable_mask
= BIT(0),
2029 .hw
.init
= &(struct clk_init_data
){
2030 .name
= "gcc_blsp1_ahb_clk",
2031 .parent_names
= (const char *[]){
2035 .flags
= CLK_SET_RATE_PARENT
,
2036 .ops
= &clk_branch2_ops
,
2041 static struct clk_branch gcc_blsp1_qup1_i2c_apps_clk
= {
2042 .halt_reg
= 0x02008,
2044 .enable_reg
= 0x02008,
2045 .enable_mask
= BIT(0),
2046 .hw
.init
= &(struct clk_init_data
){
2047 .name
= "gcc_blsp1_qup1_i2c_apps_clk",
2048 .parent_names
= (const char *[]){
2049 "blsp1_qup1_i2c_apps_clk_src"
2052 .flags
= CLK_SET_RATE_PARENT
,
2053 .ops
= &clk_branch2_ops
,
2058 static struct clk_branch gcc_blsp1_qup1_spi_apps_clk
= {
2059 .halt_reg
= 0x02004,
2061 .enable_reg
= 0x02004,
2062 .enable_mask
= BIT(0),
2063 .hw
.init
= &(struct clk_init_data
){
2064 .name
= "gcc_blsp1_qup1_spi_apps_clk",
2065 .parent_names
= (const char *[]){
2066 "blsp1_qup1_spi_apps_clk_src"
2069 .flags
= CLK_SET_RATE_PARENT
,
2070 .ops
= &clk_branch2_ops
,
2075 static struct clk_branch gcc_blsp1_qup2_i2c_apps_clk
= {
2076 .halt_reg
= 0x03010,
2078 .enable_reg
= 0x03010,
2079 .enable_mask
= BIT(0),
2080 .hw
.init
= &(struct clk_init_data
){
2081 .name
= "gcc_blsp1_qup2_i2c_apps_clk",
2082 .parent_names
= (const char *[]){
2083 "blsp1_qup2_i2c_apps_clk_src"
2086 .flags
= CLK_SET_RATE_PARENT
,
2087 .ops
= &clk_branch2_ops
,
2092 static struct clk_branch gcc_blsp1_qup2_spi_apps_clk
= {
2093 .halt_reg
= 0x0300c,
2095 .enable_reg
= 0x0300c,
2096 .enable_mask
= BIT(0),
2097 .hw
.init
= &(struct clk_init_data
){
2098 .name
= "gcc_blsp1_qup2_spi_apps_clk",
2099 .parent_names
= (const char *[]){
2100 "blsp1_qup2_spi_apps_clk_src"
2103 .flags
= CLK_SET_RATE_PARENT
,
2104 .ops
= &clk_branch2_ops
,
2109 static struct clk_branch gcc_blsp1_qup3_i2c_apps_clk
= {
2110 .halt_reg
= 0x04010,
2112 .enable_reg
= 0x04010,
2113 .enable_mask
= BIT(0),
2114 .hw
.init
= &(struct clk_init_data
){
2115 .name
= "gcc_blsp1_qup3_i2c_apps_clk",
2116 .parent_names
= (const char *[]){
2117 "blsp1_qup3_i2c_apps_clk_src"
2120 .flags
= CLK_SET_RATE_PARENT
,
2121 .ops
= &clk_branch2_ops
,
2126 static struct clk_branch gcc_blsp1_qup3_spi_apps_clk
= {
2127 .halt_reg
= 0x0400c,
2129 .enable_reg
= 0x0400c,
2130 .enable_mask
= BIT(0),
2131 .hw
.init
= &(struct clk_init_data
){
2132 .name
= "gcc_blsp1_qup3_spi_apps_clk",
2133 .parent_names
= (const char *[]){
2134 "blsp1_qup3_spi_apps_clk_src"
2137 .flags
= CLK_SET_RATE_PARENT
,
2138 .ops
= &clk_branch2_ops
,
2143 static struct clk_branch gcc_blsp1_qup4_i2c_apps_clk
= {
2144 .halt_reg
= 0x05010,
2146 .enable_reg
= 0x05010,
2147 .enable_mask
= BIT(0),
2148 .hw
.init
= &(struct clk_init_data
){
2149 .name
= "gcc_blsp1_qup4_i2c_apps_clk",
2150 .parent_names
= (const char *[]){
2151 "blsp1_qup4_i2c_apps_clk_src"
2154 .flags
= CLK_SET_RATE_PARENT
,
2155 .ops
= &clk_branch2_ops
,
2160 static struct clk_branch gcc_blsp1_qup4_spi_apps_clk
= {
2161 .halt_reg
= 0x0500c,
2163 .enable_reg
= 0x0500c,
2164 .enable_mask
= BIT(0),
2165 .hw
.init
= &(struct clk_init_data
){
2166 .name
= "gcc_blsp1_qup4_spi_apps_clk",
2167 .parent_names
= (const char *[]){
2168 "blsp1_qup4_spi_apps_clk_src"
2171 .flags
= CLK_SET_RATE_PARENT
,
2172 .ops
= &clk_branch2_ops
,
2177 static struct clk_branch gcc_blsp1_qup5_i2c_apps_clk
= {
2178 .halt_reg
= 0x06010,
2180 .enable_reg
= 0x06010,
2181 .enable_mask
= BIT(0),
2182 .hw
.init
= &(struct clk_init_data
){
2183 .name
= "gcc_blsp1_qup5_i2c_apps_clk",
2184 .parent_names
= (const char *[]){
2185 "blsp1_qup5_i2c_apps_clk_src"
2188 .flags
= CLK_SET_RATE_PARENT
,
2189 .ops
= &clk_branch2_ops
,
2194 static struct clk_branch gcc_blsp1_qup5_spi_apps_clk
= {
2195 .halt_reg
= 0x0600c,
2197 .enable_reg
= 0x0600c,
2198 .enable_mask
= BIT(0),
2199 .hw
.init
= &(struct clk_init_data
){
2200 .name
= "gcc_blsp1_qup5_spi_apps_clk",
2201 .parent_names
= (const char *[]){
2202 "blsp1_qup5_spi_apps_clk_src"
2205 .flags
= CLK_SET_RATE_PARENT
,
2206 .ops
= &clk_branch2_ops
,
2211 static struct clk_branch gcc_blsp1_qup6_i2c_apps_clk
= {
2212 .halt_reg
= 0x07010,
2214 .enable_reg
= 0x07010,
2215 .enable_mask
= BIT(0),
2216 .hw
.init
= &(struct clk_init_data
){
2217 .name
= "gcc_blsp1_qup6_i2c_apps_clk",
2218 .parent_names
= (const char *[]){
2219 "blsp1_qup6_i2c_apps_clk_src"
2222 .flags
= CLK_SET_RATE_PARENT
,
2223 .ops
= &clk_branch2_ops
,
2228 static struct clk_branch gcc_blsp1_qup6_spi_apps_clk
= {
2229 .halt_reg
= 0x0700c,
2231 .enable_reg
= 0x0700c,
2232 .enable_mask
= BIT(0),
2233 .hw
.init
= &(struct clk_init_data
){
2234 .name
= "gcc_blsp1_qup6_spi_apps_clk",
2235 .parent_names
= (const char *[]){
2236 "blsp1_qup6_spi_apps_clk_src"
2239 .flags
= CLK_SET_RATE_PARENT
,
2240 .ops
= &clk_branch2_ops
,
2245 static struct clk_branch gcc_blsp1_uart1_apps_clk
= {
2246 .halt_reg
= 0x0203c,
2248 .enable_reg
= 0x0203c,
2249 .enable_mask
= BIT(0),
2250 .hw
.init
= &(struct clk_init_data
){
2251 .name
= "gcc_blsp1_uart1_apps_clk",
2252 .parent_names
= (const char *[]){
2253 "blsp1_uart1_apps_clk_src"
2256 .flags
= CLK_SET_RATE_PARENT
,
2257 .ops
= &clk_branch2_ops
,
2262 static struct clk_branch gcc_blsp1_uart2_apps_clk
= {
2263 .halt_reg
= 0x0302c,
2265 .enable_reg
= 0x0302c,
2266 .enable_mask
= BIT(0),
2267 .hw
.init
= &(struct clk_init_data
){
2268 .name
= "gcc_blsp1_uart2_apps_clk",
2269 .parent_names
= (const char *[]){
2270 "blsp1_uart2_apps_clk_src"
2273 .flags
= CLK_SET_RATE_PARENT
,
2274 .ops
= &clk_branch2_ops
,
2279 static struct clk_branch gcc_blsp1_uart3_apps_clk
= {
2280 .halt_reg
= 0x0402c,
2282 .enable_reg
= 0x0402c,
2283 .enable_mask
= BIT(0),
2284 .hw
.init
= &(struct clk_init_data
){
2285 .name
= "gcc_blsp1_uart3_apps_clk",
2286 .parent_names
= (const char *[]){
2287 "blsp1_uart3_apps_clk_src"
2290 .flags
= CLK_SET_RATE_PARENT
,
2291 .ops
= &clk_branch2_ops
,
2296 static struct clk_branch gcc_blsp1_uart4_apps_clk
= {
2297 .halt_reg
= 0x0502c,
2299 .enable_reg
= 0x0502c,
2300 .enable_mask
= BIT(0),
2301 .hw
.init
= &(struct clk_init_data
){
2302 .name
= "gcc_blsp1_uart4_apps_clk",
2303 .parent_names
= (const char *[]){
2304 "blsp1_uart4_apps_clk_src"
2307 .flags
= CLK_SET_RATE_PARENT
,
2308 .ops
= &clk_branch2_ops
,
2313 static struct clk_branch gcc_blsp1_uart5_apps_clk
= {
2314 .halt_reg
= 0x0602c,
2316 .enable_reg
= 0x0602c,
2317 .enable_mask
= BIT(0),
2318 .hw
.init
= &(struct clk_init_data
){
2319 .name
= "gcc_blsp1_uart5_apps_clk",
2320 .parent_names
= (const char *[]){
2321 "blsp1_uart5_apps_clk_src"
2324 .flags
= CLK_SET_RATE_PARENT
,
2325 .ops
= &clk_branch2_ops
,
2330 static struct clk_branch gcc_blsp1_uart6_apps_clk
= {
2331 .halt_reg
= 0x0702c,
2333 .enable_reg
= 0x0702c,
2334 .enable_mask
= BIT(0),
2335 .hw
.init
= &(struct clk_init_data
){
2336 .name
= "gcc_blsp1_uart6_apps_clk",
2337 .parent_names
= (const char *[]){
2338 "blsp1_uart6_apps_clk_src"
2341 .flags
= CLK_SET_RATE_PARENT
,
2342 .ops
= &clk_branch2_ops
,
2347 static struct clk_branch gcc_prng_ahb_clk
= {
2348 .halt_reg
= 0x13004,
2349 .halt_check
= BRANCH_HALT_VOTED
,
2351 .enable_reg
= 0x0b004,
2352 .enable_mask
= BIT(8),
2353 .hw
.init
= &(struct clk_init_data
){
2354 .name
= "gcc_prng_ahb_clk",
2355 .parent_names
= (const char *[]){
2359 .flags
= CLK_SET_RATE_PARENT
,
2360 .ops
= &clk_branch2_ops
,
2365 static struct clk_branch gcc_qpic_ahb_clk
= {
2366 .halt_reg
= 0x57024,
2368 .enable_reg
= 0x57024,
2369 .enable_mask
= BIT(0),
2370 .hw
.init
= &(struct clk_init_data
){
2371 .name
= "gcc_qpic_ahb_clk",
2372 .parent_names
= (const char *[]){
2376 .flags
= CLK_SET_RATE_PARENT
,
2377 .ops
= &clk_branch2_ops
,
2382 static struct clk_branch gcc_qpic_clk
= {
2383 .halt_reg
= 0x57020,
2385 .enable_reg
= 0x57020,
2386 .enable_mask
= BIT(0),
2387 .hw
.init
= &(struct clk_init_data
){
2388 .name
= "gcc_qpic_clk",
2389 .parent_names
= (const char *[]){
2393 .flags
= CLK_SET_RATE_PARENT
,
2394 .ops
= &clk_branch2_ops
,
2399 static struct clk_branch gcc_pcie0_ahb_clk
= {
2400 .halt_reg
= 0x75010,
2402 .enable_reg
= 0x75010,
2403 .enable_mask
= BIT(0),
2404 .hw
.init
= &(struct clk_init_data
){
2405 .name
= "gcc_pcie0_ahb_clk",
2406 .parent_names
= (const char *[]){
2410 .flags
= CLK_SET_RATE_PARENT
,
2411 .ops
= &clk_branch2_ops
,
2416 static struct clk_branch gcc_pcie0_aux_clk
= {
2417 .halt_reg
= 0x75014,
2419 .enable_reg
= 0x75014,
2420 .enable_mask
= BIT(0),
2421 .hw
.init
= &(struct clk_init_data
){
2422 .name
= "gcc_pcie0_aux_clk",
2423 .parent_names
= (const char *[]){
2427 .flags
= CLK_SET_RATE_PARENT
,
2428 .ops
= &clk_branch2_ops
,
2433 static struct clk_branch gcc_pcie0_axi_m_clk
= {
2434 .halt_reg
= 0x75008,
2436 .enable_reg
= 0x75008,
2437 .enable_mask
= BIT(0),
2438 .hw
.init
= &(struct clk_init_data
){
2439 .name
= "gcc_pcie0_axi_m_clk",
2440 .parent_names
= (const char *[]){
2444 .flags
= CLK_SET_RATE_PARENT
,
2445 .ops
= &clk_branch2_ops
,
2450 static struct clk_branch gcc_pcie0_axi_s_clk
= {
2451 .halt_reg
= 0x7500c,
2453 .enable_reg
= 0x7500c,
2454 .enable_mask
= BIT(0),
2455 .hw
.init
= &(struct clk_init_data
){
2456 .name
= "gcc_pcie0_axi_s_clk",
2457 .parent_names
= (const char *[]){
2461 .flags
= CLK_SET_RATE_PARENT
,
2462 .ops
= &clk_branch2_ops
,
2467 static struct clk_branch gcc_pcie0_pipe_clk
= {
2468 .halt_reg
= 0x75018,
2469 .halt_check
= BRANCH_HALT_DELAY
,
2471 .enable_reg
= 0x75018,
2472 .enable_mask
= BIT(0),
2473 .hw
.init
= &(struct clk_init_data
){
2474 .name
= "gcc_pcie0_pipe_clk",
2475 .parent_names
= (const char *[]){
2476 "pcie0_pipe_clk_src"
2479 .flags
= CLK_SET_RATE_PARENT
,
2480 .ops
= &clk_branch2_ops
,
2485 static struct clk_branch gcc_sys_noc_pcie0_axi_clk
= {
2486 .halt_reg
= 0x26048,
2488 .enable_reg
= 0x26048,
2489 .enable_mask
= BIT(0),
2490 .hw
.init
= &(struct clk_init_data
){
2491 .name
= "gcc_sys_noc_pcie0_axi_clk",
2492 .parent_names
= (const char *[]){
2496 .flags
= CLK_SET_RATE_PARENT
,
2497 .ops
= &clk_branch2_ops
,
2502 static struct clk_branch gcc_pcie1_ahb_clk
= {
2503 .halt_reg
= 0x76010,
2505 .enable_reg
= 0x76010,
2506 .enable_mask
= BIT(0),
2507 .hw
.init
= &(struct clk_init_data
){
2508 .name
= "gcc_pcie1_ahb_clk",
2509 .parent_names
= (const char *[]){
2513 .flags
= CLK_SET_RATE_PARENT
,
2514 .ops
= &clk_branch2_ops
,
2519 static struct clk_branch gcc_pcie1_aux_clk
= {
2520 .halt_reg
= 0x76014,
2522 .enable_reg
= 0x76014,
2523 .enable_mask
= BIT(0),
2524 .hw
.init
= &(struct clk_init_data
){
2525 .name
= "gcc_pcie1_aux_clk",
2526 .parent_names
= (const char *[]){
2530 .flags
= CLK_SET_RATE_PARENT
,
2531 .ops
= &clk_branch2_ops
,
2536 static struct clk_branch gcc_pcie1_axi_m_clk
= {
2537 .halt_reg
= 0x76008,
2539 .enable_reg
= 0x76008,
2540 .enable_mask
= BIT(0),
2541 .hw
.init
= &(struct clk_init_data
){
2542 .name
= "gcc_pcie1_axi_m_clk",
2543 .parent_names
= (const char *[]){
2547 .flags
= CLK_SET_RATE_PARENT
,
2548 .ops
= &clk_branch2_ops
,
2553 static struct clk_branch gcc_pcie1_axi_s_clk
= {
2554 .halt_reg
= 0x7600c,
2556 .enable_reg
= 0x7600c,
2557 .enable_mask
= BIT(0),
2558 .hw
.init
= &(struct clk_init_data
){
2559 .name
= "gcc_pcie1_axi_s_clk",
2560 .parent_names
= (const char *[]){
2564 .flags
= CLK_SET_RATE_PARENT
,
2565 .ops
= &clk_branch2_ops
,
2570 static struct clk_branch gcc_pcie1_pipe_clk
= {
2571 .halt_reg
= 0x76018,
2572 .halt_check
= BRANCH_HALT_DELAY
,
2574 .enable_reg
= 0x76018,
2575 .enable_mask
= BIT(0),
2576 .hw
.init
= &(struct clk_init_data
){
2577 .name
= "gcc_pcie1_pipe_clk",
2578 .parent_names
= (const char *[]){
2579 "pcie1_pipe_clk_src"
2582 .flags
= CLK_SET_RATE_PARENT
,
2583 .ops
= &clk_branch2_ops
,
2588 static struct clk_branch gcc_sys_noc_pcie1_axi_clk
= {
2589 .halt_reg
= 0x2604c,
2591 .enable_reg
= 0x2604c,
2592 .enable_mask
= BIT(0),
2593 .hw
.init
= &(struct clk_init_data
){
2594 .name
= "gcc_sys_noc_pcie1_axi_clk",
2595 .parent_names
= (const char *[]){
2599 .flags
= CLK_SET_RATE_PARENT
,
2600 .ops
= &clk_branch2_ops
,
2605 static struct clk_branch gcc_usb0_aux_clk
= {
2606 .halt_reg
= 0x3e044,
2608 .enable_reg
= 0x3e044,
2609 .enable_mask
= BIT(0),
2610 .hw
.init
= &(struct clk_init_data
){
2611 .name
= "gcc_usb0_aux_clk",
2612 .parent_names
= (const char *[]){
2616 .flags
= CLK_SET_RATE_PARENT
,
2617 .ops
= &clk_branch2_ops
,
2622 static struct clk_branch gcc_sys_noc_usb0_axi_clk
= {
2623 .halt_reg
= 0x26040,
2625 .enable_reg
= 0x26040,
2626 .enable_mask
= BIT(0),
2627 .hw
.init
= &(struct clk_init_data
){
2628 .name
= "gcc_sys_noc_usb0_axi_clk",
2629 .parent_names
= (const char *[]){
2630 "usb0_master_clk_src"
2633 .flags
= CLK_SET_RATE_PARENT
,
2634 .ops
= &clk_branch2_ops
,
2639 static struct clk_branch gcc_usb0_master_clk
= {
2640 .halt_reg
= 0x3e000,
2642 .enable_reg
= 0x3e000,
2643 .enable_mask
= BIT(0),
2644 .hw
.init
= &(struct clk_init_data
){
2645 .name
= "gcc_usb0_master_clk",
2646 .parent_names
= (const char *[]){
2647 "usb0_master_clk_src"
2650 .flags
= CLK_SET_RATE_PARENT
,
2651 .ops
= &clk_branch2_ops
,
2656 static struct clk_branch gcc_usb0_mock_utmi_clk
= {
2657 .halt_reg
= 0x3e008,
2659 .enable_reg
= 0x3e008,
2660 .enable_mask
= BIT(0),
2661 .hw
.init
= &(struct clk_init_data
){
2662 .name
= "gcc_usb0_mock_utmi_clk",
2663 .parent_names
= (const char *[]){
2664 "usb0_mock_utmi_clk_src"
2667 .flags
= CLK_SET_RATE_PARENT
,
2668 .ops
= &clk_branch2_ops
,
2673 static struct clk_branch gcc_usb0_phy_cfg_ahb_clk
= {
2674 .halt_reg
= 0x3e080,
2676 .enable_reg
= 0x3e080,
2677 .enable_mask
= BIT(0),
2678 .hw
.init
= &(struct clk_init_data
){
2679 .name
= "gcc_usb0_phy_cfg_ahb_clk",
2680 .parent_names
= (const char *[]){
2684 .flags
= CLK_SET_RATE_PARENT
,
2685 .ops
= &clk_branch2_ops
,
2690 static struct clk_branch gcc_usb0_pipe_clk
= {
2691 .halt_reg
= 0x3e040,
2692 .halt_check
= BRANCH_HALT_DELAY
,
2694 .enable_reg
= 0x3e040,
2695 .enable_mask
= BIT(0),
2696 .hw
.init
= &(struct clk_init_data
){
2697 .name
= "gcc_usb0_pipe_clk",
2698 .parent_names
= (const char *[]){
2702 .flags
= CLK_SET_RATE_PARENT
,
2703 .ops
= &clk_branch2_ops
,
2708 static struct clk_branch gcc_usb0_sleep_clk
= {
2709 .halt_reg
= 0x3e004,
2711 .enable_reg
= 0x3e004,
2712 .enable_mask
= BIT(0),
2713 .hw
.init
= &(struct clk_init_data
){
2714 .name
= "gcc_usb0_sleep_clk",
2715 .parent_names
= (const char *[]){
2719 .flags
= CLK_SET_RATE_PARENT
,
2720 .ops
= &clk_branch2_ops
,
2725 static struct clk_branch gcc_usb1_aux_clk
= {
2726 .halt_reg
= 0x3f044,
2728 .enable_reg
= 0x3f044,
2729 .enable_mask
= BIT(0),
2730 .hw
.init
= &(struct clk_init_data
){
2731 .name
= "gcc_usb1_aux_clk",
2732 .parent_names
= (const char *[]){
2736 .flags
= CLK_SET_RATE_PARENT
,
2737 .ops
= &clk_branch2_ops
,
2742 static struct clk_branch gcc_sys_noc_usb1_axi_clk
= {
2743 .halt_reg
= 0x26044,
2745 .enable_reg
= 0x26044,
2746 .enable_mask
= BIT(0),
2747 .hw
.init
= &(struct clk_init_data
){
2748 .name
= "gcc_sys_noc_usb1_axi_clk",
2749 .parent_names
= (const char *[]){
2750 "usb1_master_clk_src"
2753 .flags
= CLK_SET_RATE_PARENT
,
2754 .ops
= &clk_branch2_ops
,
2759 static struct clk_branch gcc_usb1_master_clk
= {
2760 .halt_reg
= 0x3f000,
2762 .enable_reg
= 0x3f000,
2763 .enable_mask
= BIT(0),
2764 .hw
.init
= &(struct clk_init_data
){
2765 .name
= "gcc_usb1_master_clk",
2766 .parent_names
= (const char *[]){
2767 "usb1_master_clk_src"
2770 .flags
= CLK_SET_RATE_PARENT
,
2771 .ops
= &clk_branch2_ops
,
2776 static struct clk_branch gcc_usb1_mock_utmi_clk
= {
2777 .halt_reg
= 0x3f008,
2779 .enable_reg
= 0x3f008,
2780 .enable_mask
= BIT(0),
2781 .hw
.init
= &(struct clk_init_data
){
2782 .name
= "gcc_usb1_mock_utmi_clk",
2783 .parent_names
= (const char *[]){
2784 "usb1_mock_utmi_clk_src"
2787 .flags
= CLK_SET_RATE_PARENT
,
2788 .ops
= &clk_branch2_ops
,
2793 static struct clk_branch gcc_usb1_phy_cfg_ahb_clk
= {
2794 .halt_reg
= 0x3f080,
2796 .enable_reg
= 0x3f080,
2797 .enable_mask
= BIT(0),
2798 .hw
.init
= &(struct clk_init_data
){
2799 .name
= "gcc_usb1_phy_cfg_ahb_clk",
2800 .parent_names
= (const char *[]){
2804 .flags
= CLK_SET_RATE_PARENT
,
2805 .ops
= &clk_branch2_ops
,
2810 static struct clk_branch gcc_usb1_pipe_clk
= {
2811 .halt_reg
= 0x3f040,
2812 .halt_check
= BRANCH_HALT_DELAY
,
2814 .enable_reg
= 0x3f040,
2815 .enable_mask
= BIT(0),
2816 .hw
.init
= &(struct clk_init_data
){
2817 .name
= "gcc_usb1_pipe_clk",
2818 .parent_names
= (const char *[]){
2822 .flags
= CLK_SET_RATE_PARENT
,
2823 .ops
= &clk_branch2_ops
,
2828 static struct clk_branch gcc_usb1_sleep_clk
= {
2829 .halt_reg
= 0x3f004,
2831 .enable_reg
= 0x3f004,
2832 .enable_mask
= BIT(0),
2833 .hw
.init
= &(struct clk_init_data
){
2834 .name
= "gcc_usb1_sleep_clk",
2835 .parent_names
= (const char *[]){
2839 .flags
= CLK_SET_RATE_PARENT
,
2840 .ops
= &clk_branch2_ops
,
2845 static struct clk_branch gcc_sdcc1_ahb_clk
= {
2846 .halt_reg
= 0x4201c,
2848 .enable_reg
= 0x4201c,
2849 .enable_mask
= BIT(0),
2850 .hw
.init
= &(struct clk_init_data
){
2851 .name
= "gcc_sdcc1_ahb_clk",
2852 .parent_names
= (const char *[]){
2856 .flags
= CLK_SET_RATE_PARENT
,
2857 .ops
= &clk_branch2_ops
,
2862 static struct clk_branch gcc_sdcc1_apps_clk
= {
2863 .halt_reg
= 0x42018,
2865 .enable_reg
= 0x42018,
2866 .enable_mask
= BIT(0),
2867 .hw
.init
= &(struct clk_init_data
){
2868 .name
= "gcc_sdcc1_apps_clk",
2869 .parent_names
= (const char *[]){
2870 "sdcc1_apps_clk_src"
2873 .flags
= CLK_SET_RATE_PARENT
,
2874 .ops
= &clk_branch2_ops
,
2879 static struct clk_branch gcc_sdcc1_ice_core_clk
= {
2880 .halt_reg
= 0x5d014,
2882 .enable_reg
= 0x5d014,
2883 .enable_mask
= BIT(0),
2884 .hw
.init
= &(struct clk_init_data
){
2885 .name
= "gcc_sdcc1_ice_core_clk",
2886 .parent_names
= (const char *[]){
2887 "sdcc1_ice_core_clk_src"
2890 .flags
= CLK_SET_RATE_PARENT
,
2891 .ops
= &clk_branch2_ops
,
2896 static struct clk_branch gcc_sdcc2_ahb_clk
= {
2897 .halt_reg
= 0x4301c,
2899 .enable_reg
= 0x4301c,
2900 .enable_mask
= BIT(0),
2901 .hw
.init
= &(struct clk_init_data
){
2902 .name
= "gcc_sdcc2_ahb_clk",
2903 .parent_names
= (const char *[]){
2907 .flags
= CLK_SET_RATE_PARENT
,
2908 .ops
= &clk_branch2_ops
,
2913 static struct clk_branch gcc_sdcc2_apps_clk
= {
2914 .halt_reg
= 0x43018,
2916 .enable_reg
= 0x43018,
2917 .enable_mask
= BIT(0),
2918 .hw
.init
= &(struct clk_init_data
){
2919 .name
= "gcc_sdcc2_apps_clk",
2920 .parent_names
= (const char *[]){
2921 "sdcc2_apps_clk_src"
2924 .flags
= CLK_SET_RATE_PARENT
,
2925 .ops
= &clk_branch2_ops
,
2930 static struct clk_branch gcc_mem_noc_nss_axi_clk
= {
2931 .halt_reg
= 0x1d03c,
2933 .enable_reg
= 0x1d03c,
2934 .enable_mask
= BIT(0),
2935 .hw
.init
= &(struct clk_init_data
){
2936 .name
= "gcc_mem_noc_nss_axi_clk",
2937 .parent_names
= (const char *[]){
2941 .flags
= CLK_SET_RATE_PARENT
,
2942 .ops
= &clk_branch2_ops
,
2947 static struct clk_branch gcc_nss_ce_apb_clk
= {
2948 .halt_reg
= 0x68174,
2950 .enable_reg
= 0x68174,
2951 .enable_mask
= BIT(0),
2952 .hw
.init
= &(struct clk_init_data
){
2953 .name
= "gcc_nss_ce_apb_clk",
2954 .parent_names
= (const char *[]){
2958 .flags
= CLK_SET_RATE_PARENT
,
2959 .ops
= &clk_branch2_ops
,
2964 static struct clk_branch gcc_nss_ce_axi_clk
= {
2965 .halt_reg
= 0x68170,
2967 .enable_reg
= 0x68170,
2968 .enable_mask
= BIT(0),
2969 .hw
.init
= &(struct clk_init_data
){
2970 .name
= "gcc_nss_ce_axi_clk",
2971 .parent_names
= (const char *[]){
2975 .flags
= CLK_SET_RATE_PARENT
,
2976 .ops
= &clk_branch2_ops
,
2981 static struct clk_branch gcc_nss_cfg_clk
= {
2982 .halt_reg
= 0x68160,
2984 .enable_reg
= 0x68160,
2985 .enable_mask
= BIT(0),
2986 .hw
.init
= &(struct clk_init_data
){
2987 .name
= "gcc_nss_cfg_clk",
2988 .parent_names
= (const char *[]){
2992 .flags
= CLK_SET_RATE_PARENT
,
2993 .ops
= &clk_branch2_ops
,
2998 static struct clk_branch gcc_nss_crypto_clk
= {
2999 .halt_reg
= 0x68164,
3001 .enable_reg
= 0x68164,
3002 .enable_mask
= BIT(0),
3003 .hw
.init
= &(struct clk_init_data
){
3004 .name
= "gcc_nss_crypto_clk",
3005 .parent_names
= (const char *[]){
3006 "nss_crypto_clk_src"
3009 .flags
= CLK_SET_RATE_PARENT
,
3010 .ops
= &clk_branch2_ops
,
3015 static struct clk_branch gcc_nss_csr_clk
= {
3016 .halt_reg
= 0x68318,
3018 .enable_reg
= 0x68318,
3019 .enable_mask
= BIT(0),
3020 .hw
.init
= &(struct clk_init_data
){
3021 .name
= "gcc_nss_csr_clk",
3022 .parent_names
= (const char *[]){
3026 .flags
= CLK_SET_RATE_PARENT
,
3027 .ops
= &clk_branch2_ops
,
3032 static struct clk_branch gcc_nss_edma_cfg_clk
= {
3033 .halt_reg
= 0x6819c,
3035 .enable_reg
= 0x6819c,
3036 .enable_mask
= BIT(0),
3037 .hw
.init
= &(struct clk_init_data
){
3038 .name
= "gcc_nss_edma_cfg_clk",
3039 .parent_names
= (const char *[]){
3043 .flags
= CLK_SET_RATE_PARENT
,
3044 .ops
= &clk_branch2_ops
,
3049 static struct clk_branch gcc_nss_edma_clk
= {
3050 .halt_reg
= 0x68198,
3052 .enable_reg
= 0x68198,
3053 .enable_mask
= BIT(0),
3054 .hw
.init
= &(struct clk_init_data
){
3055 .name
= "gcc_nss_edma_clk",
3056 .parent_names
= (const char *[]){
3060 .flags
= CLK_SET_RATE_PARENT
,
3061 .ops
= &clk_branch2_ops
,
3066 static struct clk_branch gcc_nss_imem_clk
= {
3067 .halt_reg
= 0x68178,
3069 .enable_reg
= 0x68178,
3070 .enable_mask
= BIT(0),
3071 .hw
.init
= &(struct clk_init_data
){
3072 .name
= "gcc_nss_imem_clk",
3073 .parent_names
= (const char *[]){
3077 .flags
= CLK_SET_RATE_PARENT
,
3078 .ops
= &clk_branch2_ops
,
3083 static struct clk_branch gcc_nss_noc_clk
= {
3084 .halt_reg
= 0x68168,
3086 .enable_reg
= 0x68168,
3087 .enable_mask
= BIT(0),
3088 .hw
.init
= &(struct clk_init_data
){
3089 .name
= "gcc_nss_noc_clk",
3090 .parent_names
= (const char *[]){
3094 .flags
= CLK_SET_RATE_PARENT
,
3095 .ops
= &clk_branch2_ops
,
3100 static struct clk_branch gcc_nss_ppe_btq_clk
= {
3101 .halt_reg
= 0x6833c,
3103 .enable_reg
= 0x6833c,
3104 .enable_mask
= BIT(0),
3105 .hw
.init
= &(struct clk_init_data
){
3106 .name
= "gcc_nss_ppe_btq_clk",
3107 .parent_names
= (const char *[]){
3111 .flags
= CLK_SET_RATE_PARENT
,
3112 .ops
= &clk_branch2_ops
,
3117 static struct clk_branch gcc_nss_ppe_cfg_clk
= {
3118 .halt_reg
= 0x68194,
3120 .enable_reg
= 0x68194,
3121 .enable_mask
= BIT(0),
3122 .hw
.init
= &(struct clk_init_data
){
3123 .name
= "gcc_nss_ppe_cfg_clk",
3124 .parent_names
= (const char *[]){
3128 .flags
= CLK_SET_RATE_PARENT
,
3129 .ops
= &clk_branch2_ops
,
3134 static struct clk_branch gcc_nss_ppe_clk
= {
3135 .halt_reg
= 0x68190,
3137 .enable_reg
= 0x68190,
3138 .enable_mask
= BIT(0),
3139 .hw
.init
= &(struct clk_init_data
){
3140 .name
= "gcc_nss_ppe_clk",
3141 .parent_names
= (const char *[]){
3145 .flags
= CLK_SET_RATE_PARENT
,
3146 .ops
= &clk_branch2_ops
,
3151 static struct clk_branch gcc_nss_ppe_ipe_clk
= {
3152 .halt_reg
= 0x68338,
3154 .enable_reg
= 0x68338,
3155 .enable_mask
= BIT(0),
3156 .hw
.init
= &(struct clk_init_data
){
3157 .name
= "gcc_nss_ppe_ipe_clk",
3158 .parent_names
= (const char *[]){
3162 .flags
= CLK_SET_RATE_PARENT
,
3163 .ops
= &clk_branch2_ops
,
3168 static struct clk_branch gcc_nss_ptp_ref_clk
= {
3169 .halt_reg
= 0x6816c,
3171 .enable_reg
= 0x6816c,
3172 .enable_mask
= BIT(0),
3173 .hw
.init
= &(struct clk_init_data
){
3174 .name
= "gcc_nss_ptp_ref_clk",
3175 .parent_names
= (const char *[]){
3176 "nss_ppe_cdiv_clk_src"
3179 .flags
= CLK_SET_RATE_PARENT
,
3180 .ops
= &clk_branch2_ops
,
3185 static struct clk_branch gcc_nssnoc_ce_apb_clk
= {
3186 .halt_reg
= 0x6830c,
3188 .enable_reg
= 0x6830c,
3189 .enable_mask
= BIT(0),
3190 .hw
.init
= &(struct clk_init_data
){
3191 .name
= "gcc_nssnoc_ce_apb_clk",
3192 .parent_names
= (const char *[]){
3196 .flags
= CLK_SET_RATE_PARENT
,
3197 .ops
= &clk_branch2_ops
,
3202 static struct clk_branch gcc_nssnoc_ce_axi_clk
= {
3203 .halt_reg
= 0x68308,
3205 .enable_reg
= 0x68308,
3206 .enable_mask
= BIT(0),
3207 .hw
.init
= &(struct clk_init_data
){
3208 .name
= "gcc_nssnoc_ce_axi_clk",
3209 .parent_names
= (const char *[]){
3213 .flags
= CLK_SET_RATE_PARENT
,
3214 .ops
= &clk_branch2_ops
,
3219 static struct clk_branch gcc_nssnoc_crypto_clk
= {
3220 .halt_reg
= 0x68314,
3222 .enable_reg
= 0x68314,
3223 .enable_mask
= BIT(0),
3224 .hw
.init
= &(struct clk_init_data
){
3225 .name
= "gcc_nssnoc_crypto_clk",
3226 .parent_names
= (const char *[]){
3227 "nss_crypto_clk_src"
3230 .flags
= CLK_SET_RATE_PARENT
,
3231 .ops
= &clk_branch2_ops
,
3236 static struct clk_branch gcc_nssnoc_ppe_cfg_clk
= {
3237 .halt_reg
= 0x68304,
3239 .enable_reg
= 0x68304,
3240 .enable_mask
= BIT(0),
3241 .hw
.init
= &(struct clk_init_data
){
3242 .name
= "gcc_nssnoc_ppe_cfg_clk",
3243 .parent_names
= (const char *[]){
3247 .flags
= CLK_SET_RATE_PARENT
,
3248 .ops
= &clk_branch2_ops
,
3253 static struct clk_branch gcc_nssnoc_ppe_clk
= {
3254 .halt_reg
= 0x68300,
3256 .enable_reg
= 0x68300,
3257 .enable_mask
= BIT(0),
3258 .hw
.init
= &(struct clk_init_data
){
3259 .name
= "gcc_nssnoc_ppe_clk",
3260 .parent_names
= (const char *[]){
3264 .flags
= CLK_SET_RATE_PARENT
,
3265 .ops
= &clk_branch2_ops
,
3270 static struct clk_branch gcc_nssnoc_qosgen_ref_clk
= {
3271 .halt_reg
= 0x68180,
3273 .enable_reg
= 0x68180,
3274 .enable_mask
= BIT(0),
3275 .hw
.init
= &(struct clk_init_data
){
3276 .name
= "gcc_nssnoc_qosgen_ref_clk",
3277 .parent_names
= (const char *[]){
3281 .flags
= CLK_SET_RATE_PARENT
,
3282 .ops
= &clk_branch2_ops
,
3287 static struct clk_branch gcc_nssnoc_snoc_clk
= {
3288 .halt_reg
= 0x68188,
3290 .enable_reg
= 0x68188,
3291 .enable_mask
= BIT(0),
3292 .hw
.init
= &(struct clk_init_data
){
3293 .name
= "gcc_nssnoc_snoc_clk",
3294 .parent_names
= (const char *[]){
3295 "system_noc_clk_src"
3298 .flags
= CLK_SET_RATE_PARENT
,
3299 .ops
= &clk_branch2_ops
,
3304 static struct clk_branch gcc_nssnoc_timeout_ref_clk
= {
3305 .halt_reg
= 0x68184,
3307 .enable_reg
= 0x68184,
3308 .enable_mask
= BIT(0),
3309 .hw
.init
= &(struct clk_init_data
){
3310 .name
= "gcc_nssnoc_timeout_ref_clk",
3311 .parent_names
= (const char *[]){
3312 "gcc_xo_div4_clk_src"
3315 .flags
= CLK_SET_RATE_PARENT
,
3316 .ops
= &clk_branch2_ops
,
3321 static struct clk_branch gcc_nssnoc_ubi0_ahb_clk
= {
3322 .halt_reg
= 0x68270,
3324 .enable_reg
= 0x68270,
3325 .enable_mask
= BIT(0),
3326 .hw
.init
= &(struct clk_init_data
){
3327 .name
= "gcc_nssnoc_ubi0_ahb_clk",
3328 .parent_names
= (const char *[]){
3332 .flags
= CLK_SET_RATE_PARENT
,
3333 .ops
= &clk_branch2_ops
,
3338 static struct clk_branch gcc_nssnoc_ubi1_ahb_clk
= {
3339 .halt_reg
= 0x68274,
3341 .enable_reg
= 0x68274,
3342 .enable_mask
= BIT(0),
3343 .hw
.init
= &(struct clk_init_data
){
3344 .name
= "gcc_nssnoc_ubi1_ahb_clk",
3345 .parent_names
= (const char *[]){
3349 .flags
= CLK_SET_RATE_PARENT
,
3350 .ops
= &clk_branch2_ops
,
3355 static struct clk_branch gcc_ubi0_ahb_clk
= {
3356 .halt_reg
= 0x6820c,
3358 .enable_reg
= 0x6820c,
3359 .enable_mask
= BIT(0),
3360 .hw
.init
= &(struct clk_init_data
){
3361 .name
= "gcc_ubi0_ahb_clk",
3362 .parent_names
= (const char *[]){
3366 .flags
= CLK_SET_RATE_PARENT
,
3367 .ops
= &clk_branch2_ops
,
3372 static struct clk_branch gcc_ubi0_axi_clk
= {
3373 .halt_reg
= 0x68200,
3375 .enable_reg
= 0x68200,
3376 .enable_mask
= BIT(0),
3377 .hw
.init
= &(struct clk_init_data
){
3378 .name
= "gcc_ubi0_axi_clk",
3379 .parent_names
= (const char *[]){
3383 .flags
= CLK_SET_RATE_PARENT
,
3384 .ops
= &clk_branch2_ops
,
3389 static struct clk_branch gcc_ubi0_nc_axi_clk
= {
3390 .halt_reg
= 0x68204,
3392 .enable_reg
= 0x68204,
3393 .enable_mask
= BIT(0),
3394 .hw
.init
= &(struct clk_init_data
){
3395 .name
= "gcc_ubi0_nc_axi_clk",
3396 .parent_names
= (const char *[]){
3400 .flags
= CLK_SET_RATE_PARENT
,
3401 .ops
= &clk_branch2_ops
,
3406 static struct clk_branch gcc_ubi0_core_clk
= {
3407 .halt_reg
= 0x68210,
3409 .enable_reg
= 0x68210,
3410 .enable_mask
= BIT(0),
3411 .hw
.init
= &(struct clk_init_data
){
3412 .name
= "gcc_ubi0_core_clk",
3413 .parent_names
= (const char *[]){
3414 "nss_ubi0_div_clk_src"
3417 .flags
= CLK_SET_RATE_PARENT
,
3418 .ops
= &clk_branch2_ops
,
3423 static struct clk_branch gcc_ubi0_mpt_clk
= {
3424 .halt_reg
= 0x68208,
3426 .enable_reg
= 0x68208,
3427 .enable_mask
= BIT(0),
3428 .hw
.init
= &(struct clk_init_data
){
3429 .name
= "gcc_ubi0_mpt_clk",
3430 .parent_names
= (const char *[]){
3434 .flags
= CLK_SET_RATE_PARENT
,
3435 .ops
= &clk_branch2_ops
,
3440 static struct clk_branch gcc_ubi1_ahb_clk
= {
3441 .halt_reg
= 0x6822c,
3443 .enable_reg
= 0x6822c,
3444 .enable_mask
= BIT(0),
3445 .hw
.init
= &(struct clk_init_data
){
3446 .name
= "gcc_ubi1_ahb_clk",
3447 .parent_names
= (const char *[]){
3451 .flags
= CLK_SET_RATE_PARENT
,
3452 .ops
= &clk_branch2_ops
,
3457 static struct clk_branch gcc_ubi1_axi_clk
= {
3458 .halt_reg
= 0x68220,
3460 .enable_reg
= 0x68220,
3461 .enable_mask
= BIT(0),
3462 .hw
.init
= &(struct clk_init_data
){
3463 .name
= "gcc_ubi1_axi_clk",
3464 .parent_names
= (const char *[]){
3468 .flags
= CLK_SET_RATE_PARENT
,
3469 .ops
= &clk_branch2_ops
,
3474 static struct clk_branch gcc_ubi1_nc_axi_clk
= {
3475 .halt_reg
= 0x68224,
3477 .enable_reg
= 0x68224,
3478 .enable_mask
= BIT(0),
3479 .hw
.init
= &(struct clk_init_data
){
3480 .name
= "gcc_ubi1_nc_axi_clk",
3481 .parent_names
= (const char *[]){
3485 .flags
= CLK_SET_RATE_PARENT
,
3486 .ops
= &clk_branch2_ops
,
3491 static struct clk_branch gcc_ubi1_core_clk
= {
3492 .halt_reg
= 0x68230,
3494 .enable_reg
= 0x68230,
3495 .enable_mask
= BIT(0),
3496 .hw
.init
= &(struct clk_init_data
){
3497 .name
= "gcc_ubi1_core_clk",
3498 .parent_names
= (const char *[]){
3499 "nss_ubi1_div_clk_src"
3502 .flags
= CLK_SET_RATE_PARENT
,
3503 .ops
= &clk_branch2_ops
,
3508 static struct clk_branch gcc_ubi1_mpt_clk
= {
3509 .halt_reg
= 0x68228,
3511 .enable_reg
= 0x68228,
3512 .enable_mask
= BIT(0),
3513 .hw
.init
= &(struct clk_init_data
){
3514 .name
= "gcc_ubi1_mpt_clk",
3515 .parent_names
= (const char *[]){
3519 .flags
= CLK_SET_RATE_PARENT
,
3520 .ops
= &clk_branch2_ops
,
3525 static struct clk_branch gcc_cmn_12gpll_ahb_clk
= {
3526 .halt_reg
= 0x56308,
3528 .enable_reg
= 0x56308,
3529 .enable_mask
= BIT(0),
3530 .hw
.init
= &(struct clk_init_data
){
3531 .name
= "gcc_cmn_12gpll_ahb_clk",
3532 .parent_names
= (const char *[]){
3536 .flags
= CLK_SET_RATE_PARENT
,
3537 .ops
= &clk_branch2_ops
,
3542 static struct clk_branch gcc_cmn_12gpll_sys_clk
= {
3543 .halt_reg
= 0x5630c,
3545 .enable_reg
= 0x5630c,
3546 .enable_mask
= BIT(0),
3547 .hw
.init
= &(struct clk_init_data
){
3548 .name
= "gcc_cmn_12gpll_sys_clk",
3549 .parent_names
= (const char *[]){
3553 .flags
= CLK_SET_RATE_PARENT
,
3554 .ops
= &clk_branch2_ops
,
3559 static struct clk_branch gcc_mdio_ahb_clk
= {
3560 .halt_reg
= 0x58004,
3562 .enable_reg
= 0x58004,
3563 .enable_mask
= BIT(0),
3564 .hw
.init
= &(struct clk_init_data
){
3565 .name
= "gcc_mdio_ahb_clk",
3566 .parent_names
= (const char *[]){
3570 .flags
= CLK_SET_RATE_PARENT
,
3571 .ops
= &clk_branch2_ops
,
3576 static struct clk_branch gcc_uniphy0_ahb_clk
= {
3577 .halt_reg
= 0x56008,
3579 .enable_reg
= 0x56008,
3580 .enable_mask
= BIT(0),
3581 .hw
.init
= &(struct clk_init_data
){
3582 .name
= "gcc_uniphy0_ahb_clk",
3583 .parent_names
= (const char *[]){
3587 .flags
= CLK_SET_RATE_PARENT
,
3588 .ops
= &clk_branch2_ops
,
3593 static struct clk_branch gcc_uniphy0_sys_clk
= {
3594 .halt_reg
= 0x5600c,
3596 .enable_reg
= 0x5600c,
3597 .enable_mask
= BIT(0),
3598 .hw
.init
= &(struct clk_init_data
){
3599 .name
= "gcc_uniphy0_sys_clk",
3600 .parent_names
= (const char *[]){
3604 .flags
= CLK_SET_RATE_PARENT
,
3605 .ops
= &clk_branch2_ops
,
3610 static struct clk_branch gcc_uniphy1_ahb_clk
= {
3611 .halt_reg
= 0x56108,
3613 .enable_reg
= 0x56108,
3614 .enable_mask
= BIT(0),
3615 .hw
.init
= &(struct clk_init_data
){
3616 .name
= "gcc_uniphy1_ahb_clk",
3617 .parent_names
= (const char *[]){
3621 .flags
= CLK_SET_RATE_PARENT
,
3622 .ops
= &clk_branch2_ops
,
3627 static struct clk_branch gcc_uniphy1_sys_clk
= {
3628 .halt_reg
= 0x5610c,
3630 .enable_reg
= 0x5610c,
3631 .enable_mask
= BIT(0),
3632 .hw
.init
= &(struct clk_init_data
){
3633 .name
= "gcc_uniphy1_sys_clk",
3634 .parent_names
= (const char *[]){
3638 .flags
= CLK_SET_RATE_PARENT
,
3639 .ops
= &clk_branch2_ops
,
3644 static struct clk_branch gcc_uniphy2_ahb_clk
= {
3645 .halt_reg
= 0x56208,
3647 .enable_reg
= 0x56208,
3648 .enable_mask
= BIT(0),
3649 .hw
.init
= &(struct clk_init_data
){
3650 .name
= "gcc_uniphy2_ahb_clk",
3651 .parent_names
= (const char *[]){
3655 .flags
= CLK_SET_RATE_PARENT
,
3656 .ops
= &clk_branch2_ops
,
3661 static struct clk_branch gcc_uniphy2_sys_clk
= {
3662 .halt_reg
= 0x5620c,
3664 .enable_reg
= 0x5620c,
3665 .enable_mask
= BIT(0),
3666 .hw
.init
= &(struct clk_init_data
){
3667 .name
= "gcc_uniphy2_sys_clk",
3668 .parent_names
= (const char *[]){
3672 .flags
= CLK_SET_RATE_PARENT
,
3673 .ops
= &clk_branch2_ops
,
3678 static struct clk_branch gcc_nss_port1_rx_clk
= {
3679 .halt_reg
= 0x68240,
3681 .enable_reg
= 0x68240,
3682 .enable_mask
= BIT(0),
3683 .hw
.init
= &(struct clk_init_data
){
3684 .name
= "gcc_nss_port1_rx_clk",
3685 .parent_names
= (const char *[]){
3686 "nss_port1_rx_div_clk_src"
3689 .flags
= CLK_SET_RATE_PARENT
,
3690 .ops
= &clk_branch2_ops
,
3695 static struct clk_branch gcc_nss_port1_tx_clk
= {
3696 .halt_reg
= 0x68244,
3698 .enable_reg
= 0x68244,
3699 .enable_mask
= BIT(0),
3700 .hw
.init
= &(struct clk_init_data
){
3701 .name
= "gcc_nss_port1_tx_clk",
3702 .parent_names
= (const char *[]){
3703 "nss_port1_tx_div_clk_src"
3706 .flags
= CLK_SET_RATE_PARENT
,
3707 .ops
= &clk_branch2_ops
,
3712 static struct clk_branch gcc_nss_port2_rx_clk
= {
3713 .halt_reg
= 0x68248,
3715 .enable_reg
= 0x68248,
3716 .enable_mask
= BIT(0),
3717 .hw
.init
= &(struct clk_init_data
){
3718 .name
= "gcc_nss_port2_rx_clk",
3719 .parent_names
= (const char *[]){
3720 "nss_port2_rx_div_clk_src"
3723 .flags
= CLK_SET_RATE_PARENT
,
3724 .ops
= &clk_branch2_ops
,
3729 static struct clk_branch gcc_nss_port2_tx_clk
= {
3730 .halt_reg
= 0x6824c,
3732 .enable_reg
= 0x6824c,
3733 .enable_mask
= BIT(0),
3734 .hw
.init
= &(struct clk_init_data
){
3735 .name
= "gcc_nss_port2_tx_clk",
3736 .parent_names
= (const char *[]){
3737 "nss_port2_tx_div_clk_src"
3740 .flags
= CLK_SET_RATE_PARENT
,
3741 .ops
= &clk_branch2_ops
,
3746 static struct clk_branch gcc_nss_port3_rx_clk
= {
3747 .halt_reg
= 0x68250,
3749 .enable_reg
= 0x68250,
3750 .enable_mask
= BIT(0),
3751 .hw
.init
= &(struct clk_init_data
){
3752 .name
= "gcc_nss_port3_rx_clk",
3753 .parent_names
= (const char *[]){
3754 "nss_port3_rx_div_clk_src"
3757 .flags
= CLK_SET_RATE_PARENT
,
3758 .ops
= &clk_branch2_ops
,
3763 static struct clk_branch gcc_nss_port3_tx_clk
= {
3764 .halt_reg
= 0x68254,
3766 .enable_reg
= 0x68254,
3767 .enable_mask
= BIT(0),
3768 .hw
.init
= &(struct clk_init_data
){
3769 .name
= "gcc_nss_port3_tx_clk",
3770 .parent_names
= (const char *[]){
3771 "nss_port3_tx_div_clk_src"
3774 .flags
= CLK_SET_RATE_PARENT
,
3775 .ops
= &clk_branch2_ops
,
3780 static struct clk_branch gcc_nss_port4_rx_clk
= {
3781 .halt_reg
= 0x68258,
3783 .enable_reg
= 0x68258,
3784 .enable_mask
= BIT(0),
3785 .hw
.init
= &(struct clk_init_data
){
3786 .name
= "gcc_nss_port4_rx_clk",
3787 .parent_names
= (const char *[]){
3788 "nss_port4_rx_div_clk_src"
3791 .flags
= CLK_SET_RATE_PARENT
,
3792 .ops
= &clk_branch2_ops
,
3797 static struct clk_branch gcc_nss_port4_tx_clk
= {
3798 .halt_reg
= 0x6825c,
3800 .enable_reg
= 0x6825c,
3801 .enable_mask
= BIT(0),
3802 .hw
.init
= &(struct clk_init_data
){
3803 .name
= "gcc_nss_port4_tx_clk",
3804 .parent_names
= (const char *[]){
3805 "nss_port4_tx_div_clk_src"
3808 .flags
= CLK_SET_RATE_PARENT
,
3809 .ops
= &clk_branch2_ops
,
3814 static struct clk_branch gcc_nss_port5_rx_clk
= {
3815 .halt_reg
= 0x68260,
3817 .enable_reg
= 0x68260,
3818 .enable_mask
= BIT(0),
3819 .hw
.init
= &(struct clk_init_data
){
3820 .name
= "gcc_nss_port5_rx_clk",
3821 .parent_names
= (const char *[]){
3822 "nss_port5_rx_div_clk_src"
3825 .flags
= CLK_SET_RATE_PARENT
,
3826 .ops
= &clk_branch2_ops
,
3831 static struct clk_branch gcc_nss_port5_tx_clk
= {
3832 .halt_reg
= 0x68264,
3834 .enable_reg
= 0x68264,
3835 .enable_mask
= BIT(0),
3836 .hw
.init
= &(struct clk_init_data
){
3837 .name
= "gcc_nss_port5_tx_clk",
3838 .parent_names
= (const char *[]){
3839 "nss_port5_tx_div_clk_src"
3842 .flags
= CLK_SET_RATE_PARENT
,
3843 .ops
= &clk_branch2_ops
,
3848 static struct clk_branch gcc_nss_port6_rx_clk
= {
3849 .halt_reg
= 0x68268,
3851 .enable_reg
= 0x68268,
3852 .enable_mask
= BIT(0),
3853 .hw
.init
= &(struct clk_init_data
){
3854 .name
= "gcc_nss_port6_rx_clk",
3855 .parent_names
= (const char *[]){
3856 "nss_port6_rx_div_clk_src"
3859 .flags
= CLK_SET_RATE_PARENT
,
3860 .ops
= &clk_branch2_ops
,
3865 static struct clk_branch gcc_nss_port6_tx_clk
= {
3866 .halt_reg
= 0x6826c,
3868 .enable_reg
= 0x6826c,
3869 .enable_mask
= BIT(0),
3870 .hw
.init
= &(struct clk_init_data
){
3871 .name
= "gcc_nss_port6_tx_clk",
3872 .parent_names
= (const char *[]){
3873 "nss_port6_tx_div_clk_src"
3876 .flags
= CLK_SET_RATE_PARENT
,
3877 .ops
= &clk_branch2_ops
,
3882 static struct clk_branch gcc_port1_mac_clk
= {
3883 .halt_reg
= 0x68320,
3885 .enable_reg
= 0x68320,
3886 .enable_mask
= BIT(0),
3887 .hw
.init
= &(struct clk_init_data
){
3888 .name
= "gcc_port1_mac_clk",
3889 .parent_names
= (const char *[]){
3893 .flags
= CLK_SET_RATE_PARENT
,
3894 .ops
= &clk_branch2_ops
,
3899 static struct clk_branch gcc_port2_mac_clk
= {
3900 .halt_reg
= 0x68324,
3902 .enable_reg
= 0x68324,
3903 .enable_mask
= BIT(0),
3904 .hw
.init
= &(struct clk_init_data
){
3905 .name
= "gcc_port2_mac_clk",
3906 .parent_names
= (const char *[]){
3910 .flags
= CLK_SET_RATE_PARENT
,
3911 .ops
= &clk_branch2_ops
,
3916 static struct clk_branch gcc_port3_mac_clk
= {
3917 .halt_reg
= 0x68328,
3919 .enable_reg
= 0x68328,
3920 .enable_mask
= BIT(0),
3921 .hw
.init
= &(struct clk_init_data
){
3922 .name
= "gcc_port3_mac_clk",
3923 .parent_names
= (const char *[]){
3927 .flags
= CLK_SET_RATE_PARENT
,
3928 .ops
= &clk_branch2_ops
,
3933 static struct clk_branch gcc_port4_mac_clk
= {
3934 .halt_reg
= 0x6832c,
3936 .enable_reg
= 0x6832c,
3937 .enable_mask
= BIT(0),
3938 .hw
.init
= &(struct clk_init_data
){
3939 .name
= "gcc_port4_mac_clk",
3940 .parent_names
= (const char *[]){
3944 .flags
= CLK_SET_RATE_PARENT
,
3945 .ops
= &clk_branch2_ops
,
3950 static struct clk_branch gcc_port5_mac_clk
= {
3951 .halt_reg
= 0x68330,
3953 .enable_reg
= 0x68330,
3954 .enable_mask
= BIT(0),
3955 .hw
.init
= &(struct clk_init_data
){
3956 .name
= "gcc_port5_mac_clk",
3957 .parent_names
= (const char *[]){
3961 .flags
= CLK_SET_RATE_PARENT
,
3962 .ops
= &clk_branch2_ops
,
3967 static struct clk_branch gcc_port6_mac_clk
= {
3968 .halt_reg
= 0x68334,
3970 .enable_reg
= 0x68334,
3971 .enable_mask
= BIT(0),
3972 .hw
.init
= &(struct clk_init_data
){
3973 .name
= "gcc_port6_mac_clk",
3974 .parent_names
= (const char *[]){
3978 .flags
= CLK_SET_RATE_PARENT
,
3979 .ops
= &clk_branch2_ops
,
3984 static struct clk_branch gcc_uniphy0_port1_rx_clk
= {
3985 .halt_reg
= 0x56010,
3987 .enable_reg
= 0x56010,
3988 .enable_mask
= BIT(0),
3989 .hw
.init
= &(struct clk_init_data
){
3990 .name
= "gcc_uniphy0_port1_rx_clk",
3991 .parent_names
= (const char *[]){
3992 "nss_port1_rx_div_clk_src"
3995 .flags
= CLK_SET_RATE_PARENT
,
3996 .ops
= &clk_branch2_ops
,
4001 static struct clk_branch gcc_uniphy0_port1_tx_clk
= {
4002 .halt_reg
= 0x56014,
4004 .enable_reg
= 0x56014,
4005 .enable_mask
= BIT(0),
4006 .hw
.init
= &(struct clk_init_data
){
4007 .name
= "gcc_uniphy0_port1_tx_clk",
4008 .parent_names
= (const char *[]){
4009 "nss_port1_tx_div_clk_src"
4012 .flags
= CLK_SET_RATE_PARENT
,
4013 .ops
= &clk_branch2_ops
,
4018 static struct clk_branch gcc_uniphy0_port2_rx_clk
= {
4019 .halt_reg
= 0x56018,
4021 .enable_reg
= 0x56018,
4022 .enable_mask
= BIT(0),
4023 .hw
.init
= &(struct clk_init_data
){
4024 .name
= "gcc_uniphy0_port2_rx_clk",
4025 .parent_names
= (const char *[]){
4026 "nss_port2_rx_div_clk_src"
4029 .flags
= CLK_SET_RATE_PARENT
,
4030 .ops
= &clk_branch2_ops
,
4035 static struct clk_branch gcc_uniphy0_port2_tx_clk
= {
4036 .halt_reg
= 0x5601c,
4038 .enable_reg
= 0x5601c,
4039 .enable_mask
= BIT(0),
4040 .hw
.init
= &(struct clk_init_data
){
4041 .name
= "gcc_uniphy0_port2_tx_clk",
4042 .parent_names
= (const char *[]){
4043 "nss_port2_tx_div_clk_src"
4046 .flags
= CLK_SET_RATE_PARENT
,
4047 .ops
= &clk_branch2_ops
,
4052 static struct clk_branch gcc_uniphy0_port3_rx_clk
= {
4053 .halt_reg
= 0x56020,
4055 .enable_reg
= 0x56020,
4056 .enable_mask
= BIT(0),
4057 .hw
.init
= &(struct clk_init_data
){
4058 .name
= "gcc_uniphy0_port3_rx_clk",
4059 .parent_names
= (const char *[]){
4060 "nss_port3_rx_div_clk_src"
4063 .flags
= CLK_SET_RATE_PARENT
,
4064 .ops
= &clk_branch2_ops
,
4069 static struct clk_branch gcc_uniphy0_port3_tx_clk
= {
4070 .halt_reg
= 0x56024,
4072 .enable_reg
= 0x56024,
4073 .enable_mask
= BIT(0),
4074 .hw
.init
= &(struct clk_init_data
){
4075 .name
= "gcc_uniphy0_port3_tx_clk",
4076 .parent_names
= (const char *[]){
4077 "nss_port3_tx_div_clk_src"
4080 .flags
= CLK_SET_RATE_PARENT
,
4081 .ops
= &clk_branch2_ops
,
4086 static struct clk_branch gcc_uniphy0_port4_rx_clk
= {
4087 .halt_reg
= 0x56028,
4089 .enable_reg
= 0x56028,
4090 .enable_mask
= BIT(0),
4091 .hw
.init
= &(struct clk_init_data
){
4092 .name
= "gcc_uniphy0_port4_rx_clk",
4093 .parent_names
= (const char *[]){
4094 "nss_port4_rx_div_clk_src"
4097 .flags
= CLK_SET_RATE_PARENT
,
4098 .ops
= &clk_branch2_ops
,
4103 static struct clk_branch gcc_uniphy0_port4_tx_clk
= {
4104 .halt_reg
= 0x5602c,
4106 .enable_reg
= 0x5602c,
4107 .enable_mask
= BIT(0),
4108 .hw
.init
= &(struct clk_init_data
){
4109 .name
= "gcc_uniphy0_port4_tx_clk",
4110 .parent_names
= (const char *[]){
4111 "nss_port4_tx_div_clk_src"
4114 .flags
= CLK_SET_RATE_PARENT
,
4115 .ops
= &clk_branch2_ops
,
4120 static struct clk_branch gcc_uniphy0_port5_rx_clk
= {
4121 .halt_reg
= 0x56030,
4123 .enable_reg
= 0x56030,
4124 .enable_mask
= BIT(0),
4125 .hw
.init
= &(struct clk_init_data
){
4126 .name
= "gcc_uniphy0_port5_rx_clk",
4127 .parent_names
= (const char *[]){
4128 "nss_port5_rx_div_clk_src"
4131 .flags
= CLK_SET_RATE_PARENT
,
4132 .ops
= &clk_branch2_ops
,
4137 static struct clk_branch gcc_uniphy0_port5_tx_clk
= {
4138 .halt_reg
= 0x56034,
4140 .enable_reg
= 0x56034,
4141 .enable_mask
= BIT(0),
4142 .hw
.init
= &(struct clk_init_data
){
4143 .name
= "gcc_uniphy0_port5_tx_clk",
4144 .parent_names
= (const char *[]){
4145 "nss_port5_tx_div_clk_src"
4148 .flags
= CLK_SET_RATE_PARENT
,
4149 .ops
= &clk_branch2_ops
,
4154 static struct clk_branch gcc_uniphy1_port5_rx_clk
= {
4155 .halt_reg
= 0x56110,
4157 .enable_reg
= 0x56110,
4158 .enable_mask
= BIT(0),
4159 .hw
.init
= &(struct clk_init_data
){
4160 .name
= "gcc_uniphy1_port5_rx_clk",
4161 .parent_names
= (const char *[]){
4162 "nss_port5_rx_div_clk_src"
4165 .flags
= CLK_SET_RATE_PARENT
,
4166 .ops
= &clk_branch2_ops
,
4171 static struct clk_branch gcc_uniphy1_port5_tx_clk
= {
4172 .halt_reg
= 0x56114,
4174 .enable_reg
= 0x56114,
4175 .enable_mask
= BIT(0),
4176 .hw
.init
= &(struct clk_init_data
){
4177 .name
= "gcc_uniphy1_port5_tx_clk",
4178 .parent_names
= (const char *[]){
4179 "nss_port5_tx_div_clk_src"
4182 .flags
= CLK_SET_RATE_PARENT
,
4183 .ops
= &clk_branch2_ops
,
4188 static struct clk_branch gcc_uniphy2_port6_rx_clk
= {
4189 .halt_reg
= 0x56210,
4191 .enable_reg
= 0x56210,
4192 .enable_mask
= BIT(0),
4193 .hw
.init
= &(struct clk_init_data
){
4194 .name
= "gcc_uniphy2_port6_rx_clk",
4195 .parent_names
= (const char *[]){
4196 "nss_port6_rx_div_clk_src"
4199 .flags
= CLK_SET_RATE_PARENT
,
4200 .ops
= &clk_branch2_ops
,
4205 static struct clk_branch gcc_uniphy2_port6_tx_clk
= {
4206 .halt_reg
= 0x56214,
4208 .enable_reg
= 0x56214,
4209 .enable_mask
= BIT(0),
4210 .hw
.init
= &(struct clk_init_data
){
4211 .name
= "gcc_uniphy2_port6_tx_clk",
4212 .parent_names
= (const char *[]){
4213 "nss_port6_tx_div_clk_src"
4216 .flags
= CLK_SET_RATE_PARENT
,
4217 .ops
= &clk_branch2_ops
,
4222 static struct clk_branch gcc_crypto_ahb_clk
= {
4223 .halt_reg
= 0x16024,
4224 .halt_check
= BRANCH_HALT_VOTED
,
4226 .enable_reg
= 0x0b004,
4227 .enable_mask
= BIT(0),
4228 .hw
.init
= &(struct clk_init_data
){
4229 .name
= "gcc_crypto_ahb_clk",
4230 .parent_names
= (const char *[]){
4234 .flags
= CLK_SET_RATE_PARENT
,
4235 .ops
= &clk_branch2_ops
,
4240 static struct clk_branch gcc_crypto_axi_clk
= {
4241 .halt_reg
= 0x16020,
4242 .halt_check
= BRANCH_HALT_VOTED
,
4244 .enable_reg
= 0x0b004,
4245 .enable_mask
= BIT(1),
4246 .hw
.init
= &(struct clk_init_data
){
4247 .name
= "gcc_crypto_axi_clk",
4248 .parent_names
= (const char *[]){
4252 .flags
= CLK_SET_RATE_PARENT
,
4253 .ops
= &clk_branch2_ops
,
4258 static struct clk_branch gcc_crypto_clk
= {
4259 .halt_reg
= 0x1601c,
4260 .halt_check
= BRANCH_HALT_VOTED
,
4262 .enable_reg
= 0x0b004,
4263 .enable_mask
= BIT(2),
4264 .hw
.init
= &(struct clk_init_data
){
4265 .name
= "gcc_crypto_clk",
4266 .parent_names
= (const char *[]){
4270 .flags
= CLK_SET_RATE_PARENT
,
4271 .ops
= &clk_branch2_ops
,
4276 static struct clk_branch gcc_gp1_clk
= {
4277 .halt_reg
= 0x08000,
4279 .enable_reg
= 0x08000,
4280 .enable_mask
= BIT(0),
4281 .hw
.init
= &(struct clk_init_data
){
4282 .name
= "gcc_gp1_clk",
4283 .parent_names
= (const char *[]){
4287 .flags
= CLK_SET_RATE_PARENT
,
4288 .ops
= &clk_branch2_ops
,
4293 static struct clk_branch gcc_gp2_clk
= {
4294 .halt_reg
= 0x09000,
4296 .enable_reg
= 0x09000,
4297 .enable_mask
= BIT(0),
4298 .hw
.init
= &(struct clk_init_data
){
4299 .name
= "gcc_gp2_clk",
4300 .parent_names
= (const char *[]){
4304 .flags
= CLK_SET_RATE_PARENT
,
4305 .ops
= &clk_branch2_ops
,
4310 static struct clk_branch gcc_gp3_clk
= {
4311 .halt_reg
= 0x0a000,
4313 .enable_reg
= 0x0a000,
4314 .enable_mask
= BIT(0),
4315 .hw
.init
= &(struct clk_init_data
){
4316 .name
= "gcc_gp3_clk",
4317 .parent_names
= (const char *[]){
4321 .flags
= CLK_SET_RATE_PARENT
,
4322 .ops
= &clk_branch2_ops
,
4327 static struct clk_hw
*gcc_ipq8074_hws
[] = {
4328 &gpll0_out_main_div2
.hw
,
4329 &gpll6_out_main_div2
.hw
,
4331 &system_noc_clk_src
.hw
,
4332 &gcc_xo_div4_clk_src
.hw
,
4333 &nss_noc_clk_src
.hw
,
4334 &nss_ppe_cdiv_clk_src
.hw
,
4337 static struct clk_regmap
*gcc_ipq8074_clks
[] = {
4338 [GPLL0_MAIN
] = &gpll0_main
.clkr
,
4339 [GPLL0
] = &gpll0
.clkr
,
4340 [GPLL2_MAIN
] = &gpll2_main
.clkr
,
4341 [GPLL2
] = &gpll2
.clkr
,
4342 [GPLL4_MAIN
] = &gpll4_main
.clkr
,
4343 [GPLL4
] = &gpll4
.clkr
,
4344 [GPLL6_MAIN
] = &gpll6_main
.clkr
,
4345 [GPLL6
] = &gpll6
.clkr
,
4346 [UBI32_PLL_MAIN
] = &ubi32_pll_main
.clkr
,
4347 [UBI32_PLL
] = &ubi32_pll
.clkr
,
4348 [NSS_CRYPTO_PLL_MAIN
] = &nss_crypto_pll_main
.clkr
,
4349 [NSS_CRYPTO_PLL
] = &nss_crypto_pll
.clkr
,
4350 [PCNOC_BFDCD_CLK_SRC
] = &pcnoc_bfdcd_clk_src
.clkr
,
4351 [GCC_SLEEP_CLK_SRC
] = &gcc_sleep_clk_src
.clkr
,
4352 [BLSP1_QUP1_I2C_APPS_CLK_SRC
] = &blsp1_qup1_i2c_apps_clk_src
.clkr
,
4353 [BLSP1_QUP1_SPI_APPS_CLK_SRC
] = &blsp1_qup1_spi_apps_clk_src
.clkr
,
4354 [BLSP1_QUP2_I2C_APPS_CLK_SRC
] = &blsp1_qup2_i2c_apps_clk_src
.clkr
,
4355 [BLSP1_QUP2_SPI_APPS_CLK_SRC
] = &blsp1_qup2_spi_apps_clk_src
.clkr
,
4356 [BLSP1_QUP3_I2C_APPS_CLK_SRC
] = &blsp1_qup3_i2c_apps_clk_src
.clkr
,
4357 [BLSP1_QUP3_SPI_APPS_CLK_SRC
] = &blsp1_qup3_spi_apps_clk_src
.clkr
,
4358 [BLSP1_QUP4_I2C_APPS_CLK_SRC
] = &blsp1_qup4_i2c_apps_clk_src
.clkr
,
4359 [BLSP1_QUP4_SPI_APPS_CLK_SRC
] = &blsp1_qup4_spi_apps_clk_src
.clkr
,
4360 [BLSP1_QUP5_I2C_APPS_CLK_SRC
] = &blsp1_qup5_i2c_apps_clk_src
.clkr
,
4361 [BLSP1_QUP5_SPI_APPS_CLK_SRC
] = &blsp1_qup5_spi_apps_clk_src
.clkr
,
4362 [BLSP1_QUP6_I2C_APPS_CLK_SRC
] = &blsp1_qup6_i2c_apps_clk_src
.clkr
,
4363 [BLSP1_QUP6_SPI_APPS_CLK_SRC
] = &blsp1_qup6_spi_apps_clk_src
.clkr
,
4364 [BLSP1_UART1_APPS_CLK_SRC
] = &blsp1_uart1_apps_clk_src
.clkr
,
4365 [BLSP1_UART2_APPS_CLK_SRC
] = &blsp1_uart2_apps_clk_src
.clkr
,
4366 [BLSP1_UART3_APPS_CLK_SRC
] = &blsp1_uart3_apps_clk_src
.clkr
,
4367 [BLSP1_UART4_APPS_CLK_SRC
] = &blsp1_uart4_apps_clk_src
.clkr
,
4368 [BLSP1_UART5_APPS_CLK_SRC
] = &blsp1_uart5_apps_clk_src
.clkr
,
4369 [BLSP1_UART6_APPS_CLK_SRC
] = &blsp1_uart6_apps_clk_src
.clkr
,
4370 [PCIE0_AXI_CLK_SRC
] = &pcie0_axi_clk_src
.clkr
,
4371 [PCIE0_AUX_CLK_SRC
] = &pcie0_aux_clk_src
.clkr
,
4372 [PCIE0_PIPE_CLK_SRC
] = &pcie0_pipe_clk_src
.clkr
,
4373 [PCIE1_AXI_CLK_SRC
] = &pcie1_axi_clk_src
.clkr
,
4374 [PCIE1_AUX_CLK_SRC
] = &pcie1_aux_clk_src
.clkr
,
4375 [PCIE1_PIPE_CLK_SRC
] = &pcie1_pipe_clk_src
.clkr
,
4376 [SDCC1_APPS_CLK_SRC
] = &sdcc1_apps_clk_src
.clkr
,
4377 [SDCC1_ICE_CORE_CLK_SRC
] = &sdcc1_ice_core_clk_src
.clkr
,
4378 [SDCC2_APPS_CLK_SRC
] = &sdcc2_apps_clk_src
.clkr
,
4379 [USB0_MASTER_CLK_SRC
] = &usb0_master_clk_src
.clkr
,
4380 [USB0_AUX_CLK_SRC
] = &usb0_aux_clk_src
.clkr
,
4381 [USB0_MOCK_UTMI_CLK_SRC
] = &usb0_mock_utmi_clk_src
.clkr
,
4382 [USB0_PIPE_CLK_SRC
] = &usb0_pipe_clk_src
.clkr
,
4383 [USB1_MASTER_CLK_SRC
] = &usb1_master_clk_src
.clkr
,
4384 [USB1_AUX_CLK_SRC
] = &usb1_aux_clk_src
.clkr
,
4385 [USB1_MOCK_UTMI_CLK_SRC
] = &usb1_mock_utmi_clk_src
.clkr
,
4386 [USB1_PIPE_CLK_SRC
] = &usb1_pipe_clk_src
.clkr
,
4387 [GCC_XO_CLK_SRC
] = &gcc_xo_clk_src
.clkr
,
4388 [SYSTEM_NOC_BFDCD_CLK_SRC
] = &system_noc_bfdcd_clk_src
.clkr
,
4389 [NSS_CE_CLK_SRC
] = &nss_ce_clk_src
.clkr
,
4390 [NSS_NOC_BFDCD_CLK_SRC
] = &nss_noc_bfdcd_clk_src
.clkr
,
4391 [NSS_CRYPTO_CLK_SRC
] = &nss_crypto_clk_src
.clkr
,
4392 [NSS_UBI0_CLK_SRC
] = &nss_ubi0_clk_src
.clkr
,
4393 [NSS_UBI0_DIV_CLK_SRC
] = &nss_ubi0_div_clk_src
.clkr
,
4394 [NSS_UBI1_CLK_SRC
] = &nss_ubi1_clk_src
.clkr
,
4395 [NSS_UBI1_DIV_CLK_SRC
] = &nss_ubi1_div_clk_src
.clkr
,
4396 [UBI_MPT_CLK_SRC
] = &ubi_mpt_clk_src
.clkr
,
4397 [NSS_IMEM_CLK_SRC
] = &nss_imem_clk_src
.clkr
,
4398 [NSS_PPE_CLK_SRC
] = &nss_ppe_clk_src
.clkr
,
4399 [NSS_PORT1_RX_CLK_SRC
] = &nss_port1_rx_clk_src
.clkr
,
4400 [NSS_PORT1_RX_DIV_CLK_SRC
] = &nss_port1_rx_div_clk_src
.clkr
,
4401 [NSS_PORT1_TX_CLK_SRC
] = &nss_port1_tx_clk_src
.clkr
,
4402 [NSS_PORT1_TX_DIV_CLK_SRC
] = &nss_port1_tx_div_clk_src
.clkr
,
4403 [NSS_PORT2_RX_CLK_SRC
] = &nss_port2_rx_clk_src
.clkr
,
4404 [NSS_PORT2_RX_DIV_CLK_SRC
] = &nss_port2_rx_div_clk_src
.clkr
,
4405 [NSS_PORT2_TX_CLK_SRC
] = &nss_port2_tx_clk_src
.clkr
,
4406 [NSS_PORT2_TX_DIV_CLK_SRC
] = &nss_port2_tx_div_clk_src
.clkr
,
4407 [NSS_PORT3_RX_CLK_SRC
] = &nss_port3_rx_clk_src
.clkr
,
4408 [NSS_PORT3_RX_DIV_CLK_SRC
] = &nss_port3_rx_div_clk_src
.clkr
,
4409 [NSS_PORT3_TX_CLK_SRC
] = &nss_port3_tx_clk_src
.clkr
,
4410 [NSS_PORT3_TX_DIV_CLK_SRC
] = &nss_port3_tx_div_clk_src
.clkr
,
4411 [NSS_PORT4_RX_CLK_SRC
] = &nss_port4_rx_clk_src
.clkr
,
4412 [NSS_PORT4_RX_DIV_CLK_SRC
] = &nss_port4_rx_div_clk_src
.clkr
,
4413 [NSS_PORT4_TX_CLK_SRC
] = &nss_port4_tx_clk_src
.clkr
,
4414 [NSS_PORT4_TX_DIV_CLK_SRC
] = &nss_port4_tx_div_clk_src
.clkr
,
4415 [NSS_PORT5_RX_CLK_SRC
] = &nss_port5_rx_clk_src
.clkr
,
4416 [NSS_PORT5_RX_DIV_CLK_SRC
] = &nss_port5_rx_div_clk_src
.clkr
,
4417 [NSS_PORT5_TX_CLK_SRC
] = &nss_port5_tx_clk_src
.clkr
,
4418 [NSS_PORT5_TX_DIV_CLK_SRC
] = &nss_port5_tx_div_clk_src
.clkr
,
4419 [NSS_PORT6_RX_CLK_SRC
] = &nss_port6_rx_clk_src
.clkr
,
4420 [NSS_PORT6_RX_DIV_CLK_SRC
] = &nss_port6_rx_div_clk_src
.clkr
,
4421 [NSS_PORT6_TX_CLK_SRC
] = &nss_port6_tx_clk_src
.clkr
,
4422 [NSS_PORT6_TX_DIV_CLK_SRC
] = &nss_port6_tx_div_clk_src
.clkr
,
4423 [CRYPTO_CLK_SRC
] = &crypto_clk_src
.clkr
,
4424 [GP1_CLK_SRC
] = &gp1_clk_src
.clkr
,
4425 [GP2_CLK_SRC
] = &gp2_clk_src
.clkr
,
4426 [GP3_CLK_SRC
] = &gp3_clk_src
.clkr
,
4427 [GCC_BLSP1_AHB_CLK
] = &gcc_blsp1_ahb_clk
.clkr
,
4428 [GCC_BLSP1_QUP1_I2C_APPS_CLK
] = &gcc_blsp1_qup1_i2c_apps_clk
.clkr
,
4429 [GCC_BLSP1_QUP1_SPI_APPS_CLK
] = &gcc_blsp1_qup1_spi_apps_clk
.clkr
,
4430 [GCC_BLSP1_QUP2_I2C_APPS_CLK
] = &gcc_blsp1_qup2_i2c_apps_clk
.clkr
,
4431 [GCC_BLSP1_QUP2_SPI_APPS_CLK
] = &gcc_blsp1_qup2_spi_apps_clk
.clkr
,
4432 [GCC_BLSP1_QUP3_I2C_APPS_CLK
] = &gcc_blsp1_qup3_i2c_apps_clk
.clkr
,
4433 [GCC_BLSP1_QUP3_SPI_APPS_CLK
] = &gcc_blsp1_qup3_spi_apps_clk
.clkr
,
4434 [GCC_BLSP1_QUP4_I2C_APPS_CLK
] = &gcc_blsp1_qup4_i2c_apps_clk
.clkr
,
4435 [GCC_BLSP1_QUP4_SPI_APPS_CLK
] = &gcc_blsp1_qup4_spi_apps_clk
.clkr
,
4436 [GCC_BLSP1_QUP5_I2C_APPS_CLK
] = &gcc_blsp1_qup5_i2c_apps_clk
.clkr
,
4437 [GCC_BLSP1_QUP5_SPI_APPS_CLK
] = &gcc_blsp1_qup5_spi_apps_clk
.clkr
,
4438 [GCC_BLSP1_QUP6_I2C_APPS_CLK
] = &gcc_blsp1_qup6_i2c_apps_clk
.clkr
,
4439 [GCC_BLSP1_QUP6_SPI_APPS_CLK
] = &gcc_blsp1_qup6_spi_apps_clk
.clkr
,
4440 [GCC_BLSP1_UART1_APPS_CLK
] = &gcc_blsp1_uart1_apps_clk
.clkr
,
4441 [GCC_BLSP1_UART2_APPS_CLK
] = &gcc_blsp1_uart2_apps_clk
.clkr
,
4442 [GCC_BLSP1_UART3_APPS_CLK
] = &gcc_blsp1_uart3_apps_clk
.clkr
,
4443 [GCC_BLSP1_UART4_APPS_CLK
] = &gcc_blsp1_uart4_apps_clk
.clkr
,
4444 [GCC_BLSP1_UART5_APPS_CLK
] = &gcc_blsp1_uart5_apps_clk
.clkr
,
4445 [GCC_BLSP1_UART6_APPS_CLK
] = &gcc_blsp1_uart6_apps_clk
.clkr
,
4446 [GCC_PRNG_AHB_CLK
] = &gcc_prng_ahb_clk
.clkr
,
4447 [GCC_QPIC_AHB_CLK
] = &gcc_qpic_ahb_clk
.clkr
,
4448 [GCC_QPIC_CLK
] = &gcc_qpic_clk
.clkr
,
4449 [GCC_PCIE0_AHB_CLK
] = &gcc_pcie0_ahb_clk
.clkr
,
4450 [GCC_PCIE0_AUX_CLK
] = &gcc_pcie0_aux_clk
.clkr
,
4451 [GCC_PCIE0_AXI_M_CLK
] = &gcc_pcie0_axi_m_clk
.clkr
,
4452 [GCC_PCIE0_AXI_S_CLK
] = &gcc_pcie0_axi_s_clk
.clkr
,
4453 [GCC_PCIE0_PIPE_CLK
] = &gcc_pcie0_pipe_clk
.clkr
,
4454 [GCC_SYS_NOC_PCIE0_AXI_CLK
] = &gcc_sys_noc_pcie0_axi_clk
.clkr
,
4455 [GCC_PCIE1_AHB_CLK
] = &gcc_pcie1_ahb_clk
.clkr
,
4456 [GCC_PCIE1_AUX_CLK
] = &gcc_pcie1_aux_clk
.clkr
,
4457 [GCC_PCIE1_AXI_M_CLK
] = &gcc_pcie1_axi_m_clk
.clkr
,
4458 [GCC_PCIE1_AXI_S_CLK
] = &gcc_pcie1_axi_s_clk
.clkr
,
4459 [GCC_PCIE1_PIPE_CLK
] = &gcc_pcie1_pipe_clk
.clkr
,
4460 [GCC_SYS_NOC_PCIE1_AXI_CLK
] = &gcc_sys_noc_pcie1_axi_clk
.clkr
,
4461 [GCC_USB0_AUX_CLK
] = &gcc_usb0_aux_clk
.clkr
,
4462 [GCC_SYS_NOC_USB0_AXI_CLK
] = &gcc_sys_noc_usb0_axi_clk
.clkr
,
4463 [GCC_USB0_MASTER_CLK
] = &gcc_usb0_master_clk
.clkr
,
4464 [GCC_USB0_MOCK_UTMI_CLK
] = &gcc_usb0_mock_utmi_clk
.clkr
,
4465 [GCC_USB0_PHY_CFG_AHB_CLK
] = &gcc_usb0_phy_cfg_ahb_clk
.clkr
,
4466 [GCC_USB0_PIPE_CLK
] = &gcc_usb0_pipe_clk
.clkr
,
4467 [GCC_USB0_SLEEP_CLK
] = &gcc_usb0_sleep_clk
.clkr
,
4468 [GCC_USB1_AUX_CLK
] = &gcc_usb1_aux_clk
.clkr
,
4469 [GCC_SYS_NOC_USB1_AXI_CLK
] = &gcc_sys_noc_usb1_axi_clk
.clkr
,
4470 [GCC_USB1_MASTER_CLK
] = &gcc_usb1_master_clk
.clkr
,
4471 [GCC_USB1_MOCK_UTMI_CLK
] = &gcc_usb1_mock_utmi_clk
.clkr
,
4472 [GCC_USB1_PHY_CFG_AHB_CLK
] = &gcc_usb1_phy_cfg_ahb_clk
.clkr
,
4473 [GCC_USB1_PIPE_CLK
] = &gcc_usb1_pipe_clk
.clkr
,
4474 [GCC_USB1_SLEEP_CLK
] = &gcc_usb1_sleep_clk
.clkr
,
4475 [GCC_SDCC1_AHB_CLK
] = &gcc_sdcc1_ahb_clk
.clkr
,
4476 [GCC_SDCC1_APPS_CLK
] = &gcc_sdcc1_apps_clk
.clkr
,
4477 [GCC_SDCC1_ICE_CORE_CLK
] = &gcc_sdcc1_ice_core_clk
.clkr
,
4478 [GCC_SDCC2_AHB_CLK
] = &gcc_sdcc2_ahb_clk
.clkr
,
4479 [GCC_SDCC2_APPS_CLK
] = &gcc_sdcc2_apps_clk
.clkr
,
4480 [GCC_MEM_NOC_NSS_AXI_CLK
] = &gcc_mem_noc_nss_axi_clk
.clkr
,
4481 [GCC_NSS_CE_APB_CLK
] = &gcc_nss_ce_apb_clk
.clkr
,
4482 [GCC_NSS_CE_AXI_CLK
] = &gcc_nss_ce_axi_clk
.clkr
,
4483 [GCC_NSS_CFG_CLK
] = &gcc_nss_cfg_clk
.clkr
,
4484 [GCC_NSS_CRYPTO_CLK
] = &gcc_nss_crypto_clk
.clkr
,
4485 [GCC_NSS_CSR_CLK
] = &gcc_nss_csr_clk
.clkr
,
4486 [GCC_NSS_EDMA_CFG_CLK
] = &gcc_nss_edma_cfg_clk
.clkr
,
4487 [GCC_NSS_EDMA_CLK
] = &gcc_nss_edma_clk
.clkr
,
4488 [GCC_NSS_IMEM_CLK
] = &gcc_nss_imem_clk
.clkr
,
4489 [GCC_NSS_NOC_CLK
] = &gcc_nss_noc_clk
.clkr
,
4490 [GCC_NSS_PPE_BTQ_CLK
] = &gcc_nss_ppe_btq_clk
.clkr
,
4491 [GCC_NSS_PPE_CFG_CLK
] = &gcc_nss_ppe_cfg_clk
.clkr
,
4492 [GCC_NSS_PPE_CLK
] = &gcc_nss_ppe_clk
.clkr
,
4493 [GCC_NSS_PPE_IPE_CLK
] = &gcc_nss_ppe_ipe_clk
.clkr
,
4494 [GCC_NSS_PTP_REF_CLK
] = &gcc_nss_ptp_ref_clk
.clkr
,
4495 [GCC_NSSNOC_CE_APB_CLK
] = &gcc_nssnoc_ce_apb_clk
.clkr
,
4496 [GCC_NSSNOC_CE_AXI_CLK
] = &gcc_nssnoc_ce_axi_clk
.clkr
,
4497 [GCC_NSSNOC_CRYPTO_CLK
] = &gcc_nssnoc_crypto_clk
.clkr
,
4498 [GCC_NSSNOC_PPE_CFG_CLK
] = &gcc_nssnoc_ppe_cfg_clk
.clkr
,
4499 [GCC_NSSNOC_PPE_CLK
] = &gcc_nssnoc_ppe_clk
.clkr
,
4500 [GCC_NSSNOC_QOSGEN_REF_CLK
] = &gcc_nssnoc_qosgen_ref_clk
.clkr
,
4501 [GCC_NSSNOC_SNOC_CLK
] = &gcc_nssnoc_snoc_clk
.clkr
,
4502 [GCC_NSSNOC_TIMEOUT_REF_CLK
] = &gcc_nssnoc_timeout_ref_clk
.clkr
,
4503 [GCC_NSSNOC_UBI0_AHB_CLK
] = &gcc_nssnoc_ubi0_ahb_clk
.clkr
,
4504 [GCC_NSSNOC_UBI1_AHB_CLK
] = &gcc_nssnoc_ubi1_ahb_clk
.clkr
,
4505 [GCC_UBI0_AHB_CLK
] = &gcc_ubi0_ahb_clk
.clkr
,
4506 [GCC_UBI0_AXI_CLK
] = &gcc_ubi0_axi_clk
.clkr
,
4507 [GCC_UBI0_NC_AXI_CLK
] = &gcc_ubi0_nc_axi_clk
.clkr
,
4508 [GCC_UBI0_CORE_CLK
] = &gcc_ubi0_core_clk
.clkr
,
4509 [GCC_UBI0_MPT_CLK
] = &gcc_ubi0_mpt_clk
.clkr
,
4510 [GCC_UBI1_AHB_CLK
] = &gcc_ubi1_ahb_clk
.clkr
,
4511 [GCC_UBI1_AXI_CLK
] = &gcc_ubi1_axi_clk
.clkr
,
4512 [GCC_UBI1_NC_AXI_CLK
] = &gcc_ubi1_nc_axi_clk
.clkr
,
4513 [GCC_UBI1_CORE_CLK
] = &gcc_ubi1_core_clk
.clkr
,
4514 [GCC_UBI1_MPT_CLK
] = &gcc_ubi1_mpt_clk
.clkr
,
4515 [GCC_CMN_12GPLL_AHB_CLK
] = &gcc_cmn_12gpll_ahb_clk
.clkr
,
4516 [GCC_CMN_12GPLL_SYS_CLK
] = &gcc_cmn_12gpll_sys_clk
.clkr
,
4517 [GCC_MDIO_AHB_CLK
] = &gcc_mdio_ahb_clk
.clkr
,
4518 [GCC_UNIPHY0_AHB_CLK
] = &gcc_uniphy0_ahb_clk
.clkr
,
4519 [GCC_UNIPHY0_SYS_CLK
] = &gcc_uniphy0_sys_clk
.clkr
,
4520 [GCC_UNIPHY1_AHB_CLK
] = &gcc_uniphy1_ahb_clk
.clkr
,
4521 [GCC_UNIPHY1_SYS_CLK
] = &gcc_uniphy1_sys_clk
.clkr
,
4522 [GCC_UNIPHY2_AHB_CLK
] = &gcc_uniphy2_ahb_clk
.clkr
,
4523 [GCC_UNIPHY2_SYS_CLK
] = &gcc_uniphy2_sys_clk
.clkr
,
4524 [GCC_NSS_PORT1_RX_CLK
] = &gcc_nss_port1_rx_clk
.clkr
,
4525 [GCC_NSS_PORT1_TX_CLK
] = &gcc_nss_port1_tx_clk
.clkr
,
4526 [GCC_NSS_PORT2_RX_CLK
] = &gcc_nss_port2_rx_clk
.clkr
,
4527 [GCC_NSS_PORT2_TX_CLK
] = &gcc_nss_port2_tx_clk
.clkr
,
4528 [GCC_NSS_PORT3_RX_CLK
] = &gcc_nss_port3_rx_clk
.clkr
,
4529 [GCC_NSS_PORT3_TX_CLK
] = &gcc_nss_port3_tx_clk
.clkr
,
4530 [GCC_NSS_PORT4_RX_CLK
] = &gcc_nss_port4_rx_clk
.clkr
,
4531 [GCC_NSS_PORT4_TX_CLK
] = &gcc_nss_port4_tx_clk
.clkr
,
4532 [GCC_NSS_PORT5_RX_CLK
] = &gcc_nss_port5_rx_clk
.clkr
,
4533 [GCC_NSS_PORT5_TX_CLK
] = &gcc_nss_port5_tx_clk
.clkr
,
4534 [GCC_NSS_PORT6_RX_CLK
] = &gcc_nss_port6_rx_clk
.clkr
,
4535 [GCC_NSS_PORT6_TX_CLK
] = &gcc_nss_port6_tx_clk
.clkr
,
4536 [GCC_PORT1_MAC_CLK
] = &gcc_port1_mac_clk
.clkr
,
4537 [GCC_PORT2_MAC_CLK
] = &gcc_port2_mac_clk
.clkr
,
4538 [GCC_PORT3_MAC_CLK
] = &gcc_port3_mac_clk
.clkr
,
4539 [GCC_PORT4_MAC_CLK
] = &gcc_port4_mac_clk
.clkr
,
4540 [GCC_PORT5_MAC_CLK
] = &gcc_port5_mac_clk
.clkr
,
4541 [GCC_PORT6_MAC_CLK
] = &gcc_port6_mac_clk
.clkr
,
4542 [GCC_UNIPHY0_PORT1_RX_CLK
] = &gcc_uniphy0_port1_rx_clk
.clkr
,
4543 [GCC_UNIPHY0_PORT1_TX_CLK
] = &gcc_uniphy0_port1_tx_clk
.clkr
,
4544 [GCC_UNIPHY0_PORT2_RX_CLK
] = &gcc_uniphy0_port2_rx_clk
.clkr
,
4545 [GCC_UNIPHY0_PORT2_TX_CLK
] = &gcc_uniphy0_port2_tx_clk
.clkr
,
4546 [GCC_UNIPHY0_PORT3_RX_CLK
] = &gcc_uniphy0_port3_rx_clk
.clkr
,
4547 [GCC_UNIPHY0_PORT3_TX_CLK
] = &gcc_uniphy0_port3_tx_clk
.clkr
,
4548 [GCC_UNIPHY0_PORT4_RX_CLK
] = &gcc_uniphy0_port4_rx_clk
.clkr
,
4549 [GCC_UNIPHY0_PORT4_TX_CLK
] = &gcc_uniphy0_port4_tx_clk
.clkr
,
4550 [GCC_UNIPHY0_PORT5_RX_CLK
] = &gcc_uniphy0_port5_rx_clk
.clkr
,
4551 [GCC_UNIPHY0_PORT5_TX_CLK
] = &gcc_uniphy0_port5_tx_clk
.clkr
,
4552 [GCC_UNIPHY1_PORT5_RX_CLK
] = &gcc_uniphy1_port5_rx_clk
.clkr
,
4553 [GCC_UNIPHY1_PORT5_TX_CLK
] = &gcc_uniphy1_port5_tx_clk
.clkr
,
4554 [GCC_UNIPHY2_PORT6_RX_CLK
] = &gcc_uniphy2_port6_rx_clk
.clkr
,
4555 [GCC_UNIPHY2_PORT6_TX_CLK
] = &gcc_uniphy2_port6_tx_clk
.clkr
,
4556 [GCC_CRYPTO_AHB_CLK
] = &gcc_crypto_ahb_clk
.clkr
,
4557 [GCC_CRYPTO_AXI_CLK
] = &gcc_crypto_axi_clk
.clkr
,
4558 [GCC_CRYPTO_CLK
] = &gcc_crypto_clk
.clkr
,
4559 [GCC_GP1_CLK
] = &gcc_gp1_clk
.clkr
,
4560 [GCC_GP2_CLK
] = &gcc_gp2_clk
.clkr
,
4561 [GCC_GP3_CLK
] = &gcc_gp3_clk
.clkr
,
4564 static const struct qcom_reset_map gcc_ipq8074_resets
[] = {
4565 [GCC_BLSP1_BCR
] = { 0x01000, 0 },
4566 [GCC_BLSP1_QUP1_BCR
] = { 0x02000, 0 },
4567 [GCC_BLSP1_UART1_BCR
] = { 0x02038, 0 },
4568 [GCC_BLSP1_QUP2_BCR
] = { 0x03008, 0 },
4569 [GCC_BLSP1_UART2_BCR
] = { 0x03028, 0 },
4570 [GCC_BLSP1_QUP3_BCR
] = { 0x04008, 0 },
4571 [GCC_BLSP1_UART3_BCR
] = { 0x04028, 0 },
4572 [GCC_BLSP1_QUP4_BCR
] = { 0x05008, 0 },
4573 [GCC_BLSP1_UART4_BCR
] = { 0x05028, 0 },
4574 [GCC_BLSP1_QUP5_BCR
] = { 0x06008, 0 },
4575 [GCC_BLSP1_UART5_BCR
] = { 0x06028, 0 },
4576 [GCC_BLSP1_QUP6_BCR
] = { 0x07008, 0 },
4577 [GCC_BLSP1_UART6_BCR
] = { 0x07028, 0 },
4578 [GCC_IMEM_BCR
] = { 0x0e000, 0 },
4579 [GCC_SMMU_BCR
] = { 0x12000, 0 },
4580 [GCC_APSS_TCU_BCR
] = { 0x12050, 0 },
4581 [GCC_SMMU_XPU_BCR
] = { 0x12054, 0 },
4582 [GCC_PCNOC_TBU_BCR
] = { 0x12058, 0 },
4583 [GCC_SMMU_CFG_BCR
] = { 0x1208c, 0 },
4584 [GCC_PRNG_BCR
] = { 0x13000, 0 },
4585 [GCC_BOOT_ROM_BCR
] = { 0x13008, 0 },
4586 [GCC_CRYPTO_BCR
] = { 0x16000, 0 },
4587 [GCC_WCSS_BCR
] = { 0x18000, 0 },
4588 [GCC_WCSS_Q6_BCR
] = { 0x18100, 0 },
4589 [GCC_NSS_BCR
] = { 0x19000, 0 },
4590 [GCC_SEC_CTRL_BCR
] = { 0x1a000, 0 },
4591 [GCC_ADSS_BCR
] = { 0x1c000, 0 },
4592 [GCC_DDRSS_BCR
] = { 0x1e000, 0 },
4593 [GCC_SYSTEM_NOC_BCR
] = { 0x26000, 0 },
4594 [GCC_PCNOC_BCR
] = { 0x27018, 0 },
4595 [GCC_TCSR_BCR
] = { 0x28000, 0 },
4596 [GCC_QDSS_BCR
] = { 0x29000, 0 },
4597 [GCC_DCD_BCR
] = { 0x2a000, 0 },
4598 [GCC_MSG_RAM_BCR
] = { 0x2b000, 0 },
4599 [GCC_MPM_BCR
] = { 0x2c000, 0 },
4600 [GCC_SPMI_BCR
] = { 0x2e000, 0 },
4601 [GCC_SPDM_BCR
] = { 0x2f000, 0 },
4602 [GCC_RBCPR_BCR
] = { 0x33000, 0 },
4603 [GCC_RBCPR_MX_BCR
] = { 0x33014, 0 },
4604 [GCC_TLMM_BCR
] = { 0x34000, 0 },
4605 [GCC_RBCPR_WCSS_BCR
] = { 0x3a000, 0 },
4606 [GCC_USB0_PHY_BCR
] = { 0x3e034, 0 },
4607 [GCC_USB3PHY_0_PHY_BCR
] = { 0x3e03c, 0 },
4608 [GCC_USB0_BCR
] = { 0x3e070, 0 },
4609 [GCC_USB1_PHY_BCR
] = { 0x3f034, 0 },
4610 [GCC_USB3PHY_1_PHY_BCR
] = { 0x3f03c, 0 },
4611 [GCC_USB1_BCR
] = { 0x3f070, 0 },
4612 [GCC_QUSB2_0_PHY_BCR
] = { 0x4103c, 0 },
4613 [GCC_QUSB2_1_PHY_BCR
] = { 0x41040, 0 },
4614 [GCC_SDCC1_BCR
] = { 0x42000, 0 },
4615 [GCC_SDCC2_BCR
] = { 0x43000, 0 },
4616 [GCC_SNOC_BUS_TIMEOUT0_BCR
] = { 0x47000, 0 },
4617 [GCC_SNOC_BUS_TIMEOUT2_BCR
] = { 0x47008, 0 },
4618 [GCC_SNOC_BUS_TIMEOUT3_BCR
] = { 0x47010, 0 },
4619 [GCC_PCNOC_BUS_TIMEOUT0_BCR
] = { 0x48000, 0 },
4620 [GCC_PCNOC_BUS_TIMEOUT1_BCR
] = { 0x48008, 0 },
4621 [GCC_PCNOC_BUS_TIMEOUT2_BCR
] = { 0x48010, 0 },
4622 [GCC_PCNOC_BUS_TIMEOUT3_BCR
] = { 0x48018, 0 },
4623 [GCC_PCNOC_BUS_TIMEOUT4_BCR
] = { 0x48020, 0 },
4624 [GCC_PCNOC_BUS_TIMEOUT5_BCR
] = { 0x48028, 0 },
4625 [GCC_PCNOC_BUS_TIMEOUT6_BCR
] = { 0x48030, 0 },
4626 [GCC_PCNOC_BUS_TIMEOUT7_BCR
] = { 0x48038, 0 },
4627 [GCC_PCNOC_BUS_TIMEOUT8_BCR
] = { 0x48040, 0 },
4628 [GCC_PCNOC_BUS_TIMEOUT9_BCR
] = { 0x48048, 0 },
4629 [GCC_UNIPHY0_BCR
] = { 0x56000, 0 },
4630 [GCC_UNIPHY1_BCR
] = { 0x56100, 0 },
4631 [GCC_UNIPHY2_BCR
] = { 0x56200, 0 },
4632 [GCC_CMN_12GPLL_BCR
] = { 0x56300, 0 },
4633 [GCC_QPIC_BCR
] = { 0x57018, 0 },
4634 [GCC_MDIO_BCR
] = { 0x58000, 0 },
4635 [GCC_PCIE1_TBU_BCR
] = { 0x65000, 0 },
4636 [GCC_WCSS_CORE_TBU_BCR
] = { 0x66000, 0 },
4637 [GCC_WCSS_Q6_TBU_BCR
] = { 0x67000, 0 },
4638 [GCC_USB0_TBU_BCR
] = { 0x6a000, 0 },
4639 [GCC_USB1_TBU_BCR
] = { 0x6a004, 0 },
4640 [GCC_PCIE0_TBU_BCR
] = { 0x6b000, 0 },
4641 [GCC_NSS_NOC_TBU_BCR
] = { 0x6e000, 0 },
4642 [GCC_PCIE0_BCR
] = { 0x75004, 0 },
4643 [GCC_PCIE0_PHY_BCR
] = { 0x75038, 0 },
4644 [GCC_PCIE0PHY_PHY_BCR
] = { 0x7503c, 0 },
4645 [GCC_PCIE0_LINK_DOWN_BCR
] = { 0x75044, 0 },
4646 [GCC_PCIE1_BCR
] = { 0x76004, 0 },
4647 [GCC_PCIE1_PHY_BCR
] = { 0x76038, 0 },
4648 [GCC_PCIE1PHY_PHY_BCR
] = { 0x7603c, 0 },
4649 [GCC_PCIE1_LINK_DOWN_BCR
] = { 0x76044, 0 },
4650 [GCC_DCC_BCR
] = { 0x77000, 0 },
4651 [GCC_APC0_VOLTAGE_DROOP_DETECTOR_BCR
] = { 0x78000, 0 },
4652 [GCC_APC1_VOLTAGE_DROOP_DETECTOR_BCR
] = { 0x79000, 0 },
4653 [GCC_SMMU_CATS_BCR
] = { 0x7c000, 0 },
4654 [GCC_UBI0_AXI_ARES
] = { 0x68010, 0 },
4655 [GCC_UBI0_AHB_ARES
] = { 0x68010, 1 },
4656 [GCC_UBI0_NC_AXI_ARES
] = { 0x68010, 2 },
4657 [GCC_UBI0_DBG_ARES
] = { 0x68010, 3 },
4658 [GCC_UBI0_CORE_CLAMP_ENABLE
] = { 0x68010, 4 },
4659 [GCC_UBI0_CLKRST_CLAMP_ENABLE
] = { 0x68010, 5 },
4660 [GCC_UBI1_AXI_ARES
] = { 0x68010, 8 },
4661 [GCC_UBI1_AHB_ARES
] = { 0x68010, 9 },
4662 [GCC_UBI1_NC_AXI_ARES
] = { 0x68010, 10 },
4663 [GCC_UBI1_DBG_ARES
] = { 0x68010, 11 },
4664 [GCC_UBI1_CORE_CLAMP_ENABLE
] = { 0x68010, 12 },
4665 [GCC_UBI1_CLKRST_CLAMP_ENABLE
] = { 0x68010, 13 },
4666 [GCC_NSS_CFG_ARES
] = { 0x68010, 16 },
4667 [GCC_NSS_IMEM_ARES
] = { 0x68010, 17 },
4668 [GCC_NSS_NOC_ARES
] = { 0x68010, 18 },
4669 [GCC_NSS_CRYPTO_ARES
] = { 0x68010, 19 },
4670 [GCC_NSS_CSR_ARES
] = { 0x68010, 20 },
4671 [GCC_NSS_CE_APB_ARES
] = { 0x68010, 21 },
4672 [GCC_NSS_CE_AXI_ARES
] = { 0x68010, 22 },
4673 [GCC_NSSNOC_CE_APB_ARES
] = { 0x68010, 23 },
4674 [GCC_NSSNOC_CE_AXI_ARES
] = { 0x68010, 24 },
4675 [GCC_NSSNOC_UBI0_AHB_ARES
] = { 0x68010, 25 },
4676 [GCC_NSSNOC_UBI1_AHB_ARES
] = { 0x68010, 26 },
4677 [GCC_NSSNOC_SNOC_ARES
] = { 0x68010, 27 },
4678 [GCC_NSSNOC_CRYPTO_ARES
] = { 0x68010, 28 },
4679 [GCC_NSSNOC_ATB_ARES
] = { 0x68010, 29 },
4680 [GCC_NSSNOC_QOSGEN_REF_ARES
] = { 0x68010, 30 },
4681 [GCC_NSSNOC_TIMEOUT_REF_ARES
] = { 0x68010, 31 },
4682 [GCC_PCIE0_PIPE_ARES
] = { 0x75040, 0 },
4683 [GCC_PCIE0_SLEEP_ARES
] = { 0x75040, 1 },
4684 [GCC_PCIE0_CORE_STICKY_ARES
] = { 0x75040, 2 },
4685 [GCC_PCIE0_AXI_MASTER_ARES
] = { 0x75040, 3 },
4686 [GCC_PCIE0_AXI_SLAVE_ARES
] = { 0x75040, 4 },
4687 [GCC_PCIE0_AHB_ARES
] = { 0x75040, 5 },
4688 [GCC_PCIE0_AXI_MASTER_STICKY_ARES
] = { 0x75040, 6 },
4689 [GCC_PCIE1_PIPE_ARES
] = { 0x76040, 0 },
4690 [GCC_PCIE1_SLEEP_ARES
] = { 0x76040, 1 },
4691 [GCC_PCIE1_CORE_STICKY_ARES
] = { 0x76040, 2 },
4692 [GCC_PCIE1_AXI_MASTER_ARES
] = { 0x76040, 3 },
4693 [GCC_PCIE1_AXI_SLAVE_ARES
] = { 0x76040, 4 },
4694 [GCC_PCIE1_AHB_ARES
] = { 0x76040, 5 },
4695 [GCC_PCIE1_AXI_MASTER_STICKY_ARES
] = { 0x76040, 6 },
4698 static const struct of_device_id gcc_ipq8074_match_table
[] = {
4699 { .compatible
= "qcom,gcc-ipq8074" },
4702 MODULE_DEVICE_TABLE(of
, gcc_ipq8074_match_table
);
4704 static const struct regmap_config gcc_ipq8074_regmap_config
= {
4708 .max_register
= 0x7fffc,
4712 static const struct qcom_cc_desc gcc_ipq8074_desc
= {
4713 .config
= &gcc_ipq8074_regmap_config
,
4714 .clks
= gcc_ipq8074_clks
,
4715 .num_clks
= ARRAY_SIZE(gcc_ipq8074_clks
),
4716 .resets
= gcc_ipq8074_resets
,
4717 .num_resets
= ARRAY_SIZE(gcc_ipq8074_resets
),
4720 static int gcc_ipq8074_probe(struct platform_device
*pdev
)
4724 for (i
= 0; i
< ARRAY_SIZE(gcc_ipq8074_hws
); i
++) {
4725 ret
= devm_clk_hw_register(&pdev
->dev
, gcc_ipq8074_hws
[i
]);
4730 return qcom_cc_probe(pdev
, &gcc_ipq8074_desc
);
4733 static struct platform_driver gcc_ipq8074_driver
= {
4734 .probe
= gcc_ipq8074_probe
,
4736 .name
= "qcom,gcc-ipq8074",
4737 .of_match_table
= gcc_ipq8074_match_table
,
4741 static int __init
gcc_ipq8074_init(void)
4743 return platform_driver_register(&gcc_ipq8074_driver
);
4745 core_initcall(gcc_ipq8074_init
);
4747 static void __exit
gcc_ipq8074_exit(void)
4749 platform_driver_unregister(&gcc_ipq8074_driver
);
4751 module_exit(gcc_ipq8074_exit
);
4753 MODULE_DESCRIPTION("QCOM GCC IPQ8074 Driver");
4754 MODULE_LICENSE("GPL v2");
4755 MODULE_ALIAS("platform:gcc-ipq8074");