diff options
| author | Jim Mussared <jim.mussared@gmail.com> | 2022-09-06 22:54:40 +1000 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-09-08 14:51:04 +1000 |
| commit | 29437205f29976db71dc12d61ce756732e6f813a (patch) | |
| tree | 03bec0fc77e3aee9850868068970772080b11d21 | |
| parent | c364301817d828eeb6df74095b3ea8083e8fbef6 (diff) | |
rp2/machine_spi: Use pico-sdk's default pins for SPI.
Rather than hardcoding the defaults, use pico-sdk's board definition.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
| -rw-r--r-- | ports/rp2/machine_spi.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ports/rp2/machine_spi.c b/ports/rp2/machine_spi.c index 42998664a..104bd1fd5 100644 --- a/ports/rp2/machine_spi.c +++ b/ports/rp2/machine_spi.c @@ -40,20 +40,36 @@ #define DEFAULT_SPI_FIRSTBIT (SPI_MSB_FIRST) #ifndef MICROPY_HW_SPI0_SCK +#if PICO_DEFAULT_SPI == 0 +#define MICROPY_HW_SPI0_SCK (PICO_DEFAULT_SPI_SCK_PIN) +#define MICROPY_HW_SPI0_MOSI (PICO_DEFAULT_SPI_TX_PIN) +#define MICROPY_HW_SPI0_MISO (PICO_DEFAULT_SPI_RX_PIN) +#else #define MICROPY_HW_SPI0_SCK (6) #define MICROPY_HW_SPI0_MOSI (7) #define MICROPY_HW_SPI0_MISO (4) #endif +#endif #ifndef MICROPY_HW_SPI1_SCK +#if PICO_DEFAULT_SPI == 1 +#define MICROPY_HW_SPI1_SCK (PICO_DEFAULT_SPI_SCK_PIN) +#define MICROPY_HW_SPI1_MOSI (PICO_DEFAULT_SPI_TX_PIN) +#define MICROPY_HW_SPI1_MISO (PICO_DEFAULT_SPI_RX_PIN) +#else #define MICROPY_HW_SPI1_SCK (10) #define MICROPY_HW_SPI1_MOSI (11) #define MICROPY_HW_SPI1_MISO (8) #endif +#endif +// SPI0 can be GP{0..7,16..23}, SPI1 can be GP{8..15,24..29}. #define IS_VALID_PERIPH(spi, pin) ((((pin) & 8) >> 3) == (spi)) +// GP{2,6,10,14,...} #define IS_VALID_SCK(spi, pin) (((pin) & 3) == 2 && IS_VALID_PERIPH(spi, pin)) +// GP{3,7,11,15,...} #define IS_VALID_MOSI(spi, pin) (((pin) & 3) == 3 && IS_VALID_PERIPH(spi, pin)) +// GP{0,4,8,10,...} #define IS_VALID_MISO(spi, pin) (((pin) & 3) == 0 && IS_VALID_PERIPH(spi, pin)) typedef struct _machine_spi_obj_t { |
