mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 04:59:55 +00:00 
			
		
		
		
	fix(gpio): correct usb dp gpio pullup disable function v5.1
This commit is contained in:
		| @@ -1,5 +1,5 @@ | |||||||
| /* | /* | ||||||
|  * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD |  * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD | ||||||
|  * |  * | ||||||
|  * SPDX-License-Identifier: Apache-2.0 |  * SPDX-License-Identifier: Apache-2.0 | ||||||
|  */ |  */ | ||||||
| @@ -91,6 +91,15 @@ static inline void gpio_ll_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) | |||||||
| __attribute__((always_inline)) | __attribute__((always_inline)) | ||||||
| static inline void gpio_ll_pullup_dis(gpio_dev_t *hw, uint32_t gpio_num) | static inline void gpio_ll_pullup_dis(gpio_dev_t *hw, uint32_t gpio_num) | ||||||
| { | { | ||||||
|  |     // The pull-up value of the USB pins are controlled by the pins’ pull-up value together with USB pull-up value | ||||||
|  |     // USB DP pin is default to PU enabled | ||||||
|  |     // Note that esp32c6 has supported USB_EXCHG_PINS feature. If this efuse is burnt, the gpio pin | ||||||
|  |     // which should be checked is USB_INT_PHY0_DM_GPIO_NUM instead. | ||||||
|  |     // TODO: read the specific efuse with efuse_ll.h | ||||||
|  |     if (gpio_num == USB_DP_GPIO_NUM) { | ||||||
|  |         SET_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_PAD_PULL_OVERRIDE); | ||||||
|  |         CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_DP_PULLUP); | ||||||
|  |     } | ||||||
|     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PU); |     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PU); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -114,15 +123,6 @@ static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) | |||||||
| __attribute__((always_inline)) | __attribute__((always_inline)) | ||||||
| static inline void gpio_ll_pulldown_dis(gpio_dev_t *hw, uint32_t gpio_num) | static inline void gpio_ll_pulldown_dis(gpio_dev_t *hw, uint32_t gpio_num) | ||||||
| { | { | ||||||
|     // The pull-up value of the USB pins are controlled by the pins’ pull-up value together with USB pull-up value |  | ||||||
|     // USB DP pin is default to PU enabled |  | ||||||
|     // Note that esp32c6 has supported USB_EXCHG_PINS feature. If this efuse is burnt, the gpio pin |  | ||||||
|     // which should be checked is USB_DM_GPIO_NUM instead. |  | ||||||
|     // TODO: read the specific efuse with efuse_ll.h |  | ||||||
|     if (gpio_num == USB_DP_GPIO_NUM) { |  | ||||||
|         SET_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_PAD_PULL_OVERRIDE); |  | ||||||
|         CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_DP_PULLUP); |  | ||||||
|     } |  | ||||||
|     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PD); |     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PD); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /* | /* | ||||||
|  * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD |  * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD | ||||||
|  * |  * | ||||||
|  * SPDX-License-Identifier: Apache-2.0 |  * SPDX-License-Identifier: Apache-2.0 | ||||||
|  */ |  */ | ||||||
| @@ -90,6 +90,15 @@ static inline void gpio_ll_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) | |||||||
| __attribute__((always_inline)) | __attribute__((always_inline)) | ||||||
| static inline void gpio_ll_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) | static inline void gpio_ll_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) | ||||||
| { | { | ||||||
|  |     // The pull-up value of the USB pins are controlled by the pins’ pull-up value together with USB pull-up value | ||||||
|  |     // USB DP pin is default to PU enabled | ||||||
|  |     // Note that esp32h2 has supported USB_EXCHG_PINS feature. If this efuse is burnt, the gpio pin | ||||||
|  |     // which should be checked is USB_INT_PHY0_DM_GPIO_NUM instead. | ||||||
|  |     // TODO: read the specific efuse with efuse_ll.h | ||||||
|  |     if (gpio_num == USB_DP_GPIO_NUM) { | ||||||
|  |         SET_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_PAD_PULL_OVERRIDE); | ||||||
|  |         CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_DP_PULLUP); | ||||||
|  |     } | ||||||
|     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PU); |     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PU); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -113,15 +122,6 @@ static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) | |||||||
| __attribute__((always_inline)) | __attribute__((always_inline)) | ||||||
| static inline void gpio_ll_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_num) | static inline void gpio_ll_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_num) | ||||||
| { | { | ||||||
|     // The pull-up value of the USB pins are controlled by the pins’ pull-up value together with USB pull-up value |  | ||||||
|     // USB DP pin is default to PU enabled |  | ||||||
|     // Note that esp32h2 has supported USB_EXCHG_PINS feature. If this efuse is burnt, the gpio pin |  | ||||||
|     // which should be checked is USB_DM_GPIO_NUM instead. |  | ||||||
|     // TODO: read the specific efuse with efuse_ll.h |  | ||||||
|     if (gpio_num == USB_DP_GPIO_NUM) { |  | ||||||
|         SET_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_PAD_PULL_OVERRIDE); |  | ||||||
|         CLEAR_PERI_REG_MASK(USB_SERIAL_JTAG_CONF0_REG, USB_SERIAL_JTAG_DP_PULLUP); |  | ||||||
|     } |  | ||||||
|     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PD); |     REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PD); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 gaoxu
					gaoxu