[U-Boot] [PATCH v5 00/18] clk: Port Linux common clock framework [CCF] to U-boot (tag: v5.1.12)
Schrempf Frieder
frieder.schrempf at kontron.de
Tue Jun 25 09:32:29 UTC 2019
Hi Lukasz,
On 24.06.19 15:50, Lukasz Majewski wrote:
> This patch series brings the files from Linux kernel (SHA1: 5752b50477da
> Linux 5.1.12 to provide clocks support as it is used on the Linux kernel
> with Common Clock Framework [CCF] setup.
>
> This series also fixes several problems with current clocks and provides
> sandbox tests for functions added to clk-uclass.c file.
>
> CCF impact to U-Boot size:
> --------------------------
> SPL U-Boot.img
> Without CCF: 51 KiB 358 KiB
> With CCF: 55 KiB 363 KiB
> Size increase: 1.3% 7.2%
The size increase numbers seem to be a bit off. It's 7.8% for SPL (which
is quite a lot) and 1.4% for U-Boot proper from your size values.
By the way: Thanks for the new version. I'm currently still
experimenting with your v3 and Peng's patches for i.MX8MM on top of
2019.04. I hope I have time to rebase on master and v5 soon.
Thanks,
Frieder
>
> The SPL implementation is not yet optimized (no OF_PLATDATA, etc).
>
> Repository:
> https://github.com/lmajewski/u-boot-dfu/commits/CCF-v5
>
> Applicable on top of u-boot/master:
> SHA1: 77f6e2dd0551d8a825bab391a1bd6b838874bcd4
>
> Travis-CI:
> https://travis-ci.org/lmajewski/u-boot-dfu/builds/549603356
>
>
> Changes in v6:
> - Use dev->uclass_priv pointer to store pointer to clk
>
> Changes in v5:
> - s/U-boot/U-Boot/g
> - Update Linux version to 5.1.12
> - Add paragraph regarding sandbox CCF testing (common uclass code)
> - Use long long to store rate value (to avoid int overflow and also return
> errors correctly)
> - Use u32 to avoid checkpatch warning
> - s/U-boot/U-Boot/g
> - Replace dev->driver_data with dev_get_clk_ptr() wrapper on uclass_priv
> - Replace ulong with long long (to accommodate large freqs and return
> errors)
> - s/U-boot/U-Boot/g
> - Check if the relevant code has changed between Linux tag v5.0-rc3 and
> v5.1.12 (no changes - the version can be safely updated).
> - Use imply CLK_IMX6Q in Kconfig for (SPL_)CCF
> - Fix clk-fixed-factor implementation (kzalloc needed for correct Sandbox
> operation)
> - Fix gate2 implementation
> - Use dev->uclass_priv instead of dev->driver_data to store back pointer
> to the struct clk.
> - Split and introduce earlier the clk-provider.h header file
>
> Changes in v4:
> - New patch
> - Port some more Linux code to facilitate imx8 code porting (most notably
> flags)
> - Explicitly use container_of() based macro to provide struct clk in various
> places (e.g. gate2, mux, etc)
> Following patches has been squashed:
> http://patchwork.ozlabs.org/patch/1093141/
> http://patchwork.ozlabs.org/patch/1093142/
> http://patchwork.ozlabs.org/patch/1093146/
>
> Changes in v3:
> - New patch
> - The rate information is now cached into struct clk field
> - The clk_get_parent() is used to get pointer to the parent struct clk
> - Replace -ENODEV with -ENOENT
> - Use **clkp instead of **c
> - Replace dev->driver_data with dev_get_clk_ptr() wrapper on uclas_priv
>
> Lukasz Majewski (18):
> clk: doc: Add documentation entry for Common Clock Framework [CCF]
> (i.MX)
> dm: Fix documentation entry as there is no UCLASS_CLOCK uclass
> clk: Remove clock ID check in .get_rate() of clk_fixed_*
> clk: Extend struct clk to provide information regarding clock rate
> clk: Extend struct clk to provide clock type agnostic flags
> clk: Provide struct clk for fixed rate clock (clk_fixed_rate.c)
> clk: Introduce clk-provider.h to store Common Clock Framework's
> internals
> dm: clk: Define clk_get_parent() for clk operations
> dm: clk: Define clk_get_parent_rate() for clk operations
> dm: clk: Define clk_get_by_id() for clk operations
> clk: Port Linux common clock framework [CCF] for imx6q to U-boot (tag:
> v5.1.12)
> dm: clk: Extend clk_get_parent_rate() to support CLK_GET_RATE_NOCACHE
> flag
> dts: sandbox: Add 'osc' clock for Common Clock Framework [CCF] testing
> clk: sandbox: Adjust clk-divider to emulate reading its value from HW
> clk: sandbox: Adjust clk-mux.c to emulate reading divider value from
> HW
> clk: sandbox: Add sandbox test code for Common Clock Framework [CCF]
> defconfig: sandbox: Enable SANDBOX_CLK_CCF to reuse generic CCF code
> clk: Add MAINTAINERS entry for clocks (./drivers/clk/)
>
> MAINTAINERS | 7 ++
> arch/sandbox/dts/test.dts | 10 ++
> configs/sandbox_defconfig | 1 +
> configs/sandbox_flattree_defconfig | 1 +
> doc/imx/clk/ccf.txt | 101 ++++++++++++++++++++
> drivers/clk/Kconfig | 22 +++++
> drivers/clk/Makefile | 3 +
> drivers/clk/clk-divider.c | 155 +++++++++++++++++++++++++++++++
> drivers/clk/clk-fixed-factor.c | 80 ++++++++++++++++
> drivers/clk/clk-mux.c | 172 ++++++++++++++++++++++++++++++++++
> drivers/clk/clk-uclass.c | 60 ++++++++++++
> drivers/clk/clk.c | 57 ++++++++++++
> drivers/clk/clk_fixed_factor.c | 3 -
> drivers/clk/clk_fixed_rate.c | 8 +-
> drivers/clk/clk_sandbox_ccf.c | 185 +++++++++++++++++++++++++++++++++++++
> drivers/clk/imx/Kconfig | 16 ++++
> drivers/clk/imx/Makefile | 2 +
> drivers/clk/imx/clk-gate2.c | 103 +++++++++++++++++++++
> drivers/clk/imx/clk-imx6q.c | 179 +++++++++++++++++++++++++++++++++++
> drivers/clk/imx/clk-pfd.c | 90 ++++++++++++++++++
> drivers/clk/imx/clk-pllv3.c | 82 ++++++++++++++++
> drivers/clk/imx/clk.h | 69 ++++++++++++++
> include/clk.h | 37 +++++++-
> include/linux/clk-provider.h | 132 ++++++++++++++++++++++++++
> include/sandbox-clk.h | 76 +++++++++++++++
> test/dm/Makefile | 2 +-
> test/dm/clk_ccf.c | 62 +++++++++++++
> 27 files changed, 1707 insertions(+), 8 deletions(-)
> create mode 100644 doc/imx/clk/ccf.txt
> create mode 100644 drivers/clk/clk-divider.c
> create mode 100644 drivers/clk/clk-fixed-factor.c
> create mode 100644 drivers/clk/clk-mux.c
> create mode 100644 drivers/clk/clk.c
> create mode 100644 drivers/clk/clk_sandbox_ccf.c
> create mode 100644 drivers/clk/imx/clk-gate2.c
> create mode 100644 drivers/clk/imx/clk-imx6q.c
> create mode 100644 drivers/clk/imx/clk-pfd.c
> create mode 100644 drivers/clk/imx/clk-pllv3.c
> create mode 100644 drivers/clk/imx/clk.h
> create mode 100644 include/linux/clk-provider.h
> create mode 100644 include/sandbox-clk.h
> create mode 100644 test/dm/clk_ccf.c
>
More information about the U-Boot
mailing list