62 #include <inc/hw_types.h>
63 #include <inc/hw_uart.h>
64 #include <inc/hw_memmap.h>
65 #include <inc/hw_ints.h>
66 #include <inc/hw_adi.h>
75 #define ADI_SLAVE_REGS 16
82 #define ADI_NO_WAIT 0x00000000
83 #define ADI_WAIT_FOR_ACK 0x00000004
84 #define ADI_SPEED_2 0x00000000
85 #define ADI_SPEED_4 0x00000001
86 #define ADI_SPEED_8 0x00000002
87 #define ADI_SPEED_16 0x00000003
88 #define ADI_CONFIG_MASK 0x00000007
95 #define ADI_PROTECT 0x00000080
96 #define ADI_ACK 0x00000001
97 #define ADI_SYNC 0x00000000
105 #ifdef DRIVERLIB_DEBUG
120 ADIBaseValid(uint32_t ui32Base)
142 __STATIC_INLINE uint32_t
148 ASSERT(ADIBaseValid(ui32Base));
192 ASSERT(ADIBaseValid(ui32Base));
241 ASSERT(ADIBaseValid(ui32Base));
285 ASSERT(ADIBaseValid(ui32Base));
336 ASSERT(ADIBaseValid(ui32Base));
345 HWREGB(ui32Base + ui32Reg) = ui8Val;
386 ASSERT(ADIBaseValid(ui32Base));
395 HWREGH(ui32Base + (ui32Reg & 0xFE)) = ui16Val;
435 ASSERT(ADIBaseValid(ui32Base));
444 HWREG(ui32Base + (ui32Reg & 0xFC)) = ui32Val;
469 __STATIC_INLINE uint32_t
475 ASSERT(ADIBaseValid(ui32Base));
484 return(HWREGB(ui32Base + ui32Reg));
512 __STATIC_INLINE uint32_t
518 ASSERT(ADIBaseValid(ui32Base));
527 return(HWREGH(ui32Base + (ui32Reg & 0xFE)));
553 __STATIC_INLINE uint32_t
559 ASSERT(ADIBaseValid(ui32Base));
568 return(HWREG(ui32Base + (ui32Reg & 0xFC)));
605 uint32_t ui32RegOffset;
610 ASSERT(ADIBaseValid(ui32Base));
617 ui32RegOffset = ADI_O_SET;
625 HWREGB(ui32Base + ui32RegOffset + ui32Reg) = ui8Val;
662 uint32_t ui32RegOffset;
667 ASSERT(ADIBaseValid(ui32Base));
674 ui32RegOffset = ADI_O_SET;
682 HWREGH(ui32Base + ui32RegOffset + (ui32Reg & 0xFE)) = ui16Val;
719 uint32_t ui32RegOffset;
724 ASSERT(ADIBaseValid(ui32Base));
731 ui32RegOffset = ADI_O_SET;
739 HWREG(ui32Base + ui32RegOffset + (ui32Reg & 0xFC)) = ui32Val;
776 uint32_t ui32RegOffset;
781 ASSERT(ADIBaseValid(ui32Base));
788 ui32RegOffset = ADI_O_CLR;
796 HWREGB(ui32Base + ui32RegOffset + ui32Reg) = ui8Val;
833 uint32_t ui32RegOffset;
838 ASSERT(ADIBaseValid(ui32Base));
845 ui32RegOffset = ADI_O_CLR;
853 HWREGH(ui32Base + ui32RegOffset + (ui32Reg & 0xFE)) = ui16Val;
890 uint32_t ui32RegOffset;
895 ASSERT(ADIBaseValid(ui32Base));
902 ui32RegOffset = ADI_O_CLR;
910 HWREG(ui32Base + ui32RegOffset + (ui32Reg & 0xFC)) = ui32Val;
949 uint8_t ui8Mask, uint8_t ui8Val)
951 uint32_t ui32RegOffset;
956 ASSERT(ADIBaseValid(ui32Base));
959 ASSERT(!(ui8Mask & 0xF0));
965 ui32RegOffset = ADI_O_MASK4B + (ui32Reg << 1) + (bWriteHigh ? 1 : 0);
973 HWREGB(ui32Base + ui32RegOffset) = (ui8Mask << 4) | ui8Val;
1005 __STATIC_INLINE
void
1009 uint32_t ui32RegOffset;
1014 ASSERT(ADIBaseValid(ui32Base));
1016 ASSERT(!(ui16Val & 0xFF00));
1017 ASSERT(!(ui16Mask & 0xFF00));
1023 ui32RegOffset = ADI_O_MASK8B + (ui32Reg << 1);
1031 HWREGH(ui32Base + ui32RegOffset) = (ui16Mask << 8) | ui16Val;
1064 __STATIC_INLINE
void
1068 uint32_t ui32RegOffset;
1073 ASSERT(ADIBaseValid(ui32Base));
1075 ASSERT(!(ui32Val & 0xFFFF0000));
1076 ASSERT(!(ui32Mask & 0xFFFF0000));
1082 ui32RegOffset = ADI_O_MASK16B + ((ui32Reg << 1) & 0xFC);
1090 HWREG(ui32Base + ui32RegOffset) = (ui32Mask << 16) | ui32Val;
__STATIC_INLINE void ADISync(uint32_t ui32Base)
Synchronize the ADI slave.
__STATIC_INLINE void ADI16RegWrite(uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Val)
Write a 16 bit value to 2 registers in the ADI slave.
__STATIC_INLINE uint32_t ADIStatusGet(uint32_t ui32Base)
Get the status of an ADI module.
__STATIC_INLINE void ADI32RegWrite(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Write a 32 bit value to 4 registers in the ADI slave.
__STATIC_INLINE uint32_t AuxAdiDdiSafeRead(uint32_t nAddr, uint32_t nSize)
__STATIC_INLINE void ADIProtect(uint32_t ui32Base)
Protect an ADI slave configuration by locking the configuration register access.
__STATIC_INLINE void ADI8BitsClear(uint32_t ui32Base, uint32_t ui32Reg, uint8_t ui8Val)
Clear specific bits in an 8 bit ADI register.
__STATIC_INLINE uint32_t ADI16RegRead(uint32_t ui32Base, uint32_t ui32Reg)
Read the value in a 16 bit register.
__STATIC_INLINE void ADI32BitsClear(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Clear specific bits in four 8 bit ADI register.
__STATIC_INLINE void ADI8SetValBit(uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Mask, uint16_t ui16Val)
Set a value on any bits inside an 8 bit register in the ADI slave.
__STATIC_INLINE uint32_t ADI8RegRead(uint32_t ui32Base, uint32_t ui32Reg)
Read the value of an 8 bit register in the ADI slave.
__STATIC_INLINE void ADI16BitsSet(uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Val)
Set specific bits in 2 x 8 bit ADI slave registers.
__STATIC_INLINE void ADI4SetValBit(uint32_t ui32Base, uint32_t ui32Reg, bool bWriteHigh, uint8_t ui8Mask, uint8_t ui8Val)
Set a value on any 4 bits inside an 8 bit register in the ADI slave.
__STATIC_INLINE void ADI16SetValBit(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32Val)
Set a value on any bits inside an 2 x 8 bit register aligned on a half-word (byte) boundary in the AD...
__STATIC_INLINE void ADI8BitsSet(uint32_t ui32Base, uint32_t ui32Reg, uint8_t ui8Val)
Set specific bits in a single 8 bit ADI register.
__STATIC_INLINE void ADI32BitsSet(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val)
Set specific bits in 4 x 8 bit ADI slave registers.
__STATIC_INLINE void ADI8RegWrite(uint32_t ui32Base, uint32_t ui32Reg, uint8_t ui8Val)
Write an 8 bit value to a register in an ADI slave.
__STATIC_INLINE void ADIConfigSet(uint32_t ui32Base, uint32_t ui32Config, bool bProtect)
Configure the ADI Slave.
__STATIC_INLINE uint32_t ADI32RegRead(uint32_t ui32Base, uint32_t ui32Reg)
Read the value in a 32 bit register.
__STATIC_INLINE void ADI16BitsClear(uint32_t ui32Base, uint32_t ui32Reg, uint16_t ui16Val)
Clear specific bits in two 8 bit ADI register.
__STATIC_INLINE void AuxAdiDdiSafeWrite(uint32_t nAddr, uint32_t nData, uint32_t nSize)