clock control on FreeRTOS imx8mq-evk

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

clock control on FreeRTOS imx8mq-evk

1,480 Views
pkolomzarov
Contributor I

When Linux on A53 core goes to sleep, each call I2C_RTOS_Transfer() (I2C2) on M4 returns kStatus_I2C_Addr_Nak.

I guess that happens because Linux disables important clock.

drivers/clk/imx/clk-imx8mq.c:

Spoiler
static const char * const imx8mq_i2c2_sels[] = {"osc_25m", "sys1_pll_160m", "sys2_pll_50m", "sys3_pll_out", "audio_pll1_out", "video_pll1_out", "audio_pll2_out", "sys1_pll_133m", };

clks[IMX8MQ_CLK_I2C2] = imx8m_clk_composite("i2c2", imx8mq_i2c2_sels, base + 0xad80);
clks[IMX8MQ_CLK_I2C2_ROOT] = imx_clk_gate4("i2c2_root_clk", "i2c2", base + 0x4180, 0);

How to reenable I2C2 clock? Or tell Linux to keep it enabled?

0 Kudos
Reply
2 Replies

1,299 Views
Dhruvit
NXP TechSupport
NXP TechSupport

Hi @pkolomzarov,

Could you please confirm which BSP version you are using?

 

Best Regards,
Dhruvit.

0 Kudos
Reply

712 Views
pkolomzarov
Contributor I

kernel branch is 5.4.47-2.2.0

Update:

forget that i2c2 nak issue. Main problem is that M4 stops working if I dont set Axi and Ahb root muxes to Osc25m. And if I do so - linux on A53 core either fails in many places or dont resume at all, even if I switch mux back to syspll just after triggering resume `MU_TriggerInterrupts(MUB, kMU_GenInt0InterruptTrigger);`

0 Kudos
Reply