1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2015-2022, STMicroelectronics - All Rights Reserved 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef STM32_GPIO_H 8*91f16700Schasinglulu #define STM32_GPIO_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <lib/utils_def.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu #define GPIO_MODE_OFFSET U(0x00) 13*91f16700Schasinglulu #define GPIO_TYPE_OFFSET U(0x04) 14*91f16700Schasinglulu #define GPIO_SPEED_OFFSET U(0x08) 15*91f16700Schasinglulu #define GPIO_PUPD_OFFSET U(0x0C) 16*91f16700Schasinglulu #define GPIO_OD_OFFSET U(0x14) 17*91f16700Schasinglulu #define GPIO_BSRR_OFFSET U(0x18) 18*91f16700Schasinglulu #define GPIO_AFRL_OFFSET U(0x20) 19*91f16700Schasinglulu #define GPIO_AFRH_OFFSET U(0x24) 20*91f16700Schasinglulu #define GPIO_SECR_OFFSET U(0x30) 21*91f16700Schasinglulu 22*91f16700Schasinglulu #define GPIO_ALT_LOWER_LIMIT U(0x08) 23*91f16700Schasinglulu 24*91f16700Schasinglulu #define GPIO_PIN_(_x) U(_x) 25*91f16700Schasinglulu #define GPIO_PIN_MAX GPIO_PIN_(15) 26*91f16700Schasinglulu 27*91f16700Schasinglulu #define GPIO_ALTERNATE_(_x) U(_x) 28*91f16700Schasinglulu #define GPIO_ALTERNATE_MASK U(0x0F) 29*91f16700Schasinglulu 30*91f16700Schasinglulu #define GPIO_MODE_INPUT U(0x00) 31*91f16700Schasinglulu #define GPIO_MODE_OUTPUT U(0x01) 32*91f16700Schasinglulu #define GPIO_MODE_ALTERNATE U(0x02) 33*91f16700Schasinglulu #define GPIO_MODE_ANALOG U(0x03) 34*91f16700Schasinglulu #define GPIO_MODE_MASK U(0x03) 35*91f16700Schasinglulu 36*91f16700Schasinglulu #define GPIO_TYPE_PUSH_PULL U(0x00) 37*91f16700Schasinglulu #define GPIO_TYPE_OPEN_DRAIN U(0x01) 38*91f16700Schasinglulu #define GPIO_TYPE_MASK U(0x01) 39*91f16700Schasinglulu 40*91f16700Schasinglulu #define GPIO_SPEED_LOW U(0x00) 41*91f16700Schasinglulu #define GPIO_SPEED_MEDIUM U(0x01) 42*91f16700Schasinglulu #define GPIO_SPEED_HIGH U(0x02) 43*91f16700Schasinglulu #define GPIO_SPEED_VERY_HIGH U(0x03) 44*91f16700Schasinglulu #define GPIO_SPEED_MASK U(0x03) 45*91f16700Schasinglulu 46*91f16700Schasinglulu #define GPIO_NO_PULL U(0x00) 47*91f16700Schasinglulu #define GPIO_PULL_UP U(0x01) 48*91f16700Schasinglulu #define GPIO_PULL_DOWN U(0x02) 49*91f16700Schasinglulu #define GPIO_PULL_MASK U(0x03) 50*91f16700Schasinglulu 51*91f16700Schasinglulu #define GPIO_OD_OUTPUT_LOW U(0x00) 52*91f16700Schasinglulu #define GPIO_OD_OUTPUT_HIGH U(0x01) 53*91f16700Schasinglulu #define GPIO_OD_MASK U(0x01) 54*91f16700Schasinglulu 55*91f16700Schasinglulu #ifndef __ASSEMBLER__ 56*91f16700Schasinglulu #include <stdint.h> 57*91f16700Schasinglulu 58*91f16700Schasinglulu int dt_set_pinctrl_config(int node); 59*91f16700Schasinglulu void set_gpio_secure_cfg(uint32_t bank, uint32_t pin, bool secure); 60*91f16700Schasinglulu void set_gpio_reset_cfg(uint32_t bank, uint32_t pin); 61*91f16700Schasinglulu #endif /*__ASSEMBLER__*/ 62*91f16700Schasinglulu 63*91f16700Schasinglulu #endif /* STM32_GPIO_H */ 64