SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
The IEP has a selectable module input clock (ICSSGn_IEP_CLK, see also PRU_ICSSG Integration). The clock source is selected by the state of the CTRLMMR_ICSSGn_CLKSEL[19-16] IEP_CLKSEL bit within the CTRL_MMR0 register space. Two clock sources are supported for the IEP input clock:
Switching from ICSSGn_IEP_CLK to ICSSGn_ICLK is done by writing 1h to the ICSSG_IEPCLK_REG[0] IEP_OCP_CLK_EN bit. This is a one time configuration step before enabling the IEP function. Switching back from ICSSGn_ICLK to ICSSGn_IEP_CLK is only supported through a hardware reset of the PRU_ICSSG.
When software enables the clock (at PRU_ICSSG level) to the IEP module clock input via setting bit ICSSG_IEPCLK_REG[0] IEP_OCP_CLK_EN to 1h in the PRUSS_CFG space, there must be NO in-flight transactions to the IEP block.
Switching from ICSSGn_IEP_CLK (the IEP specific functional clock source) to the ICSSGn_CORE_CLK source is supported ONLY in software. Switching back from ICSSGn_CORE_CLK to ICSSGn_IEP_CLK is ONLY supported via assertion of a hardware reset to the PRU_ICSSG.