void MMapBusFini(MMapBus *bus) { if (bus->Mem) { MemUnmap(bus->Mem); bus->Mem = 0; } if (bus->Mem16) { MemUnmap(bus->Mem16); bus->Mem16 = 0; } if (bus->InitStatus > 0) bus->InitStatus = 0; }
SPI *ts4800__SPIInit0(SPI *spi,int inst) { // write 8 to 0x83fda00c to set up WEIM to use byte selects volatile unsigned *reg = MemMap(0x83fda000,1); reg[0xC/sizeof(unsigned)] = 8; MemUnmap(reg); Bus *bus; dio0 = ts4800__DIOInit0(0,0); // needed by ts4800SPIChipSelect ts4800SPI0.LockNum = 7; bus = ts4800__BusInit0(0,0); return WBSPIInit(&ts4800SPI0,ts4800__BusInit16(0,16),ts4800__BusInit16(0,16), 0,ts4800SPIChipSelect); }