58
58
#define PFD_PLL1_BASE (anatop_base + 0x2b0)
59
59
#define PFD_PLL2_BASE (anatop_base + 0x100)
60
60
#define PFD_PLL3_BASE (anatop_base + 0xf0)
61
+ #define PLL1_CTRL (anatop_base + 0x270)
62
+ #define PLL2_CTRL (anatop_base + 0x30)
61
63
#define PLL3_CTRL (anatop_base + 0x10)
64
+ #define PLL4_CTRL (anatop_base + 0x70)
65
+ #define PLL5_CTRL (anatop_base + 0xe0)
66
+ #define PLL6_CTRL (anatop_base + 0xa0)
62
67
#define PLL7_CTRL (anatop_base + 0x20)
68
+ #define ANA_MISC1 (anatop_base + 0x160)
63
69
64
70
static void __iomem * anatop_base ;
65
71
static void __iomem * ccm_base ;
66
72
67
73
/* sources for multiplexer clocks, this is used multiple times */
68
74
static const char * fast_sels [] = { "firc" , "fxosc" , };
69
75
static const char * slow_sels [] = { "sirc_32k" , "sxosc" , };
70
- static const char * pll1_sels [] = { "pll1_main" , "pll1_pfd1" , "pll1_pfd2" , "pll1_pfd3" , "pll1_pfd4" , };
71
- static const char * pll2_sels [] = { "pll2_main" , "pll2_pfd1" , "pll2_pfd2" , "pll2_pfd3" , "pll2_pfd4" , };
72
- static const char * sys_sels [] = { "fast_clk_sel" , "slow_clk_sel" , "pll2_pfd_sel" , "pll2_main" , "pll1_pfd_sel" , "pll3_main" , };
76
+ static const char * pll1_sels [] = { "pll1_sys" , "pll1_pfd1" , "pll1_pfd2" , "pll1_pfd3" , "pll1_pfd4" , };
77
+ static const char * pll2_sels [] = { "pll2_bus" , "pll2_pfd1" , "pll2_pfd2" , "pll2_pfd3" , "pll2_pfd4" , };
78
+ static const char * pll_bypass_src_sels [] = { "fast_clk_sel" , "lvds1_in" , };
79
+ static const char * pll1_bypass_sels [] = { "pll1" , "pll1_bypass_src" , };
80
+ static const char * pll2_bypass_sels [] = { "pll2" , "pll2_bypass_src" , };
81
+ static const char * pll3_bypass_sels [] = { "pll3" , "pll3_bypass_src" , };
82
+ static const char * pll4_bypass_sels [] = { "pll4" , "pll4_bypass_src" , };
83
+ static const char * pll5_bypass_sels [] = { "pll5" , "pll5_bypass_src" , };
84
+ static const char * pll6_bypass_sels [] = { "pll6" , "pll6_bypass_src" , };
85
+ static const char * pll7_bypass_sels [] = { "pll7" , "pll7_bypass_src" , };
86
+ static const char * sys_sels [] = { "fast_clk_sel" , "slow_clk_sel" , "pll2_pfd_sel" , "pll2_bus" , "pll1_pfd_sel" , "pll3_usb_otg" , };
73
87
static const char * ddr_sels [] = { "pll2_pfd2" , "sys_sel" , };
74
88
static const char * rmii_sels [] = { "enet_ext" , "audio_ext" , "enet_50m" , "enet_25m" , };
75
89
static const char * enet_ts_sels [] = { "enet_ext" , "fxosc" , "audio_ext" , "usb" , "enet_ts" , "enet_25m" , "enet_50m" , };
76
- static const char * esai_sels [] = { "audio_ext" , "mlb" , "spdif_rx" , "pll4_main_div " , };
77
- static const char * sai_sels [] = { "audio_ext" , "mlb" , "spdif_rx" , "pll4_main_div " , };
90
+ static const char * esai_sels [] = { "audio_ext" , "mlb" , "spdif_rx" , "pll4_audio_div " , };
91
+ static const char * sai_sels [] = { "audio_ext" , "mlb" , "spdif_rx" , "pll4_audio_div " , };
78
92
static const char * nfc_sels [] = { "platform_bus" , "pll1_pfd1" , "pll3_pfd1" , "pll3_pfd3" , };
79
- static const char * qspi_sels [] = { "pll3_main " , "pll3_pfd4" , "pll2_pfd4" , "pll1_pfd4" , };
80
- static const char * esdhc_sels [] = { "pll3_main " , "pll3_pfd3" , "pll1_pfd3" , "platform_bus" , };
81
- static const char * dcu_sels [] = { "pll1_pfd2" , "pll3_main " , };
93
+ static const char * qspi_sels [] = { "pll3_usb_otg " , "pll3_pfd4" , "pll2_pfd4" , "pll1_pfd4" , };
94
+ static const char * esdhc_sels [] = { "pll3_usb_otg " , "pll3_pfd3" , "pll1_pfd3" , "platform_bus" , };
95
+ static const char * dcu_sels [] = { "pll1_pfd2" , "pll3_usb_otg " , };
82
96
static const char * gpu_sels [] = { "pll2_pfd2" , "pll3_pfd2" , };
83
- static const char * vadc_sels [] = { "pll6_main_div " , "pll3_main_div " , "pll3_main " , };
97
+ static const char * vadc_sels [] = { "pll6_video_div " , "pll3_usb_otg_div " , "pll3_usb_otg " , };
84
98
/* FTM counter clock source, not module clock */
85
99
static const char * ftm_ext_sels [] = {"sirc_128k" , "sxosc" , "fxosc_half" , "audio_ext" , };
86
100
static const char * ftm_fix_sels [] = { "sxosc" , "ipg_bus" , };
87
101
88
- static struct clk_div_table pll4_main_div_table [] = {
102
+
103
+ static struct clk_div_table pll4_audio_div_table [] = {
89
104
{ .val = 0 , .div = 1 },
90
105
{ .val = 1 , .div = 2 },
91
106
{ .val = 2 , .div = 6 },
@@ -120,6 +135,9 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
120
135
clk [VF610_CLK_AUDIO_EXT ] = imx_obtain_fixed_clock ("audio_ext" , 0 );
121
136
clk [VF610_CLK_ENET_EXT ] = imx_obtain_fixed_clock ("enet_ext" , 0 );
122
137
138
+ /* Clock source from external clock via LVDs PAD */
139
+ clk [VF610_CLK_ANACLK1 ] = imx_obtain_fixed_clock ("anaclk1" , 0 );
140
+
123
141
clk [VF610_CLK_FXOSC_HALF ] = imx_clk_fixed_factor ("fxosc_half" , "fxosc" , 1 , 2 );
124
142
125
143
np = of_find_compatible_node (NULL , NULL , "fsl,vf610-anatop" );
@@ -133,31 +151,63 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
133
151
clk [VF610_CLK_SLOW_CLK_SEL ] = imx_clk_mux ("slow_clk_sel" , CCM_CCSR , 4 , 1 , slow_sels , ARRAY_SIZE (slow_sels ));
134
152
clk [VF610_CLK_FASK_CLK_SEL ] = imx_clk_mux ("fast_clk_sel" , CCM_CCSR , 5 , 1 , fast_sels , ARRAY_SIZE (fast_sels ));
135
153
136
- clk [VF610_CLK_PLL1_MAIN ] = imx_clk_fixed_factor ("pll1_main" , "fast_clk_sel" , 22 , 1 );
137
- clk [VF610_CLK_PLL1_PFD1 ] = imx_clk_pfd ("pll1_pfd1" , "pll1_main" , PFD_PLL1_BASE , 0 );
138
- clk [VF610_CLK_PLL1_PFD2 ] = imx_clk_pfd ("pll1_pfd2" , "pll1_main" , PFD_PLL1_BASE , 1 );
139
- clk [VF610_CLK_PLL1_PFD3 ] = imx_clk_pfd ("pll1_pfd3" , "pll1_main" , PFD_PLL1_BASE , 2 );
140
- clk [VF610_CLK_PLL1_PFD4 ] = imx_clk_pfd ("pll1_pfd4" , "pll1_main" , PFD_PLL1_BASE , 3 );
141
-
142
- clk [VF610_CLK_PLL2_MAIN ] = imx_clk_fixed_factor ("pll2_main" , "fast_clk_sel" , 22 , 1 );
143
- clk [VF610_CLK_PLL2_PFD1 ] = imx_clk_pfd ("pll2_pfd1" , "pll2_main" , PFD_PLL2_BASE , 0 );
144
- clk [VF610_CLK_PLL2_PFD2 ] = imx_clk_pfd ("pll2_pfd2" , "pll2_main" , PFD_PLL2_BASE , 1 );
145
- clk [VF610_CLK_PLL2_PFD3 ] = imx_clk_pfd ("pll2_pfd3" , "pll2_main" , PFD_PLL2_BASE , 2 );
146
- clk [VF610_CLK_PLL2_PFD4 ] = imx_clk_pfd ("pll2_pfd4" , "pll2_main" , PFD_PLL2_BASE , 3 );
147
-
148
- clk [VF610_CLK_PLL3_MAIN ] = imx_clk_fixed_factor ("pll3_main" , "fast_clk_sel" , 20 , 1 );
149
- clk [VF610_CLK_PLL3_PFD1 ] = imx_clk_pfd ("pll3_pfd1" , "pll3_main" , PFD_PLL3_BASE , 0 );
150
- clk [VF610_CLK_PLL3_PFD2 ] = imx_clk_pfd ("pll3_pfd2" , "pll3_main" , PFD_PLL3_BASE , 1 );
151
- clk [VF610_CLK_PLL3_PFD3 ] = imx_clk_pfd ("pll3_pfd3" , "pll3_main" , PFD_PLL3_BASE , 2 );
152
- clk [VF610_CLK_PLL3_PFD4 ] = imx_clk_pfd ("pll3_pfd4" , "pll3_main" , PFD_PLL3_BASE , 3 );
153
-
154
- clk [VF610_CLK_PLL4_MAIN ] = imx_clk_fixed_factor ("pll4_main" , "fast_clk_sel" , 25 , 1 );
155
- /* Enet pll: fixed 50Mhz */
156
- clk [VF610_CLK_PLL5_MAIN ] = imx_clk_fixed_factor ("pll5_main" , "fast_clk_sel" , 125 , 6 );
157
- /* pll6: default 960Mhz */
158
- clk [VF610_CLK_PLL6_MAIN ] = imx_clk_fixed_factor ("pll6_main" , "fast_clk_sel" , 40 , 1 );
159
- /* pll7: USB1 PLL at 480MHz */
160
- clk [VF610_CLK_PLL7_MAIN ] = imx_clk_pllv3 (IMX_PLLV3_USB , "pll7_main" , "fast_clk_sel" , PLL7_CTRL , 0x2 );
154
+ clk [VF610_CLK_PLL1_BYPASS_SRC ] = imx_clk_mux ("pll1_bypass_src" , PLL1_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
155
+ clk [VF610_CLK_PLL2_BYPASS_SRC ] = imx_clk_mux ("pll2_bypass_src" , PLL2_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
156
+ clk [VF610_CLK_PLL3_BYPASS_SRC ] = imx_clk_mux ("pll3_bypass_src" , PLL3_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
157
+ clk [VF610_CLK_PLL4_BYPASS_SRC ] = imx_clk_mux ("pll4_bypass_src" , PLL4_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
158
+ clk [VF610_CLK_PLL5_BYPASS_SRC ] = imx_clk_mux ("pll5_bypass_src" , PLL5_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
159
+ clk [VF610_CLK_PLL6_BYPASS_SRC ] = imx_clk_mux ("pll6_bypass_src" , PLL6_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
160
+ clk [VF610_CLK_PLL7_BYPASS_SRC ] = imx_clk_mux ("pll7_bypass_src" , PLL7_CTRL , 14 , 1 , pll_bypass_src_sels , ARRAY_SIZE (pll_bypass_src_sels ));
161
+
162
+ clk [VF610_CLK_PLL1 ] = imx_clk_pllv3 (IMX_PLLV3_GENERIC , "pll1" , "pll1_bypass_src" , PLL1_CTRL , 0x1 );
163
+ clk [VF610_CLK_PLL2 ] = imx_clk_pllv3 (IMX_PLLV3_GENERIC , "pll2" , "pll2_bypass_src" , PLL2_CTRL , 0x1 );
164
+ clk [VF610_CLK_PLL3 ] = imx_clk_pllv3 (IMX_PLLV3_USB , "pll3" , "pll3_bypass_src" , PLL3_CTRL , 0x1 );
165
+ clk [VF610_CLK_PLL4 ] = imx_clk_pllv3 (IMX_PLLV3_AV , "pll4" , "pll4_bypass_src" , PLL4_CTRL , 0x7f );
166
+ clk [VF610_CLK_PLL5 ] = imx_clk_pllv3 (IMX_PLLV3_ENET , "pll5" , "pll5_bypass_src" , PLL5_CTRL , 0x3 );
167
+ clk [VF610_CLK_PLL6 ] = imx_clk_pllv3 (IMX_PLLV3_AV , "pll6" , "pll6_bypass_src" , PLL6_CTRL , 0x7f );
168
+ clk [VF610_CLK_PLL7 ] = imx_clk_pllv3 (IMX_PLLV3_USB , "pll7" , "pll7_bypass_src" , PLL7_CTRL , 0x1 );
169
+
170
+ clk [VF610_PLL1_BYPASS ] = imx_clk_mux_flags ("pll1_bypass" , PLL1_CTRL , 16 , 1 , pll1_bypass_sels , ARRAY_SIZE (pll1_bypass_sels ), CLK_SET_RATE_PARENT );
171
+ clk [VF610_PLL2_BYPASS ] = imx_clk_mux_flags ("pll2_bypass" , PLL2_CTRL , 16 , 1 , pll2_bypass_sels , ARRAY_SIZE (pll2_bypass_sels ), CLK_SET_RATE_PARENT );
172
+ clk [VF610_PLL3_BYPASS ] = imx_clk_mux_flags ("pll3_bypass" , PLL3_CTRL , 16 , 1 , pll3_bypass_sels , ARRAY_SIZE (pll3_bypass_sels ), CLK_SET_RATE_PARENT );
173
+ clk [VF610_PLL4_BYPASS ] = imx_clk_mux_flags ("pll4_bypass" , PLL4_CTRL , 16 , 1 , pll4_bypass_sels , ARRAY_SIZE (pll4_bypass_sels ), CLK_SET_RATE_PARENT );
174
+ clk [VF610_PLL5_BYPASS ] = imx_clk_mux_flags ("pll5_bypass" , PLL5_CTRL , 16 , 1 , pll5_bypass_sels , ARRAY_SIZE (pll5_bypass_sels ), CLK_SET_RATE_PARENT );
175
+ clk [VF610_PLL6_BYPASS ] = imx_clk_mux_flags ("pll6_bypass" , PLL6_CTRL , 16 , 1 , pll6_bypass_sels , ARRAY_SIZE (pll6_bypass_sels ), CLK_SET_RATE_PARENT );
176
+ clk [VF610_PLL7_BYPASS ] = imx_clk_mux_flags ("pll7_bypass" , PLL7_CTRL , 16 , 1 , pll7_bypass_sels , ARRAY_SIZE (pll7_bypass_sels ), CLK_SET_RATE_PARENT );
177
+
178
+ /* Do not bypass PLLs initially */
179
+ clk_set_parent (clk [VF610_PLL1_BYPASS ], clk [VF610_CLK_PLL1 ]);
180
+ clk_set_parent (clk [VF610_PLL2_BYPASS ], clk [VF610_CLK_PLL2 ]);
181
+ clk_set_parent (clk [VF610_PLL3_BYPASS ], clk [VF610_CLK_PLL3 ]);
182
+ clk_set_parent (clk [VF610_PLL4_BYPASS ], clk [VF610_CLK_PLL4 ]);
183
+ clk_set_parent (clk [VF610_PLL5_BYPASS ], clk [VF610_CLK_PLL5 ]);
184
+ clk_set_parent (clk [VF610_PLL6_BYPASS ], clk [VF610_CLK_PLL6 ]);
185
+ clk_set_parent (clk [VF610_PLL7_BYPASS ], clk [VF610_CLK_PLL7 ]);
186
+
187
+ clk [VF610_CLK_PLL1_SYS ] = imx_clk_gate ("pll1_sys" , "pll1_bypass" , PLL1_CTRL , 13 );
188
+ clk [VF610_CLK_PLL2_BUS ] = imx_clk_gate ("pll2_bus" , "pll2_bypass" , PLL2_CTRL , 13 );
189
+ clk [VF610_CLK_PLL3_USB_OTG ] = imx_clk_gate ("pll3_usb_otg" , "pll3_bypass" , PLL3_CTRL , 13 );
190
+ clk [VF610_CLK_PLL4_AUDIO ] = imx_clk_gate ("pll4_audio" , "pll4_bypass" , PLL4_CTRL , 13 );
191
+ clk [VF610_CLK_PLL5_ENET ] = imx_clk_gate ("pll5_enet" , "pll5_bypass" , PLL5_CTRL , 13 );
192
+ clk [VF610_CLK_PLL6_VIDEO ] = imx_clk_gate ("pll6_video" , "pll6_bypass" , PLL6_CTRL , 13 );
193
+ clk [VF610_CLK_PLL7_USB_HOST ] = imx_clk_gate ("pll7_usb_host" , "pll7_bypass" , PLL7_CTRL , 13 );
194
+
195
+ clk [VF610_CLK_LVDS1_IN ] = imx_clk_gate_exclusive ("lvds1_in" , "anaclk1" , ANA_MISC1 , 12 , BIT (10 ));
196
+
197
+ clk [VF610_CLK_PLL1_PFD1 ] = imx_clk_pfd ("pll1_pfd1" , "pll1_sys" , PFD_PLL1_BASE , 0 );
198
+ clk [VF610_CLK_PLL1_PFD2 ] = imx_clk_pfd ("pll1_pfd2" , "pll1_sys" , PFD_PLL1_BASE , 1 );
199
+ clk [VF610_CLK_PLL1_PFD3 ] = imx_clk_pfd ("pll1_pfd3" , "pll1_sys" , PFD_PLL1_BASE , 2 );
200
+ clk [VF610_CLK_PLL1_PFD4 ] = imx_clk_pfd ("pll1_pfd4" , "pll1_sys" , PFD_PLL1_BASE , 3 );
201
+
202
+ clk [VF610_CLK_PLL2_PFD1 ] = imx_clk_pfd ("pll2_pfd1" , "pll2_bus" , PFD_PLL2_BASE , 0 );
203
+ clk [VF610_CLK_PLL2_PFD2 ] = imx_clk_pfd ("pll2_pfd2" , "pll2_bus" , PFD_PLL2_BASE , 1 );
204
+ clk [VF610_CLK_PLL2_PFD3 ] = imx_clk_pfd ("pll2_pfd3" , "pll2_bus" , PFD_PLL2_BASE , 2 );
205
+ clk [VF610_CLK_PLL2_PFD4 ] = imx_clk_pfd ("pll2_pfd4" , "pll2_bus" , PFD_PLL2_BASE , 3 );
206
+
207
+ clk [VF610_CLK_PLL3_PFD1 ] = imx_clk_pfd ("pll3_pfd1" , "pll3_usb_otg" , PFD_PLL3_BASE , 0 );
208
+ clk [VF610_CLK_PLL3_PFD2 ] = imx_clk_pfd ("pll3_pfd2" , "pll3_usb_otg" , PFD_PLL3_BASE , 1 );
209
+ clk [VF610_CLK_PLL3_PFD3 ] = imx_clk_pfd ("pll3_pfd3" , "pll3_usb_otg" , PFD_PLL3_BASE , 2 );
210
+ clk [VF610_CLK_PLL3_PFD4 ] = imx_clk_pfd ("pll3_pfd4" , "pll3_usb_otg" , PFD_PLL3_BASE , 3 );
161
211
162
212
clk [VF610_CLK_PLL1_PFD_SEL ] = imx_clk_mux ("pll1_pfd_sel" , CCM_CCSR , 16 , 3 , pll1_sels , 5 );
163
213
clk [VF610_CLK_PLL2_PFD_SEL ] = imx_clk_mux ("pll2_pfd_sel" , CCM_CCSR , 19 , 3 , pll2_sels , 5 );
@@ -167,12 +217,12 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
167
217
clk [VF610_CLK_PLATFORM_BUS ] = imx_clk_divider ("platform_bus" , "sys_bus" , CCM_CACRR , 3 , 3 );
168
218
clk [VF610_CLK_IPG_BUS ] = imx_clk_divider ("ipg_bus" , "platform_bus" , CCM_CACRR , 11 , 2 );
169
219
170
- clk [VF610_CLK_PLL3_MAIN_DIV ] = imx_clk_divider ("pll3_main_div " , "pll3_main " , CCM_CACRR , 20 , 1 );
171
- clk [VF610_CLK_PLL4_MAIN_DIV ] = clk_register_divider_table (NULL , "pll4_main_div " , "pll4_main " , 0 , CCM_CACRR , 6 , 3 , 0 , pll4_main_div_table , & imx_ccm_lock );
172
- clk [VF610_CLK_PLL6_MAIN_DIV ] = imx_clk_divider ("pll6_main_div " , "pll6_main " , CCM_CACRR , 21 , 1 );
220
+ clk [VF610_CLK_PLL3_MAIN_DIV ] = imx_clk_divider ("pll3_usb_otg_div " , "pll3_usb_otg " , CCM_CACRR , 20 , 1 );
221
+ clk [VF610_CLK_PLL4_MAIN_DIV ] = clk_register_divider_table (NULL , "pll4_audio_div " , "pll4_audio " , 0 , CCM_CACRR , 6 , 3 , 0 , pll4_audio_div_table , & imx_ccm_lock );
222
+ clk [VF610_CLK_PLL6_MAIN_DIV ] = imx_clk_divider ("pll6_video_div " , "pll6_video " , CCM_CACRR , 21 , 1 );
173
223
174
- clk [VF610_CLK_USBPHY0 ] = imx_clk_gate ("usbphy0" , "pll3_main " , PLL3_CTRL , 6 );
175
- clk [VF610_CLK_USBPHY1 ] = imx_clk_gate ("usbphy1" , "pll7_main " , PLL7_CTRL , 6 );
224
+ clk [VF610_CLK_USBPHY0 ] = imx_clk_gate ("usbphy0" , "pll3_usb_otg " , PLL3_CTRL , 6 );
225
+ clk [VF610_CLK_USBPHY1 ] = imx_clk_gate ("usbphy1" , "pll7_usb_host " , PLL7_CTRL , 6 );
176
226
177
227
clk [VF610_CLK_USBC0 ] = imx_clk_gate2 ("usbc0" , "ipg_bus" , CCM_CCGR1 , CCM_CCGRx_CGn (4 ));
178
228
clk [VF610_CLK_USBC1 ] = imx_clk_gate2 ("usbc1" , "ipg_bus" , CCM_CCGR7 , CCM_CCGRx_CGn (4 ));
@@ -191,8 +241,8 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
191
241
clk [VF610_CLK_QSPI1_X1_DIV ] = imx_clk_divider ("qspi1_x1" , "qspi1_x2" , CCM_CSCDR3 , 11 , 1 );
192
242
clk [VF610_CLK_QSPI1 ] = imx_clk_gate2 ("qspi1" , "qspi1_x1" , CCM_CCGR8 , CCM_CCGRx_CGn (4 ));
193
243
194
- clk [VF610_CLK_ENET_50M ] = imx_clk_fixed_factor ("enet_50m" , "pll5_main " , 1 , 10 );
195
- clk [VF610_CLK_ENET_25M ] = imx_clk_fixed_factor ("enet_25m" , "pll5_main " , 1 , 20 );
244
+ clk [VF610_CLK_ENET_50M ] = imx_clk_fixed_factor ("enet_50m" , "pll5_enet " , 1 , 10 );
245
+ clk [VF610_CLK_ENET_25M ] = imx_clk_fixed_factor ("enet_25m" , "pll5_enet " , 1 , 20 );
196
246
clk [VF610_CLK_ENET_SEL ] = imx_clk_mux ("enet_sel" , CCM_CSCMR2 , 4 , 2 , rmii_sels , 4 );
197
247
clk [VF610_CLK_ENET_TS_SEL ] = imx_clk_mux ("enet_ts_sel" , CCM_CSCMR2 , 0 , 3 , enet_ts_sels , 7 );
198
248
clk [VF610_CLK_ENET ] = imx_clk_gate ("enet" , "enet_sel" , CCM_CSCDR1 , 24 );
0 commit comments