if (!dev)
return NULL;
- int ret;
struct _iotbus_spi_s *handle = (struct _iotbus_spi_s *)malloc(sizeof(struct _iotbus_spi_s));
handle->bpw = config->bits_per_word;
handle->lsb = config->lsb;
handle->sdev = dev;
SPI_LOCK(dev, true);
- ret = SPI_SETMODE(dev, handle->mode);
- if (ret < 0) {
- SPI_LOCK(dev, false);
- free(handle);
- return NULL;
- }
+ SPI_SETMODE(dev, handle->mode);
if (handle->lsb == 0) // MSB
- ret = SPI_SETBITS(dev, handle->bpw);
+ SPI_SETBITS(dev, handle->bpw);
else
// LSB
- ret = SPI_SETBITS(dev, -handle->bpw);
-
- if (ret < 0) {
- SPI_LOCK(dev, false);
- free(handle);
- return NULL;
- }
+ SPI_SETBITS(dev, -handle->bpw);
SPI_SETFREQUENCY(dev, handle->freq);
SPI_LOCK(dev, false);
#endif
void (*select)(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected);
uint32_t (*setfrequency)(FAR struct spi_dev_s *dev, uint32_t frequency);
- int (*setmode)(FAR struct spi_dev_s *dev, enum spi_mode_e mode);
- int (*setbits)(FAR struct spi_dev_s *dev, int nbits);
+ void (*setmode)(FAR struct spi_dev_s *dev, enum spi_mode_e mode);
+ void (*setbits)(FAR struct spi_dev_s *dev, int nbits);
uint8_t (*status)(FAR struct spi_dev_s *dev, enum spi_dev_e devid);
#ifdef CONFIG_SPI_CMDDATA
int (*cmddata)(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd);