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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Jul 2 14:29:57 EDT 2020


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



More information about the linux-arm-kernel mailing list