On Sat, Jul 27, 2024 at 01:21:39PM +0800, Icenowy Zheng wrote: > 在 2024-07-26星期五的 09:38 -0700,Drew Fustini写道: > > On Fri, Jul 26, 2024 at 03:45:36AM -0500, Emil Renner Berthing wrote: > > > Stephen Boyd wrote: > > > > Quoting Drew Fustini (2024-06-23 19:12:31) > > > > > Document bindings for the T-Head TH1520 AP sub-system clock > > > > > controller. > > > > > > > > > > Link: > > > > > https://openbeagle.org/beaglev-ahead/beaglev-ahead/-/blob/main/docs/TH1520%20System%20User%20Manual.pdf > > > > > Co-developed-by: Yangtao Li <frank.li@xxxxxxxx> > > > > > Signed-off-by: Yangtao Li <frank.li@xxxxxxxx> > > > > > Reviewed-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx> > > > > > Signed-off-by: Drew Fustini <dfustini@xxxxxxxxxxxxxxx> > > > > > --- > > > > > > > > Applied to clk-next > > > > > > Thanks, but this driver seems a bit incomplete. With this applied > > > the Lichee Pi > > > 4A no longer boots without the clk_ignore_unused kernel parameter. > > > > > > /Emil > > > > Is this the case when you apply the dts patches from this series? > > > > The dts patches won't go in until 6.12 so I don't think the presence > > of > > the clk-th1520-ap.c itself in 6.11 would break existing systems. > > > > That said, I have been using clk_ignore_unused. I had been thinking > > that > > made sense because the full set of clock controller drivers like > > AON_SUBSYS (always on), AUDIO_SUBSYS, DSP_SUBSYS, etc, are not > > present > > yet in mainline. However, the T-Head vendor kernel does have drivers > > for > > all those clock controllers and I was suprised to see that the vendor > > kernel fails to boot when I just tested removing clk_ignore_unused. > > > > As for clk-th1520-ap.c in mainline, I'll investigate further which > > clk > > disables seem to causing the boot failure when using the dts from > > this > > series. I suspect I may need to add nodes that will cause the > > necessary > > clks to be enabled by their respective drivers. > > If disabling the clock just leads to system hang, setting > CLK_IS_CRITICAL should be useful (and needed) here. Thank you for the suggestion about CLK_IS_CRITICAL. I have found through process of elimination that the "emmc-sdio" clock (CLK_EMMC_SDIO) fails to work after the "vp-axi" clock (CLK_VP_AXI) is disabled. I added the CLK_IGNORE_UNUSED flag to "vp-axi" and the system is able to boot correctly. I think in that case CLK_IS_CRITICAL is not needed. I've been reviewing the TH1520 System User Manual [1] and I am uncertain why the state of "vp-axi" would affect "emmc-sdio": - EMMC_SDIO_REF_CLK_EN is bit 30 in PERI_CLK_CFG (offset 0x204). - VPSYS_AXI_ACLK_EN is bit 15 in VPSYS_CLK_CFG (offsset 0x1e0). I don't see any linkage between them in the public documentation. Regardless, the addition of the CLK_IGNORE_UNUSED flag to "vp-axi" fixes the boot failure, so I will post a patch to that effect. Thanks, Drew [1] https://openbeagle.org/beaglev-ahead/beaglev-ahead/-/blob/main/docs/TH1520%20System%20User%20Manual.pdf