Functions | |
static uint32_t | DDI32RegRead (uint32_t ui32Base, uint32_t ui32Reg) |
Read the value in a 32 bit register. More... | |
static void | DDI32BitsSet (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val) |
Set specific bits in a DDI slave register. More... | |
static void | DDI32BitsClear (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val) |
Clear specific bits in a 32 bit DDI register. More... | |
static void | DDI8SetValBit (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Byte, uint16_t ui16Mask, uint16_t ui16Val) |
Set a value on any 8 bits inside a 32 bit register in the DDI slave. More... | |
static void | DDI16SetValBit (uint32_t ui32Base, uint32_t ui32Reg, bool bWriteHigh, uint32_t ui32Mask, uint32_t ui32Val) |
Set a value on any 16 bits inside a 32 bit register aligned on a half-word boundary in the DDI slave. More... | |
void | DDI32RegWrite (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val) |
Write a 32 bit value to a register in the DDI slave. More... | |
void | DDI16BitWrite (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32WrData) |
Write a single bit using a 16-bit maskable write. More... | |
void | DDI16BitfieldWrite (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift, uint16_t ui32Data) |
Write a bit field via the DDI using 16-bit maskable write. More... | |
uint16_t | DDI16BitRead (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask) |
Read a bit via the DDI using 16-bit read. More... | |
uint16_t | DDI16BitfieldRead (uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift) |
Read a bit field via the DDI using 16-bit read. More... | |
The API functions can be grouped like this:
Write:
Read:
uint16_t DDI16BitfieldRead | ( | uint32_t | ui32Base, |
uint32_t | ui32Reg, | ||
uint32_t | ui32Mask, | ||
uint32_t | ui32Shift | ||
) |
Read a bit field via the DDI using 16-bit read.
Requires that entire bit field is within the half word boundary.
ui32Base | is the base address of the DDI port. |
ui32Reg | is register to access. |
ui32Mask | is the mask defining which of the 16 bits that should be overwritten. |
ui32Shift | defines the required shift of the data to align with bit 0. |
Referenced by DDI16SetValBit(), OSCClockSourceGet(), and OSCHfSourceReady().
void DDI16BitfieldWrite | ( | uint32_t | ui32Base, |
uint32_t | ui32Reg, | ||
uint32_t | ui32Mask, | ||
uint32_t | ui32Shift, | ||
uint16_t | ui32Data | ||
) |
Write a bit field via the DDI using 16-bit maskable write.
Requires that entire bit field is within the half word boundary.
ui32Base | is the base address of the DDI port. |
ui32Reg | is register to access. |
ui32Mask | is the mask defining which of the 16 bits that should be overwritten. |
ui32Shift | is the shift value for the bit field. |
ui32Data | is the data aligned to bit 0. |
Referenced by DDI16SetValBit(), OSCClockLossEventDisable(), OSCClockLossEventEnable(), OSCClockSourceSet(), and SetupAfterColdResetWakeupFromShutDownCfg2().
uint16_t DDI16BitRead | ( | uint32_t | ui32Base, |
uint32_t | ui32Reg, | ||
uint32_t | ui32Mask | ||
) |
Read a bit via the DDI using 16-bit read.
ui32Base | is the base address of the DDI module. |
ui32Reg | is the register to read. |
ui32Mask | defines the bit which should be read. |
Referenced by DDI16SetValBit().
void DDI16BitWrite | ( | uint32_t | ui32Base, |
uint32_t | ui32Reg, | ||
uint32_t | ui32Mask, | ||
uint32_t | ui32WrData | ||
) |
Write a single bit using a 16-bit maskable write.
A '1' is written to the bit if ui32WrData
is non-zero, else a '0' is written.
ui32Base | is the base address of the DDI port. |
ui32Reg | is register to access. |
ui32Mask | is the mask defining which of the 16 bit that should be overwritten. |
ui32WrData | is the value to write. The value must be defined in the lower half of the 32 bits. |
Referenced by DDI16SetValBit(), and OSCXHfPowerModeSet().
|
inlinestatic |
Set a value on any 16 bits inside a 32 bit register aligned on a half-word boundary in the DDI slave.
This function allows 16 bit masked access to the DDI slave registers.
Use this function to write any value in the range 0-15 bits aligned on a half-word boundary. For example, for writing the value 0b101 to bits 1-3 set ui32Val = 0x000A
and ui32Mask = 0x000E
. Bits 0 and 5-15 will not be affected by the operation, as long as the corresponding bits are not set in the ui32Mask
.
ui32Base | is the base address of the DDI port. |
ui32Reg | is register to access. |
bWriteHigh | defines which part of the register to write in. |
ui32Mask | is the mask defining which of the 16 bit that should be overwritten. The mask must be defined in the lower half of the 32 bits. |
ui32Val | is the value to write. The value must be defined in the lower half of the 32 bits. |
|
inlinestatic |
Clear specific bits in a 32 bit DDI register.
This function will clear bits in a register in the analog domain.
ui32Base | is DDI base address. |
ui32Reg | is the base registers to clear the bits in. |
ui32Val | is the 32 bit one-hot encoded value specifying which bits to clear in the register. |
|
inlinestatic |
Set specific bits in a DDI slave register.
This function will set bits in a register in the analog domain.
ui32Base | is DDI base address. |
ui32Reg | is the base register to assert the bits in. |
ui32Val | is the 32 bit one-hot encoded value specifying which bits to set in the register. |
|
inlinestatic |
Read the value in a 32 bit register.
This function will read a register in the analog domain and return the value as an uint32_t
.
ui32Base | is DDI base address. |
ui32Reg | is the 32 bit register to read. |
void DDI32RegWrite | ( | uint32_t | ui32Base, |
uint32_t | ui32Reg, | ||
uint32_t | ui32Val | ||
) |
Write a 32 bit value to a register in the DDI slave.
This function will write a value to a register in the analog domain.
ui32Base | is DDI base address. |
ui32Reg | is the register to write. |
ui32Val | is the 32 bit value to write to the register. |
Referenced by DDI16SetValBit(), OSC_AdjustXoscHfCapArray(), and SetupAfterColdResetWakeupFromShutDownCfg2().
|
inlinestatic |
Set a value on any 8 bits inside a 32 bit register in the DDI slave.
This function allows byte (8 bit access) to the DDI slave registers.
Use this function to write any value in the range 0-7 bits aligned on a byte boundary. For example, for writing the value 0b101 to bits 1-3 set ui16Val = 0x0A
and ui16Mask = 0x0E
. Bits 0 and 5-7 will not be affected by the operation, as long as the corresponding bits are not set in the ui16Mask
.
ui32Base | is the base address of the DDI port. |
ui32Reg | is the Least Significant Register in the DDI slave that will be affected by the write operation. |
ui32Byte | is the byte number to access within the 32 bit register. |
ui16Mask | is the mask defining which of the 8 bits that should be overwritten. The mask must be defined in the lower half of the 16 bits. |
ui16Val | is the value to write. The value must be defined in the lower half of the 16 bits. |
#define DDI_ACK 0x00000001 |
#define DDI_PROTECT 0x00000080 |
#define DDI_SLAVE_REGS 64 |
Referenced by DDI16SetValBit(), DDI32BitsClear(), DDI32BitsSet(), DDI32RegRead(), DDI32RegWrite(), and DDI8SetValBit().
#define DDI_SYNC 0x00000000 |