Skip to content

Commit 38186c1

Browse files
committed
Fix compatibility with old SDK versions
1 parent a7d2b61 commit 38186c1

File tree

6 files changed

+25
-16
lines changed

6 files changed

+25
-16
lines changed

src/pio_usb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ static void apply_config(pio_port_t *pp, const pio_usb_configuration_t *c,
306306
pp->ls_tx_program = &usb_tx_dpdm_program;
307307
}
308308

309-
#if PICO_PIO_USE_GPIO_BASE
309+
#if defined(PICO_PIO_USE_GPIO_BASE) && PICO_PIO_USE_GPIO_BASE+0
310310
if (highest_pin > 32) {
311311
pio_set_gpio_base(pp->pio_usb_tx, 16);
312312
pio_set_gpio_base(pp->pio_usb_rx, 16);

src/sdk_compat.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#pragma once
2+
3+
#if PICO_SDK_VERSION_MAJOR < 2
4+
static __always_inline void pio_sm_set_jmp_pin(PIO pio, uint sm, uint jmp_pin) {
5+
pio->sm[sm].execctrl =
6+
(pio->sm[sm].execctrl & ~PIO_SM0_EXECCTRL_JMP_PIN_BITS) |
7+
(jmp_pin << PIO_SM0_EXECCTRL_JMP_PIN_LSB);
8+
}
9+
#endif
10+
11+
#if PICO_SDK_VERSION_MAJOR < 2 || (PICO_SDK_VERSION_MAJOR == 2 && PICO_SDK_VERSION_MINOR < 1)
12+
static void pio_sm_set_pins_with_mask64(PIO pio, uint sm, uint64_t pin_values, uint64_t pin_mask) {
13+
pio_sm_set_pins_with_mask(pio, sm, (uint32_t) pin_values, (uint32_t) pin_mask);
14+
}
15+
16+
static void pio_sm_set_pindirs_with_mask64(PIO pio, uint sm, uint64_t pin_values, uint64_t pin_mask) {
17+
pio_sm_set_pindirs_with_mask(pio, sm, (uint32_t) pin_values, (uint32_t) pin_mask);
18+
}
19+
#endif
20+

src/usb_rx.pio

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,14 +155,7 @@ J2:
155155

156156
% c-sdk {
157157
#include "hardware/clocks.h"
158-
159-
#if PICO_SDK_VERSION_MAJOR < 2
160-
static __always_inline void pio_sm_set_jmp_pin(PIO pio, uint sm, uint jmp_pin) {
161-
pio->sm[sm].execctrl =
162-
(pio->sm[sm].execctrl & ~PIO_SM0_EXECCTRL_JMP_PIN_BITS) |
163-
(jmp_pin << PIO_SM0_EXECCTRL_JMP_PIN_LSB);
164-
}
165-
#endif
158+
#include "sdk_compat.h"
166159

167160
static inline void usb_rx_fs_program_init(PIO pio, uint sm, uint offset, uint pin_dp, uint pin_dm, int pin_debug) {
168161
if (pin_dp < pin_dm) {

src/usb_rx.pio.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,7 @@ static inline pio_sm_config usb_nrzi_decoder_debug_program_get_default_config(ui
173173
}
174174

175175
#include "hardware/clocks.h"
176-
#if PICO_SDK_VERSION_MAJOR < 2
177-
static __always_inline void pio_sm_set_jmp_pin(PIO pio, uint sm, uint jmp_pin) {
178-
pio->sm[sm].execctrl =
179-
(pio->sm[sm].execctrl & ~PIO_SM0_EXECCTRL_JMP_PIN_BITS) |
180-
(jmp_pin << PIO_SM0_EXECCTRL_JMP_PIN_LSB);
181-
}
182-
#endif
176+
#include "sdk_compat.h"
183177
static inline void usb_rx_fs_program_init(PIO pio, uint sm, uint offset, uint pin_dp, uint pin_dm, int pin_debug) {
184178
if (pin_dp < pin_dm) {
185179
pio_sm_set_consecutive_pindirs(pio, sm, pin_dp, 2, false);

src/usb_tx.pio

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ set pindirs, 0b11 side FJ_LK
9191

9292
% c-sdk {
9393
#include "hardware/clocks.h"
94+
#include "sdk_compat.h"
9495

9596
static void __no_inline_not_in_flash_func(usb_tx_configure_pins)(PIO pio, uint sm, uint pin_dp, uint pin_dm) {
9697
if (pin_dp < pin_dm) {

src/usb_tx.pio.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ static inline pio_sm_config usb_tx_pre_dmdp_program_get_default_config(uint offs
138138
}
139139

140140
#include "hardware/clocks.h"
141+
#include "sdk_compat.h"
141142
static void __no_inline_not_in_flash_func(usb_tx_configure_pins)(PIO pio, uint sm, uint pin_dp, uint pin_dm) {
142143
if (pin_dp < pin_dm) {
143144
pio_sm_set_out_pins(pio, sm, pin_dp, 2);

0 commit comments

Comments
 (0)