From a178a8c5de4f1c061a40d62f34ec081165a3862a Mon Sep 17 00:00:00 2001 From: Clark Wang Date: Wed, 6 Apr 2022 14:30:09 +0800 Subject: [PATCH] imx: imx8ulp: clock: Add clock support for i3c controller Add i3c controller clock enable/disable function for imx8ulp. Reviewed-by: Ye Li Signed-off-by: Clark Wang Signed-off-by: Peng Fan --- arch/arm/mach-imx/imx8ulp/clock.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm/mach-imx/imx8ulp/clock.c b/arch/arm/mach-imx/imx8ulp/clock.c index 91580b2c29..a2b3ce78cc 100644 --- a/arch/arm/mach-imx/imx8ulp/clock.c +++ b/arch/arm/mach-imx/imx8ulp/clock.c @@ -237,6 +237,26 @@ u32 imx_get_i2cclk(u32 i2c_num) } #endif +#if IS_ENABLED(CONFIG_SYS_I2C_IMX_I3C) +int enable_i3c_clk(unsigned char enable, u32 i3c_num) +{ + if (enable) { + pcc_clock_enable(3, I3C2_PCC3_SLOT, false); + pcc_clock_sel(3, I3C2_PCC3_SLOT, SOSC_DIV2); + pcc_clock_enable(3, I3C2_PCC3_SLOT, true); + pcc_reset_peripheral(3, I3C2_PCC3_SLOT, false); + } else { + pcc_clock_enable(3, I3C2_PCC3_SLOT, false); + } + return 0; +} + +u32 imx_get_i3cclk(u32 i3c_num) +{ + return pcc_clock_get_rate(3, I3C2_PCC3_SLOT); +} +#endif + void enable_usboh3_clk(unsigned char enable) { if (enable) { -- 2.39.5