For more details and example usage, see SOC
Functions | |
| int32_t | SOC_moduleClockEnable (uint32_t moduleId, uint32_t enable) |
| Enable clock to specified module. More... | |
| int32_t | SOC_moduleSetClockFrequencyWithParent (uint32_t moduleId, uint32_t clkId, uint32_t clkParent, uint64_t clkRate) |
| Set module clock to specified frequency and with a specific parent. More... | |
| int32_t | SOC_moduleSetClockFrequency (uint32_t moduleId, uint32_t clkId, uint64_t clkRate) |
| Set module clock to specified frequency. More... | |
| const char * | SOC_getCoreName (uint16_t coreId) |
| Convert a core ID to a user readable name. More... | |
| uint32_t | SOC_getCoreId (const char *coreName) |
| Convert a core ID to a user readable name. More... | |
| uint64_t | SOC_getSelfCpuClk (void) |
| Get the clock frequency in Hz of the CPU on which the driver is running. More... | |
| void | SOC_setEpwmTbClk (uint32_t epwmInstance, uint32_t enable) |
| Enable or disable ePWM time base clock from Control MMR. More... | |
| void | SOC_controlModuleLockMMR (uint32_t domainId, uint32_t partition) |
| Lock control module partition to prevent writes into control MMRs. More... | |
| void | SOC_controlModuleUnlockMMR (uint32_t domainId, uint32_t partition) |
| Unlock control module partition to allow writes into control MMRs. More... | |
| void | SOC_unlockAllMMR (void) |
| Unlocks all the control MMRs. More... | |
| int32_t | SOC_moduleGetClockFrequency (uint32_t moduleId, uint32_t clkId, uint64_t *clkRate) |
| Get module clock frequency. More... | |
| void | SOC_setDevStat (uint32_t bootMode) |
| Change boot mode by setting devstat register. More... | |
| uint32_t | SOC_getDevStat (void) |
| Get boot mode by reading devstat register. More... | |
| uint32_t | SOC_getPrimaryBootMode (void) |
| Get primary boot mode by reading devstat register. More... | |
| void | SOC_triggerMcuLpmWakeup (void) |
| Generates the MCU IPC interrupt to DM R5 to wakeup the main domain from MCU only LPM mode. More... | |
| void | SOC_generateSwWarmResetMainDomain (void) |
| Generate SW Warm Reset Main Domain. More... | |
| void | SOC_generateSwPORResetMainDomain (void) |
| Generate SW POR Reset Main Domain. More... | |
| uint32_t | SOC_getWarmResetCauseMainDomain (void) |
| Get the reset reason source for Main Domain. More... | |
| void | SOC_generateSwWarmResetMcuDomain (void) |
| Generate SW WARM Reset Mcu Domain. More... | |
| void | SOC_generateSwWarmResetMainDomainFromMcuDomain (void) |
| Generate SW WARM Reset Main Domain from Mcu Domain. More... | |
| void | SOC_generateSwPORResetMainDomainFromMcuDomain (void) |
| Generate SW POR Reset Main Domain from Mcu Domain. More... | |
| uint32_t | SOC_getWarmResetCauseMcuDomain (void) |
| Get the reset reason source for Mcu Domain. More... | |
| void | SOC_clearResetCauseMainMcuDomain (uint32_t resetCause) |
| Clears reason for Warm and Main/Mcu Domain Power On Resets. CTRLMMR_RST_SRC is just a mirror of CTRLMMR_MCU_RST_SRC register. It is read only. So we need to write 1 to CTRLMMR_MCU_RST_SRC to clear the reset reason. More... | |
| int32_t | SOC_enableResetIsolation (uint32_t main2McuIsolation, uint32_t mcu2MainIsolation, uint32_t mcu2dmIsolation, uint32_t debugIsolationEnable) |
| Enable reset isolation of MCU domain for safety applications. More... | |
| void | SOC_setMCUResetIsolationDone (uint32_t value) |
| Set MCU reset isolation done flag. More... | |
| void | SOC_waitMainDomainReset (void) |
| Wait for main domain reset to complete. More... | |
| int32_t | SOC_getPSCState (uint32_t instNum, uint32_t domainNum, uint32_t moduleNum, uint32_t *domainState, uint32_t *moduleState) |
| Get PSC (Power Sleep Controller) state. More... | |
| int32_t | SOC_setPSCState (uint32_t instNum, uint32_t domainNum, uint32_t moduleNum, uint32_t pscState) |
| Set PSC (Power Sleep Controller) state. More... | |
| void | SOC_setFSSCtrlFlashBootSize (void) |
| Update the boot block size for FSS subsystem. More... | |
| uint64_t | Soc_getPhyAddr (uint64_t virtAddr) |
| Get Physical Address from virtual address. More... | |
| void | SOC_fixFastDriveStrength (void) |
| Fix fast mode drive strength. More... | |
Macros | |
| #define | SOC_BOOTMODE_MMCSD (0X36C3) |
| Switch value for SD card boot mode. More... | |
| #define | SOC_BOOTMODE_OSPI (0x273) |
| Switch value for OSPI boot mode. More... | |
| #define | SOC_BOOTMODE_EMMC (0xCB) |
| Switch value for EMMC boot mode. More... | |
| #define | SOC_PRIMARY_BOOTMODE_OSPI (0xE) |
| Switch value for OSPI primary boot mode. More... | |
| #define | SOC_PRIMARY_BOOTMODE_EMMC (0x9) |
| Switch value for EMMC primary boot mode. More... | |
| #define | SOC_H_IO_DRVSTRNGTH0 (0x40C0U) |
| IO Drive Strength Register offsets. More... | |
| #define | SOC_H_IO_DRVSTRNGTH1 (0x40C4U) |
| #define | SOC_V_IO_DRVSTRNGTH0 (0x40D0U) |
| #define | SOC_V_IO_DRVSTRNGTH1 (0x40D4U) |
| #define | SOC_IO_DRVSTRNGTH_MASK CSL_MCU_CTRL_MMR_CFG0_H_IO_DRVSTRNGTH0_DRV_STR_MASK |
| IO Drive Strength field definitions. More... | |
| #define | SOC_IO_DRVSTRNGTH_MAX CSL_MCU_CTRL_MMR_CFG0_H_IO_DRVSTRNGTH0_DRV_STR_MAX |
SOC Domain ID | |
| #define | SOC_DOMAIN_ID_MAIN (0U) |
| #define | SOC_DOMAIN_ID_MCU (1U) |
| #define | SOC_DOMAIN_ID_WKUP (2U) |
| #define | SOC_PSC_DOMAIN_ID_MAIN (0U) |
| #define | SOC_PSC_DOMAIN_ID_MCU (1U) |
SOC PSC Module State | |
| #define | SOC_PSC_SYNCRESETDISABLE (0x0U) |
| #define | SOC_PSC_SYNCRESET (0x1U) |
| #define | SOC_PSC_DISABLE (0x2U) |
| #define | SOC_PSC_ENABLE (0x3U) |
SOC PSC Domain State | |
| #define | SOC_PSC_DOMAIN_OFF (0x0U) |
| #define | SOC_PSC_DOMAIN_ON (0x1U) |
| #define SOC_DOMAIN_ID_MAIN (0U) |
| #define SOC_DOMAIN_ID_MCU (1U) |
| #define SOC_DOMAIN_ID_WKUP (2U) |
| #define SOC_PSC_DOMAIN_ID_MCU (1U) |
| #define SOC_PSC_SYNCRESETDISABLE (0x0U) |
| #define SOC_PSC_SYNCRESET (0x1U) |
| #define SOC_PSC_DISABLE (0x2U) |
| #define SOC_PSC_ENABLE (0x3U) |
| #define SOC_PSC_DOMAIN_OFF (0x0U) |
| #define SOC_PSC_DOMAIN_ON (0x1U) |
| #define SOC_BOOTMODE_MMCSD (0X36C3) |
Switch value for SD card boot mode.
| #define SOC_BOOTMODE_OSPI (0x273) |
Switch value for OSPI boot mode.
| #define SOC_BOOTMODE_EMMC (0xCB) |
Switch value for EMMC boot mode.
| #define SOC_PRIMARY_BOOTMODE_OSPI (0xE) |
Switch value for OSPI primary boot mode.
| #define SOC_PRIMARY_BOOTMODE_EMMC (0x9) |
Switch value for EMMC primary boot mode.
| #define SOC_H_IO_DRVSTRNGTH0 (0x40C0U) |
IO Drive Strength Register offsets.
| #define SOC_H_IO_DRVSTRNGTH1 (0x40C4U) |
| #define SOC_V_IO_DRVSTRNGTH0 (0x40D0U) |
| #define SOC_V_IO_DRVSTRNGTH1 (0x40D4U) |
| #define SOC_IO_DRVSTRNGTH_MASK CSL_MCU_CTRL_MMR_CFG0_H_IO_DRVSTRNGTH0_DRV_STR_MASK |
IO Drive Strength field definitions.
| #define SOC_IO_DRVSTRNGTH_MAX CSL_MCU_CTRL_MMR_CFG0_H_IO_DRVSTRNGTH0_DRV_STR_MAX |
| int32_t SOC_moduleClockEnable | ( | uint32_t | moduleId, |
| uint32_t | enable | ||
| ) |
Enable clock to specified module.
| moduleId | [in] see tisci_devices for list of device ID's |
| enable | [in] 1: enable clock to the module, 0: disable clock to the module |
| int32_t SOC_moduleSetClockFrequencyWithParent | ( | uint32_t | moduleId, |
| uint32_t | clkId, | ||
| uint32_t | clkParent, | ||
| uint64_t | clkRate | ||
| ) |
Set module clock to specified frequency and with a specific parent.
| moduleId | [in] see tisci_devices for list of module ID's |
| clkId | [in] see tisci_clocks for list of clocks associated with the specified module ID |
| clkParent | [in] see tisci_clocks for list of clock parents associated with the specified module ID |
| clkRate | [in] Frequency to set in Hz |
| int32_t SOC_moduleSetClockFrequency | ( | uint32_t | moduleId, |
| uint32_t | clkId, | ||
| uint64_t | clkRate | ||
| ) |
Set module clock to specified frequency.
| moduleId | [in] see tisci_devices for list of module ID's |
| clkId | [in] see tisci_clocks for list of clocks associated with the specified module ID |
| clkRate | [in] Frequency to set in Hz |
| const char* SOC_getCoreName | ( | uint16_t | coreId | ) |
Convert a core ID to a user readable name.
| coreId | [in] see CSL_CoreID |
| uint32_t SOC_getCoreId | ( | const char * | coreName | ) |
Convert a core ID to a user readable name.
| coreName | [in] core Name |
| uint64_t SOC_getSelfCpuClk | ( | void | ) |
Get the clock frequency in Hz of the CPU on which the driver is running.
| void SOC_setEpwmTbClk | ( | uint32_t | epwmInstance, |
| uint32_t | enable | ||
| ) |
Enable or disable ePWM time base clock from Control MMR.
| epwmInstance | [in] ePWM instance number [0 - (CSL_EPWM_PER_CNT-1)] |
| enable | [in] TRUE to enable and FALSE to disable |
| void SOC_controlModuleLockMMR | ( | uint32_t | domainId, |
| uint32_t | partition | ||
| ) |
Lock control module partition to prevent writes into control MMRs.
| domainId | [in] See SOC_DomainId_t |
| partition | [in] Partition number to unlock |
| void SOC_controlModuleUnlockMMR | ( | uint32_t | domainId, |
| uint32_t | partition | ||
| ) |
Unlock control module partition to allow writes into control MMRs.
| domainId | [in] See SOC_DomainId_t |
| partition | [in] Partition number to unlock |
| void SOC_unlockAllMMR | ( | void | ) |
Unlocks all the control MMRs.
| int32_t SOC_moduleGetClockFrequency | ( | uint32_t | moduleId, |
| uint32_t | clkId, | ||
| uint64_t * | clkRate | ||
| ) |
Get module clock frequency.
| moduleId | [in] see tisci_devices for list of module ID's |
| clkId | [in] see tisci_clocks for list of clocks associated with the specified module ID |
| clkRate | [out] Frequency of the clock |
| void SOC_setDevStat | ( | uint32_t | bootMode | ) |
Change boot mode by setting devstat register.
| bootMode | [IN] Boot mode switch value |
| uint32_t SOC_getDevStat | ( | void | ) |
Get boot mode by reading devstat register.
| uint32_t SOC_getPrimaryBootMode | ( | void | ) |
Get primary boot mode by reading devstat register.
| void SOC_triggerMcuLpmWakeup | ( | void | ) |
Generates the MCU IPC interrupt to DM R5 to wakeup the main domain from MCU only LPM mode.
| void SOC_generateSwWarmResetMainDomain | ( | void | ) |
Generate SW Warm Reset Main Domain.
| void SOC_generateSwPORResetMainDomain | ( | void | ) |
Generate SW POR Reset Main Domain.
| uint32_t SOC_getWarmResetCauseMainDomain | ( | void | ) |
Get the reset reason source for Main Domain.
| void SOC_generateSwWarmResetMcuDomain | ( | void | ) |
Generate SW WARM Reset Mcu Domain.
| void SOC_generateSwWarmResetMainDomainFromMcuDomain | ( | void | ) |
Generate SW WARM Reset Main Domain from Mcu Domain.
| void SOC_generateSwPORResetMainDomainFromMcuDomain | ( | void | ) |
Generate SW POR Reset Main Domain from Mcu Domain.
| uint32_t SOC_getWarmResetCauseMcuDomain | ( | void | ) |
Get the reset reason source for Mcu Domain.
| void SOC_clearResetCauseMainMcuDomain | ( | uint32_t | resetCause | ) |
Clears reason for Warm and Main/Mcu Domain Power On Resets. CTRLMMR_RST_SRC is just a mirror of CTRLMMR_MCU_RST_SRC register. It is read only. So we need to write 1 to CTRLMMR_MCU_RST_SRC to clear the reset reason.
| resetCause | [IN] Reset reason value to clear. |
| int32_t SOC_enableResetIsolation | ( | uint32_t | main2McuIsolation, |
| uint32_t | mcu2MainIsolation, | ||
| uint32_t | mcu2dmIsolation, | ||
| uint32_t | debugIsolationEnable | ||
| ) |
Enable reset isolation of MCU domain for safety applications.
| main2McuIsolation | [IN] Flag to enable isolation of mcu domain from main domain Setting this flag restricts the access of MCU resources by main domain |
| mcu2MainIsolation | [IN] Flag to enable isolation of MCU domain from DM Setting this flag restricts the access of MCU resources by DM |
| mcu2dmIsolation | [IN] Flag to enable isolation of DM from mcu domain Setting this flag restricts the access of DM resources by MCU domain |
| debugIsolationEnable | [IN] Enable debug isolation. Setting this would restrict JTAG access to MCU domain |
| void SOC_setMCUResetIsolationDone | ( | uint32_t | value | ) |
Set MCU reset isolation done flag.
| value | [IN] : 0 - Allow main domain reset to propogate : 1 - Do not allow main domain reset to propogate |
| void SOC_waitMainDomainReset | ( | void | ) |
Wait for main domain reset to complete.
| int32_t SOC_getPSCState | ( | uint32_t | instNum, |
| uint32_t | domainNum, | ||
| uint32_t | moduleNum, | ||
| uint32_t * | domainState, | ||
| uint32_t * | moduleState | ||
| ) |
Get PSC (Power Sleep Controller) state.
| instNum | [IN] : PSC Instance. See SOC_PSCDomainId_t |
| domainNum | [IN] : Power domain number |
| moduleNum | [IN] : Module number |
| domainState | [OUT] : Domain state (1 : ON, 0 : OFF) |
| moduleState | [OUT] : Module State. See SOC_PSCModuleState_t |
| int32_t SOC_setPSCState | ( | uint32_t | instNum, |
| uint32_t | domainNum, | ||
| uint32_t | moduleNum, | ||
| uint32_t | pscState | ||
| ) |
Set PSC (Power Sleep Controller) state.
| instNum | [IN] : PSC Instance. See SOC_PSCDomainId_t |
| domainNum | [IN] : Power domain number |
| moduleNum | [IN] : Module number |
| pscState | [IN] : PSC module state. See SOC_PSCModuleState_t |
| void SOC_setFSSCtrlFlashBootSize | ( | void | ) |
Update the boot block size for FSS subsystem.
Selects the size of the boot block to be used for the OSPI flash interface. Default value is 1'b0 - S0_BOOT_SIZE_64MB for the MMR register. Set 1'b1 - S0_BOOT_SIZE_128MB to update the value.
| uint64_t Soc_getPhyAddr | ( | uint64_t | virtAddr | ) |
Get Physical Address from virtual address.
| virtAddr | [IN] : Virtual Address(Alias) |
| void SOC_fixFastDriveStrength | ( | void | ) |
Fix fast mode drive strength.
Some devices have all drive strengths hardcoded to the nominal value. This function updates the drive strength registers on boot to the right values for fast drive strength. Only fast mode is supported and fixed.