Re: [PATCH V5 0/6] Support building i.MX ARMv7/ARMv8 platforms clock driver as module

From: Laurent Pinchart
Date: Thu Jul 02 2020 - 14:30:09 EST


Hi Anson,

On Thu, Jul 02, 2020 at 11:23:55PM +0800, Anson Huang wrote:
> Nowdays, there are more and more requirements of building SoC specific
> drivers as modules, such as Android GKI (generic kernel image), this
> patch set supports building i.MX ARMv6/ARMv7 SoCs clock drivers as modules,

I'm curious, how does the system boot to userspace to be able to load
modules without clock support in the kernel ? What if the driver for the
device storing the rootfs cope with clocks not being available ? Does
this require an initramfs with the clock module ? Even then, how does
the serial port driver cope with not having clocks ?

> The CLK_IMXxxx is introduced for i.MX ARMv7 platforms in order to support
> various build options, and i.MX1/2/3 platforms now still ONLY support built-in
> as they are rarely used now.
>
> Changes since V4:
> - add empty function of imx_register_uart_clocks() for MODULE build, then
> all earlycon related clock handler can be built-out for MODULE;
> - add module build support for ARMv7 platforms, also add COMPILE_TEST for them;
> - add COMPILE_TEST for ARMv8 platforms;
> - keep using builtin_platform_driver() for i.MX8QXP clock driver.
>
> Anson Huang (6):
> clk: composite: Export clk_hw_register_composite()
> clk: imx: Support module build for i.MX5/6/7 and vf610
> clk: imx: Support building i.MX common clock driver as module
> clk: imx: Add clock configuration for ARMv7 platforms
> clk: imx8m: Support module build
> clk: imx8qxp: Support building i.MX8QXP clock driver as module
>
> drivers/clk/clk-composite.c | 1 +
> drivers/clk/imx/Kconfig | 101 ++++++++++++++++++++++++++++++++-----
> drivers/clk/imx/Makefile | 79 ++++++++++++++---------------
> drivers/clk/imx/clk-composite-8m.c | 2 +
> drivers/clk/imx/clk-cpu.c | 2 +
> drivers/clk/imx/clk-frac-pll.c | 2 +
> drivers/clk/imx/clk-gate2.c | 2 +
> drivers/clk/imx/clk-imx5.c | 5 ++
> drivers/clk/imx/clk-imx6q.c | 5 ++
> drivers/clk/imx/clk-imx6sl.c | 5 ++
> drivers/clk/imx/clk-imx6sll.c | 5 ++
> drivers/clk/imx/clk-imx6sx.c | 5 ++
> drivers/clk/imx/clk-imx6ul.c | 5 ++
> drivers/clk/imx/clk-imx7d.c | 5 ++
> drivers/clk/imx/clk-imx7ulp.c | 5 ++
> drivers/clk/imx/clk-imx8mm.c | 4 ++
> drivers/clk/imx/clk-imx8mn.c | 4 ++
> drivers/clk/imx/clk-imx8mp.c | 4 ++
> drivers/clk/imx/clk-imx8mq.c | 4 ++
> drivers/clk/imx/clk-imx8qxp-lpcg.c | 4 ++
> drivers/clk/imx/clk-imx8qxp.c | 4 ++
> drivers/clk/imx/clk-pll14xx.c | 5 ++
> drivers/clk/imx/clk-sscg-pll.c | 2 +
> drivers/clk/imx/clk-vf610.c | 5 ++
> drivers/clk/imx/clk.c | 17 +++++--
> drivers/clk/imx/clk.h | 6 +++
> 26 files changed, 231 insertions(+), 57 deletions(-)

--
Regards,

Laurent Pinchart