diff options
Diffstat (limited to 'shared-module')
| -rw-r--r-- | shared-module/bitbangio/I2C.c | 8 | ||||
| -rw-r--r-- | shared-module/bitbangio/OneWire.c | 7 | ||||
| -rw-r--r-- | shared-module/bitbangio/SPI.c | 7 | ||||
| -rw-r--r-- | shared-module/busio/I2C.c | 4 | ||||
| -rw-r--r-- | shared-module/busio/OneWire.c | 7 |
5 files changed, 33 insertions, 0 deletions
diff --git a/shared-module/bitbangio/I2C.c b/shared-module/bitbangio/I2C.c index 0f017fc18..7eeda0e00 100644 --- a/shared-module/bitbangio/I2C.c +++ b/shared-module/bitbangio/I2C.c @@ -162,7 +162,15 @@ void shared_module_bitbangio_i2c_construct(bitbangio_i2c_obj_t *self, stop(self); } +bool shared_module_bitbangio_i2c_deinited(bitbangio_i2c_obj_t *self) { + // If one is deinited, both will be. + return common_hal_digitalio_digitalinout_deinited(&self->scl); +} + void shared_module_bitbangio_i2c_deinit(bitbangio_i2c_obj_t *self) { + if (shared_module_bitbangio_i2c_deinited(self)) { + return; + } common_hal_digitalio_digitalinout_deinit(&self->scl); common_hal_digitalio_digitalinout_deinit(&self->sda); } diff --git a/shared-module/bitbangio/OneWire.c b/shared-module/bitbangio/OneWire.c index 46c0c406c..e77bdb3b2 100644 --- a/shared-module/bitbangio/OneWire.c +++ b/shared-module/bitbangio/OneWire.c @@ -38,7 +38,14 @@ void shared_module_bitbangio_onewire_construct(bitbangio_onewire_obj_t* self, common_hal_digitalio_digitalinout_construct(&self->pin, pin); } +bool shared_module_bitbangio_onewire_deinited(bitbangio_onewire_obj_t* self) { + return common_hal_digitalio_digitalinout_deinited(&self->pin); +} + void shared_module_bitbangio_onewire_deinit(bitbangio_onewire_obj_t* self) { + if (shared_module_bitbangio_onewire_deinited(self)) { + return; + } common_hal_digitalio_digitalinout_deinit(&self->pin); } diff --git a/shared-module/bitbangio/SPI.c b/shared-module/bitbangio/SPI.c index a3c70dde9..0576a6e56 100644 --- a/shared-module/bitbangio/SPI.c +++ b/shared-module/bitbangio/SPI.c @@ -70,7 +70,14 @@ void shared_module_bitbangio_spi_construct(bitbangio_spi_obj_t *self, self->phase = 0; } +bool shared_module_bitbangio_spi_deinited(bitbangio_spi_obj_t *self) { + return common_hal_digitalio_digitalinout_deinited(&self->clock); +} + void shared_module_bitbangio_spi_deinit(bitbangio_spi_obj_t *self) { + if (shared_module_bitbangio_spi_deinited(self)) { + return; + } common_hal_digitalio_digitalinout_deinit(&self->clock); if (self->has_mosi) { common_hal_digitalio_digitalinout_deinit(&self->mosi); diff --git a/shared-module/busio/I2C.c b/shared-module/busio/I2C.c index f8f154e7f..68d6ea22a 100644 --- a/shared-module/busio/I2C.c +++ b/shared-module/busio/I2C.c @@ -34,6 +34,10 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self, shared_module_bitbangio_i2c_construct(&self->bitbang, scl, sda, freq); } +bool common_hal_busio_i2c_deinited(busio_i2c_obj_t *self) { + return shared_module_bitbangio_i2c_deinited(&self->bitbang); +} + void common_hal_busio_i2c_deinit(busio_i2c_obj_t *self) { shared_module_bitbangio_i2c_deinit(&self->bitbang); } diff --git a/shared-module/busio/OneWire.c b/shared-module/busio/OneWire.c index 73d3d29d7..6bb7dedcd 100644 --- a/shared-module/busio/OneWire.c +++ b/shared-module/busio/OneWire.c @@ -34,7 +34,14 @@ void common_hal_busio_onewire_construct(busio_onewire_obj_t* self, shared_module_bitbangio_onewire_construct(&self->bitbang, pin); } +bool common_hal_busio_onewire_deinited(busio_onewire_obj_t* self) { + return shared_module_bitbangio_onewire_deinited(&self->bitbang); +} + void common_hal_busio_onewire_deinit(busio_onewire_obj_t* self) { + if (common_hal_busio_onewire_deinited(self)) { + return; + } shared_module_bitbangio_onewire_deinit(&self->bitbang); } |
