Skip to content

Commit 181bfb6

Browse files
committed
stmhal: Add MICROPY_HW_USB_VBUS_DETECT_PIN option, for boards without it
Since all currently supported boards use pin A9 for this function, the value of the macro MICROPY_HW_USB_VBUS_DETECT_PIN is not actually used, just the fact that it is defined. Addresses issue adafruit#1048.
1 parent c223df5 commit 181bfb6

6 files changed

Lines changed: 20 additions & 2 deletions

File tree

stmhal/boards/NETDUINO_PLUS_2/mpconfigboard.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,6 @@
3636
#define MICROPY_HW_LED_OTYPE (GPIO_MODE_OUTPUT_PP)
3737
#define MICROPY_HW_LED_ON(pin) (pin->gpio->BSRRL = pin->pin_mask)
3838
#define MICROPY_HW_LED_OFF(pin) (pin->gpio->BSRRH = pin->pin_mask)
39+
40+
// USB VBUS detect pin
41+
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)

stmhal/boards/PYBV10/mpconfigboard.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,6 @@
3838
#define MICROPY_HW_SDCARD_DETECT_PIN (pin_A8)
3939
#define MICROPY_HW_SDCARD_DETECT_PULL (GPIO_PULLUP)
4040
#define MICROPY_HW_SDCARD_DETECT_PRESENT (GPIO_PIN_RESET)
41+
42+
// USB VBUS detect pin
43+
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)

stmhal/boards/PYBV3/mpconfigboard.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@
3737
#define MICROPY_HW_SDCARD_DETECT_PIN (pin_C13)
3838
#define MICROPY_HW_SDCARD_DETECT_PULL (GPIO_PULLDOWN)
3939
#define MICROPY_HW_SDCARD_DETECT_PRESENT (GPIO_PIN_SET)
40+
41+
// USB VBUS detect pin
42+
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)

stmhal/boards/PYBV4/mpconfigboard.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@
3737
#define MICROPY_HW_SDCARD_DETECT_PIN (pin_A8)
3838
#define MICROPY_HW_SDCARD_DETECT_PULL (GPIO_PULLUP)
3939
#define MICROPY_HW_SDCARD_DETECT_PRESENT (GPIO_PIN_RESET)
40+
41+
// USB VBUS detect pin
42+
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)

stmhal/boards/STM32F4DISC/mpconfigboard.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,6 @@
3232
#define MICROPY_HW_LED_OTYPE (GPIO_MODE_OUTPUT_PP)
3333
#define MICROPY_HW_LED_ON(pin) (pin->gpio->BSRRL = pin->pin_mask)
3434
#define MICROPY_HW_LED_OFF(pin) (pin->gpio->BSRRH = pin->pin_mask)
35+
36+
// USB VBUS detect pin
37+
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)

stmhal/usbd_conf.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,13 @@ void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd)
7171
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
7272

7373
/* Configure VBUS Pin */
74+
#if defined(MICROPY_HW_USB_VBUS_DETECT_PIN)
75+
// USB VBUS detect pin is always A9
7476
GPIO_InitStruct.Pin = GPIO_PIN_9;
7577
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
7678
GPIO_InitStruct.Pull = GPIO_NOPULL;
7779
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
80+
#endif
7881

7982
#if USE_USB_OTG_ID
8083
GPIO_InitStruct.Pin = GPIO_PIN_10;
@@ -340,8 +343,8 @@ USBD_StatusTypeDef USBD_LL_Init (USBD_HandleTypeDef *pdev)
340343
hpcd.Init.phy_itface = PCD_PHY_EMBEDDED;
341344
hpcd.Init.Sof_enable = 0;
342345
hpcd.Init.speed = PCD_SPEED_FULL;
343-
#if defined(HYDRABUSV10)
344-
hpcd.Init.vbus_sensing_enable = 0; /* No VBUS Sensing on USB0 for HydraBus (VBUS is not connected on GPIOA9) */
346+
#if !defined(MICROPY_HW_USB_VBUS_DETECT_PIN)
347+
hpcd.Init.vbus_sensing_enable = 0; // No VBUS Sensing on USB0
345348
#else
346349
hpcd.Init.vbus_sensing_enable = 1;
347350
#endif

0 commit comments

Comments
 (0)