//***************************************************************************** // //! Write a single bit using a 16-bit maskable write // //***************************************************************************** void DDI16BitWrite(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Mask, uint32_t ui32WrData) { uint32_t ui32RegAddr; uint32_t ui32Data; // // Check the arguments. // ASSERT(DDIBaseValid(ui32Base)); ASSERT(!((ui32Mask & 0xFFFF0000) ^ (ui32Mask & 0x0000FFFF))); ASSERT(!(ui32WrData & 0xFFFF0000)); // // DDI 16-bit target is on 32-bit boundary so double offset // ui32RegAddr = ui32Base + (ui32Reg << 1) + DDI_O_MASK16B; // // Adjust for target bit in high half of the word. // if(ui32Mask & 0xFFFF0000) { ui32RegAddr += 4; ui32Mask >>= 16; }
//***************************************************************************** // //! Write a 32 bit value to a register in the DDI slave. // //***************************************************************************** void DDI32RegWrite(uint32_t ui32Base, uint32_t ui32Reg, uint32_t ui32Val) { // // Check the arguments. // ASSERT(DDIBaseValid(ui32Base)); ASSERT(ui32Reg < DDI_SLAVE_REGS); // // Write the value to the register. // AuxAdiDdiSafeWrite(ui32Base + ui32Reg, ui32Val, 4); }