AM62Px MCU+ SDK  11.01.00
SOC

The SOC driver provides API to configure SOC specific features like clocks.

Features Supported

  • API to enable/disable a module clock
  • API to set clock frequency for module
  • Generic utility API like get CPU clock, get core name string, control module MMR lock/unlock API

SysConfig Features

  • SOC driver is integrated with each of the drivers. User need not perform any explicit configuration for this driver

Features NOT Supported

NA

Important Usage Guidelines

  • Most of these APIs are already integrated with SysConfig tool and the generated code does the required call to enable a module, set the required clock and so on. User need to use these APIs in their application only for exceptional scenarios.

Example Usage

Include the below file to access the APIs

#include <drivers/soc.h>

Get Core Name String

const char *coreName;
coreName = SOC_getCoreName(CSL_CORE_ID_R5FSS0_0);
DebugP_log("Core name is: %s\r\n", coreName);

Get CPU Clock Frequency

uint64_t cpuClockRate;
cpuClockRate = SOC_getSelfCpuClk();
DebugP_log("CPU Clock Frequency: %u\r\n", cpuClockRate);

Set CPU Clock Frequency

#include <drivers/sciclient.h> /* For the device and clock macros */
uint32_t moduleId = TISCI_DEV_FSS0_OSPI_0;
uint64_t clkRate = 200000000U;
SOC_moduleSetClockFrequency(moduleId, clkId, clkRate);

Set CPU Clock Frequency with a specific parent clock

#include <drivers/sciclient.h> /* For the device and clock macros */
uint32_t moduleId = TISCI_DEV_FSS0_OSPI_0;
uint64_t clkRate = 200000000U;
SOC_moduleSetClockFrequencyWithParent(moduleId, clkId, clkParentId, clkRate);

API

APIs for SOC Specific Functions

sciclient.h
This file contains prototypes for APIs contained as a part of SCICLIENT as well as the structures of ...
SOC_moduleSetClockFrequency
int32_t SOC_moduleSetClockFrequency(uint32_t moduleId, uint32_t clkId, uint64_t clkRate)
Set module clock to specified frequency.
SOC_moduleSetClockFrequencyWithParent
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.
TISCI_DEV_FSS0_OSPI_0_OSPI_RCLK_CLK_PARENT_HSDIV4_16FFT_MAIN_0_HSDIVOUT1_CLK
#define TISCI_DEV_FSS0_OSPI_0_OSPI_RCLK_CLK_PARENT_HSDIV4_16FFT_MAIN_0_HSDIVOUT1_CLK
Definition: tisci_clocks.h:467
DebugP_log
#define DebugP_log(format,...)
Function to log a string to the enabled console.
Definition: DebugP.h:235
SOC_getSelfCpuClk
uint64_t SOC_getSelfCpuClk(void)
Get the clock frequency in Hz of the CPU on which the driver is running.
TISCI_DEV_FSS0_OSPI_0
#define TISCI_DEV_FSS0_OSPI_0
Definition: tisci_devices.h:111
SOC_getCoreName
const char * SOC_getCoreName(uint16_t coreId)
Convert a core ID to a user readable name.
TISCI_DEV_FSS0_OSPI_0_OSPI_RCLK_CLK
#define TISCI_DEV_FSS0_OSPI_0_OSPI_RCLK_CLK
Definition: tisci_clocks.h:466