62 #include <inc/hw_types.h>
63 #include <inc/hw_memmap.h>
64 #include <inc/hw_ddi.h>
65 #include <inc/hw_aux_smph.h>
84 #ifndef DRIVERLIB_GENERATE_ROM
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
103 #define DDI_NO_WAIT 0x00000000
104 #define DDI_WAIT_FOR_ACK 0x00000004
105 #define DDI_SPEED_2 0x00000000
106 #define DDI_SPEED_4 0x00000001
107 #define DDI_SPEED_8 0x00000002
108 #define DDI_SPEED_16 0x00000003
109 #define DDI_CONFIG_MASK 0x00000007
116 #define DDI_PROTECT 0x00000080
117 #define DDI_ACK 0x00000001
118 #define DDI_SYNC 0x00000000
159 case 1: HWREGB(nAddr) = (uint8_t)nData;
break;
160 case 2: HWREGH(nAddr) = (uint16_t)nData;
break;
161 case 4:
default: HWREG(nAddr) = nData;
break;
186 __STATIC_INLINE uint32_t
195 case 1: nRet = HWREGB(nAddr);
break;
196 case 2: nRet = HWREGH(nAddr);
break;
197 case 4:
default: nRet = HWREG(nAddr);
break;
207 #ifdef DRIVERLIB_DEBUG
225 DDIBaseValid(uint32_t ui32Base)
246 __STATIC_INLINE uint32_t
252 ASSERT(DDIBaseValid(ui32Base));
304 ASSERT(DDIBaseValid(ui32Base));
316 ui32Base + DDI_O_SLAVECONF,
348 ASSERT(DDIBaseValid(ui32Base));
386 ASSERT(DDIBaseValid(ui32Base));
424 ASSERT(DDIBaseValid(ui32Base));
449 __STATIC_INLINE uint32_t
455 ASSERT(DDIBaseValid(ui32Base));
489 uint32_t ui32RegOffset;
494 ASSERT(DDIBaseValid(ui32Base));
501 ui32RegOffset = DDI_O_SET;
530 uint32_t ui32RegOffset;
535 ASSERT(DDIBaseValid(ui32Base));
542 ui32RegOffset = DDI_O_CLR;
579 uint16_t ui16Mask, uint16_t ui16Val)
581 uint32_t ui32RegOffset;
586 ASSERT(DDIBaseValid(ui32Base));
588 ASSERT(!(ui16Val & 0xFF00));
589 ASSERT(!(ui16Mask & 0xFF00));
595 ui32RegOffset = DDI_O_MASK8B + (ui32Reg << 1) + (ui32Byte << 1);
632 uint32_t ui32Mask, uint32_t ui32Val)
634 uint32_t ui32RegOffset;
639 ASSERT(DDIBaseValid(ui32Base));
641 ASSERT(!(ui32Val & 0xFFFF0000));
642 ASSERT(!(ui32Mask & 0xFFFF0000));
648 ui32RegOffset = DDI_O_MASK16B + (ui32Reg << 1) + (bWriteHigh ? 4 : 0);
675 extern void DDI16BitWrite(uint32_t ui32Base, uint32_t ui32Reg,
676 uint32_t ui32Mask, uint32_t ui32WrData);
699 uint32_t ui32Mask, uint32_t ui32Shift,
718 extern uint16_t
DDI16BitRead(uint32_t ui32Base, uint32_t ui32Reg,
741 uint32_t ui32Mask, uint32_t ui32Shift);
749 #ifndef DRIVERLIB_NOROM
751 #ifdef ROM_DDI16BitWrite
753 #define DDI16BitWrite ROM_DDI16BitWrite
755 #ifdef ROM_DDI16BitfieldWrite
756 #undef DDI16BitfieldWrite
757 #define DDI16BitfieldWrite ROM_DDI16BitfieldWrite
759 #ifdef ROM_DDI16BitRead
761 #define DDI16BitRead ROM_DDI16BitRead
763 #ifdef ROM_DDI16BitfieldRead
764 #undef DDI16BitfieldRead
765 #define DDI16BitfieldRead ROM_DDI16BitfieldRead
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_INLINE void DDI32RegWrite(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Write a 32 bit value to a register in the DDI slave.
__STATIC_INLINE uint32_t AuxAdiDdiSafeRead(uint32_t nAddr, uint32_t nSize)
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.
__STATIC_INLINE uint32_t DDIStatusGet(uint32_t ui32Base)
Get the status of the DDI.
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.
__STATIC_INLINE void DDISync(uint32_t ui32Base)
Synchronize a DDI slave.
__STATIC_INLINE void DDIConfigSet(uint32_t ui32Base, uint32_t ui32Config, bool bProtect)
Configure the DDI Slave.
uint32_t CPUcpsid(void)
Disable all external interrupts.
__STATIC_INLINE void DDI32BitsClear(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Clear specific bits in a 32 bit DDI register.
__STATIC_INLINE void DDIProtect(uint32_t ui32Base)
Protect a DDI slave by locking the register access.
__STATIC_INLINE uint32_t DDI32RegRead(uint32_t ui32Base, uint32_t ui32Reg)
Read the value in a 32 bit register.
__STATIC_INLINE 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...
uint32_t CPUcpsie(void)
Enable all external interrupts.
__STATIC_INLINE 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.
__STATIC_INLINE void DDI32BitsSet(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Set specific bits in a DDI slave register.
__STATIC_INLINE void AuxAdiDdiSafeWrite(uint32_t nAddr, uint32_t nData, uint32_t nSize)