8000 rp2/machine_spi: Use pico-sdk's default pins for SPI. · jimmo/micropython@2943720 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2943720

Browse files
jimmodpgeorge
authored andcommitted
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>
1 parent c364301 commit 2943720

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

ports/rp2/machine_spi.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,36 @@
4040
#define DEFAULT_SPI_FIRSTBIT (SPI_MSB_FIRST)
4141

4242
#ifndef MICROPY_HW_SPI0_SCK
43+
#if PICO_DEFAULT_SPI == 0
44+
#define MICROPY_HW_SPI0_SCK (PICO_DEFAULT_SPI_SCK_PIN)
45+
#define MICROPY_HW_SPI0_MOSI (PICO_DEFAULT_SPI_TX_PIN)
46+
#define MICROPY_HW_SPI0_MISO (PICO_DEFAULT_SPI_RX_PIN)
47+
#else
4348
#define MICROPY_HW_SPI0_SCK (6)
4449
#define MICROPY_HW_SPI0_MOSI (7)
4550
#define MICROPY_HW_SPI0_MISO (4)
4651
#endif
52+
#endif
4753

4854
#ifndef MICROPY_HW_SPI1_SCK
55+
#if PICO_DEFAULT_SPI == 1
56+
#define MICROPY_HW_SPI1_SCK (PICO_DEFAULT_SPI_SCK_PIN)
57+
#define MICROPY_HW_SPI1_MOSI (PICO_DEFAULT_SPI_TX_PIN)
58+
#define MICROPY_HW_SPI1_MISO (PICO_DEFAULT_SPI_RX_PIN)
59+
#else
4960
#define MICROPY_HW_SPI1_SCK (10)
5061
#define MICROPY_HW_SPI1_MOSI (11)
5162
#define MICROPY_HW_SPI1_MISO (8)
5263
#endif
64+
#endif
5365

66+
// SPI0 can be GP{0..7,16..23}, SPI1 can be GP{8..15,24..29}.
5467
#define IS_VALID_PERIPH(spi, pin) ((((pin) & 8) >> 3) == (spi))
68+
// GP{2,6,10,14,...}
5569
#define IS_VALID_SCK(spi, pin) (((pin) & 3) == 2 && IS_VALID_PERIPH(spi, pin))
70+
// GP{3,7,11,15,...}
5671
#define IS_VALID_MOSI(spi, pin) (((pin) & 3) == 3 && IS_VALID_PERIPH(spi, pin))
72+
// GP{0,4,8,10,...}
5773
#define IS_VALID_MISO(spi, pin) (((pin) & 3) == 0 && IS_VALID_PERIPH(spi, pin))
5874

5975
typedef struct _machine_spi_obj_t {

0 commit comments

Comments
 (0)
0