1 /* 2 * Copyright (c) 2023-2024 Analog Devices, Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_ADI_MAX32_GPIO_H_ 7 #define ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_ADI_MAX32_GPIO_H_ 8 9 /** 10 * @brief MAX32-specific GPIO Flags 11 * @defgroup gpio_interface_max32 MAX32-specific GPIO Flags 12 * @ingroup gpio_interface 13 * @{ 14 */ 15 16 /** 17 * @name MAX32 GPIO drive flags 18 * @brief MAX32 GPIO drive flags 19 * 20 * The drive flags are encoded in the 8 upper bits of @ref gpio_dt_flags_t as 21 * follows: 22 * 23 * - Bit 8: GPIO Supply Voltage Select 24 * Selects the voltage rail used for the pin. 25 * 0: VDDIO 26 * 1: VDDIOH 27 * 28 * - Bit 9: GPIO Drive Strength Select, 29 * MAX32_GPIO_DRV_STRENGTH_0 = 1mA 30 * MAX32_GPIO_DRV_STRENGTH_1 = 2mA 31 * MAX32_GPIO_DRV_STRENGTH_2 = 4mA 32 * MAX32_GPIO_DRV_STRENGTH_3 = 8mA 33 * 34 * - Bit 10: Weak pull up selection, Weak Pullup to VDDIO (1MOhm) 35 * 0: Disable 36 * 1: Enable 37 * 38 * - Bit 11: Weak pull down selection, Weak Pulldown to VDDIOH (1MOhm) 39 * 0: Disable 40 * 1: Enable 41 * @{ 42 */ 43 44 /** GPIO Voltage Select */ 45 #define MAX32_GPIO_VSEL_POS (8U) 46 #define MAX32_GPIO_VSEL_MASK (0x01U << MAX32_GPIO_VSEL_POS) 47 #define MAX32_GPIO_VSEL_VDDIO (0U << MAX32_GPIO_VSEL_POS) 48 #define MAX32_GPIO_VSEL_VDDIOH (1U << MAX32_GPIO_VSEL_POS) 49 50 /** GPIO Drive Strength Select */ 51 #define MAX32_GPIO_DRV_STRENGTH_POS (9U) 52 #define MAX32_GPIO_DRV_STRENGTH_MASK (0x03U << MAX32_GPIO_DRV_STRENGTH_POS) 53 #define MAX32_GPIO_DRV_STRENGTH_0 (0U << MAX32_GPIO_DRV_STRENGTH_POS) 54 #define MAX32_GPIO_DRV_STRENGTH_1 (1U << MAX32_GPIO_DRV_STRENGTH_POS) 55 #define MAX32_GPIO_DRV_STRENGTH_2 (2U << MAX32_GPIO_DRV_STRENGTH_POS) 56 #define MAX32_GPIO_DRV_STRENGTH_3 (3U << MAX32_GPIO_DRV_STRENGTH_POS) 57 58 /** GPIO bias weak pull up selection, to VDDIO (1MOhm) */ 59 #define MAX32_GPIO_WEAK_PULL_UP_POS (10U) 60 #define MAX32_GPIO_WEAK_PULL_UP (1U << MAX32_GPIO_WEAK_PULL_UP_POS) 61 /** GPIO bias weak pull down selection, to VDDIOH (1MOhm) */ 62 #define MAX32_GPIO_WEAK_PULL_DOWN_POS (11U) 63 #define MAX32_GPIO_WEAK_PULL_DOWN (1U << MAX32_GPIO_WEAK_PULL_DOWN_POS) 64 65 /** @} */ 66 67 /** @} */ 68 69 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_ADI_MAX32_GPIO_H_ */ 70