@@ -728,6 +728,41 @@ static struct clk_rcg2 blsp1_uart6_apps_clk_src = {
728
728
},
729
729
};
730
730
731
+ static const struct freq_tbl ftbl_gcc_crypto_clk_src [] = {
732
+ F (160000000 , P_GPLL0 , 5 , 0 , 0 ),
733
+ { }
734
+ };
735
+
736
+ static struct clk_rcg2 gcc_crypto_clk_src = {
737
+ .cmd_rcgr = 0x16004 ,
738
+ .freq_tbl = ftbl_gcc_crypto_clk_src ,
739
+ .hid_width = 5 ,
740
+ .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map ,
741
+ .clkr .hw .init = & (const struct clk_init_data ) {
742
+ .name = "gcc_crypto_clk_src" ,
743
+ .parent_data = gcc_xo_gpll0_gpll0_out_main_div2 ,
744
+ .num_parents = ARRAY_SIZE (gcc_xo_gpll0_gpll0_out_main_div2 ),
745
+ .ops = & clk_rcg2_ops ,
746
+ },
747
+ };
748
+
749
+ static struct clk_branch gcc_crypto_clk = {
750
+ .halt_reg = 0x1600c ,
751
+ .halt_check = BRANCH_HALT_VOTED ,
752
+ .clkr = {
753
+ .enable_reg = 0x0b004 ,
754
+ .enable_mask = BIT (14 ),
755
+ .hw .init = & (const struct clk_init_data ) {
756
+ .name = "gcc_crypto_clk" ,
757
+ .parent_hws = (const struct clk_hw * []) {
758
+ & gcc_crypto_clk_src .clkr .hw },
759
+ .num_parents = 1 ,
760
+ .flags = CLK_SET_RATE_PARENT ,
761
+ .ops = & clk_branch2_ops ,
762
+ },
763
+ },
764
+ };
765
+
731
766
static struct clk_branch gcc_apss_ahb_clk = {
732
767
.halt_reg = 0x24018 ,
733
768
.halt_check = BRANCH_HALT_VOTED ,
@@ -2071,6 +2106,38 @@ static struct clk_rcg2 pcnoc_bfdcd_clk_src = {
2071
2106
},
2072
2107
};
2073
2108
2109
+ static struct clk_branch gcc_crypto_axi_clk = {
2110
+ .halt_reg = 0x16010 ,
2111
+ .clkr = {
2112
+ .enable_reg = 0x16010 ,
2113
+ .enable_mask = BIT (0 ),
2114
+ .hw .init = & (const struct clk_init_data ) {
2115
+ .name = "gcc_crypto_axi_clk" ,
2116
+ .parent_hws = (const struct clk_hw * []) {
2117
+ & pcnoc_bfdcd_clk_src .clkr .hw },
2118
+ .num_parents = 1 ,
2119
+ .flags = CLK_SET_RATE_PARENT ,
2120
+ .ops = & clk_branch2_ops ,
2121
+ },
2122
+ },
2123
+ };
2124
+
2125
+ static struct clk_branch gcc_crypto_ahb_clk = {
2126
+ .halt_reg = 0x16014 ,
2127
+ .clkr = {
2128
+ .enable_reg = 0x16014 ,
2129
+ .enable_mask = BIT (0 ),
2130
+ .hw .init = & (const struct clk_init_data ) {
2131
+ .name = "gcc_crypto_ahb_clk" ,
2132
+ .parent_hws = (const struct clk_hw * []) {
2133
+ & pcnoc_bfdcd_clk_src .clkr .hw },
2134
+ .num_parents = 1 ,
2135
+ .flags = CLK_SET_RATE_PARENT ,
2136
+ .ops = & clk_branch2_ops ,
2137
+ },
2138
+ },
2139
+ };
2140
+
2074
2141
static struct clk_branch gcc_nsscfg_clk = {
2075
2142
.halt_reg = 0x1702c ,
2076
2143
.clkr = {
@@ -3880,6 +3947,10 @@ static struct clk_regmap *gcc_ipq9574_clks[] = {
3880
3947
[GCC_BLSP1_UART4_APPS_CLK ] = & gcc_blsp1_uart4_apps_clk .clkr ,
3881
3948
[GCC_BLSP1_UART5_APPS_CLK ] = & gcc_blsp1_uart5_apps_clk .clkr ,
3882
3949
[GCC_BLSP1_UART6_APPS_CLK ] = & gcc_blsp1_uart6_apps_clk .clkr ,
3950
+ [GCC_CRYPTO_AHB_CLK ] = & gcc_crypto_ahb_clk .clkr ,
3951
+ [GCC_CRYPTO_AXI_CLK ] = & gcc_crypto_axi_clk .clkr ,
3952
+ [GCC_CRYPTO_CLK ] = & gcc_crypto_clk .clkr ,
3953
+ [GCC_CRYPTO_CLK_SRC ] = & gcc_crypto_clk_src .clkr ,
3883
3954
[PCIE0_AXI_M_CLK_SRC ] = & pcie0_axi_m_clk_src .clkr ,
3884
3955
[GCC_PCIE0_AXI_M_CLK ] = & gcc_pcie0_axi_m_clk .clkr ,
3885
3956
[PCIE1_AXI_M_CLK_SRC ] = & pcie1_axi_m_clk_src .clkr ,
@@ -4063,6 +4134,7 @@ static const struct qcom_reset_map gcc_ipq9574_resets[] = {
4063
4134
[GCC_CMN_BLK_AHB_ARES ] = { 0x3a010 , 0 },
4064
4135
[GCC_CMN_BLK_SYS_ARES ] = { 0x3a010 , 1 },
4065
4136
[GCC_CMN_BLK_APU_ARES ] = { 0x3a010 , 2 },
4137
+ [GCC_CRYPTO_BCR ] = { 0x16000 , 0 },
4066
4138
[GCC_DCC_BCR ] = { 0x35000 , 0 },
4067
4139
[GCC_DDRSS_BCR ] = { 0x11000 , 0 },
4068
4140
[GCC_IMEM_BCR ] = { 0x0e000 , 0 },
0 commit comments