16
16
17
17
enum clk_ids {
18
18
/* 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 ,
20
20
21
21
/* External Input Clocks */
22
22
CLK_AUDIO_EXTAL ,
@@ -31,7 +31,14 @@ enum clk_ids {
31
31
CLK_PLLVDO ,
32
32
33
33
/* Internal Core Clocks */
34
+ CLK_PLLCM33_DIV3 ,
35
+ CLK_PLLCM33_DIV4 ,
36
+ CLK_PLLCM33_DIV5 ,
34
37
CLK_PLLCM33_DIV16 ,
38
+ CLK_PLLCM33_GEAR ,
39
+ CLK_SMUX2_XSPI_CLK0 ,
40
+ CLK_SMUX2_XSPI_CLK1 ,
41
+ CLK_PLLCM33_XSPI ,
35
42
CLK_PLLCLN_DIV2 ,
36
43
CLK_PLLCLN_DIV8 ,
37
44
CLK_PLLCLN_DIV16 ,
@@ -61,6 +68,14 @@ static const struct clk_div_table dtable_2_4[] = {
61
68
{0 , 0 },
62
69
};
63
70
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
+
64
79
static const struct clk_div_table dtable_2_64 [] = {
65
80
{0 , 2 },
66
81
{1 , 4 },
@@ -70,6 +85,10 @@ static const struct clk_div_table dtable_2_64[] = {
70
85
{0 , 0 },
71
86
};
72
87
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
+
73
92
static const struct cpg_core_clk r9a09g047_core_clks [] __initconst = {
74
93
/* External Clock Inputs */
75
94
DEF_INPUT ("audio_extal" , CLK_AUDIO_EXTAL ),
@@ -84,8 +103,17 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
84
103
DEF_FIXED (".pllvdo" , CLK_PLLVDO , CLK_QEXTAL , 105 , 2 ),
85
104
86
105
/* 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 ),
87
109
DEF_FIXED (".pllcm33_div16" , CLK_PLLCM33_DIV16 , CLK_PLLCM33 , 1 , 16 ),
88
110
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 ),
89
117
DEF_FIXED (".pllcln_div2" , CLK_PLLCLN_DIV2 , CLK_PLLCLN , 1 , 2 ),
90
118
DEF_FIXED (".pllcln_div8" , CLK_PLLCLN_DIV8 , CLK_PLLCLN , 1 , 8 ),
91
119
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 = {
110
138
DEF_DDIV ("ca55_0_coreclk3" , R9A09G047_CA55_0_CORECLK3 , CLK_PLLCA55 ,
111
139
CDDIV1_DIVCTL3 , dtable_1_8 ),
112
140
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 ),
113
142
};
114
143
115
144
static const struct rzv2h_mod_clk r9a09g047_mod_clks [] __initconst = {
@@ -155,6 +184,12 @@ static const struct rzv2h_mod_clk r9a09g047_mod_clks[] __initconst = {
155
184
BUS_MSTOP (10 , BIT (14 ))),
156
185
DEF_MOD ("canfd_0_clkc" , CLK_PLLCLN_DIV20 , 9 , 14 , 4 , 30 ,
157
186
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 ))),
158
193
DEF_MOD ("sdhi_0_imclk" , CLK_PLLCLN_DIV8 , 10 , 3 , 5 , 3 ,
159
194
BUS_MSTOP (8 , BIT (2 ))),
160
195
DEF_MOD ("sdhi_0_imclk2" , CLK_PLLCLN_DIV8 , 10 , 4 , 5 , 4 ,
@@ -215,6 +250,8 @@ static const struct rzv2h_reset r9a09g047_resets[] __initconst = {
215
250
DEF_RST (10 , 0 , 4 , 17 ), /* RIIC_8_MRST */
216
251
DEF_RST (10 , 1 , 4 , 18 ), /* CANFD_0_RSTP_N */
217
252
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 */
218
255
DEF_RST (10 , 7 , 4 , 24 ), /* SDHI_0_IXRST */
219
256
DEF_RST (10 , 8 , 4 , 25 ), /* SDHI_1_IXRST */
220
257
DEF_RST (10 , 9 , 4 , 26 ), /* SDHI_2_IXRST */
0 commit comments