Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 14 additions & 15 deletions CI/update/stm32variant.py
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,7 @@ def adc_pinmap():
"pin": p[0],
"inst": inst,
"mode": mode,
"pull": "GPIO_NOPULL",
"pull": "LL_GPIO_PULL_NO",
"af": "0",
"chan": chan,
"inv": inv,
Expand Down Expand Up @@ -740,7 +740,7 @@ def dac_pinmap():
"pin": p[0],
"inst": "DAC" + inst,
"mode": mode,
"pull": "GPIO_NOPULL",
"pull": "LL_GPIO_PULL_NO",
"af": "0",
"chan": chan,
"inv": "0",
Expand Down Expand Up @@ -778,7 +778,7 @@ def i2c_pinmap(lst):
"pin": p[0],
"inst": inst,
"mode": mode,
"pull": "GPIO_NOPULL",
"pull": "LL_GPIO_PULL_NO",
"af": p[3],
}
)
Expand Down Expand Up @@ -813,7 +813,7 @@ def i3c_pinmap(lst):
"pin": p[0],
"inst": inst,
"mode": mode,
"pull": "GPIO_NOPULL",
"pull": "LL_GPIO_PULL_NO",
"af": p[3],
}
)
Expand Down Expand Up @@ -852,7 +852,7 @@ def tim_pinmap():
"pin": p[0],
"inst": inst,
"mode": mode,
"pull": "GPIO_PULLUP",
"pull": "LL_GPIO_PULL_UP",
"af": p[3],
"chan": chan,
"inv": inv,
Expand Down Expand Up @@ -897,7 +897,7 @@ def uart_pinmap(lst):
"pin": p[0],
"inst": inst,
"mode": mode,
"pull": "GPIO_PULLUP",
"pull": "LL_GPIO_PULL_UP",
"af": p[3],
}
)
Expand Down Expand Up @@ -937,7 +937,7 @@ def spi_pinmap(lst):
"pin": p[0],
"inst": inst,
"mode": "STM_MODE_AF_PP",
"pull": "GPIO_PULLUP" if inst != "SUBGHZSPI" else "GPIO_NOPULL",
"pull": "LL_GPIO_PULL_UP" if inst != "SUBGHZSPI" else "LL_GPIO_PULL_NO",
"af": p[4],
}
)
Expand Down Expand Up @@ -980,7 +980,7 @@ def can_pinmap(lst):
"pin": p[0],
"inst": inst,
"mode": mode,
"pull": "GPIO_NOPULL",
"pull": "LL_GPIO_PULL_NO",
"af": p[3],
}
)
Expand Down Expand Up @@ -1012,7 +1012,7 @@ def eth_pinmap():
"pin": p[0],
"inst": inst,
"mode": "STM_MODE_AF_PP",
"pull": "GPIO_PULLUP",
"pull": "LL_GPIO_PULL_UP",
"af": p[3],
"cmt": p[2],
}
Expand Down Expand Up @@ -1080,7 +1080,7 @@ def xspi_pinmap(lst):
"pin": p[0],
"inst": inst,
"mode": "STM_MODE_AF_PP",
"pull": "GPIO_PULLUP",
"pull": "LL_GPIO_PULL_UP",
"af": p[3],
"cmt": p[2],
}
Expand Down Expand Up @@ -1129,20 +1129,19 @@ def usb_pinmap(lst):

