
On Thu, May 16, 2019 at 9:48 PM Bin Meng bmeng.cn@gmail.com wrote:
Hi Lukasz,
On Fri, May 17, 2019 at 6:16 AM Lukasz Majewski lukma@denx.de wrote:
This commit brings the files from Linux kernel to provide clocks support as it is used on the Linux kernel with common clock framework [CCF] setup.
Two issues / questions:
1) I tried to test this on the imx6q_logic board, and I enabled CLK_IMX6Q in the menu config, but when I save the defconfig, it appears there are unmet dependencies.
WARNING: unmet direct dependencies detected for SPL_CLK_CCF Depends on [n]: SPL_CLK [=n] Selected by [y]: - CLK_IMX6Q [=y] && ARCH_MX6 [=y]
WARNING: unmet direct dependencies detected for SPL_CLK_CCF Depends on [n]: SPL_CLK [=n] Selected by [y]: - CLK_IMX6Q [=y] && ARCH_MX6 [=y]
you may want to consider implying the correct functions if ARCH_MX6 && CLK_IMX6Q or select the proper SPL_CLK info. My board doesn't do DM in SPL right now, but I assume the CLK driver you ported is using DM.
2) I didn't attempt to load the SPL portion, but when I loaded the u-boot-dtb.img file, it didn't appear to boot.
U-Boot SPL 2019.01 (May 13 2019 - 16:57:41 -0500) Trying to boot from MMC1 spl_load_image_fat_os: error reading image args, err - -2
(hang)
Other than enabling CLK_IMX6Q, are there other items I need to enable? My board has OF_CONTROL in U-Boot with DM support working in the U-Boot portion.
adam
The directory structure has been preserved. The ported code only supports reading information from PLL, MUX, Divider, etc and enabling/disabling the clocks USDHCx/ECSPIx depending on used bus. Moreover, it is agnostic to the alias numbering as the information about the clock is read from device tree.
One needs to pay attention to the comments indicating necessary for U-boot's
nits: it's U-Boot. Please fix this globally in the commit message, as well as in the code comments in this commit.
DM changes.
If needed the code can be extended to support the "set" part of the clock management.
Signed-off-by: Lukasz Majewski lukma@denx.de
Changes in v4:
- 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: None
drivers/clk/Kconfig | 14 ++++ drivers/clk/Makefile | 2 + drivers/clk/clk-divider.c | 148 ++++++++++++++++++++++++++++++++++ drivers/clk/clk-fixed-factor.c | 87 ++++++++++++++++++++ drivers/clk/clk-mux.c | 164 +++++++++++++++++++++++++++++++++++++ drivers/clk/clk.c | 56 +++++++++++++ drivers/clk/imx/Kconfig | 9 +++ drivers/clk/imx/Makefile | 2 + drivers/clk/imx/clk-gate2.c | 113 ++++++++++++++++++++++++++ drivers/clk/imx/clk-imx6q.c | 179 +++++++++++++++++++++++++++++++++++++++++ drivers/clk/imx/clk-pfd.c | 91 +++++++++++++++++++++ drivers/clk/imx/clk-pllv3.c | 83 +++++++++++++++++++ drivers/clk/imx/clk.h | 75 +++++++++++++++++ include/linux/clk-provider.h | 115 ++++++++++++++++++++++++++ 14 files changed, 1138 insertions(+) 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/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
Regards, Bin