Hi Sir
I can't initial Power Clock of MCAN in M4F.
Could you show me how to set the MCAN of PowerClock_init in M4F?
Below code is for MCAN of PowerClock_init, but it don't work in M4F.
What should I do to modify the PowerClock_init for MCAN in M4F?
Could you help me review it?
#define SOC_MODULES_END (0xFFFFFFFFu)
typedef struct {
uint32_t moduleId;
uint32_t clkId;
uint32_t clkRate;
} SOC_ModuleClockFrequency;
uint32_t MCAN_gSocModules[] = {
TISCI_DEV_MCAN0,
SOC_MODULES_END,
};
SOC_ModuleClockFrequency MCAN_gSocModulesClockFrequency[] = {
{ TISCI_DEV_MCAN0, TISCI_DEV_MCAN0_MCANSS_CCLK_CLK, 80000000 },
{ SOC_MODULES_END, SOC_MODULES_END, SOC_MODULES_END },
};
void MCAN_Module_clockEnable(void)
{
int32_t status;
uint32_t i = 0;
while(MCAN_gSocModules[i]!=SOC_MODULES_END)
{
status = SOC_moduleClockEnable(MCAN_gSocModules[i], 1);
DebugP_assertNoLog(status == SystemP_SUCCESS);
i++;
}
}
void MCAN_Module_clockDisable(void)
{
int32_t status;
uint32_t i = 0;
while(MCAN_gSocModules[i]!=SOC_MODULES_END)
{
status = SOC_moduleClockEnable(MCAN_gSocModules[i], 0);
DebugP_assertNoLog(status == SystemP_SUCCESS);
i++;
}
}
void MCAN_Module_clockSetFrequency(void)
{
int32_t status;
uint32_t i = 0;
while(MCAN_gSocModulesClockFrequency[i].moduleId!=SOC_MODULES_END)
{
status = SOC_moduleSetClockFrequency(
MCAN_gSocModulesClockFrequency[i].moduleId,
MCAN_gSocModulesClockFrequency[i].clkId,
MCAN_gSocModulesClockFrequency[i].clkRate
);
DebugP_assertNoLog(status == SystemP_SUCCESS);
i++;
}
}
void MCAN_PowerClock_init(void)
{
MCAN_Module_clockEnable();
MCAN_Module_clockSetFrequency();
}
BR
Sheng Yi