[feat][spi] update spi standard write and read poll function

This commit is contained in:
jzlv 2021-07-26 14:33:16 +08:00
parent 75fe79b184
commit 69f237b25e

View File

@ -261,34 +261,18 @@ int spi_write(struct device *dev, uint32_t pos, const void *buffer, uint32_t siz
} }
return 0; return 0;
} else if (dev->oflag & DEVICE_OFLAG_INT_TX) {
return -1;
} else { } else {
// if (spi_device->datasize == SPI_DATASIZE_32BIT) { if (spi_device->datasize == SPI_DATASIZE_8BIT) {
// SPI_Send_32bits(spi_device->id, (uint32_t *)buffer, size, SPI_TIMEOUT_DISABLE); return SPI_Send_8bits(spi_device->id, (uint8_t *)buffer, size, SPI_TIMEOUT_DISABLE);
// return 0; } else if (spi_device->datasize == SPI_DATASIZE_16BIT) {
// } else if (spi_device->datasize == SPI_DATASIZE_24BIT) { return SPI_Send_16bits(spi_device->id, (uint16_t *)buffer, size, SPI_TIMEOUT_DISABLE);
// } else if (spi_device->datasize == SPI_DATASIZE_16BIT) { } else if (spi_device->datasize == SPI_DATASIZE_24BIT) {
// uint32_t residue32 = size % 2; return SPI_Send_24bits(spi_device->id, (uint32_t *)buffer, size, SPI_TIMEOUT_DISABLE);
// uint32_t trade32 = size / 2; } else {
// SPI_Send_32bits(spi_device->id, (uint32_t *)buffer, trade32, SPI_TIMEOUT_DISABLE); return SPI_Send_32bits(spi_device->id, (uint32_t *)buffer, size, SPI_TIMEOUT_DISABLE);
// buffer += sizeof(uint32_t) * trade32; }
// SPI_Send_16bits(spi_device->id, (uint16_t *)buffer, residue32, SPI_TIMEOUT_DISABLE);
// return 0;
// } else if (spi_device->datasize == SPI_DATASIZE_8BIT) {
// uint32_t residue32 = size % 4;
// uint32_t trade32 = size / 4;
// SPI_Send_32bits(spi_device->id, (uint32_t *)buffer, trade32, SPI_TIMEOUT_DISABLE);
// buffer += sizeof(uint32_t) * trade32;
// uint32_t residue16 = residue32 % 2;
// uint32_t trade16 = residue32 / 2;
// SPI_Send_16bits(spi_device->id, (uint16_t *)buffer, trade16, SPI_TIMEOUT_DISABLE);
// buffer += sizeof(uint16_t) * trade16;
// SPI_Send_8bits(spi_device->id, (uint8_t *)buffer, residue16, SPI_TIMEOUT_DISABLE);
// return 0;
// }
return -2;
} }
} }
/** /**
@ -317,8 +301,18 @@ int spi_read(struct device *dev, uint32_t pos, void *buffer, uint32_t size)
} }
return 0; return 0;
} else if (dev->oflag & DEVICE_OFLAG_INT_TX) {
return -1;
} else { } else {
return -2; if (spi_device->datasize == SPI_DATASIZE_8BIT) {
return SPI_Recv_8bits(spi_device->id, (uint8_t *)buffer, size, SPI_TIMEOUT_DISABLE);
} else if (spi_device->datasize == SPI_DATASIZE_16BIT) {
return SPI_Recv_16bits(spi_device->id, (uint16_t *)buffer, size, SPI_TIMEOUT_DISABLE);
} else if (spi_device->datasize == SPI_DATASIZE_24BIT) {
return SPI_Recv_24bits(spi_device->id, (uint32_t *)buffer, size, SPI_TIMEOUT_DISABLE);
} else {
return SPI_Recv_32bits(spi_device->id, (uint32_t *)buffer, size, SPI_TIMEOUT_DISABLE);
}
} }
} }
/** /**