1 /* 2 * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 // The HAL layer for Touch sensor (common part) 8 9 #include "hal/touch_sensor_hal.h" 10 #include "hal/touch_sensor_types.h" 11 touch_hal_init(void)12void touch_hal_init(void) 13 { 14 touch_ll_stop_fsm(); 15 touch_ll_intr_disable(); 16 touch_ll_intr_clear(); 17 touch_ll_clear_channel_mask(TOUCH_PAD_BIT_MASK_ALL); 18 touch_ll_clear_group_mask(TOUCH_PAD_BIT_MASK_ALL, TOUCH_PAD_BIT_MASK_ALL); 19 touch_ll_set_trigger_mode(TOUCH_TRIGGER_MODE_DEFAULT); 20 touch_ll_set_trigger_source(TOUCH_TRIGGER_SOURCE_DEFAULT); 21 touch_ll_clear_trigger_status_mask(); 22 touch_ll_set_meas_time(TOUCH_PAD_MEASURE_CYCLE_DEFAULT); 23 touch_ll_set_sleep_time(TOUCH_PAD_SLEEP_CYCLE_DEFAULT); 24 touch_ll_set_fsm_mode(TOUCH_FSM_MODE_DEFAULT); 25 touch_ll_start_fsm(); 26 } 27 touch_hal_deinit(void)28void touch_hal_deinit(void) 29 { 30 touch_ll_stop_fsm(); 31 touch_ll_clear_trigger_status_mask(); 32 touch_ll_intr_disable(); 33 } 34 touch_hal_get_wakeup_status(touch_pad_t * pad_num)35void touch_hal_get_wakeup_status(touch_pad_t *pad_num) 36 { 37 uint32_t touch_mask = 0; 38 touch_ll_read_trigger_status_mask(&touch_mask); 39 if (touch_mask == 0) { 40 *pad_num = -1; 41 } else { 42 *pad_num = (touch_pad_t)(__builtin_ffs(touch_mask) - 1); 43 } 44 } 45