63 #define EPI_HB8_CS_MASK (EPI_HB8_MODE_FIFO | EPI_HB8_RDWAIT_3 | \
64 EPI_HB8_WRWAIT_3 | EPI_HB8_RDHIGH | \
65 EPI_HB8_WRHIGH | EPI_HB8_ALE_HIGH)
67 #define EPI_HB16_CS_MASK (EPI_HB8_CS_MASK | EPI_HB16_BURST_TRAFFIC)
340 uint32_t ui32Divider)
356 ui32Reg |= ((ui32Divider & 0xffff) << (16 * ui32CS));
362 ~(0xffff << (16 * (ui32CS - 2))));
363 ui32Reg |= ((ui32Divider & 0xffff) << (16 * (ui32CS - 2)));
397 ASSERT(ui32Count <= 1024);
445 uint32_t ui32Refresh)
451 ASSERT(ui32Refresh < 2048);
570 uint32_t ui32MaxWait)
576 ASSERT(ui32MaxWait < 256);
718 ASSERT(ui32MaxWait < 256);
792 uint32_t ui32Offset, ui32Reg;
820 HWREG(ui32Base + ui32Offset) = (ui32Reg | ui32Config);
879 uint32_t ui32Offset, ui32Reg;
907 HWREG(ui32Base + ui32Offset) = (ui32Reg | ui32Config);
1074 uint32_t ui32Offset;
1133 uint32_t ui32Offset;
1191 uint32_t ui32Offset;
1260 uint32_t ui32Offset;
1336 uint32_t ui32FrameCount, uint32_t ui32MaxWait)
1342 ASSERT(ui32FrameCount < 16);
1343 ASSERT(ui32MaxWait < 256);
1421 ASSERT(ui32Map < 0x1000);
1461 uint32_t ui32DataSize, uint32_t ui32Address)
1463 uint32_t ui32Offset;
1470 ASSERT(ui32DataSize < 4);
1471 ASSERT(ui32Address < 0x20000000);
1515 uint32_t ui32Offset;
1522 ASSERT(ui32Count < 4096);
1551 uint32_t ui32Offset;
1586 uint32_t ui32Offset;
1655 uint32_t ui32CountRead = 0;
1661 ASSERT(ui32Count < 4096);
1685 return(ui32CountRead);
1710 uint32_t ui32CountRead = 0;
1716 ASSERT(ui32Count < 4096);
1740 return(ui32CountRead);
1765 uint32_t ui32CountRead = 0;
1771 ASSERT(ui32Count < 4096);
1795 return(ui32CountRead);
1836 ASSERT(ui32Config == (ui32Config & 0x00030077));
1898 ASSERT(ui32IntFlags < 17);
1933 ASSERT(ui32IntFlags < 17);
2048 ASSERT(ui32ErrFlags < 0x20);
uint32_t EPINonBlockingReadGet8(uint32_t ui32Base, uint32_t ui32Count, uint8_t *pui8Buf)
void EPINonBlockingReadStart(uint32_t ui32Base, uint32_t ui32Channel, uint32_t ui32Count)
void EPIDMATxCount(uint32_t ui32Base, uint32_t ui32Count)
void EPIConfigHB8Set(uint32_t ui32Base, uint32_t ui32Config, uint32_t ui32MaxWait)
void EPIWorkaroundByteWrite(uint8_t *pui8Addr, uint8_t ui8Value)
#define EPI_GPCFG_FRMCNT_S
#define EPI_HB8_CSCFG_MASK
void EPIModeSet(uint32_t ui32Base, uint32_t ui32Mode)
void EPIConfigHB8TimingSet(uint32_t ui32Base, uint32_t ui32CS, uint32_t ui32Config)
#define EPI_SDRAMCFG_RFSH_S
void EPINonBlockingReadConfigure(uint32_t ui32Base, uint32_t ui32Channel, uint32_t ui32DataSize, uint32_t ui32Address)
void EPIConfigHB16TimingSet(uint32_t ui32Base, uint32_t ui32CS, uint32_t ui32Config)
uint32_t EPINonBlockingReadGet16(uint32_t ui32Base, uint32_t ui32Count, uint16_t *pui16Buf)
void EPIWorkaroundWordWrite(uint32_t *pui32Addr, uint32_t ui32Value)
#define EPI_SDRAMCFG_RFSH_M
uint32_t EPINonBlockingReadCount(uint32_t ui32Base, uint32_t ui32Channel)
void EPIConfigHB16Set(uint32_t ui32Base, uint32_t ui32Config, uint32_t ui32MaxWait)
#define EPI_HB8CFG2_CSBAUD
void EPIPSRAMConfigRegSet(uint32_t ui32Base, uint32_t ui32CS, uint32_t ui32CR)
#define EPI_HB16CFG_RDCRE
uint32_t EPIWorkaroundWordRead(uint32_t *pui32Addr)
void EPIWorkaroundHWordWrite(uint16_t *pui16Addr, uint16_t ui16Value)
#define EPI_HB16CFG_MAXWAIT_M
uint32_t EPIPSRAMConfigRegGet(uint32_t ui32Base, uint32_t ui32CS)
#define EPI_HB16CFG_MAXWAIT_S
void EPIIntErrorClear(uint32_t ui32Base, uint32_t ui32ErrFlags)
uint32_t EPINonBlockingReadAvail(uint32_t ui32Base)
void EPINonBlockingReadStop(uint32_t ui32Base, uint32_t ui32Channel)
void EPIConfigGPModeSet(uint32_t ui32Base, uint32_t ui32Config, uint32_t ui32FrameCount, uint32_t ui32MaxWait)
#define EPI_HB8CFG_MAXWAIT_M
void EPIFIFOConfig(uint32_t ui32Base, uint32_t ui32Config)
uint32_t EPIIntErrorStatus(uint32_t ui32Base)
void EPIDividerCSSet(uint32_t ui32Base, uint32_t ui32CS, uint32_t ui32Divider)
#define EPI_HB16CFG2_CSBAUD
#define EPI_GPCFG_FRMCNT_M
bool EPIPSRAMConfigRegGetNonBlocking(uint32_t ui32Base, uint32_t ui32CS, uint32_t *pui32CR)
void EPIIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags)
#define EPI_HB16CFG_WRCRE
void EPIConfigSDRAMSet(uint32_t ui32Base, uint32_t ui32Config, uint32_t ui32Refresh)
void IntUnregister(uint32_t ui32Interrupt)
void EPIConfigHB8CSSet(uint32_t ui32Base, uint32_t ui32CS, uint32_t ui32Config)
uint32_t EPINonBlockingReadGet32(uint32_t ui32Base, uint32_t ui32Count, uint32_t *pui32Buf)
uint16_t EPIWorkaroundHWordRead(uint16_t *pui16Addr)
void EPIAddressMapSet(uint32_t ui32Base, uint32_t ui32Map)
void EPIIntUnregister(uint32_t ui32Base)
#define EPI_HB16_CSCFG_MASK
void EPIIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags)
uint8_t EPIWorkaroundByteRead(uint8_t *pui8Addr)
void EPIDividerSet(uint32_t ui32Base, uint32_t ui32Divider)
uint32_t EPIWriteFIFOCountGet(uint32_t ui32Base)
void EPIIntRegister(uint32_t ui32Base, void(*pfnHandler)(void))
uint32_t EPIIntStatus(uint32_t ui32Base, bool bMasked)
void IntDisable(uint32_t ui32Interrupt)
void EPIConfigHB16CSSet(uint32_t ui32Base, uint32_t ui32CS, uint32_t ui32Config)
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
void IntEnable(uint32_t ui32Interrupt)
static uint32_t _EPIIntNumberGet(uint32_t ui32Base)
#define EPI_HB8CFG_MAXWAIT_S
void EPIPSRAMConfigRegRead(uint32_t ui32Base, uint32_t ui32CS)