1616
1717enum clk_ids {
1818 /* Core Clock Outputs exported to DT */
19- LAST_DT_CORE_CLK = R9A09G047_IOTOP_0_SHCLK ,
19+ LAST_DT_CORE_CLK = R9A09G047_GBETH_1_CLK_PTP_REF_I ,
2020
2121 /* External Input Clocks */
2222 CLK_AUDIO_EXTAL ,
@@ -31,7 +31,14 @@ enum clk_ids {
3131 CLK_PLLVDO ,
3232
3333 /* Internal Core Clocks */
34+ CLK_PLLCM33_DIV3 ,
35+ CLK_PLLCM33_DIV4 ,
36+ CLK_PLLCM33_DIV5 ,
3437 CLK_PLLCM33_DIV16 ,
38+ CLK_PLLCM33_GEAR ,
39+ CLK_SMUX2_XSPI_CLK0 ,
40+ CLK_SMUX2_XSPI_CLK1 ,
41+ CLK_PLLCM33_XSPI ,
3542 CLK_PLLCLN_DIV2 ,
3643 CLK_PLLCLN_DIV8 ,
3744 CLK_PLLCLN_DIV16 ,
@@ -61,6 +68,14 @@ static const struct clk_div_table dtable_2_4[] = {
6168 {0 , 0 },
6269};
6370
71+ static const struct clk_div_table dtable_2_16 [] = {
72+ {0 , 2 },
73+ {1 , 4 },
74+ {2 , 8 },
75+ {3 , 16 },
76+ {0 , 0 },
77+ };
78+
6479static const struct clk_div_table dtable_2_64 [] = {
6580 {0 , 2 },
6681 {1 , 4 },
@@ -70,6 +85,10 @@ static const struct clk_div_table dtable_2_64[] = {
7085 {0 , 0 },
7186};
7287
88+ /* Mux clock tables */
89+ static const char * const smux2_xspi_clk0 [] = { ".pllcm33_div3" , ".pllcm33_div4" };
90+ static const char * const smux2_xspi_clk1 [] = { ".smux2_xspi_clk0" , ".pllcm33_div5" };
91+
7392static const struct cpg_core_clk r9a09g047_core_clks [] __initconst = {
7493 /* External Clock Inputs */
7594 DEF_INPUT ("audio_extal" , CLK_AUDIO_EXTAL ),
@@ -84,8 +103,17 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
84103 DEF_FIXED (".pllvdo" , CLK_PLLVDO , CLK_QEXTAL , 105 , 2 ),
85104
86105 /* Internal Core Clocks */
106+ DEF_FIXED (".pllcm33_div3" , CLK_PLLCM33_DIV3 , CLK_PLLCM33 , 1 , 3 ),
107+ DEF_FIXED (".pllcm33_div4" , CLK_PLLCM33_DIV4 , CLK_PLLCM33 , 1 , 4 ),
108+ DEF_FIXED (".pllcm33_div5" , CLK_PLLCM33_DIV5 , CLK_PLLCM33 , 1 , 5 ),
87109 DEF_FIXED (".pllcm33_div16" , CLK_PLLCM33_DIV16 , CLK_PLLCM33 , 1 , 16 ),
88110
111+ DEF_DDIV (".pllcm33_gear" , CLK_PLLCM33_GEAR , CLK_PLLCM33_DIV4 , CDDIV0_DIVCTL1 , dtable_2_64 ),
112+
113+ DEF_SMUX (".smux2_xspi_clk0" , CLK_SMUX2_XSPI_CLK0 , SSEL1_SELCTL2 , smux2_xspi_clk0 ),
114+ DEF_SMUX (".smux2_xspi_clk1" , CLK_SMUX2_XSPI_CLK1 , SSEL1_SELCTL3 , smux2_xspi_clk1 ),
115+ DEF_CSDIV (".pllcm33_xspi" , CLK_PLLCM33_XSPI , CLK_SMUX2_XSPI_CLK1 , CSDIV0_DIVCTL3 ,
116+ dtable_2_16 ),
89117 DEF_FIXED (".pllcln_div2" , CLK_PLLCLN_DIV2 , CLK_PLLCLN , 1 , 2 ),
90118 DEF_FIXED (".pllcln_div8" , CLK_PLLCLN_DIV8 , CLK_PLLCLN , 1 , 8 ),
91119 DEF_FIXED (".pllcln_div16" , CLK_PLLCLN_DIV16 , CLK_PLLCLN , 1 , 16 ),
@@ -110,6 +138,7 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
110138 DEF_DDIV ("ca55_0_coreclk3" , R9A09G047_CA55_0_CORECLK3 , CLK_PLLCA55 ,
111139 CDDIV1_DIVCTL3 , dtable_1_8 ),
112140 DEF_FIXED ("iotop_0_shclk" , R9A09G047_IOTOP_0_SHCLK , CLK_PLLCM33_DIV16 , 1 , 1 ),
141+ DEF_FIXED ("spi_clk_spi" , R9A09G047_SPI_CLK_SPI , CLK_PLLCM33_XSPI , 1 , 2 ),
113142};
114143
115144static const struct rzv2h_mod_clk r9a09g047_mod_clks [] __initconst = {
@@ -155,6 +184,12 @@ static const struct rzv2h_mod_clk r9a09g047_mod_clks[] __initconst = {
155184 BUS_MSTOP (10 , BIT (14 ))),
156185 DEF_MOD ("canfd_0_clkc" , CLK_PLLCLN_DIV20 , 9 , 14 , 4 , 30 ,
157186 BUS_MSTOP (10 , BIT (14 ))),
187+ DEF_MOD ("spi_hclk" , CLK_PLLCM33_GEAR , 9 , 15 , 4 , 31 ,
188+ BUS_MSTOP (4 , BIT (5 ))),
189+ DEF_MOD ("spi_aclk" , CLK_PLLCM33_GEAR , 10 , 0 , 5 , 0 ,
190+ BUS_MSTOP (4 , BIT (5 ))),
191+ DEF_MOD_NO_PM ("spi_clk_spix2" , CLK_PLLCM33_XSPI , 10 , 1 , 5 , 2 ,
192+ BUS_MSTOP (4 , BIT (5 ))),
158193 DEF_MOD ("sdhi_0_imclk" , CLK_PLLCLN_DIV8 , 10 , 3 , 5 , 3 ,
159194 BUS_MSTOP (8 , BIT (2 ))),
160195 DEF_MOD ("sdhi_0_imclk2" , CLK_PLLCLN_DIV8 , 10 , 4 , 5 , 4 ,
@@ -215,6 +250,8 @@ static const struct rzv2h_reset r9a09g047_resets[] __initconst = {
215250 DEF_RST (10 , 0 , 4 , 17 ), /* RIIC_8_MRST */
216251 DEF_RST (10 , 1 , 4 , 18 ), /* CANFD_0_RSTP_N */
217252 DEF_RST (10 , 2 , 4 , 19 ), /* CANFD_0_RSTC_N */
253+ DEF_RST (10 , 3 , 4 , 20 ), /* SPI_HRESETN */
254+ DEF_RST (10 , 4 , 4 , 21 ), /* SPI_ARESETN */
218255 DEF_RST (10 , 7 , 4 , 24 ), /* SDHI_0_IXRST */
219256 DEF_RST (10 , 8 , 4 , 25 ), /* SDHI_1_IXRST */
220257 DEF_RST (10 , 9 , 4 , 26 ), /* SDHI_2_IXRST */
0 commit comments