# 2nd element is the USB_XXXX signal
if not p[2].startswith("USB_D") and "VBUS" not in p[2]:
pull = "LL_GPIO_PULL_UP"
if "ID" not in p[2]:
mode = "STM_MODE_AF_PP"
pull = "GPIO_PULLUP"
else:
# ID pin: AF_PP + PULLUP
mode = "STM_MODE_AF_OD"
pull = "GPIO_PULLUP"
else:
# USB_DM/DP and VBUS: INPUT/AF + NOPULL
if p[2].startswith("USB_D") and "NONE" not in p[3]:
mode = "STM_MODE_AF_PP"
else:
mode = "STM_MODE_INPUT"
pull = "GPIO_NOPULL"
pull = "LL_GPIO_PULL_NO"
wpin.append(len(p[0]))
usb_pins_list.append(
{
Expand Down Expand Up @@ -1204,9 +1203,9 @@ def sdx_pinmap(lst):
a = p[2].split("_")
inst = a[0]
if a[1].startswith("C") or a[1].endswith("DIR"):
pull = "GPIO_NOPULL"
pull = "LL_GPIO_PULL_NO"
else:
pull = "GPIO_PULLUP"
pull = "LL_GPIO_PULL_UP"
winst.append(len(inst))
wpin.append(len(p[0]))
sdx_pins_list.append(
Expand Down
4 changes: 2 additions & 2 deletions cores/arduino/Tone.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ static void timerTonePinDeinit()
TimerTone->timerHandleDeinit();
}
if (TimerTone_pinInfo.pin != NC) {
pin_function(TimerTone_pinInfo.pin, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
pin_function(TimerTone_pinInfo.pin, STM_PIN_DATA(STM_MODE_INPUT, LL_GPIO_PULL_NO, 0));
TimerTone_pinInfo.pin = NC;
}
}
Expand All @@ -93,7 +93,7 @@ static void timerTonePinInit(PinName p, uint32_t frequency, uint32_t duration)
TimerTone_pinInfo.count = -1;
}

pin_function(TimerTone_pinInfo.pin, STM_PIN_DATA(STM_MODE_OUTPUT_PP, GPIO_NOPULL, 0));
pin_function(TimerTone_pinInfo.pin, STM_PIN_DATA(STM_MODE_OUTPUT_PP, LL_GPIO_PULL_NO, 0));

TimerTone->setOverflow(timFreq, HERTZ_FORMAT);
TimerTone->attachInterrupt(tonePeriodElapsedCallback);
Expand Down
12 changes: 6 additions & 6 deletions cores/arduino/wiring_digital.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,22 +52,22 @@ void pinMode(uint32_t ulPin, uint32_t ulMode)
#endif
switch (ulMode) {
case INPUT: /* INPUT_FLOATING */
pin_function(p, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
pin_function(p, STM_PIN_DATA(STM_MODE_INPUT, LL_GPIO_PULL_NO, 0));
break;
case INPUT_PULLUP:
pin_function(p, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLUP, 0));
pin_function(p, STM_PIN_DATA(STM_MODE_INPUT, LL_GPIO_PULL_UP, 0));
break;
case INPUT_PULLDOWN:
pin_function(p, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLDOWN, 0));
pin_function(p, STM_PIN_DATA(STM_MODE_INPUT, LL_GPIO_PULL_DOWN, 0));
break;
case INPUT_ANALOG:
pin_function(p, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0));
pin_function(p, STM_PIN_DATA(STM_MODE_ANALOG, LL_GPIO_PULL_NO, 0));
break;
case OUTPUT:
pin_function(p, STM_PIN_DATA(STM_MODE_OUTPUT_PP, GPIO_NOPULL, 0));
pin_function(p, STM_PIN_DATA(STM_MODE_OUTPUT_PP, LL_GPIO_PULL_NO, 0));
break;
case OUTPUT_OPEN_DRAIN:
pin_function(p, STM_PIN_DATA(STM_MODE_OUTPUT_OD, GPIO_NOPULL, 0));
pin_function(p, STM_PIN_DATA(STM_MODE_OUTPUT_OD, LL_GPIO_PULL_NO, 0));
break;
default:
Error_Handler();
Expand Down
2 changes: 1 addition & 1 deletion libraries/SPI/src/utility/spi_com.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ void spi_init(spi_t *obj, uint32_t speed, SPIMode mode, uint8_t msb, SPIDeviceMo
* According the STM32 Datasheet for SPI peripheral we need to PULLDOWN
* or PULLUP the SCK pin according the polarity used.
*/
pull = (handle->Init.CLKPolarity == SPI_POLARITY_LOW) ? GPIO_PULLDOWN : GPIO_PULLUP;
pull = (handle->Init.CLKPolarity == SPI_POLARITY_LOW) ? LL_GPIO_PULL_DOWN : LL_GPIO_PULL_UP;
pin_PullConfig(get_GPIO_Port(STM_PORT(obj->pin_sclk)), STM_LL_GPIO_PIN(obj->pin_sclk), pull);
pinmap_pinout(obj->pin_ssel, PinMap_SPI_SSEL);
#if defined(SUBGHZSPI_BASE)
Expand Down
3 changes: 3 additions & 0 deletions libraries/SrcWrapper/inc/PinAF_STM32F1.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
extern "C" {
#endif

/* Stub for STM32F1xx */
#define LL_GPIO_PULL_NO 0x00000002u

enum {
AFIO_NONE,
AFIO_SPI1_ENABLE,
Expand Down
44 changes: 15 additions & 29 deletions libraries/SrcWrapper/inc/pinconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,37 +32,23 @@ static inline void pin_PullConfig(GPIO_TypeDef *gpio, uint32_t ll_pin, uint32_t
{
#ifdef STM32F1xx
uint32_t function = LL_GPIO_GetPinMode(gpio, ll_pin);
#endif
hsem_lock(CFG_HW_GPIO_SEMID, HSEM_LOCK_DEFAULT_RETRY);
switch (pull_config) {
case GPIO_PULLUP:
#ifdef STM32F1xx
if (function == LL_GPIO_MODE_FLOATING) {
LL_GPIO_SetPinMode(gpio, ll_pin, LL_GPIO_MODE_INPUT);
}
#endif
LL_GPIO_SetPinPull(gpio, ll_pin, LL_GPIO_PULL_UP);
break;
case GPIO_PULLDOWN:
#ifdef STM32F1xx
if (function == LL_GPIO_MODE_FLOATING) {
LL_GPIO_SetPinMode(gpio, ll_pin, LL_GPIO_MODE_INPUT);
}
#endif
LL_GPIO_SetPinPull(gpio, ll_pin, LL_GPIO_PULL_DOWN);
break;
default:
#ifdef STM32F1xx
/* Input+NoPull = Floating for F1 family */
if (function == LL_GPIO_MODE_INPUT) {
LL_GPIO_SetPinMode(gpio, ll_pin, LL_GPIO_MODE_FLOATING);
}
#else
LL_GPIO_SetPinPull(gpio, ll_pin, LL_GPIO_PULL_NO);
#endif
break;
if (pull_config == LL_GPIO_PULL_NO) {
/* Input+NoPull = Floating for F1 family */
if (function == LL_GPIO_MODE_INPUT) {
LL_GPIO_SetPinMode(gpio, ll_pin, LL_GPIO_MODE_FLOATING);
}
} else {
/* Input+PullUp/PullDown = Input for F1 family */
if (function == LL_GPIO_MODE_FLOATING) {
LL_GPIO_SetPinMode(gpio, ll_pin, LL_GPIO_MODE_INPUT);
}
LL_GPIO_SetPinPull(gpio, ll_pin, pull_config);
}
#else
hsem_lock(CFG_HW_GPIO_SEMID, HSEM_LOCK_DEFAULT_RETRY);
LL_GPIO_SetPinPull(gpio, ll_pin, pull_config);
hsem_unlock(CFG_HW_GPIO_SEMID);
#endif
}

static inline void pin_SetAFPin(GPIO_TypeDef *gpio, PinName pin, uint32_t afnum)
Expand Down
4 changes: 2 additions & 2 deletions libraries/USBDevice/src/usbd_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ WEAK void USBD_reenumerate(void)
{
#if defined(USBD_PULLUP_CONTROL_PINNAME)
/* Detach */
pin_function(USBD_PULLUP_CONTROL_PINNAME, STM_PIN_DATA(STM_MODE_OUTPUT_PP, GPIO_NOPULL, 0));
pin_function(USBD_PULLUP_CONTROL_PINNAME, STM_PIN_DATA(STM_MODE_OUTPUT_PP, LL_GPIO_PULL_NO, 0));
digitalWriteFast(USBD_PULLUP_CONTROL_PINNAME, USBD_DETACH_LEVEL);

/* Wait */
Expand All @@ -140,7 +140,7 @@ WEAK void USBD_reenumerate(void)
/* Attach */
#if defined(USBD_DP_TRICK)
/* Revert back to input (floating), needed for the D+ trick */
pin_function(USBD_PULLUP_CONTROL_PINNAME, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
pin_function(USBD_PULLUP_CONTROL_PINNAME, STM_PIN_DATA(STM_MODE_INPUT, LL_GPIO_PULL_NO, 0));
#else
digitalWriteFast(USBD_PULLUP_CONTROL_PINNAME, USBD_ATTACH_LEVEL);
#endif /* defined(USBD_PULLUP_CONTROL_FLOATING) */
Expand Down
5 changes: 3 additions & 2 deletions libraries/Wire/src/utility/twi.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include "core_debug.h"
#include "utility/twi.h"
#include "PinAF_STM32F1.h"
#include "stm32yyxx_ll_gpio.h"

#ifdef __cplusplus
extern "C" {
Expand Down Expand Up @@ -892,8 +893,8 @@ void i2c_deinit(i2c_t *obj)
#endif /* !STM32C0xx && !STM32F0xx && !STM32G0xx && !STM32L0xx && !STM32U0xx */
HAL_I2C_DeInit(&(obj->handle));
/* Reset I2C GPIO pins as INPUT_ANALOG */
pin_function(obj->scl, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0));
pin_function(obj->sda, STM_PIN_DATA(STM_MODE_ANALOG, GPIO_NOPULL, 0));
pin_function(obj->scl, STM_PIN_DATA(STM_MODE_ANALOG, LL_GPIO_PULL_NO, 0));
pin_function(obj->sda, STM_PIN_DATA(STM_MODE_ANALOG, LL_GPIO_PULL_NO, 0));
// Reset I2Cx and disable clock
#if defined I2C1_BASE
if (obj->i2c == I2C1) {
Expand Down
Loading
Loading