Quoting zhuyinbo (2023-02-19 21:44:51) > > 在 2023/2/18 上午6:15, Stephen Boyd 写道: > > Quoting zhuyinbo (2023-02-14 23:35:22) > >> 在 2023/2/11 上午7:42, Stephen Boyd 写道: > >>>> + > >>>> +err: > >>>> + iounmap(loongson2_pll_base); > >>>> +} > >>>> + > >>>> +CLK_OF_DECLARE(loongson2_clk, "loongson,ls2k-clk", loongson2_clocks_init); > >>> Any reason this can't be a platform driver? > > Your question is that why I don't use the platform_driver_register to > register clk and use CLK_OF_DECLARE ? Yes. > > I was consider other clock controllers of Loongson-2 series may be > different with 2k1000 and I can add a line > > CLK_OF_DECLARE() for compatible other platform in the future. eg. > > CLK_OF_DECLARE(loongson2_clk, "loongson,ls2k-clk", loongson2_clocks_init); > > + CLK_OF_DECLARE(xxx1, xxx2, xxx3); // for other clock controllers of > Loongson-2 series > > >> For the compatible consideration of other clock controllers of > >> Loongson-2 series in the future, the way of using dts can be > >> > >> better compatible. > >> > > Sorry that sentence doesn't make sense to me. The use of dts doesn't > > require the use of CLK_OF_DECLARE. > > yes, the use of dts doesn't require the use of CLK_OF_DECLARE and can > use platform_driver_register > > but my drvier not use platform_driver_register to register clk and use > CLK_OF_DECLARE to match of_clk_init. of_clk_init() is there to register clks that are needed for early init, i.e. the clockevent/clocksource or the root interrupt controller (irqchip). Otherwise, it isn't necessary to register clks via of_clk_init().