[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220930212737.628D2C433C1@smtp.kernel.org>
Date: Fri, 30 Sep 2022 14:27:34 -0700
From: Stephen Boyd <sboyd@...nel.org>
To: Michael Turquette <mturquette@...libre.com>,
Serge Semin <Sergey.Semin@...kalelectronics.ru>
Cc: Serge Semin <Sergey.Semin@...kalelectronics.ru>,
Serge Semin <fancer.lancer@...il.com>,
Alexey Malahov <Alexey.Malahov@...kalelectronics.ru>,
Pavel Parkhomenko <Pavel.Parkhomenko@...kalelectronics.ru>,
Philipp Zabel <p.zabel@...gutronix.de>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
linux-clk@...r.kernel.org, linux-mips@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH RESEND v12 8/8] clk: baikal-t1: Convert to platform device driver
Quoting Serge Semin (2022-09-29 15:54:02)
> In accordance with the way the MIPS platform is normally design there are
> only six clock sources which need to be available on the kernel start in
> order to one end up booting correctly:
> + CPU PLL: needed by the r4k and MIPS GIC timer drivers. The former one is
> initialized by the arch code, while the later one is implemented in the
> mips-gic-timer.c driver as the OF-declared timer.
> + PCIe PLL: required as a parental clock source for the APB/timer domains.
> + APB clock: needed in order to access all the SoC CSRs at least for the
> timer OF-declared drivers.
> + APB Timer{0-2} clocks: these are the DW APB timers which drivers
> dw_apb_timer_of.c are implemented as the OF-declared timers.
>
> So as long as the clocks above are available early the kernel will
> normally work. Let's convert the Baikal-T1 CCU drivers to the platform
> device drivers keeping that in mind.
>
> Generally speaking the conversion isn't that complicated since the driver
> infrastructure has been designed as flexible enough for that. First we
> need to add a new PLL/Divider clock features flag which indicates the
> corresponding clock source as a basic one and that clock sources will be
> available on the kernel early boot stages. Second the internal PLL/Divider
> descriptors need to be initialized with -EPROBE_DEFER value as the
> corresponding clock source is unavailable at the early stages. They will
> be allocated and initialized on the Baikal-T1 clock platform driver probe
> procedure. Finally the already available PLL/Divider init functions need
> to be split up into two ones: init procedure performed in the framework of
> the OF-declared clock initialization (of_clk_init()), and the probe
> procedure called by the platform devices bus driver. Note the later method
> will just continue the system clocks initialization started in the former
> one.
>
> Signed-off-by: Serge Semin <Sergey.Semin@...kalelectronics.ru>
>
> ---
Applied to clk-next
Powered by blists - more mailing lists