diff options
| author | robert-hh <robert@hammelrath.com> | 2022-08-10 11:04:09 +0200 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-08-23 14:59:48 +1000 |
| commit | 54eaa8c8a6c854e13f3c1b646ef44d0888628353 (patch) | |
| tree | 3c157e7f146be021e97c3b098883674e4e1cce93 | |
| parent | c3305c49e422369119ab211dc8fb2366aa6d7d53 (diff) | |
stm32/mphalport: Add mp_hal_get_spi_obj() helper function.
The function spi_from_mp_obj() is kept since it is used by the cc3k driver.
| -rw-r--r-- | ports/stm32/mphalport.h | 2 | ||||
| -rw-r--r-- | ports/stm32/spi.c | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/ports/stm32/mphalport.h b/ports/stm32/mphalport.h index 8028782a9..358d9cd25 100644 --- a/ports/stm32/mphalport.h +++ b/ports/stm32/mphalport.h @@ -110,6 +110,8 @@ bool mp_hal_pin_config_alt(mp_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, u void mp_hal_pin_config_speed(mp_hal_pin_obj_t pin_obj, uint32_t speed); void extint_register_pin(const pin_obj_t *pin, uint32_t mode, bool hard_irq, mp_obj_t callback_obj); +mp_obj_base_t *mp_hal_get_spi_obj(mp_obj_t spi_in); + enum { MP_HAL_MAC_WLAN0 = 0, MP_HAL_MAC_WLAN1, diff --git a/ports/stm32/spi.c b/ports/stm32/spi.c index 188376ec0..9c031cad2 100644 --- a/ports/stm32/spi.c +++ b/ports/stm32/spi.c @@ -30,6 +30,7 @@ #include "py/runtime.h" #include "py/mphal.h" #include "spi.h" +#include "extmod/machine_spi.h" // Possible DMA configurations for SPI buses: // SPI1_TX: DMA2_Stream3.CHANNEL_3 or DMA2_Stream5.CHANNEL_3 @@ -685,6 +686,20 @@ const spi_t *spi_from_mp_obj(mp_obj_t o) { } } +mp_obj_base_t *mp_hal_get_spi_obj(mp_obj_t o) { + if (mp_obj_is_type(o, &machine_hard_spi_type)) { + return MP_OBJ_TO_PTR(o); + } + #if MICROPY_PY_MACHINE_SOFTSPI + else if (mp_obj_is_type(o, &mp_machine_soft_spi_type)) { + return MP_OBJ_TO_PTR(o); + } + #endif + else { + mp_raise_TypeError(MP_ERROR_TEXT("expecting an SPI object")); + } +} + /******************************************************************************/ // Implementation of low-level SPI C protocol |
