void EXT_MEM_write_byte(uint8_t module, uint32_t addr, uint8_t byte) { MEM_CS(module, 0); spiWrite(0, EXT_MEM_CMD_WRITE); spiWrite(0, (uint8_t)((addr>>16)&0xFF)); spiWrite(0, (uint8_t)((addr>>8)&0xFF)); spiWrite(0, (uint8_t)(addr&0xFF)); spiWrite(0, byte); MEM_CS(module, 1); }
uint8_t EXT_MEM_read_byte(uint8_t module, uint32_t addr) { uint8_t rx; MEM_CS(module, 0); spiWrite(0, EXT_MEM_CMD_READ); spiWrite(0, (uint8_t)((addr>>16)&0xFF)); spiWrite(0, (uint8_t)((addr>>8)&0xFF)); spiWrite(0, (uint8_t)(addr&0xFF)); rx = spiWrite(0, 0xFF); MEM_CS(module, 1); return rx; }
void EXT_MEM_write_buffer(uint8_t module, uint32_t addr, uint32_t len, uint8_t *buff) { uint8_t i = 0; MEM_CS(module, 0); spiWrite(0, EXT_MEM_CMD_WRITE); spiWrite(0, (uint8_t)((addr>>16)&0xFF)); spiWrite(0, (uint8_t)((addr>>8)&0xFF)); spiWrite(0, (uint8_t)(addr&0xFF)); for (i = 0; i < len; i++){ spiWrite(0, buff[i]); } MEM_CS(module, 1); }
void EXT_MEM_read_buffer(uint8_t module, uint32_t addr, uint32_t len, uint8_t *buff) { uint8_t i = 0; MEM_CS(module, 0);; spiWrite(0, EXT_MEM_CMD_READ); spiWrite(0, (uint8_t)((addr>>16)&0xFF)); spiWrite(0, (uint8_t)((addr>>8)&0xFF)); spiWrite(0, (uint8_t)(addr&0xFF)); for (i = 0; i < len; i++){ buff[i] = spiWrite(0, 0xFF); } MEM_CS(module, 1); }
static void ti_qspi_ctrl_mode_mmap(void *ctrl_mod_mmap, int cs, bool enable) { u32 val; val = readl(ctrl_mod_mmap); if (enable) val |= MEM_CS(cs); else val &= MEM_CS_UNSELECT; writel(val, ctrl_mod_mmap); }