diff --git a/components/hal/esp32h2/include/hal/gpio_ll.h b/components/hal/esp32h2/include/hal/gpio_ll.h index 2589dea163..ed12ec6299 100644 --- a/components/hal/esp32h2/include/hal/gpio_ll.h +++ b/components/hal/esp32h2/include/hal/gpio_ll.h @@ -70,7 +70,7 @@ static inline void gpio_ll_get_io_config(gpio_dev_t *hw, uint32_t gpio_num, gpio * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) { REG_SET_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PU); } @@ -82,7 +82,7 @@ static inline void gpio_ll_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __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, 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 @@ -102,7 +102,7 @@ static inline void gpio_ll_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) { REG_SET_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PD); } @@ -114,7 +114,7 @@ static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __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, uint32_t gpio_num) { REG_CLR_BIT(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_PD); @@ -127,7 +127,7 @@ static inline void gpio_ll_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number. If you want to set the trigger type of e.g. of GPIO16, gpio_num should be GPIO_NUM_16 (16); * @param intr_type Interrupt type, select from gpio_int_type_t */ -static inline void gpio_ll_set_intr_type(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_int_type_t intr_type) +static inline void gpio_ll_set_intr_type(gpio_dev_t *hw, uint32_t gpio_num, gpio_int_type_t intr_type) { hw->pin[gpio_num].int_type = intr_type; } @@ -191,7 +191,7 @@ static inline void gpio_ll_clear_intr_status_high(gpio_dev_t *hw, uint32_t mask) * @param gpio_num GPIO number. If you want to enable the interrupt of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16); */ __attribute__((always_inline)) -static inline void gpio_ll_intr_enable_on_core(gpio_dev_t *hw, uint32_t core_id, gpio_num_t gpio_num) +static inline void gpio_ll_intr_enable_on_core(gpio_dev_t *hw, uint32_t core_id, uint32_t gpio_num) { HAL_ASSERT(core_id == 0 && "target SoC only has a single core"); GPIO.pin[gpio_num].int_ena = GPIO_LL_PRO_CPU_INTR_ENA; //enable pro cpu intr @@ -204,7 +204,7 @@ static inline void gpio_ll_intr_enable_on_core(gpio_dev_t *hw, uint32_t core_id, * @param gpio_num GPIO number. If you want to disable the interrupt of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16); */ __attribute__((always_inline)) -static inline void gpio_ll_intr_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_intr_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pin[gpio_num].int_ena = 0; //disable GPIO intr } @@ -216,7 +216,7 @@ static inline void gpio_ll_intr_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_input_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_input_disable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_INPUT_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -228,7 +228,7 @@ static inline void gpio_ll_input_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_input_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_input_enable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_INPUT_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -306,7 +306,7 @@ static inline void gpio_ll_pin_input_hysteresis_disable(gpio_dev_t *hw, uint32_t * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_output_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_output_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->enable_w1tc.enable_w1tc = (0x1 << gpio_num); } @@ -318,7 +318,7 @@ static inline void gpio_ll_output_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_output_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_output_enable(gpio_dev_t *hw, uint32_t gpio_num) { hw->enable_w1ts.enable_w1ts = (0x1 << gpio_num); } @@ -329,7 +329,7 @@ static inline void gpio_ll_output_enable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_od_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_od_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pin[gpio_num].pad_driver = 0; } @@ -340,7 +340,7 @@ static inline void gpio_ll_od_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_od_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_od_enable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pin[gpio_num].pad_driver = 1; } @@ -365,7 +365,7 @@ static inline void gpio_ll_matrix_out_default(gpio_dev_t *hw, uint32_t gpio_num) * @param level Output level. 0: low ; 1: high */ __attribute__((always_inline)) -static inline void gpio_ll_set_level(gpio_dev_t *hw, gpio_num_t gpio_num, uint32_t level) +static inline void gpio_ll_set_level(gpio_dev_t *hw, uint32_t gpio_num, uint32_t level) { if (level) { hw->out_w1ts.val = 1 << gpio_num; @@ -387,7 +387,7 @@ static inline void gpio_ll_set_level(gpio_dev_t *hw, gpio_num_t gpio_num, uint32 * - 1 the GPIO input level is 1 */ __attribute__((always_inline)) -static inline int gpio_ll_get_level(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline int gpio_ll_get_level(gpio_dev_t *hw, uint32_t gpio_num) { return (hw->in.in_data_next >> gpio_num) & 0x1; } @@ -399,7 +399,7 @@ static inline int gpio_ll_get_level(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number. * @param intr_type GPIO wake-up type. Only GPIO_INTR_LOW_LEVEL or GPIO_INTR_HIGH_LEVEL can be used. */ -static inline void gpio_ll_wakeup_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_wakeup_enable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pin[gpio_num].wakeup_enable = 1; } @@ -410,7 +410,7 @@ static inline void gpio_ll_wakeup_enable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_wakeup_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_wakeup_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pin[gpio_num].wakeup_enable = 0; } @@ -422,7 +422,7 @@ static inline void gpio_ll_wakeup_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number, only support output GPIOs * @param strength Drive capability of the pad */ -static inline void gpio_ll_set_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_drive_cap_t strength) +static inline void gpio_ll_set_drive_capability(gpio_dev_t *hw, uint32_t gpio_num, gpio_drive_cap_t strength) { SET_PERI_REG_BITS(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_DRV_V, strength, FUN_DRV_S); } @@ -434,7 +434,7 @@ static inline void gpio_ll_set_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_ * @param gpio_num GPIO number, only support output GPIOs * @param strength Pointer to accept drive capability of the pad */ -static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_drive_cap_t *strength) +static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, uint32_t gpio_num, gpio_drive_cap_t *strength) { *strength = (gpio_drive_cap_t)GET_PERI_REG_BITS2(IO_MUX_GPIO0_REG + (gpio_num * 4), FUN_DRV_V, FUN_DRV_S); } @@ -446,7 +446,7 @@ static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_ * @param gpio_num GPIO number, only support output GPIOs */ __attribute__((always_inline)) -static inline void gpio_ll_hold_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_hold_en(gpio_dev_t *hw, uint32_t gpio_num) { LP_AON.gpio_hold0.gpio_hold0 |= GPIO_HOLD_MASK[gpio_num]; } @@ -458,7 +458,7 @@ static inline void gpio_ll_hold_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number, only support output GPIOs */ __attribute__((always_inline)) -static inline void gpio_ll_hold_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_hold_dis(gpio_dev_t *hw, uint32_t gpio_num) { LP_AON.gpio_hold0.gpio_hold0 &= ~GPIO_HOLD_MASK[gpio_num]; } @@ -604,7 +604,7 @@ static inline void gpio_ll_force_unhold_all(void) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_SEL_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -617,7 +617,7 @@ static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_SEL_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -629,7 +629,7 @@ static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLUP_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -641,7 +641,7 @@ static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLUP_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -653,7 +653,7 @@ static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLDOWN_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -665,7 +665,7 @@ static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLDOWN_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -677,7 +677,7 @@ static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_nu * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_INPUT_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -689,7 +689,7 @@ static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, gpio_num_t gpio_n * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_INPUT_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -701,7 +701,7 @@ static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, gpio_num_t gpio_nu * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_OUTPUT_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -713,7 +713,7 @@ static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, gpio_num_t gpio_ * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_OUTPUT_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); } @@ -725,7 +725,7 @@ static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, gpio_num_t gpio_n * @param gpio_num GPIO number. * @param intr_type GPIO wake-up type. Only GPIO_INTR_LOW_LEVEL or GPIO_INTR_HIGH_LEVEL can be used. */ -static inline void gpio_ll_deepsleep_wakeup_enable(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_int_type_t intr_type) +static inline void gpio_ll_deepsleep_wakeup_enable(gpio_dev_t *hw, uint32_t gpio_num, gpio_int_type_t intr_type) { HAL_ASSERT((gpio_num >= GPIO_NUM_7 && gpio_num <= GPIO_NUM_14) && "only gpio7~14 support deep sleep wake-up function"); @@ -752,7 +752,7 @@ static inline void gpio_ll_deepsleep_wakeup_enable(gpio_dev_t *hw, gpio_num_t gp * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_deepsleep_wakeup_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_deepsleep_wakeup_disable(gpio_dev_t *hw, uint32_t gpio_num) { HAL_ASSERT((gpio_num >= GPIO_NUM_7 && gpio_num <= GPIO_NUM_14) && "only gpio7~14 support deep sleep wake-up function"); diff --git a/components/hal/esp32h21/include/hal/gpio_ll.h b/components/hal/esp32h21/include/hal/gpio_ll.h index 8f25460f88..e988be8099 100644 --- a/components/hal/esp32h21/include/hal/gpio_ll.h +++ b/components/hal/esp32h21/include/hal/gpio_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -7,7 +7,6 @@ /******************************************************************************* * NOTICE * The hal is not public api, don't use in application code. - * See readme.md in soc/include/hal/readme.md ******************************************************************************/ // The LL layer for ESP32-H21 GPIO register operations @@ -23,8 +22,8 @@ #include "soc/pmu_struct.h" #include "soc/pcr_struct.h" #include "soc/clk_tree_defs.h" -#include "soc/io_mux_struct.h" #include "soc/usb_serial_jtag_struct.h" +#include "soc/io_mux_struct.h" #include "hal/gpio_types.h" #include "hal/misc.h" #include "hal/assert.h" @@ -70,7 +69,7 @@ static inline void gpio_ll_get_io_config(gpio_dev_t *hw, uint32_t gpio_num, gpio * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].fun_wpu = 1; } @@ -82,7 +81,7 @@ static inline void gpio_ll_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __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, 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 @@ -102,7 +101,7 @@ static inline void gpio_ll_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].fun_wpd = 1; } @@ -114,7 +113,7 @@ static inline void gpio_ll_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __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, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].fun_wpd = 0; } @@ -126,7 +125,7 @@ static inline void gpio_ll_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number. If you want to set the trigger type of e.g. of GPIO16, gpio_num should be GPIO_NUM_16 (16); * @param intr_type Interrupt type, select from gpio_int_type_t */ -static inline void gpio_ll_set_intr_type(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_int_type_t intr_type) +static inline void gpio_ll_set_intr_type(gpio_dev_t *hw, uint32_t gpio_num, gpio_int_type_t intr_type) { hw->pinn[gpio_num].pinn_int_type = intr_type; } @@ -190,7 +189,7 @@ static inline void gpio_ll_clear_intr_status_high(gpio_dev_t *hw, uint32_t mask) * @param gpio_num GPIO number. If you want to enable the interrupt of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16); */ __attribute__((always_inline)) -static inline void gpio_ll_intr_enable_on_core(gpio_dev_t *hw, uint32_t core_id, gpio_num_t gpio_num) +static inline void gpio_ll_intr_enable_on_core(gpio_dev_t *hw, uint32_t core_id, uint32_t gpio_num) { HAL_ASSERT(core_id == 0 && "target SoC only has a single core"); GPIO.pinn[gpio_num].pinn_int_ena = GPIO_LL_PRO_CPU_INTR_ENA; //enable pro cpu intr @@ -203,7 +202,7 @@ static inline void gpio_ll_intr_enable_on_core(gpio_dev_t *hw, uint32_t core_id, * @param gpio_num GPIO number. If you want to disable the interrupt of e.g. GPIO16, gpio_num should be GPIO_NUM_16 (16); */ __attribute__((always_inline)) -static inline void gpio_ll_intr_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_intr_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pinn[gpio_num].pinn_int_ena = 0; //disable GPIO intr } @@ -215,7 +214,7 @@ static inline void gpio_ll_intr_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_input_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_input_disable(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].fun_ie = 0; } @@ -227,7 +226,7 @@ static inline void gpio_ll_input_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_input_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_input_enable(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].fun_ie = 1; } @@ -289,7 +288,7 @@ static inline void gpio_ll_pin_input_hysteresis_disable(gpio_dev_t *hw, uint32_t * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_output_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_output_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->enable_w1tc.enable_w1tc = (0x1 << gpio_num); } @@ -301,7 +300,7 @@ static inline void gpio_ll_output_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number */ __attribute__((always_inline)) -static inline void gpio_ll_output_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_output_enable(gpio_dev_t *hw, uint32_t gpio_num) { hw->enable_w1ts.enable_w1ts = (0x1 << gpio_num); } @@ -312,7 +311,7 @@ static inline void gpio_ll_output_enable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_od_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_od_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pinn[gpio_num].pinn_pad_driver = 0; } @@ -323,7 +322,7 @@ static inline void gpio_ll_od_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_od_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_od_enable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pinn[gpio_num].pinn_pad_driver = 1; } @@ -351,12 +350,12 @@ static inline void gpio_ll_matrix_out_default(gpio_dev_t *hw, uint32_t gpio_num) * @param level Output level. 0: low ; 1: high */ __attribute__((always_inline)) -static inline void gpio_ll_set_level(gpio_dev_t *hw, gpio_num_t gpio_num, uint32_t level) +static inline void gpio_ll_set_level(gpio_dev_t *hw, uint32_t gpio_num, uint32_t level) { if (level) { - hw->out_w1ts.out_w1ts = (1 << gpio_num); + hw->out_w1ts.val = 1 << gpio_num; } else { - hw->out_w1tc.out_w1tc = (1 << gpio_num); + hw->out_w1tc.val = 1 << gpio_num; } } @@ -373,7 +372,7 @@ static inline void gpio_ll_set_level(gpio_dev_t *hw, gpio_num_t gpio_num, uint32 * - 1 the GPIO input level is 1 */ __attribute__((always_inline)) -static inline int gpio_ll_get_level(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline int gpio_ll_get_level(gpio_dev_t *hw, uint32_t gpio_num) { return (hw->in.in_data_next >> gpio_num) & 0x1; } @@ -383,9 +382,8 @@ static inline int gpio_ll_get_level(gpio_dev_t *hw, gpio_num_t gpio_num) * * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number. - * @param intr_type GPIO wake-up type. Only GPIO_INTR_LOW_LEVEL or GPIO_INTR_HIGH_LEVEL can be used. */ -static inline void gpio_ll_wakeup_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_wakeup_enable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pinn[gpio_num].pinn_wakeup_enable = 1; } @@ -396,7 +394,7 @@ static inline void gpio_ll_wakeup_enable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_wakeup_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_wakeup_disable(gpio_dev_t *hw, uint32_t gpio_num) { hw->pinn[gpio_num].pinn_wakeup_enable = 0; } @@ -408,7 +406,7 @@ static inline void gpio_ll_wakeup_disable(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number, only support output GPIOs * @param strength Drive capability of the pad */ -static inline void gpio_ll_set_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_drive_cap_t strength) +static inline void gpio_ll_set_drive_capability(gpio_dev_t *hw, uint32_t gpio_num, gpio_drive_cap_t strength) { IO_MUX.gpio[gpio_num].fun_drv = strength; } @@ -420,7 +418,7 @@ static inline void gpio_ll_set_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_ * @param gpio_num GPIO number, only support output GPIOs * @param strength Pointer to accept drive capability of the pad */ -static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_drive_cap_t *strength) +static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, uint32_t gpio_num, gpio_drive_cap_t *strength) { *strength = (gpio_drive_cap_t)(IO_MUX.gpio[gpio_num].fun_drv); } @@ -432,7 +430,7 @@ static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, gpio_num_t gpio_ * @param gpio_num GPIO number, only support output GPIOs */ __attribute__((always_inline)) -static inline void gpio_ll_hold_en(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_hold_en(gpio_dev_t *hw, uint32_t gpio_num) { LP_AON.gpio_hold0.gpio_hold0 |= GPIO_HOLD_MASK[gpio_num]; } @@ -444,7 +442,7 @@ static inline void gpio_ll_hold_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param gpio_num GPIO number, only support output GPIOs */ __attribute__((always_inline)) -static inline void gpio_ll_hold_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_hold_dis(gpio_dev_t *hw, uint32_t gpio_num) { LP_AON.gpio_hold0.gpio_hold0 &= ~GPIO_HOLD_MASK[gpio_num]; } @@ -579,7 +577,8 @@ static inline void gpio_ll_force_unhold_all(void) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].slp_sel = 1; } @@ -591,7 +590,8 @@ static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].slp_sel = 0; } @@ -602,7 +602,8 @@ static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_wpu = 0; } @@ -613,7 +614,8 @@ static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_wpu = 1; } @@ -624,7 +626,8 @@ static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, gpio_num_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_wpd = 1; } @@ -635,17 +638,20 @@ static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, gpio_num_t gpio_num * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_wpd = 0; } + /** * @brief Disable GPIO input in sleep mode. * * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_ie = 0; } @@ -656,7 +662,8 @@ static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, gpio_num_t gpio_n * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_ie = 1; } @@ -667,7 +674,8 @@ static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, gpio_num_t gpio_nu * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_oe = 0; } @@ -678,7 +686,8 @@ static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, gpio_num_t gpio_ * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, gpio_num_t gpio_num) +__attribute__((always_inline)) +static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, uint32_t gpio_num) { IO_MUX.gpio[gpio_num].mcu_oe = 1; } @@ -690,7 +699,7 @@ static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, gpio_num_t gpio_n * @param gpio_num GPIO number. * @param intr_type GPIO wake-up type. Only GPIO_INTR_LOW_LEVEL or GPIO_INTR_HIGH_LEVEL can be used. */ -static inline void gpio_ll_deepsleep_wakeup_enable(gpio_dev_t *hw, gpio_num_t gpio_num, gpio_int_type_t intr_type) +static inline void gpio_ll_deepsleep_wakeup_enable(gpio_dev_t *hw, uint32_t gpio_num, gpio_int_type_t intr_type) { HAL_ASSERT((gpio_num >= GPIO_NUM_5 && gpio_num <= GPIO_NUM_11) && "only gpio5~11 support deep sleep wake-up function"); @@ -717,7 +726,7 @@ static inline void gpio_ll_deepsleep_wakeup_enable(gpio_dev_t *hw, gpio_num_t gp * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ -static inline void gpio_ll_deepsleep_wakeup_disable(gpio_dev_t *hw, gpio_num_t gpio_num) +static inline void gpio_ll_deepsleep_wakeup_disable(gpio_dev_t *hw, uint32_t gpio_num) { HAL_ASSERT((gpio_num >= GPIO_NUM_5 && gpio_num <= GPIO_NUM_11) && "only gpio5~11 support deep sleep wake-up function"); diff --git a/components/hal/esp32h4/include/hal/gpio_ll.h b/components/hal/esp32h4/include/hal/gpio_ll.h index 19ade71ff3..ff76f4cbaa 100644 --- a/components/hal/esp32h4/include/hal/gpio_ll.h +++ b/components/hal/esp32h4/include/hal/gpio_ll.h @@ -568,6 +568,7 @@ static inline void gpio_ll_force_unhold_all(void) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ + __attribute__((always_inline)) static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_SEL_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -580,6 +581,7 @@ static inline void gpio_ll_sleep_sel_en(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_SEL_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -591,6 +593,7 @@ static inline void gpio_ll_sleep_sel_dis(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLUP_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -602,6 +605,7 @@ static inline void gpio_ll_sleep_pullup_dis(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLUP_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -613,6 +617,7 @@ static inline void gpio_ll_sleep_pullup_en(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLDOWN_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -624,6 +629,7 @@ static inline void gpio_ll_sleep_pulldown_en(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_PULLDOWN_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -635,6 +641,7 @@ static inline void gpio_ll_sleep_pulldown_dis(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_INPUT_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -646,6 +653,7 @@ static inline void gpio_ll_sleep_input_disable(gpio_dev_t *hw, uint32_t gpio_num * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_INPUT_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -657,6 +665,7 @@ static inline void gpio_ll_sleep_input_enable(gpio_dev_t *hw, uint32_t gpio_num) * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_OUTPUT_DISABLE(IO_MUX_GPIO0_REG + (gpio_num * 4)); @@ -668,6 +677,7 @@ static inline void gpio_ll_sleep_output_disable(gpio_dev_t *hw, uint32_t gpio_nu * @param hw Peripheral GPIO hardware instance address. * @param gpio_num GPIO number */ +__attribute__((always_inline)) static inline void gpio_ll_sleep_output_enable(gpio_dev_t *hw, uint32_t gpio_num) { PIN_SLP_OUTPUT_ENABLE(IO_MUX_GPIO0_REG + (gpio_num * 4));