@@ -255,24 +255,53 @@ static struct clk_hw *_ti_omap4_clkctrl_xlate(struct of_phandle_args *clkspec,
255255 return entry -> clk ;
256256}
257257
258+ /* Get clkctrl clock base name based on clkctrl_name or dts node */
259+ static const char * __init clkctrl_get_clock_name (struct device_node * np ,
260+ const char * clkctrl_name ,
261+ int offset , int index ,
262+ bool legacy_naming )
263+ {
264+ char * clock_name ;
265+
266+ /* l4per-clkctrl:1234:0 style naming based on clkctrl_name */
267+ if (clkctrl_name && !legacy_naming ) {
268+ clock_name = kasprintf (GFP_KERNEL , "%s-clkctrl:%04x:%d" ,
269+ clkctrl_name , offset , index );
270+ strreplace (clock_name , '_' , '-' );
271+
272+ return clock_name ;
273+ }
274+
275+ /* l4per:1234:0 old style naming based on clkctrl_name */
276+ if (clkctrl_name )
277+ return kasprintf (GFP_KERNEL , "%s_cm:clk:%04x:%d" ,
278+ clkctrl_name , offset , index );
279+
280+ /* l4per_cm:1234:0 old style naming based on parent node name */
281+ if (legacy_naming )
282+ return kasprintf (GFP_KERNEL , "%pOFn:clk:%04x:%d" ,
283+ np -> parent , offset , index );
284+
285+ /* l4per-clkctrl:1234:0 style naming based on node name */
286+ return kasprintf (GFP_KERNEL , "%pOFn:%04x:%d" , np , offset , index );
287+ }
288+
258289static int __init
259290_ti_clkctrl_clk_register (struct omap_clkctrl_provider * provider ,
260291 struct device_node * node , struct clk_hw * clk_hw ,
261292 u16 offset , u8 bit , const char * const * parents ,
262- int num_parents , const struct clk_ops * ops )
293+ int num_parents , const struct clk_ops * ops ,
294+ const char * clkctrl_name )
263295{
264296 struct clk_init_data init = { NULL };
265297 struct clk * clk ;
266298 struct omap_clkctrl_clk * clkctrl_clk ;
267299 int ret = 0 ;
268300
269- if (ti_clk_get_features ()-> flags & TI_CLK_CLKCTRL_COMPAT )
270- init .name = kasprintf (GFP_KERNEL , "%pOFn:%pOFn:%04x:%d" ,
271- node -> parent , node , offset ,
272- bit );
273- else
274- init .name = kasprintf (GFP_KERNEL , "%pOFn:%04x:%d" , node ,
275- offset , bit );
301+ init .name = clkctrl_get_clock_name (node , clkctrl_name , offset , bit ,
302+ ti_clk_get_features ()-> flags &
303+ TI_CLK_CLKCTRL_COMPAT );
304+
276305 clkctrl_clk = kzalloc (sizeof (* clkctrl_clk ), GFP_KERNEL );
277306 if (!init .name || !clkctrl_clk ) {
278307 ret = - ENOMEM ;
@@ -309,7 +338,7 @@ static void __init
309338_ti_clkctrl_setup_gate (struct omap_clkctrl_provider * provider ,
310339 struct device_node * node , u16 offset ,
311340 const struct omap_clkctrl_bit_data * data ,
312- void __iomem * reg )
341+ void __iomem * reg , const char * clkctrl_name )
313342{
314343 struct clk_hw_omap * clk_hw ;
315344
@@ -322,15 +351,15 @@ _ti_clkctrl_setup_gate(struct omap_clkctrl_provider *provider,
322351
323352 if (_ti_clkctrl_clk_register (provider , node , & clk_hw -> hw , offset ,
324353 data -> bit , data -> parents , 1 ,
325- & omap_gate_clk_ops ))
354+ & omap_gate_clk_ops , clkctrl_name ))
326355 kfree (clk_hw );
327356}
328357
329358static void __init
330359_ti_clkctrl_setup_mux (struct omap_clkctrl_provider * provider ,
331360 struct device_node * node , u16 offset ,
332361 const struct omap_clkctrl_bit_data * data ,
333- void __iomem * reg )
362+ void __iomem * reg , const char * clkctrl_name )
334363{
335364 struct clk_omap_mux * mux ;
336365 int num_parents = 0 ;
@@ -357,15 +386,15 @@ _ti_clkctrl_setup_mux(struct omap_clkctrl_provider *provider,
357386
358387 if (_ti_clkctrl_clk_register (provider , node , & mux -> hw , offset ,
359388 data -> bit , data -> parents , num_parents ,
360- & ti_clk_mux_ops ))
389+ & ti_clk_mux_ops , clkctrl_name ))
361390 kfree (mux );
362391}
363392
364393static void __init
365394_ti_clkctrl_setup_div (struct omap_clkctrl_provider * provider ,
366395 struct device_node * node , u16 offset ,
367396 const struct omap_clkctrl_bit_data * data ,
368- void __iomem * reg )
397+ void __iomem * reg , const char * clkctrl_name )
369398{
370399 struct clk_omap_divider * div ;
371400 const struct omap_clkctrl_div_data * div_data = data -> data ;
@@ -393,15 +422,15 @@ _ti_clkctrl_setup_div(struct omap_clkctrl_provider *provider,
393422
394423 if (_ti_clkctrl_clk_register (provider , node , & div -> hw , offset ,
395424 data -> bit , data -> parents , 1 ,
396- & ti_clk_divider_ops ))
425+ & ti_clk_divider_ops , clkctrl_name ))
397426 kfree (div );
398427}
399428
400429static void __init
401430_ti_clkctrl_setup_subclks (struct omap_clkctrl_provider * provider ,
402431 struct device_node * node ,
403432 const struct omap_clkctrl_reg_data * data ,
404- void __iomem * reg )
433+ void __iomem * reg , const char * clkctrl_name )
405434{
406435 const struct omap_clkctrl_bit_data * bits = data -> bit_data ;
407436
@@ -412,17 +441,17 @@ _ti_clkctrl_setup_subclks(struct omap_clkctrl_provider *provider,
412441 switch (bits -> type ) {
413442 case TI_CLK_GATE :
414443 _ti_clkctrl_setup_gate (provider , node , data -> offset ,
415- bits , reg );
444+ bits , reg , clkctrl_name );
416445 break ;
417446
418447 case TI_CLK_DIVIDER :
419448 _ti_clkctrl_setup_div (provider , node , data -> offset ,
420- bits , reg );
449+ bits , reg , clkctrl_name );
421450 break ;
422451
423452 case TI_CLK_MUX :
424453 _ti_clkctrl_setup_mux (provider , node , data -> offset ,
425- bits , reg );
454+ bits , reg , clkctrl_name );
426455 break ;
427456
428457 default :
@@ -465,37 +494,6 @@ static char * __init clkctrl_get_name(struct device_node *np)
465494 return NULL ;
466495}
467496
468- /* Get clkctrl clock base name based on clkctrl_name or dts node */
469- static const char * __init clkctrl_get_clock_name (struct device_node * np ,
470- const char * clkctrl_name ,
471- int offset , int index ,
472- bool legacy_naming )
473- {
474- char * clock_name ;
475-
476- /* l4per-clkctrl:1234:0 style naming based on clkctrl_name */
477- if (clkctrl_name && !legacy_naming ) {
478- clock_name = kasprintf (GFP_KERNEL , "%s-clkctrl:%04x:%d" ,
479- clkctrl_name , offset , index );
480- strreplace (clock_name , '_' , '-' );
481-
482- return clock_name ;
483- }
484-
485- /* l4per:1234:0 old style naming based on clkctrl_name */
486- if (clkctrl_name )
487- return kasprintf (GFP_KERNEL , "%s_cm:clk:%04x:%d" ,
488- clkctrl_name , offset , index );
489-
490- /* l4per_cm:1234:0 old style naming based on parent node name */
491- if (legacy_naming )
492- return kasprintf (GFP_KERNEL , "%pOFn:clk:%04x:%d" ,
493- np -> parent , offset , index );
494-
495- /* l4per-clkctrl:1234:0 style naming based on node name */
496- return kasprintf (GFP_KERNEL , "%pOFn:%04x:%d" , np , offset , index );
497- }
498-
499497static void __init _ti_omap4_clkctrl_setup (struct device_node * node )
500498{
501499 struct omap_clkctrl_provider * provider ;
@@ -663,7 +661,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
663661 hw -> enable_reg .ptr = provider -> base + reg_data -> offset ;
664662
665663 _ti_clkctrl_setup_subclks (provider , node , reg_data ,
666- hw -> enable_reg .ptr );
664+ hw -> enable_reg .ptr , clkctrl_name );
667665
668666 if (reg_data -> flags & CLKF_SW_SUP )
669667 hw -> enable_bit = MODULEMODE_SWCTRL ;
0 commit comments