Hi Morimoto-san, On Dec 14, 2016, Kuninori Morimoto wrote: > I don't think using global variable is a good idea. > For example, how about add reg_width_8bit into mstp_clock_group, and > cpg_mstp_read/write requests it, or something like that ? If I make a separate CLK_OF_DECLARE like this: static void __init cpg_mstp_clocks_init8(struct device_node *np) { reg_width_8bit = true; cpg_mstp_clocks_init(np); } CLK_OF_DECLARE(cpg_mstp_clks8, "renesas,r7s72100-mstp-clocks", cpg_mstp_clocks_init8); The only way I can pass the 8-bit/32-bit choice into cpg_mstp_clocks_init() is using a global variable. Unless, I change the API to cpg_mstp_clocks_init(np, reg_width_8bit) But, that means adding another function: CLK_OF_DECLARE(cpg_mstp_clks32, "renesas,cpg-mstp-clocks", cpg_mstp_clocks_init32); CLK_OF_DECLARE(cpg_mstp_clks8, "renesas,r7s72100-mstp-clocks", cpg_mstp_clocks_init8); static void __init cpg_mstp_clocks_init32(struct device_node *np) { cpg_mstp_clocks_init(np, false); } static void __init cpg_mstp_clocks_init8(struct device_node *np) { cpg_mstp_clocks_init(np, true); } A global variable is much easier, but if no one likes it, I can change to mstp_clock_group.reg_width_8bit instead. Chris