/** * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #ifdef __cplusplus extern "C" { #endif /** Group: configure_register */ /** Type of int_raw register * need_des */ typedef union { struct { /** scan_done_int_raw : R/WTC/SS; bitpos: [0]; default: 0; * need_des */ uint32_t scan_done_int_raw:1; /** done_int_raw : R/WTC/SS; bitpos: [1]; default: 0; * need_des */ uint32_t done_int_raw:1; /** active_int_raw : R/WTC/SS; bitpos: [2]; default: 0; * need_des */ uint32_t active_int_raw:1; /** inactive_int_raw : R/WTC/SS; bitpos: [3]; default: 0; * need_des */ uint32_t inactive_int_raw:1; /** timeout_int_raw : R/WTC/SS; bitpos: [4]; default: 0; * need_des */ uint32_t timeout_int_raw:1; /** approach_loop_done_int_raw : R/WTC/SS; bitpos: [5]; default: 0; * need_des */ uint32_t approach_loop_done_int_raw:1; uint32_t reserved_6:26; }; uint32_t val; } touch_int_raw_reg_t; /** Type of int_st register * need_des */ typedef union { struct { /** scan_done_int_st : RO; bitpos: [0]; default: 0; * need_des */ uint32_t scan_done_int_st:1; /** done_int_st : RO; bitpos: [1]; default: 0; * need_des */ uint32_t done_int_st:1; /** active_int_st : RO; bitpos: [2]; default: 0; * need_des */ uint32_t active_int_st:1; /** inactive_int_st : RO; bitpos: [3]; default: 0; * need_des */ uint32_t inactive_int_st:1; /** timeout_int_st : RO; bitpos: [4]; default: 0; * need_des */ uint32_t timeout_int_st:1; /** approach_loop_done_int_st : RO; bitpos: [5]; default: 0; * need_des */ uint32_t approach_loop_done_int_st:1; uint32_t reserved_6:26; }; uint32_t val; } touch_int_st_reg_t; /** Type of int_ena register * need_des */ typedef union { struct { /** scan_done_int_ena : R/W; bitpos: [0]; default: 0; * need_des */ uint32_t scan_done_int_ena:1; /** done_int_ena : R/W; bitpos: [1]; default: 0; * need_des */ uint32_t done_int_ena:1; /** active_int_ena : R/W; bitpos: [2]; default: 0; * need_des */ uint32_t active_int_ena:1; /** inactive_int_ena : R/W; bitpos: [3]; default: 0; * need_des */ uint32_t inactive_int_ena:1; /** timeout_int_ena : R/W; bitpos: [4]; default: 0; * need_des */ uint32_t timeout_int_ena:1; /** approach_loop_done_int_ena : R/W; bitpos: [5]; default: 0; * need_des */ uint32_t approach_loop_done_int_ena:1; uint32_t reserved_6:26; }; uint32_t val; } touch_int_ena_reg_t; /** Type of int_clr register * need_des */ typedef union { struct { /** scan_done_int_clr : WT; bitpos: [0]; default: 0; * need_des */ uint32_t scan_done_int_clr:1; /** done_int_clr : WT; bitpos: [1]; default: 0; * need_des */ uint32_t done_int_clr:1; /** active_int_clr : WT; bitpos: [2]; default: 0; * need_des */ uint32_t active_int_clr:1; /** inactive_int_clr : WT; bitpos: [3]; default: 0; * need_des */ uint32_t inactive_int_clr:1; /** timeout_int_clr : WT; bitpos: [4]; default: 0; * need_des */ uint32_t timeout_int_clr:1; /** approach_loop_done_int_clr : WT; bitpos: [5]; default: 0; * need_des */ uint32_t approach_loop_done_int_clr:1; uint32_t reserved_6:26; }; uint32_t val; } touch_int_clr_reg_t; /** Type of chn_status register * need_des */ typedef union { struct { /** pad_active : RO; bitpos: [14:0]; default: 0; * need_des */ uint32_t pad_active:15; /** meas_done : RO; bitpos: [15]; default: 0; * need_des */ uint32_t meas_done:1; /** scan_curr : RO; bitpos: [19:16]; default: 15; * need_des */ uint32_t scan_curr:4; uint32_t reserved_20:12; }; uint32_t val; } touch_chn_status_reg_t; /** Type of status_0 register * need_des */ typedef union { struct { /** pad0_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad0_data:16; /** pad0_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad0_debounce_cnt:3; /** pad0_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad0_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_0_reg_t; /** Type of status_1 register * need_des */ typedef union { struct { /** pad1_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad1_data:16; /** pad1_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad1_debounce_cnt:3; /** pad1_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad1_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_1_reg_t; /** Type of status_2 register * need_des */ typedef union { struct { /** pad2_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad2_data:16; /** pad2_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad2_debounce_cnt:3; /** pad2_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad2_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_2_reg_t; /** Type of status_3 register * need_des */ typedef union { struct { /** pad3_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad3_data:16; /** pad3_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad3_debounce_cnt:3; /** pad3_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad3_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_3_reg_t; /** Type of status_4 register * need_des */ typedef union { struct { /** pad4_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad4_data:16; /** pad4_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad4_debounce_cnt:3; /** pad4_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad4_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_4_reg_t; /** Type of status_5 register * need_des */ typedef union { struct { /** pad5_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad5_data:16; /** pad5_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad5_debounce_cnt:3; /** pad5_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad5_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_5_reg_t; /** Type of status_6 register * need_des */ typedef union { struct { /** pad6_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad6_data:16; /** pad6_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad6_debounce_cnt:3; /** pad6_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad6_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_6_reg_t; /** Type of status_7 register * need_des */ typedef union { struct { /** pad7_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad7_data:16; /** pad7_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad7_debounce_cnt:3; /** pad7_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad7_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_7_reg_t; /** Type of status_8 register * need_des */ typedef union { struct { /** pad8_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad8_data:16; /** pad8_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad8_debounce_cnt:3; /** pad8_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad8_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_8_reg_t; /** Type of status_9 register * need_des */ typedef union { struct { /** pad9_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad9_data:16; /** pad9_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad9_debounce_cnt:3; /** pad9_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad9_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_9_reg_t; /** Type of status_10 register * need_des */ typedef union { struct { /** pad10_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad10_data:16; /** pad10_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad10_debounce_cnt:3; /** pad10_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad10_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_10_reg_t; /** Type of status_11 register * need_des */ typedef union { struct { /** pad11_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad11_data:16; /** pad11_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad11_debounce_cnt:3; /** pad11_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad11_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_11_reg_t; /** Type of status_12 register * need_des */ typedef union { struct { /** pad12_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad12_data:16; /** pad12_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad12_debounce_cnt:3; /** pad12_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad12_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_12_reg_t; /** Type of status_13 register * need_des */ typedef union { struct { /** pad13_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad13_data:16; /** pad13_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad13_debounce_cnt:3; /** pad13_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad13_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_13_reg_t; /** Type of status_14 register * need_des */ typedef union { struct { /** pad14_data : RO; bitpos: [15:0]; default: 0; * need_des */ uint32_t pad14_data:16; /** pad14_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t pad14_debounce_cnt:3; /** pad14_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t pad14_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_14_reg_t; /** Type of status_15 register * need_des */ typedef union { struct { /** slp_data : RO; bitpos: [15:0]; default: 65535; * need_des */ uint32_t slp_data:16; /** slp_debounce_cnt : RO; bitpos: [18:16]; default: 0; * need_des */ uint32_t slp_debounce_cnt:3; /** slp_nn_cnt : RO; bitpos: [22:19]; default: 0; * need_des */ uint32_t slp_nn_cnt:4; uint32_t reserved_23:9; }; uint32_t val; } touch_status_15_reg_t; /** Type of status_16 register * need_des */ typedef union { struct { /** approach_pad2_cnt : RO; bitpos: [7:0]; default: 0; * need_des */ uint32_t approach_pad2_cnt:8; /** approach_pad1_cnt : RO; bitpos: [15:8]; default: 0; * need_des */ uint32_t approach_pad1_cnt:8; /** approach_pad0_cnt : RO; bitpos: [23:16]; default: 0; * need_des */ uint32_t approach_pad0_cnt:8; /** slp_approach_cnt : RO; bitpos: [31:24]; default: 0; * need_des */ uint32_t slp_approach_cnt:8; }; uint32_t val; } touch_status_16_reg_t; /** Type of status_17 register * need_des */ typedef union { struct { /** dcap_lpf : RO; bitpos: [6:0]; default: 0; * Reserved */ uint32_t dcap_lpf:7; /** dres_lpf : RO; bitpos: [8:7]; default: 0; * need_des */ uint32_t dres_lpf:2; /** drv_ls : RO; bitpos: [12:9]; default: 0; * need_des */ uint32_t drv_ls:4; /** drv_hs : RO; bitpos: [17:13]; default: 0; * need_des */ uint32_t drv_hs:5; /** dbias : RO; bitpos: [22:18]; default: 0; * need_des */ uint32_t dbias:5; /** freq_scan_cnt : RO; bitpos: [24:23]; default: 0; * need_des */ uint32_t freq_scan_cnt:2; uint32_t reserved_25:7; }; uint32_t val; } touch_status_17_reg_t; /** Type of chn_tmp_status register * need_des */ typedef union { struct { /** pad_inactive_status : RO; bitpos: [14:0]; default: 0; * need_des */ uint32_t pad_inactive_status:15; /** pad_active_status : RO; bitpos: [29:15]; default: 0; * need_des */ uint32_t pad_active_status:15; uint32_t reserved_30:2; }; uint32_t val; } touch_chn_tmp_status_reg_t; /** Group: Version */ /** Type of date register * need_des */ typedef union { struct { uint32_t reserved_0:31; /** clk_en : R/W; bitpos: [31]; default: 0; * need_des */ uint32_t clk_en:1; }; uint32_t val; } touch_date_reg_t; typedef struct { volatile touch_int_raw_reg_t int_raw; volatile touch_int_st_reg_t int_st; volatile touch_int_ena_reg_t int_ena; volatile touch_int_clr_reg_t int_clr; volatile touch_chn_status_reg_t chn_status; volatile touch_status_0_reg_t status_0; volatile touch_status_1_reg_t status_1; volatile touch_status_2_reg_t status_2; volatile touch_status_3_reg_t status_3; volatile touch_status_4_reg_t status_4; volatile touch_status_5_reg_t status_5; volatile touch_status_6_reg_t status_6; volatile touch_status_7_reg_t status_7; volatile touch_status_8_reg_t status_8; volatile touch_status_9_reg_t status_9; volatile touch_status_10_reg_t status_10; volatile touch_status_11_reg_t status_11; volatile touch_status_12_reg_t status_12; volatile touch_status_13_reg_t status_13; volatile touch_status_14_reg_t status_14; volatile touch_status_15_reg_t status_15; volatile touch_status_16_reg_t status_16; volatile touch_status_17_reg_t status_17; volatile touch_chn_tmp_status_reg_t chn_tmp_status; uint32_t reserved_060[40]; volatile touch_date_reg_t date; } touch_dev_t; extern touch_dev_t TOUCH_SENS; #ifndef __cplusplus _Static_assert(sizeof(touch_dev_t) == 0x104, "Invalid size of touch_dev_t structure"); #endif #ifdef __cplusplus } #endif