summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2021-03-11 10:43:27 -0800
committerGitHub <noreply@github.com>2021-03-11 10:43:27 -0800
commita32359b0a29b68208a945dcfb76158b7655e8912 (patch)
treea76af28b876bb942eb3cb6d6a0d9e0a703b750c0
parent3b948b244e5e2e71c0ac3f26ffd33ea0a6caf444 (diff)
parent18668f6e2848a5a36d37df42354ecd1ee53786ba (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.c4
-rw-r--r--ports/cxd56/common-hal/busio/SPI.c8
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;
}