summaryrefslogtreecommitdiffstatshomepage
path: root/extmod/machine_spi.h
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-09-25 14:47:34 +1000
committerDamien George <damien@micropython.org>2020-10-01 12:57:10 +1000
commit71f3ade770fa7f2637d94f5ba5840b64a16a95db (patch)
tree4781c54bcfb9238d7e2fb5035ecc44ae9572a173 /extmod/machine_spi.h
parent39d50d129ce428858332523548f0594503d0f45b (diff)
downloadmicropython-71f3ade770fa7f2637d94f5ba5840b64a16a95db.tar.gz
micropython-71f3ade770fa7f2637d94f5ba5840b64a16a95db.zip
ports: Support legacy soft I2C/SPI construction via id=-1 arg.
With a warning that this way of constructing software I2C/SPI is deprecated. The check and warning will be removed in a future release. This should help existing code to migrate to the new SoftI2C/SoftSPI types. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'extmod/machine_spi.h')
-rw-r--r--extmod/machine_spi.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/extmod/machine_spi.h b/extmod/machine_spi.h
index db21e1cd31..ca92c719a8 100644
--- a/extmod/machine_spi.h
+++ b/extmod/machine_spi.h
@@ -30,6 +30,19 @@
#include "py/mphal.h"
#include "drivers/bus/spi.h"
+// Temporary support for legacy construction of SoftSPI via SPI type.
+#define MP_MACHINE_SPI_CHECK_FOR_LEGACY_SOFTSPI_CONSTRUCTION(n_args, n_kw, all_args) \
+ do { \
+ if (n_args == 0 || all_args[0] == MP_OBJ_NEW_SMALL_INT(-1)) { \
+ mp_print_str(MICROPY_ERROR_PRINTER, "Warning: SPI(-1, ...) is deprecated, use SoftSPI(...) instead\n"); \
+ if (n_args != 0) { \
+ --n_args; \
+ ++all_args; \
+ } \
+ return mp_machine_soft_spi_type.make_new(&mp_machine_soft_spi_type, n_args, n_kw, all_args); \
+ } \
+ } while (0)
+
// SPI protocol
typedef struct _mp_machine_spi_p_t {
void (*init)(mp_obj_base_t *obj, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);