64 #include <inc/hw_types.h>
65 #include <inc/hw_memmap.h>
66 #include <inc/hw_ddi.h>
67 #include <inc/hw_aux_smph.h>
85 #define DDI16BitWrite NOROM_DDI16BitWrite
86 #define DDI16BitfieldWrite NOROM_DDI16BitfieldWrite
87 #define DDI16BitRead NOROM_DDI16BitRead
88 #define DDI16BitfieldRead NOROM_DDI16BitfieldRead
96 #define DDI_SLAVE_REGS 64
104 #define DDI_PROTECT 0x00000080
105 #define DDI_ACK 0x00000001
106 #define DDI_SYNC 0x00000000
143 case 1: HWREGB(nAddr) = (uint8_t)nData;
break;
144 case 2: HWREGH(nAddr) = (uint16_t)nData;
break;
145 case 4:
default: HWREG(nAddr) = nData;
break;
167 __STATIC_INLINE uint32_t
176 case 1: nRet = HWREGB(nAddr);
break;
177 case 2: nRet = HWREGH(nAddr);
break;
178 case 4:
default: nRet = HWREG(nAddr);
break;
188 #ifdef DRIVERLIB_DEBUG
206 DDIBaseValid(uint32_t ui32Base)
241 ASSERT(DDIBaseValid(ui32Base));
266 __STATIC_INLINE uint32_t
272 ASSERT(DDIBaseValid(ui32Base));
306 uint32_t ui32RegOffset;
311 ASSERT(DDIBaseValid(ui32Base));
318 ui32RegOffset = DDI_O_SET;
347 uint32_t ui32RegOffset;
352 ASSERT(DDIBaseValid(ui32Base));
359 ui32RegOffset = DDI_O_CLR;
396 uint16_t ui16Mask, uint16_t ui16Val)
398 uint32_t ui32RegOffset;
403 ASSERT(DDIBaseValid(ui32Base));
405 ASSERT(!(ui16Val & 0xFF00));
406 ASSERT(!(ui16Mask & 0xFF00));
412 ui32RegOffset = DDI_O_MASK8B + (ui32Reg << 1) + (ui32Byte << 1);
449 uint32_t ui32Mask, uint32_t ui32Val)
451 uint32_t ui32RegOffset;
456 ASSERT(DDIBaseValid(ui32Base));
458 ASSERT(!(ui32Val & 0xFFFF0000));
459 ASSERT(!(ui32Mask & 0xFFFF0000));
465 ui32RegOffset = DDI_O_MASK16B + (ui32Reg << 1) + (bWriteHigh ? 4 : 0);
492 extern void DDI16BitWrite(uint32_t ui32Base, uint32_t ui32Reg,
493 uint32_t ui32Mask, uint32_t ui32WrData);
516 uint32_t ui32Mask, uint32_t ui32Shift,
533 extern uint16_t
DDI16BitRead(uint32_t ui32Base, uint32_t ui32Reg,
555 uint32_t ui32Mask, uint32_t ui32Shift);
563 #if !defined(DRIVERLIB_NOROM) && !defined(DOXYGEN)
565 #ifdef ROM_DDI16BitWrite
567 #define DDI16BitWrite ROM_DDI16BitWrite
569 #ifdef ROM_DDI16BitfieldWrite
570 #undef DDI16BitfieldWrite
571 #define DDI16BitfieldWrite ROM_DDI16BitfieldWrite
573 #ifdef ROM_DDI16BitRead
575 #define DDI16BitRead ROM_DDI16BitRead
577 #ifdef ROM_DDI16BitfieldRead
578 #undef DDI16BitfieldRead
579 #define DDI16BitfieldRead ROM_DDI16BitfieldRead
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.
void DDI16BitWrite(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32WrData)
Write a single bit using a 16-bit maskable write.
static void DDI32BitsSet(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Set specific bits in a DDI slave register.
static void DDI32RegWrite(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Write a 32 bit value to a register in the DDI slave.
static uint32_t AuxAdiDdiSafeRead(uint32_t nAddr, uint32_t nSize)
Safely read from AUX ADI/DDI interfaces using a semaphore.
uint16_t DDI16BitRead(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask)
Read a bit via the DDI using 16-bit read.
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.
uint16_t DDI16BitfieldRead(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Shift)
Read a bitfield via the DDI using 16-bit read.
uint32_t CPUcpsid(void)
Disable all external interrupts.
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...
static uint32_t DDI32RegRead(uint32_t ui32Base, uint32_t ui32Reg)
Read the value in a 32 bit register.
uint32_t CPUcpsie(void)
Enable all external interrupts.
static void DDI32BitsClear(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Clear specific bits in a 32 bit DDI register.
static void AuxAdiDdiSafeWrite(uint32_t nAddr, uint32_t nData, uint32_t nSize)
Safely write to AUX ADI/DDI interfaces using a semaphore.