diff options
| author | Scott Shawcroft <scott@adafruit.com> | 2021-03-11 10:43:27 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-11 10:43:27 -0800 |
| commit | a32359b0a29b68208a945dcfb76158b7655e8912 (patch) | |
| tree | a76af28b876bb942eb3cb6d6a0d9e0a703b750c0 | |
| parent | 3b948b244e5e2e71c0ac3f26ffd33ea0a6caf444 (diff) | |
| parent | 18668f6e2848a5a36d37df42354ecd1ee53786ba (diff) | |
Merge pull request #4386 from kamtom480/spi_and_i2c
spresense: minor i2c and spi fixes
| -rw-r--r-- | ports/cxd56/common-hal/busio/I2C.c | 4 | ||||
| -rw-r--r-- | ports/cxd56/common-hal/busio/SPI.c | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ports/cxd56/common-hal/busio/I2C.c b/ports/cxd56/common-hal/busio/I2C.c index 127b6e75c..5579bedeb 100644 --- a/ports/cxd56/common-hal/busio/I2C.c +++ b/ports/cxd56/common-hal/busio/I2C.c @@ -103,7 +103,7 @@ uint8_t common_hal_busio_i2c_write(busio_i2c_obj_t *self, uint16_t address, cons msg.flags = (stop ? 0 : I2C_M_NOSTOP); msg.buffer = (uint8_t *) data; msg.length = len; - return I2C_TRANSFER(self->i2c_dev, &msg, 1); + return -I2C_TRANSFER(self->i2c_dev, &msg, 1); } uint8_t common_hal_busio_i2c_read(busio_i2c_obj_t *self, uint16_t address, uint8_t *data, size_t len) { @@ -114,7 +114,7 @@ uint8_t common_hal_busio_i2c_read(busio_i2c_obj_t *self, uint16_t address, uint8 msg.flags = I2C_M_READ; msg.buffer = data; msg.length = len; - return I2C_TRANSFER(self->i2c_dev, &msg, 1); + return -I2C_TRANSFER(self->i2c_dev, &msg, 1); } void common_hal_busio_i2c_never_reset(busio_i2c_obj_t *self) { diff --git a/ports/cxd56/common-hal/busio/SPI.c b/ports/cxd56/common-hal/busio/SPI.c index 2d365d482..56ab0758d 100644 --- a/ports/cxd56/common-hal/busio/SPI.c +++ b/ports/cxd56/common-hal/busio/SPI.c @@ -35,9 +35,13 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, const mcu_pin_obj_t * const mcu_pin_obj_t *mosi, const mcu_pin_obj_t *miso) { int port = -1; - if (clock->number == PIN_SPI4_SCK && mosi->number == PIN_SPI4_MOSI && miso->number == PIN_SPI4_MISO) { + if (clock->number == PIN_SPI4_SCK && + (mosi == NULL || mosi->number == PIN_SPI4_MOSI) && + (miso == NULL || miso->number == PIN_SPI4_MISO)) { port = 4; - } else if (clock->number == PIN_EMMC_CLK && mosi->number == PIN_EMMC_DATA0 && miso->number == PIN_EMMC_DATA1) { + } else if (clock->number == PIN_EMMC_CLK && + (mosi == NULL || mosi->number == PIN_EMMC_DATA0) && + (miso == NULL || miso->number == PIN_EMMC_DATA1)) { port = 5; } |
