@@ -37,6 +37,12 @@ enum clk_ids {
3737 CLK_PLL6 ,
3838 CLK_PLL6_250 ,
3939 CLK_P1_DIV2 ,
40+ CLK_PLL2_800 ,
41+ CLK_PLL2_SDHI_533 ,
42+ CLK_PLL2_SDHI_400 ,
43+ CLK_PLL2_SDHI_266 ,
44+ CLK_SD0_DIV4 ,
45+ CLK_SD1_DIV4 ,
4046
4147 /* Module Clocks */
4248 MOD_CLK_BASE ,
@@ -62,6 +68,7 @@ static const struct clk_div_table dtable_1_32[] = {
6268
6369/* Mux clock tables */
6470static const char * const sel_pll6_2 [] = { ".pll6_250" , ".pll5_250" };
71+ static const char * const sel_shdi [] = { ".clk_533" , ".clk_400" , ".clk_266" };
6572
6673static const struct cpg_core_clk r9a07g043_core_clks [] __initconst = {
6774 /* External Clock Inputs */
@@ -73,6 +80,10 @@ static const struct cpg_core_clk r9a07g043_core_clks[] __initconst = {
7380 DEF_SAMPLL (".pll1" , CLK_PLL1 , CLK_EXTAL , PLL146_CONF (0 )),
7481 DEF_FIXED (".pll2" , CLK_PLL2 , CLK_EXTAL , 200 , 3 ),
7582 DEF_FIXED (".pll2_div2" , CLK_PLL2_DIV2 , CLK_PLL2 , 1 , 2 ),
83+ DEF_FIXED (".clk_800" , CLK_PLL2_800 , CLK_PLL2 , 1 , 2 ),
84+ DEF_FIXED (".clk_533" , CLK_PLL2_SDHI_533 , CLK_PLL2 , 1 , 3 ),
85+ DEF_FIXED (".clk_400" , CLK_PLL2_SDHI_400 , CLK_PLL2_800 , 1 , 2 ),
86+ DEF_FIXED (".clk_266" , CLK_PLL2_SDHI_266 , CLK_PLL2_SDHI_533 , 1 , 2 ),
7687 DEF_FIXED (".pll2_div2_8" , CLK_PLL2_DIV2_8 , CLK_PLL2_DIV2 , 1 , 8 ),
7788 DEF_FIXED (".pll3" , CLK_PLL3 , CLK_EXTAL , 200 , 3 ),
7889 DEF_FIXED (".pll3_div2" , CLK_PLL3_DIV2 , CLK_PLL3 , 1 , 2 ),
@@ -98,6 +109,12 @@ static const struct cpg_core_clk r9a07g043_core_clks[] __initconst = {
98109 DEF_FIXED ("ZT" , R9A07G043_CLK_ZT , CLK_PLL3_DIV2_4_2 , 1 , 1 ),
99110 DEF_MUX ("HP" , R9A07G043_CLK_HP , SEL_PLL6_2 ,
100111 sel_pll6_2 , ARRAY_SIZE (sel_pll6_2 ), 0 , CLK_MUX_HIWORD_MASK ),
112+ DEF_SD_MUX ("SD0" , R9A07G043_CLK_SD0 , SEL_SDHI0 ,
113+ sel_shdi , ARRAY_SIZE (sel_shdi )),
114+ DEF_SD_MUX ("SD1" , R9A07G043_CLK_SD1 , SEL_SDHI1 ,
115+ sel_shdi , ARRAY_SIZE (sel_shdi )),
116+ DEF_FIXED ("SD0_DIV4" , CLK_SD0_DIV4 , R9A07G043_CLK_SD0 , 1 , 4 ),
117+ DEF_FIXED ("SD1_DIV4" , CLK_SD1_DIV4 , R9A07G043_CLK_SD1 , 1 , 4 ),
101118};
102119
103120static struct rzg2l_mod_clk r9a07g043_mod_clks [] = {
@@ -111,6 +128,22 @@ static struct rzg2l_mod_clk r9a07g043_mod_clks[] = {
111128 0x52c , 0 ),
112129 DEF_MOD ("dmac_pclk" , R9A07G043_DMAC_PCLK , CLK_P1_DIV2 ,
113130 0x52c , 1 ),
131+ DEF_MOD ("sdhi0_imclk" , R9A07G043_SDHI0_IMCLK , CLK_SD0_DIV4 ,
132+ 0x554 , 0 ),
133+ DEF_MOD ("sdhi0_imclk2" , R9A07G043_SDHI0_IMCLK2 , CLK_SD0_DIV4 ,
134+ 0x554 , 1 ),
135+ DEF_MOD ("sdhi0_clk_hs" , R9A07G043_SDHI0_CLK_HS , R9A07G043_CLK_SD0 ,
136+ 0x554 , 2 ),
137+ DEF_MOD ("sdhi0_aclk" , R9A07G043_SDHI0_ACLK , R9A07G043_CLK_P1 ,
138+ 0x554 , 3 ),
139+ DEF_MOD ("sdhi1_imclk" , R9A07G043_SDHI1_IMCLK , CLK_SD1_DIV4 ,
140+ 0x554 , 4 ),
141+ DEF_MOD ("sdhi1_imclk2" , R9A07G043_SDHI1_IMCLK2 , CLK_SD1_DIV4 ,
142+ 0x554 , 5 ),
143+ DEF_MOD ("sdhi1_clk_hs" , R9A07G043_SDHI1_CLK_HS , R9A07G043_CLK_SD1 ,
144+ 0x554 , 6 ),
145+ DEF_MOD ("sdhi1_aclk" , R9A07G043_SDHI1_ACLK , R9A07G043_CLK_P1 ,
146+ 0x554 , 7 ),
114147 DEF_COUPLED ("eth0_axi" , R9A07G043_ETH0_CLK_AXI , R9A07G043_CLK_M0 ,
115148 0x57c , 0 ),
116149 DEF_COUPLED ("eth0_chi" , R9A07G043_ETH0_CLK_CHI , R9A07G043_CLK_ZT ,
@@ -143,6 +176,8 @@ static struct rzg2l_reset r9a07g043_resets[] = {
143176 DEF_RST (R9A07G043_IA55_RESETN , 0x818 , 0 ),
144177 DEF_RST (R9A07G043_DMAC_ARESETN , 0x82c , 0 ),
145178 DEF_RST (R9A07G043_DMAC_RST_ASYNC , 0x82c , 1 ),
179+ DEF_RST (R9A07G043_SDHI0_IXRST , 0x854 , 0 ),
180+ DEF_RST (R9A07G043_SDHI1_IXRST , 0x854 , 1 ),
146181 DEF_RST (R9A07G043_ETH0_RST_HW_N , 0x87c , 0 ),
147182 DEF_RST (R9A07G043_ETH1_RST_HW_N , 0x87c , 1 ),
148183 DEF_RST (R9A07G043_SCIF0_RST_SYSTEM_N , 0x884 , 0 ),
0 commit comments