1d4afb5ceSopenharmony_ci#include <driver/gpio.h> 2d4afb5ceSopenharmony_ci#include "gpio-esp32.h" 3d4afb5ceSopenharmony_ci 4d4afb5ceSopenharmony_cistatic void 5d4afb5ceSopenharmony_cilws_gpio_esp32_mode_write(_lws_plat_gpio_t gpio) 6d4afb5ceSopenharmony_ci{ 7d4afb5ceSopenharmony_ci gpio_reset_pin(gpio); 8d4afb5ceSopenharmony_ci gpio_set_pull_mode(gpio, GPIO_PULLUP_ONLY); 9d4afb5ceSopenharmony_ci gpio_set_direction(gpio, GPIO_MODE_INPUT_OUTPUT); 10d4afb5ceSopenharmony_ci gpio_set_level(gpio, 1); 11d4afb5ceSopenharmony_ci} 12d4afb5ceSopenharmony_cistatic void 13d4afb5ceSopenharmony_cilws_gpio_esp32_mode_read(_lws_plat_gpio_t gpio) 14d4afb5ceSopenharmony_ci{ 15d4afb5ceSopenharmony_ci gpio_set_pull_mode(gpio, GPIO_PULLUP_ONLY); 16d4afb5ceSopenharmony_ci gpio_set_direction(gpio, GPIO_MODE_INPUT); 17d4afb5ceSopenharmony_ci gpio_set_level(gpio, 1); 18d4afb5ceSopenharmony_ci} 19d4afb5ceSopenharmony_cistatic int 20d4afb5ceSopenharmony_cilws_gpio_esp32_read(_lws_plat_gpio_t gpio) 21d4afb5ceSopenharmony_ci{ 22d4afb5ceSopenharmony_ci return gpio_get_level(gpio); 23d4afb5ceSopenharmony_ci} 24d4afb5ceSopenharmony_cistatic void 25d4afb5ceSopenharmony_cilws_gpio_esp32_set(_lws_plat_gpio_t gpio, int val) 26d4afb5ceSopenharmony_ci{ 27d4afb5ceSopenharmony_ci gpio_set_level(gpio, val); 28d4afb5ceSopenharmony_ci} 29d4afb5ceSopenharmony_ci 30d4afb5ceSopenharmony_ciconst lws_gpio_ops_t lws_gpio_esp32 = { 31d4afb5ceSopenharmony_ci .mode_write = lws_gpio_esp32_mode_write, 32d4afb5ceSopenharmony_ci .mode_read = lws_gpio_esp32_mode_read, 33d4afb5ceSopenharmony_ci .read = lws_gpio_esp32_read, 34d4afb5ceSopenharmony_ci .set = lws_gpio_esp32_set, 35d4afb5ceSopenharmony_ci}; 36d4afb5ceSopenharmony_ci 37