[feat][spi] update spi standard write and read poll function
This commit is contained in:
parent
75fe79b184
commit
69f237b25e
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user