Skip to content

Commit 89945b1

Browse files
jonathanhoggdpgeorge
authored andcommitted
esp32/machine_hw_spi: Allow None for unused pins in initializer.
Make the hardware SPI initializer method match the `init()` method by allowing `None` to be given for `sck`/`mosi`/`miso` to specify an unused signal.
1 parent 364670e commit 89945b1

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

ports/esp32/machine_hw_spi.c

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,32 @@ mp_obj_t machine_hw_spi_make_new(const mp_obj_type_t *type, size_t n_args, size_
411411
}
412412
self->base.type = &machine_hw_spi_type;
413413

414+
int8_t sck, mosi, miso;
415+
416+
if (args[ARG_sck].u_obj == MP_OBJ_NULL) {
417+
sck = default_pins->sck;
418+
} else if (args[ARG_sck].u_obj == mp_const_none) {
419+
sck = -1;
420+
} else {
421+
sck = machine_pin_get_id(args[ARG_sck].u_obj);
422+
}
423+
424+
if (args[ARG_mosi].u_obj == MP_OBJ_NULL) {
425+
mosi = default_pins->mosi;
426+
} else if (args[ARG_mosi].u_obj == mp_const_none) {
427+
mosi = -1;
428+
} else {
429+
mosi = machine_pin_get_id(args[ARG_mosi].u_obj);
430+
}
431+
432+
if (args[ARG_miso].u_obj == MP_OBJ_NULL) {
433+
miso = default_pins->miso;
434+
} else if (args[ARG_miso].u_obj == mp_const_none) {
435+
miso = -1;
436+
} else {
437+
miso = machine_pin_get_id(args[ARG_miso].u_obj);
438+
}
439+
414440
machine_hw_spi_init_internal(
415441
self,
416442
args[ARG_id].u_int,
@@ -419,9 +445,9 @@ mp_obj_t machine_hw_spi_make_new(const mp_obj_type_t *type, size_t n_args, size_
419445
args[ARG_phase].u_int,
420446
args[ARG_bits].u_int,
421447
args[ARG_firstbit].u_int,
422-
args[ARG_sck].u_obj == MP_OBJ_NULL ? default_pins->sck : machine_pin_get_id(args[ARG_sck].u_obj),
423-
args[ARG_mosi].u_obj == MP_OBJ_NULL ? default_pins->mosi : machine_pin_get_id(args[ARG_mosi].u_obj),
424-
args[ARG_miso].u_obj == MP_OBJ_NULL ? default_pins->miso : machine_pin_get_id(args[ARG_miso].u_obj));
448+
sck,
449+
mosi,
450+
miso);
425451

426452
return MP_OBJ_FROM_PTR(self);
427453
}

0 commit comments

Comments
 (0)