From 758553a786520b138307691e842e53b25606960b Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 8 Dec 2016 23:43:41 +0200 Subject: [PATCH] Add analogRead, touchRead, dacWrite and updated esp-idf --- cores/esp32/esp32-hal-adc.c | 183 + cores/esp32/esp32-hal-adc.h | 74 + cores/esp32/esp32-hal-dac.c | 54 + cores/esp32/esp32-hal-dac.h | 35 + cores/esp32/esp32-hal-gpio.c | 158 +- cores/esp32/esp32-hal-gpio.h | 28 +- cores/esp32/esp32-hal-touch.c | 172 + cores/esp32/esp32-hal-touch.h | 56 + cores/esp32/esp32-hal.h | 3 + platform.txt | 2 +- tools/esptool.py | 291 +- tools/sdk/bin/bootloader.bin | Bin 5296 -> 5328 bytes tools/sdk/include/bt/bt.h | 1 + tools/sdk/include/config/sdkconfig.h | 4 + tools/sdk/include/driver/driver/adc.h | 122 + tools/sdk/include/driver/driver/dac.h | 57 + tools/sdk/include/driver/driver/gpio.h | 26 - tools/sdk/include/driver/driver/pcnt.h | 6 +- tools/sdk/include/driver/driver/rtc_io.h | 167 + tools/sdk/include/driver/driver/touch_pad.h | 165 + tools/sdk/include/esp32/esp_coexist.h | 46 + tools/sdk/include/esp32/rom/uart.h | 13 +- tools/sdk/include/esp32/soc/rtc_io_reg.h | 3902 +++++++++---------- tools/sdk/include/esp32/soc/saradc_reg.h | 1047 ----- tools/sdk/include/esp32/soc/sens_reg.h | 1047 +++++ tools/sdk/include/esp32/soc/soc.h | 10 +- tools/sdk/ld/esp32.rom.ld | 19 + tools/sdk/lib/libapp_update.a | Bin 36440 -> 36440 bytes tools/sdk/lib/libbt.a | Bin 8422136 -> 8422136 bytes tools/sdk/lib/libbtdm_app.a | Bin 62124 -> 66304 bytes tools/sdk/lib/libcoexist.a | Bin 10618 -> 10618 bytes tools/sdk/lib/libcore.a | Bin 26118 -> 26118 bytes tools/sdk/lib/libdriver.a | Bin 561750 -> 646190 bytes tools/sdk/lib/libesp32.a | Bin 2885222 -> 2895002 bytes tools/sdk/lib/libethernet.a | Bin 75964 -> 75964 bytes tools/sdk/lib/libexpat.a | Bin 1251396 -> 1251396 bytes tools/sdk/lib/libfreertos.a | Bin 539112 -> 539212 bytes tools/sdk/lib/libjson.a | Bin 209228 -> 209228 bytes tools/sdk/lib/liblog.a | Bin 21186 -> 21186 bytes tools/sdk/lib/liblwip.a | Bin 1787550 -> 1787550 bytes tools/sdk/lib/libmbedtls.a | Bin 3497760 -> 3505354 bytes tools/sdk/lib/libnet80211.a | Bin 607760 -> 607820 bytes tools/sdk/lib/libnewlib.a | Bin 80124 -> 80124 bytes tools/sdk/lib/libnghttp.a | Bin 1536182 -> 1536182 bytes tools/sdk/lib/libnvs_flash.a | Bin 617970 -> 617970 bytes tools/sdk/lib/libopenssl.a | Bin 274784 -> 274980 bytes tools/sdk/lib/libpp.a | Bin 360568 -> 363224 bytes tools/sdk/lib/libspi_flash.a | Bin 93504 -> 93504 bytes tools/sdk/lib/libtcpip_adapter.a | Bin 74998 -> 75006 bytes tools/sdk/lib/libulp.a | Bin 0 -> 24528 bytes tools/sdk/lib/libvfs.a | Bin 67966 -> 67966 bytes tools/sdk/lib/libwpa.a | Bin 150188 -> 150188 bytes tools/sdk/lib/libwpa2.a | Bin 425340 -> 425340 bytes tools/sdk/lib/libwpa_supplicant.a | Bin 471324 -> 471324 bytes tools/sdk/lib/libwps.a | Bin 337210 -> 337210 bytes tools/sdk/lib/libxtensa-debug-module.a | Bin 11990 -> 11990 bytes 56 files changed, 4416 insertions(+), 3272 deletions(-) create mode 100644 cores/esp32/esp32-hal-adc.c create mode 100644 cores/esp32/esp32-hal-adc.h create mode 100644 cores/esp32/esp32-hal-dac.c create mode 100644 cores/esp32/esp32-hal-dac.h create mode 100644 cores/esp32/esp32-hal-touch.c create mode 100644 cores/esp32/esp32-hal-touch.h create mode 100644 tools/sdk/include/driver/driver/adc.h create mode 100644 tools/sdk/include/driver/driver/dac.h create mode 100644 tools/sdk/include/driver/driver/rtc_io.h create mode 100644 tools/sdk/include/driver/driver/touch_pad.h create mode 100644 tools/sdk/include/esp32/esp_coexist.h delete mode 100644 tools/sdk/include/esp32/soc/saradc_reg.h create mode 100644 tools/sdk/include/esp32/soc/sens_reg.h mode change 100644 => 100755 tools/sdk/lib/libbtdm_app.a create mode 100644 tools/sdk/lib/libulp.a diff --git a/cores/esp32/esp32-hal-adc.c b/cores/esp32/esp32-hal-adc.c new file mode 100644 index 00000000..e0f50bb8 --- /dev/null +++ b/cores/esp32/esp32-hal-adc.c @@ -0,0 +1,183 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "esp32-hal-adc.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "rom/ets_sys.h" +#include "esp_attr.h" +#include "esp_intr.h" +#include "soc/rtc_io_reg.h" +#include "soc/rtc_cntl_reg.h" +#include "soc/sens_reg.h" + +static uint8_t __analogAttenuation = 0;//0db +static uint8_t __analogWidth = 3;//12 bits +static uint8_t __analogCycles = 8; +static uint8_t __analogSamples = 0;//1 sample +static uint8_t __analogClockDiv = 1; + +void __analogSetWidth(uint8_t bits){ + if(bits < 9){ + bits = 9; + } else if(bits > 12){ + bits = 12; + } + __analogWidth = bits - 9; + SET_PERI_REG_BITS(SENS_SAR_START_FORCE_REG, SENS_SAR1_BIT_WIDTH, __analogWidth, SENS_SAR1_BIT_WIDTH_S); + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL_REG, SENS_SAR1_SAMPLE_BIT, __analogWidth, SENS_SAR1_SAMPLE_BIT_S); + + SET_PERI_REG_BITS(SENS_SAR_START_FORCE_REG, SENS_SAR2_BIT_WIDTH, __analogWidth, SENS_SAR2_BIT_WIDTH_S); + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL2_REG, SENS_SAR2_SAMPLE_BIT, __analogWidth, SENS_SAR2_SAMPLE_BIT_S); +} + +void __analogSetCycles(uint8_t cycles){ + __analogCycles = cycles; + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL_REG, SENS_SAR1_SAMPLE_CYCLE, __analogCycles, SENS_SAR1_SAMPLE_CYCLE_S); + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL2_REG, SENS_SAR2_SAMPLE_CYCLE, __analogCycles, SENS_SAR2_SAMPLE_CYCLE_S); +} + +void __analogSetSamples(uint8_t samples){ + if(!samples){ + return; + } + __analogSamples = samples - 1; + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL_REG, SENS_SAR1_SAMPLE_NUM, __analogSamples, SENS_SAR1_SAMPLE_NUM_S); + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL2_REG, SENS_SAR2_SAMPLE_NUM, __analogSamples, SENS_SAR2_SAMPLE_NUM_S); +} + +void __analogSetClockDiv(uint8_t clockDiv){ + if(!clockDiv){ + return; + } + __analogClockDiv = clockDiv; + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL_REG, SENS_SAR1_CLK_DIV, __analogClockDiv, SENS_SAR1_CLK_DIV_S); + SET_PERI_REG_BITS(SENS_SAR_READ_CTRL2_REG, SENS_SAR2_CLK_DIV, __analogClockDiv, SENS_SAR2_CLK_DIV_S); +} + +void __analogSetAttenuation(uint8_t attenuation){ + __analogAttenuation = attenuation & 3; + uint32_t att_data = 0; + int i = 8; + while(i--){ + att_data |= __analogAttenuation << (i * 2); + } + SET_PERI_REG_BITS(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_DATA_SAR, att_data, SENS_MEAS1_DATA_SAR_S); + SET_PERI_REG_BITS(SENS_SAR_MEAS_START2_REG, SENS_MEAS2_DATA_SAR, att_data, SENS_MEAS2_DATA_SAR_S); +} + +void IRAM_ATTR __analogInit(){ + static bool initialized = false; + if(initialized){ + return; + } + __analogSetAttenuation(__analogAttenuation); + __analogSetCycles(__analogCycles); + __analogSetSamples(__analogSamples + 1);//in samples + __analogSetClockDiv(__analogClockDiv); + __analogSetWidth(__analogWidth + 9);//in bits + + SET_PERI_REG_MASK(SENS_SAR_READ_CTRL_REG, SENS_SAR1_DATA_INV); + SET_PERI_REG_MASK(SENS_SAR_READ_CTRL2_REG, SENS_SAR2_DATA_INV); + + SET_PERI_REG_MASK(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_START_FORCE_M); //SAR ADC1 controller (in RTC) is started by SW + SET_PERI_REG_MASK(SENS_SAR_MEAS_START1_REG, SENS_SAR1_EN_PAD_FORCE_M); //SAR ADC1 pad enable bitmap is controlled by SW + SET_PERI_REG_MASK(SENS_SAR_MEAS_START2_REG, SENS_MEAS2_START_FORCE_M); //SAR ADC2 controller (in RTC) is started by SW + SET_PERI_REG_MASK(SENS_SAR_MEAS_START2_REG, SENS_SAR2_EN_PAD_FORCE_M); //SAR ADC2 pad enable bitmap is controlled by SW + + CLEAR_PERI_REG_MASK(SENS_SAR_MEAS_WAIT2_REG, SENS_FORCE_XPD_SAR_M); //force XPD_SAR=0, use XPD_FSM + SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT2_REG, SENS_FORCE_XPD_AMP, 0x2, SENS_FORCE_XPD_AMP_S); //force XPD_AMP=0 + + CLEAR_PERI_REG_MASK(SENS_SAR_MEAS_CTRL_REG, 0xfff << SENS_AMP_RST_FB_FSM_S); //clear FSM + SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT1_REG, SENS_SAR_AMP_WAIT1, 0x1, SENS_SAR_AMP_WAIT1_S); + SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT1_REG, SENS_SAR_AMP_WAIT2, 0x1, SENS_SAR_AMP_WAIT2_S); + SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT2_REG, SENS_SAR_AMP_WAIT3, 0x1, SENS_SAR_AMP_WAIT3_S); + while (GET_PERI_REG_BITS2(SENS_SAR_SLAVE_ADDR1_REG, 0x7, SENS_MEAS_STATUS_S) != 0); //wait det_fsm== + + initialized = true; +} + +uint16_t IRAM_ATTR __analogRead(uint8_t pin) +{ + int8_t channel = digitalPinToAnalogChannel(pin); + if(channel < 0){ + return 0;//not adc pin + } + int8_t pad = digitalPinToTouchChannel(pin); + + if(pad >= 0){ + uint32_t touch = READ_PERI_REG(SENS_SAR_TOUCH_ENABLE_REG); + if(touch & (1 << pad)){ + touch &= ~((1 << (pad + SENS_TOUCH_PAD_OUTEN2_S)) + | (1 << (pad + SENS_TOUCH_PAD_OUTEN1_S)) + | (1 << (pad + SENS_TOUCH_PAD_WORKEN_S))); + WRITE_PERI_REG(SENS_SAR_TOUCH_ENABLE_REG, touch); + } + } else if(pin == 25){ + CLEAR_PERI_REG_MASK(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_XPD_DAC | RTC_IO_PDAC1_DAC_XPD_FORCE);//stop dac1 + } else if(pin == 26){ + CLEAR_PERI_REG_MASK(RTC_IO_PAD_DAC2_REG, RTC_IO_PDAC2_XPD_DAC | RTC_IO_PDAC2_DAC_XPD_FORCE);//stop dac2 + } + + pinMode(pin, ANALOG); + + __analogInit(); + + if(channel > 7){ + channel -= 10; + + SET_PERI_REG_BITS(SENS_SAR_MEAS_START2_REG, SENS_SAR2_EN_PAD, (1 << channel), SENS_SAR2_EN_PAD_S); + CLEAR_PERI_REG_MASK(SENS_SAR_MEAS_START2_REG, SENS_MEAS2_START_SAR_M); + SET_PERI_REG_MASK(SENS_SAR_MEAS_START2_REG, SENS_MEAS2_START_SAR_M); + while (GET_PERI_REG_MASK(SENS_SAR_MEAS_START2_REG, SENS_MEAS2_DONE_SAR) == 0) {}; //read done + return GET_PERI_REG_BITS2(SENS_SAR_MEAS_START2_REG, SENS_MEAS2_DATA_SAR, SENS_MEAS2_DATA_SAR_S); + } + + SET_PERI_REG_BITS(SENS_SAR_MEAS_START1_REG, SENS_SAR1_EN_PAD, (1 << channel), SENS_SAR1_EN_PAD_S); + CLEAR_PERI_REG_MASK(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_START_SAR_M); + SET_PERI_REG_MASK(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_START_SAR_M); + while (GET_PERI_REG_MASK(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_DONE_SAR) == 0) {}; //read done + return GET_PERI_REG_BITS2(SENS_SAR_MEAS_START1_REG, SENS_MEAS1_DATA_SAR, SENS_MEAS1_DATA_SAR_S); +} +int __hallRead() //hall sensor without LNA +{ + int Sens_Vp0; + int Sens_Vn0; + int Sens_Vp1; + int Sens_Vn1; + + pinMode(36, ANALOG); + pinMode(39, ANALOG); + SET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL1_REG, SENS_XPD_HALL_FORCE_M); // hall sens force enable + SET_PERI_REG_MASK(RTC_IO_HALL_SENS_REG, RTC_IO_XPD_HALL); // xpd hall + SET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL1_REG, SENS_HALL_PHASE_FORCE_M); // phase force + CLEAR_PERI_REG_MASK(RTC_IO_HALL_SENS_REG, RTC_IO_HALL_PHASE); // hall phase + Sens_Vp0 = __analogRead(36); + Sens_Vn0 = __analogRead(39); + SET_PERI_REG_MASK(RTC_IO_HALL_SENS_REG, RTC_IO_HALL_PHASE); + Sens_Vp1 = __analogRead(36); + Sens_Vn1 = __analogRead(39); + SET_PERI_REG_BITS(SENS_SAR_MEAS_WAIT2_REG, SENS_FORCE_XPD_SAR, 0, SENS_FORCE_XPD_SAR_S); + CLEAR_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL1_REG, SENS_XPD_HALL_FORCE); + CLEAR_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL1_REG, SENS_HALL_PHASE_FORCE); + return (Sens_Vp1 - Sens_Vp0) - (Sens_Vn1 - Sens_Vn0); +} + +extern uint16_t analogRead(uint8_t pin) __attribute__ ((weak, alias("__analogRead"))); +extern void analogSetWidth(uint8_t bits) __attribute__ ((weak, alias("__analogSetWidth"))); +extern void analogSetCycles(uint8_t cycles) __attribute__ ((weak, alias("__analogSetCycles"))); +extern void analogSetSamples(uint8_t samples) __attribute__ ((weak, alias("__analogSetSamples"))); +extern void analogSetClockDiv(uint8_t clockDiv) __attribute__ ((weak, alias("__analogSetClockDiv"))); +//extern void analogSetAttenuation(uint8_t attenuation) __attribute__ ((weak, alias("__analogSetAttenuation"))); +extern int hallRead() __attribute__ ((weak, alias("__hallRead"))); diff --git a/cores/esp32/esp32-hal-adc.h b/cores/esp32/esp32-hal-adc.h new file mode 100644 index 00000000..d29ecf6d --- /dev/null +++ b/cores/esp32/esp32-hal-adc.h @@ -0,0 +1,74 @@ +/* + Arduino.h - Main include file for the Arduino SDK + Copyright (c) 2005-2013 Arduino Team. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef MAIN_ESP32_HAL_ADC_H_ +#define MAIN_ESP32_HAL_ADC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "esp32-hal.h" + +/* + * Get ADC value for pin + * */ +uint16_t analogRead(uint8_t pin); + +/* + * Sets the sample bits (9 - 12) + * */ +void analogSetWidth(uint8_t bits); + +/* + * Set number of cycles per sample + * Default is 8 and seems to do well + * Range is 1 - 255 + * */ +void analogSetCycles(uint8_t cycles); + +/* + * Set number of samples in the range. + * Default is 1 + * Range is 1 - 255 + * This setting splits the range into + * "samples" pieces, which could look + * like the sensitivity has been multiplied + * that many times + * */ +void analogSetSamples(uint8_t samples); + +/* + * Set the divider for the ADC clock. + * Default is 1 + * Range is 1 - 255 + * */ +void analogSetClockDiv(uint8_t clockDiv); + +/* + * Get value for HALL sensor (without LNA) + * connected to pins 36(SVP) and 39(SVN) + * */ +int hallRead(); + +#ifdef __cplusplus +} +#endif + +#endif /* MAIN_ESP32_HAL_ADC_H_ */ diff --git a/cores/esp32/esp32-hal-dac.c b/cores/esp32/esp32-hal-dac.c new file mode 100644 index 00000000..e407c221 --- /dev/null +++ b/cores/esp32/esp32-hal-dac.c @@ -0,0 +1,54 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "esp32-hal-dac.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "rom/ets_sys.h" +#include "esp_attr.h" +#include "esp_intr.h" +#include "soc/rtc_io_reg.h" +#include "soc/rtc_cntl_reg.h" +#include "soc/sens_reg.h" + +void IRAM_ATTR __dacWrite(uint8_t pin, uint8_t value) +{ + if(pin < 25 || pin > 26){ + return;//not dac pin + } + pinMode(pin, ANALOG); + uint8_t channel = pin - 25; + + + //Disable Tone + CLEAR_PERI_REG_MASK(SENS_SAR_DAC_CTRL1_REG, SENS_SW_TONE_EN); + + if (channel) { + //Disable Channel Tone + CLEAR_PERI_REG_MASK(SENS_SAR_DAC_CTRL2_REG, SENS_DAC_CW_EN2_M); + //Set the Dac value + SET_PERI_REG_BITS(RTC_IO_PAD_DAC2_REG, RTC_IO_PDAC2_DAC, value, RTC_IO_PDAC2_DAC_S); //dac_output + //Channel output enable + SET_PERI_REG_MASK(RTC_IO_PAD_DAC2_REG, RTC_IO_PDAC2_XPD_DAC | RTC_IO_PDAC2_DAC_XPD_FORCE); + } else { + //Disable Channel Tone + CLEAR_PERI_REG_MASK(SENS_SAR_DAC_CTRL2_REG, SENS_DAC_CW_EN1_M); + //Set the Dac value + SET_PERI_REG_BITS(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_DAC, value, RTC_IO_PDAC1_DAC_S); //dac_output + //Channel output enable + SET_PERI_REG_MASK(RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_XPD_DAC | RTC_IO_PDAC1_DAC_XPD_FORCE); + } +} + +extern void dacWrite(uint8_t pin, uint8_t value) __attribute__ ((weak, alias("__dacWrite"))); diff --git a/cores/esp32/esp32-hal-dac.h b/cores/esp32/esp32-hal-dac.h new file mode 100644 index 00000000..fdb21628 --- /dev/null +++ b/cores/esp32/esp32-hal-dac.h @@ -0,0 +1,35 @@ +/* + Arduino.h - Main include file for the Arduino SDK + Copyright (c) 2005-2013 Arduino Team. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef MAIN_ESP32_HAL_DAC_H_ +#define MAIN_ESP32_HAL_DAC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "esp32-hal.h" + +void dacWrite(uint8_t pin, uint8_t value); + +#ifdef __cplusplus +} +#endif + +#endif /* MAIN_ESP32_HAL_DAC_H_ */ diff --git a/cores/esp32/esp32-hal-gpio.c b/cores/esp32/esp32-hal-gpio.c index 19f0417a..74a45c2d 100644 --- a/cores/esp32/esp32-hal-gpio.c +++ b/cores/esp32/esp32-hal-gpio.c @@ -26,69 +26,97 @@ #define ETS_GPIO_INUM 4 -typedef struct { - uint32_t mux; /*!< Register to modify various pin settings */ - uint32_t pud; /*!< Register to modify to enable or disable pullups or pulldowns */ - uint32_t pu; /*!< Bit to set or clear in the above register to enable or disable the pullup, respectively */ - uint32_t pd; /*!< Bit to set or clear in the above register to enable or disable the pulldown, respectively */ -} esp32_gpioMux_t; - const DRAM_ATTR esp32_gpioMux_t esp32_gpioMux[GPIO_PIN_COUNT]={ - {DR_REG_IO_MUX_BASE + 0x44, RTC_IO_TOUCH_PAD1_REG, RTC_IO_TOUCH_PAD1_RUE_M, RTC_IO_TOUCH_PAD1_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x88, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x40, RTC_IO_TOUCH_PAD2_REG, RTC_IO_TOUCH_PAD2_RUE_M, RTC_IO_TOUCH_PAD2_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x84, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x48, RTC_IO_TOUCH_PAD0_REG, RTC_IO_TOUCH_PAD0_RUE_M, RTC_IO_TOUCH_PAD0_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x6c, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x60, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x64, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x68, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x54, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x58, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x5c, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x34, RTC_IO_TOUCH_PAD5_REG, RTC_IO_TOUCH_PAD5_RUE_M, RTC_IO_TOUCH_PAD5_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x38, RTC_IO_TOUCH_PAD4_REG, RTC_IO_TOUCH_PAD4_RUE_M, RTC_IO_TOUCH_PAD4_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x30, RTC_IO_TOUCH_PAD6_REG, RTC_IO_TOUCH_PAD6_RUE_M, RTC_IO_TOUCH_PAD6_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x3c, RTC_IO_TOUCH_PAD3_REG, RTC_IO_TOUCH_PAD3_RUE_M, RTC_IO_TOUCH_PAD3_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x4c, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x50, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x70, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x74, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x78, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x7c, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x80, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x8c, 0, 0, 0}, - {0, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x24, RTC_IO_PAD_DAC1_REG, RTC_IO_PDAC1_RUE_M, RTC_IO_PDAC1_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x28, RTC_IO_PAD_DAC2_REG, RTC_IO_PDAC2_RUE_M, RTC_IO_PDAC2_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x2c, RTC_IO_TOUCH_PAD7_REG, RTC_IO_TOUCH_PAD7_RUE_M, RTC_IO_TOUCH_PAD7_RDE_M}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {0, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x1c, RTC_IO_XTAL_32K_PAD_REG, RTC_IO_X32P_RUE_M, RTC_IO_X32P_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x20, RTC_IO_XTAL_32K_PAD_REG, RTC_IO_X32N_RUE_M, RTC_IO_X32N_RDE_M}, - {DR_REG_IO_MUX_BASE + 0x14, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x18, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x04, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x08, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x0c, 0, 0, 0}, - {DR_REG_IO_MUX_BASE + 0x10, 0, 0, 0} + {0x44, 11, 11, 1}, + {0x88, -1, -1, -1}, + {0x40, 12, 12, 2}, + {0x84, -1, -1, -1}, + {0x48, 10, 10, 0}, + {0x6c, -1, -1, -1}, + {0x60, -1, -1, -1}, + {0x64, -1, -1, -1}, + {0x68, -1, -1, -1}, + {0x54, -1, -1, -1}, + {0x58, -1, -1, -1}, + {0x5c, -1, -1, -1}, + {0x34, 15, 15, 5}, + {0x38, 14, 14, 4}, + {0x30, 16, 16, 6}, + {0x3c, 13, 13, 3}, + {0x4c, -1, -1, -1}, + {0x50, -1, -1, -1}, + {0x70, -1, -1, -1}, + {0x74, -1, -1, -1}, + {0x78, -1, -1, -1}, + {0x7c, -1, -1, -1}, + {0x80, -1, -1, -1}, + {0x8c, -1, -1, -1}, + {0, -1, -1, -1}, + {0x24, 6, 18, -1}, //DAC1 + {0x28, 7, 19, -1}, //DAC2 + {0x2c, 17, 17, 7}, + {0, -1, -1, -1}, + {0, -1, -1, -1}, + {0, -1, -1, -1}, + {0, -1, -1, -1}, + {0x1c, 9, 4, 9}, + {0x20, 8, 5, 8}, + {0x14, 4, 6, -1}, + {0x18, 5, 7, -1}, + {0x04, 0, 0, -1}, + {0x08, 1, -1, -1}, + {0x0c, 2, -1, -1}, + {0x10, 3, 3, -1} }; typedef void (*voidFuncPtr)(void); static voidFuncPtr __pinInterruptHandlers[GPIO_PIN_COUNT] = {0,}; +#include "driver/rtc_io.h" + extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode) { - if(pin > 39 || !esp32_gpioMux[pin].mux) { + if(!digitalPinIsValid(pin)) { return; } - uint32_t pinFunction = 0, pinControl = 0; - const esp32_gpioMux_t * mux = &esp32_gpioMux[pin]; + uint32_t rtc_reg = rtc_gpio_desc[pin].reg; + if(mode == ANALOG) { + if(!rtc_reg) { + return;//not rtc pin + } + //lock rtc + uint32_t reg_val = ESP_REG(rtc_reg); + if(reg_val & rtc_gpio_desc[pin].mux){ + return;//already in adc mode + } + reg_val &= ~( + (RTC_IO_TOUCH_PAD1_FUN_SEL_V << rtc_gpio_desc[pin].func) + |rtc_gpio_desc[pin].ie + |rtc_gpio_desc[pin].pullup + |rtc_gpio_desc[pin].pulldown); + ESP_REG(RTC_GPIO_ENABLE_W1TC_REG) = (1 << (rtc_gpio_desc[pin].rtc_num + RTC_GPIO_ENABLE_W1TC_S)); + ESP_REG(rtc_reg) = reg_val | rtc_gpio_desc[pin].mux; + //unlock rtc + ESP_REG(DR_REG_IO_MUX_BASE + esp32_gpioMux[pin].reg) = ((uint32_t)2 << MCU_SEL_S) | ((uint32_t)2 << FUN_DRV_S) | FUN_IE; + return; + } else if(rtc_reg) { + //lock rtc + ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_gpio_desc[pin].mux); + if(mode & PULLUP) { + ESP_REG(rtc_reg) = (ESP_REG(rtc_reg) | rtc_gpio_desc[pin].pullup) & ~(rtc_gpio_desc[pin].pulldown); + } else if(mode & PULLDOWN) { + ESP_REG(rtc_reg) = (ESP_REG(rtc_reg) | rtc_gpio_desc[pin].pulldown) & ~(rtc_gpio_desc[pin].pullup); + } else { + ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown); + } + //unlock rtc + } + uint32_t pinFunction = 0, pinControl = 0; + + //lock gpio if(mode & INPUT) { if(pin < 32) { GPIO.enable_w1tc = ((uint32_t)1 << pin); @@ -102,7 +130,10 @@ extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode) pinFunction |= FUN_PD; } } else if(mode & OUTPUT) { - if(pin < 32) { + if(pin > 33){ + //unlock gpio + return;//pins above 33 can be only inputs + } else if(pin < 32) { GPIO.enable_w1ts = ((uint32_t)1 << pin); } else { GPIO.enable1_w1ts.val = ((uint32_t)1 << (pin - 32)); @@ -120,25 +151,14 @@ extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode) pinFunction |= ((uint32_t)(mode >> 5) << MCU_SEL_S); } - ESP_REG(mux->mux) = pinFunction; - - if(mux->pud){ - if((mode & INPUT) && (mode & (PULLUP|PULLDOWN))) { - if(mode & PULLUP) { - ESP_REG(mux->pud) = (ESP_REG(mux->pud) | mux->pu) & ~(mux->pd); - } else { - ESP_REG(mux->pud) = (ESP_REG(mux->pud) | mux->pd) & ~(mux->pu); - } - } else { - ESP_REG(mux->pud) = ESP_REG(mux->pud) & ~(mux->pu | mux->pd); - } - } + ESP_REG(DR_REG_IO_MUX_BASE + esp32_gpioMux[pin].reg) = pinFunction; if(mode & OPEN_DRAIN) { pinControl = (1 << GPIO_PIN0_PAD_DRIVER_S); } GPIO.pin[pin].val = pinControl; + //unlock gpio } extern void IRAM_ATTR __digitalWrite(uint8_t pin, uint8_t val) @@ -146,13 +166,13 @@ extern void IRAM_ATTR __digitalWrite(uint8_t pin, uint8_t val) if(val) { if(pin < 32) { GPIO.out_w1ts = ((uint32_t)1 << pin); - } else if(pin < 35) { + } else if(pin < 34) { GPIO.out1_w1ts.val = ((uint32_t)1 << (pin - 32)); } } else { if(pin < 32) { GPIO.out_w1tc = ((uint32_t)1 << pin); - } else if(pin < 35) { + } else if(pin < 34) { GPIO.out1_w1tc.val = ((uint32_t)1 << (pin - 32)); } } @@ -215,6 +235,7 @@ extern void __attachInterrupt(uint8_t pin, voidFuncPtr userFunc, int intr_type) ESP_INTR_ENABLE(ETS_GPIO_INUM); } __pinInterruptHandlers[pin] = userFunc; + //lock gpio ESP_INTR_DISABLE(ETS_GPIO_INUM); if(core_id) { //APP_CPU GPIO.pin[pin].int_ena = 1; @@ -223,15 +244,18 @@ extern void __attachInterrupt(uint8_t pin, voidFuncPtr userFunc, int intr_type) } GPIO.pin[pin].int_type = intr_type; ESP_INTR_ENABLE(ETS_GPIO_INUM); + //unlock gpio } extern void __detachInterrupt(uint8_t pin) { - __pinInterruptHandlers[pin] = NULL; + //lock gpio ESP_INTR_DISABLE(ETS_GPIO_INUM); + __pinInterruptHandlers[pin] = NULL; GPIO.pin[pin].int_ena = 0; GPIO.pin[pin].int_type = 0; ESP_INTR_ENABLE(ETS_GPIO_INUM); + //unlock gpio } diff --git a/cores/esp32/esp32-hal-gpio.h b/cores/esp32/esp32-hal-gpio.h index 09fc8f8b..06e3b2b8 100644 --- a/cores/esp32/esp32-hal-gpio.h +++ b/cores/esp32/esp32-hal-gpio.h @@ -39,11 +39,13 @@ extern "C" { #define OPEN_DRAIN 0x10 #define OUTPUT_OPEN_DRAIN 0x12 #define SPECIAL 0xF0 -#define FUNCTION_0 0x00 -#define FUNCTION_1 0x20 -#define FUNCTION_2 0x40 -#define FUNCTION_3 0x70 -#define FUNCTION_4 0x80 +#define FUNCTION_1 0x00 +#define FUNCTION_2 0x20 +#define FUNCTION_3 0x40 +#define FUNCTION_4 0x60 +#define FUNCTION_5 0x80 +#define FUNCTION_6 0xA0 +#define ANALOG 0xC0 //Interrupt Modes #define DISABLED 0x00 @@ -55,6 +57,22 @@ extern "C" { #define ONLOW_WE 0x0C #define ONHIGH_WE 0x0D +typedef struct { + uint8_t reg; /*!< GPIO register offset from DR_REG_IO_MUX_BASE */ + int8_t rtc; /*!< RTC GPIO number (-1 if not RTC GPIO pin) */ + int8_t adc; /*!< ADC Channel number (-1 if not ADC pin) */ + int8_t touch; /*!< Touch Channel number (-1 if not Touch pin) */ +} esp32_gpioMux_t; + +extern const esp32_gpioMux_t esp32_gpioMux[40]; + +#define digitalPinIsValid(pin) ((pin) < 40 && esp32_gpioMux[(pin)].reg) +#define digitalPinCanOutput(pin) ((pin) < 34 && esp32_gpioMux[(pin)].reg) +#define digitalPinToRtcPin(pin) (((pin) < 40)?esp32_gpioMux[(pin)].rtc:-1) +#define digitalPinToAnalogChannel(pin) (((pin) < 40)?esp32_gpioMux[(pin)].adc:-1) +#define digitalPinToTouchChannel(pin) (((pin) < 40)?esp32_gpioMux[(pin)].touch:-1) +#define digitalPinToDacChannel(pin) (((pin) == 25)?0:((pin) == 26)?1:-1) + void pinMode(uint8_t pin, uint8_t mode); void digitalWrite(uint8_t pin, uint8_t val); int digitalRead(uint8_t pin); diff --git a/cores/esp32/esp32-hal-touch.c b/cores/esp32/esp32-hal-touch.c new file mode 100644 index 00000000..cb4d1d40 --- /dev/null +++ b/cores/esp32/esp32-hal-touch.c @@ -0,0 +1,172 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "esp32-hal-touch.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "rom/ets_sys.h" +#include "esp_attr.h" +#include "esp_intr.h" +#include "soc/rtc_io_reg.h" +#include "soc/rtc_cntl_reg.h" +#include "soc/sens_reg.h" + +#define RTC_TOUCH_INUM 5 + +static uint16_t __touchSleepCycles = 0x1000; +static uint16_t __touchMeasureCycles = 0x1000; + +typedef void (*voidFuncPtr)(void); +static voidFuncPtr __touchInterruptHandlers[10] = {0,}; + +void IRAM_ATTR __touchISR(void * arg) +{ + uint32_t pad_intr = READ_PERI_REG(SENS_SAR_TOUCH_CTRL2_REG) & 0x3ff; + uint32_t rtc_intr = READ_PERI_REG(RTC_CNTL_INT_ST_REG); + uint8_t i = 0; + //clear interrupt + WRITE_PERI_REG(RTC_CNTL_INT_CLR_REG, rtc_intr); + SET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_MEAS_EN_CLR); + + if (rtc_intr & RTC_CNTL_TOUCH_INT_ST) { + for (i = 0; i < 10; ++i) { + if ((pad_intr >> i) & 0x01) { + if(__touchInterruptHandlers[i]){ + __touchInterruptHandlers[i](); + } + } + } + } +} + +void __touchSetCycles(uint16_t measure, uint16_t sleep) +{ + __touchSleepCycles = sleep; + __touchMeasureCycles = measure; + //Touch pad SleepCycle Time + SET_PERI_REG_BITS(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_SLEEP_CYCLES, __touchSleepCycles, SENS_TOUCH_SLEEP_CYCLES_S); + //Touch Pad Measure Time + SET_PERI_REG_BITS(SENS_SAR_TOUCH_CTRL1_REG, SENS_TOUCH_MEAS_DELAY, __touchMeasureCycles, SENS_TOUCH_MEAS_DELAY_S); +} + +void __touchInit() +{ + static bool initialized = false; + if(initialized){ + return; + } + SET_PERI_REG_BITS(RTC_IO_TOUCH_CFG_REG, RTC_IO_TOUCH_XPD_BIAS, 1, RTC_IO_TOUCH_XPD_BIAS_S); + SET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_MEAS_EN_CLR); + //clear touch enable + WRITE_PERI_REG(SENS_SAR_TOUCH_ENABLE_REG, 0x0); + SET_PERI_REG_MASK(RTC_CNTL_STATE0_REG, RTC_CNTL_TOUCH_SLP_TIMER_EN); + + __touchSetCycles(__touchMeasureCycles, __touchSleepCycles); + + ESP_INTR_DISABLE(RTC_TOUCH_INUM); + intr_matrix_set(xPortGetCoreID(), ETS_RTC_CORE_INTR_SOURCE, RTC_TOUCH_INUM); + xt_set_interrupt_handler(RTC_TOUCH_INUM, &__touchISR, NULL); + ESP_INTR_ENABLE(RTC_TOUCH_INUM); + initialized = true; +} + +uint16_t __touchRead(uint8_t pin) +{ + int8_t pad = digitalPinToTouchChannel(pin); + if(pad < 0){ + return 0; + } + + pinMode(pin, ANALOG); + + __touchInit(); + + uint32_t v0 = READ_PERI_REG(SENS_SAR_TOUCH_ENABLE_REG); + //Disable Intr & enable touch pad + WRITE_PERI_REG(SENS_SAR_TOUCH_ENABLE_REG, + (v0 & ~((1 << (pad + SENS_TOUCH_PAD_OUTEN2_S)) | (1 << (pad + SENS_TOUCH_PAD_OUTEN1_S)))) + | (1 << (pad + SENS_TOUCH_PAD_WORKEN_S))); + + SET_PERI_REG_MASK(SENS_SAR_TOUCH_ENABLE_REG, (1 << (pad + SENS_TOUCH_PAD_WORKEN_S))); + + uint32_t rtc_tio_reg = RTC_IO_TOUCH_PAD0_REG + pad * 4; + WRITE_PERI_REG(rtc_tio_reg, (READ_PERI_REG(rtc_tio_reg) + & ~(RTC_IO_TOUCH_PAD0_DAC_M)) + | (7 << RTC_IO_TOUCH_PAD0_DAC_S)//Touch Set Slope + | RTC_IO_TOUCH_PAD0_TIE_OPT_M //Enable Tie,Init Level + | RTC_IO_TOUCH_PAD0_START_M //Enable Touch Pad IO + | RTC_IO_TOUCH_PAD0_XPD_M); //Enable Touch Pad Power on + + //force oneTime test start + SET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_START_EN_M|SENS_TOUCH_START_FORCE_M); + + SET_PERI_REG_BITS(SENS_SAR_TOUCH_CTRL1_REG, SENS_TOUCH_XPD_WAIT, 10, SENS_TOUCH_XPD_WAIT_S); + + while (GET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_MEAS_DONE) == 0) {}; + + uint16_t touch_value = READ_PERI_REG(SENS_SAR_TOUCH_OUT1_REG + (pad / 2) * 4) >> ((pad & 1) ? SENS_TOUCH_MEAS_OUT1_S : SENS_TOUCH_MEAS_OUT0_S); + + //clear touch force ,select the Touch mode is Timer + CLEAR_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_START_EN_M|SENS_TOUCH_START_FORCE_M); + + //restore previous value + WRITE_PERI_REG(SENS_SAR_TOUCH_ENABLE_REG, v0); + return touch_value; +} + +void __touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), uint16_t threshold) +{ + int8_t pad = digitalPinToTouchChannel(pin); + if(pad < 0){ + return; + } + + pinMode(pin, ANALOG); + + __touchInit(); + + __touchInterruptHandlers[pad] = userFunc; + + //clear touch force ,select the Touch mode is Timer + CLEAR_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL2_REG, SENS_TOUCH_START_EN_M|SENS_TOUCH_START_FORCE_M); + + //interrupt when touch value < threshold + CLEAR_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL1_REG, SENS_TOUCH_OUT_SEL); + //Intr will give ,when SET0 < threshold + SET_PERI_REG_MASK(SENS_SAR_TOUCH_CTRL1_REG, SENS_TOUCH_OUT_1EN); + //Enable Rtc Touch Module Intr,the Interrupt need Rtc out Enable + SET_PERI_REG_MASK(RTC_CNTL_INT_ENA_REG, RTC_CNTL_TOUCH_INT_ENA); + + //set threshold + uint8_t shift = (pad & 1) ? SENS_TOUCH_OUT_TH1_S : SENS_TOUCH_OUT_TH0_S; + SET_PERI_REG_BITS((SENS_SAR_TOUCH_THRES1_REG + (pad / 2) * 4), SENS_TOUCH_OUT_TH0, threshold, shift); + + uint32_t rtc_tio_reg = RTC_IO_TOUCH_PAD0_REG + pad * 4; + WRITE_PERI_REG(rtc_tio_reg, (READ_PERI_REG(rtc_tio_reg) + & ~(RTC_IO_TOUCH_PAD0_DAC_M)) + | (7 << RTC_IO_TOUCH_PAD0_DAC_S)//Touch Set Slope + | RTC_IO_TOUCH_PAD0_TIE_OPT_M //Enable Tie,Init Level + | RTC_IO_TOUCH_PAD0_START_M //Enable Touch Pad IO + | RTC_IO_TOUCH_PAD0_XPD_M); //Enable Touch Pad Power on + + //Enable Digital rtc control :work mode and out mode + SET_PERI_REG_MASK(SENS_SAR_TOUCH_ENABLE_REG, + (1 << (pad + SENS_TOUCH_PAD_WORKEN_S)) | \ + (1 << (pad + SENS_TOUCH_PAD_OUTEN2_S)) | \ + (1 << (pad + SENS_TOUCH_PAD_OUTEN1_S))); +} + +extern uint16_t touchRead(uint8_t pin) __attribute__ ((weak, alias("__touchRead"))); +extern void touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), uint16_t threshold) __attribute__ ((weak, alias("__touchAttachInterrupt"))); +extern void touchSetCycles(uint16_t measure, uint16_t sleep) __attribute__ ((weak, alias("__touchSetCycles"))); diff --git a/cores/esp32/esp32-hal-touch.h b/cores/esp32/esp32-hal-touch.h new file mode 100644 index 00000000..6f3b0fd0 --- /dev/null +++ b/cores/esp32/esp32-hal-touch.h @@ -0,0 +1,56 @@ +/* + Arduino.h - Main include file for the Arduino SDK + Copyright (c) 2005-2013 Arduino Team. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef MAIN_ESP32_HAL_TOUCH_H_ +#define MAIN_ESP32_HAL_TOUCH_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "esp32-hal.h" + +/* + * Set cycles that measurement operation takes + * The result from touchRead, threshold and detection + * accuracy depend on these values. Defaults are + * 0x1000 for measure and 0x1000 for sleep. + * With default values touchRead takes 0.5ms + * */ +void touchSetCycles(uint16_t measure, uint16_t sleep); + +/* + * Read touch pad (values close to 0 mean touch detected) + * You can use this method to chose a good threshold value + * to use as value for touchAttachInterrupt + * */ +uint16_t touchRead(uint8_t pin); + +/* + * Set function to be called if touch pad value falls + * below the given threshold. Use touchRead to determine + * a proper threshold between touched and untouched state + * */ +void touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), uint16_t threshold); + +#ifdef __cplusplus +} +#endif + +#endif /* MAIN_ESP32_HAL_TOUCH_H_ */ diff --git a/cores/esp32/esp32-hal.h b/cores/esp32/esp32-hal.h index 98b65b28..99153cea 100644 --- a/cores/esp32/esp32-hal.h +++ b/cores/esp32/esp32-hal.h @@ -50,6 +50,9 @@ void vPortYield( void ); #include "esp32-hal-matrix.h" #include "esp32-hal-uart.h" #include "esp32-hal-gpio.h" +#include "esp32-hal-touch.h" +#include "esp32-hal-dac.h" +#include "esp32-hal-adc.h" #include "esp32-hal-spi.h" #include "esp32-hal-i2c.h" #include "esp32-hal-ledc.h" diff --git a/platform.txt b/platform.txt index 8468f00f..af6a9d2e 100644 --- a/platform.txt +++ b/platform.txt @@ -26,7 +26,7 @@ compiler.S.flags=-c -g3 -x assembler-with-cpp -MMD -mlongcalls compiler.c.elf.cmd=xtensa-esp32-elf-gcc compiler.c.elf.flags="-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" -nostdlib -T esp32_out.ld -T esp32.common.ld -T esp32.rom.ld -T esp32.peripherals.ld -u call_user_start_cpu0 -Wl,--gc-sections -Wl,-static -Wl,--undefined=uxTopUsedPriority -compiler.c.elf.libs=-lapp_update -lbt -lbtdm_app -lc -lcoexist -lcore -ldriver -lesp32 -lethernet -lexpat -lfreertos -lg -lhal -ljson -llog -llwip -lm -lmbedtls -lnet80211 -lnewlib -lnghttp -lnvs_flash -lopenssl -lphy -lpp -lrtc -lsmartconfig -lspi_flash -ltcpip_adapter -lvfs -lwpa -lwpa2 -lwpa_supplicant -lwps -lxtensa-debug-module +compiler.c.elf.libs=-lapp_update -lbt -lbtdm_app -lc -lcoexist -lcore -ldriver -lesp32 -lethernet -lexpat -lfreertos -lg -lhal -ljson -llog -llwip -lm -lmbedtls -lnet80211 -lnewlib -lnghttp -lnvs_flash -lopenssl -lphy -lpp -lrtc -lsmartconfig -lspi_flash -ltcpip_adapter -lulp -lvfs -lwpa -lwpa2 -lwpa_supplicant -lwps -lxtensa-debug-module compiler.as.cmd=xtensa-esp32-elf-as diff --git a/tools/esptool.py b/tools/esptool.py index 4d847214..755f4cb8 100755 --- a/tools/esptool.py +++ b/tools/esptool.py @@ -51,7 +51,7 @@ def check_supported_function(func, check_func): if check_func(obj): return func(*args, **kwargs) else: - raise NotImplementedInROMError(obj, func) + raise NotImplementedInROMError(obj) return inner @@ -112,8 +112,9 @@ class ESPLoader(object): # Maximum block sized for RAM and Flash writes, respectively. ESP_RAM_BLOCK = 0x1800 + ESP_FLASH_BLOCK = 0x400 - FLASH_WRITE_SIZE = 0x400 + FLASH_WRITE_SIZE = ESP_FLASH_BLOCK # Default baudrate. The ROM auto-bauds, so we can use more or less whatever we want. ESP_ROM_BAUD = 115200 @@ -125,7 +126,7 @@ class ESPLoader(object): ESP_CHECKSUM_MAGIC = 0xef # Flash sector size, minimum unit of erase. - FLASH_SECTOR_SIZE = 0x1000 + ESP_FLASH_SECTOR = 0x1000 UART_DATA_REG_ADDR = 0x60000078 @@ -323,23 +324,19 @@ class ESPLoader(object): return self.check_command("leave RAM download mode", self.ESP_MEM_END, struct.pack(' 0.0: speed_msg = " (%.1f kbit/s)" % (written / t * 8 / 1000) print '\rWrote %d bytes at 0x%08x in %.1f seconds%s...' % (written, address, t, speed_msg) - try: - res = esp.flash_md5sum(address, uncsize) - if res != calcmd5: - print 'File md5: %s' % calcmd5 - print 'Flash md5: %s' % res - print 'MD5 of 0xFF is %s' % (hashlib.md5(b'\xFF' * uncsize).hexdigest()) - raise FatalError("MD5 of file does not match data in flash!") - else: - print 'Hash of data verified.' - except NotImplementedInROMError: - pass + res = esp.flash_md5sum(address, uncsize) + if res != calcmd5: + print 'File md5: %s' % calcmd5 + print 'Flash md5: %s' % res + raise FatalError("MD5 of file does not match data in flash!") + else: + print 'Hash of data verified.' print '\nLeaving...' if args.flash_mode == 'dio' and esp.CHIP_NAME == "ESP8266": esp.flash_unlock_dio() @@ -1559,10 +1539,6 @@ def elf2image(args): print "Creating image for ESP8266..." args.chip == 'esp8266' - if args.chip != 'esp32': - if args.set_encrypt_flag: - raise FatalError("--encrypt-flag only applies to ESP32 images") - if args.chip == 'esp32': image = ESP32FirmwareImage() elif args.version == '1': # ESP8266 @@ -1574,7 +1550,6 @@ def elf2image(args): image.flash_mode = {'qio':0, 'qout':1, 'dio':2, 'dout': 3}[args.flash_mode] image.flash_size_freq = image.ROM_LOADER.FLASH_SIZES[args.flash_size] image.flash_size_freq += {'40m':0, '26m':1, '20m':2, '80m': 0xf}[args.flash_freq] - image.encrypt_flag = args.set_encrypt_flag if args.output is None: args.output = image.default_output_name(args.input) @@ -1583,14 +1558,8 @@ def elf2image(args): def read_mac(esp, args): mac = esp.read_mac() - def print_mac(label, mac): - print '%s: %s' % (label, ':'.join(map(lambda x: '%02x' % x, mac))) - print("%r" % (mac,)) - if len(mac) == 1: - print_mac("MAC", mac) - else: - print_mac("WiFi MAC", mac[0]) - print_mac("BT MAC", mac[1]) + print 'MAC: %s' % ':'.join(map(lambda x: '%02x' % x, mac)) + def chip_id(esp, args): chipid = esp.chip_id() @@ -1792,8 +1761,6 @@ def main(): parser_elf2image.add_argument('input', help='Input ELF file') parser_elf2image.add_argument('--output', '-o', help='Output filename prefix (for version 1 image), or filename (for version 2 single image)', type=str) parser_elf2image.add_argument('--version', '-e', help='Output image version', choices=['1','2'], default='1') - parser_elf2image.add_argument('--set-encrypt-flag', help='Flag image to be encrypted by bootloader after flashing.', action="store_true") - add_spi_flash_subparsers(parser_elf2image) subparsers.add_parser( @@ -1877,10 +1844,8 @@ def main(): esp = esp.run_stub() if args.baud > initial_baud: - try: - esp.change_baud(args.baud) - except NotImplementedInROMError: - print "WARNING: ROM doesn't support changing baud rate. Keeping initial baud rate %d" % initial_baud + esp.change_baud(args.baud) + # TODO: handle a NotImplementedInROMError # override common SPI flash parameter stuff as required if hasattr(args, "ucIsHspi"): @@ -1954,98 +1919,96 @@ class AddrFilenamePairAction(argparse.Action): # Binary stub code (see flasher_stub dir for source & details) ESP8266ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ -JlmuEgVGbP3zYv5L1xmpPPrX/wFeThnJ\ +eNrFXPt/08aW/1ckJ+RhQjsjydIohF7HCSZw4XMhNCm967YZvaBc2k1c74ayufu3r85LGsk2gb72h4BnNJrHmfP4njNn9D/bi/L9Ynvf2569r8zsvQrqP3Uxe6+VU1BLBfkzun4vr/+q2ftceVC7U/8Tet7m+QSq\ +4XkKPw7rf2yn4S409OuqpFP9mMbi0gmUzhedFjDPsP6rx9UBTiPyNtRsXjdSvfnp9rdR3d9V+Te38ZiGkD/q1iUIzEnTEHlgeZK6XZXCynCwRy/qePbewsv16vKRUAHqJ1D50K2ZvU8D+F0TowyEalFnzWmHKrhT\ +579Ai52nRIkqnG1v0HBEmJrgZcZTi5liamfP86LzuhaGKaGJTCKHLl/t1WsocOTxWV2pmxGDLfhXqc3zkCdYwqIqBc1UU2zafwsjwutlp3qSE2md3Q1pd81TL4T69KnZ2x/s7jFz5cZvaa+XN9nI7wteg1pi07qQ\ +1kuySAzY8/wu/zJ9tojc8ngsv57+i1/QnU5N0ylwMa/f5ZMi7dCwriARW0Bd6sNbukMeYK2BUAj+FsAeN/hCWXWaDmCzkfAF1Hvegvgsh32GSVhoX1M/jee8F8QODV/Ur4yPaMHc5ytgXXhu4PmTsOZUHQopgCF1\ +Vlxc0E9+JXsJ/z552M7rGNlF3gSWxjXCmur3aj2Thgd1bZEzH9EPGBVaVPstl7+Beb+QFvgqMDLQIG4l1dEmUZf9piK+neqoq4BgBihz+wOSHBW2TH/K213TK89rsbEwk5gEqohZZAvFUmY6Wy0SCwwM+w6MsIqR\ +1X1WPy3n1DOx0EWGGw+bXBWyWGFAaZNzA9tvwBNaLzsOpy6QYZBOCSkjNXrYjor6Y8T7SjOTZoaH1+vmV1CDlns/eX69OYLENCKFEgRdB/uwf85O48hK1Ay8zhQyIKCsEAuYPinN+kWfNx1/BB/fre60SpyWlbkM\ +hIizxRVaAzZBRd5fPJLtHk20nVj7Pr1mVtHsCnjKyhy8/tRwv8SAqfcnyFyHb5eUE+sgIGekDg7TzcZS70aNKPCfHnl7h9D861OU7t1j3vXRyk194NJipGpVbsLbNbmQtvn9yi1cuoX6tyH9S4KT/x1/RU4dNEpT\ +LqS63fqlrStTgCZ1k8UVsFetb1Ilapu0Ky6moFnTTofr11+50hDPFqwNCqJkXjNeVvH2Ql0FTFACxfQzIIliZl/qFm16M48H3IV65rF8FcvvFLC6khQUSEGuzp+CUPtirYN2WdoOuKMlpmtQCVvYkFsD39Kwwshx\ +R/hzInzBCABoDVRtObgwL2A8IH+rCbxlxnjj7v3CLbx3CzddFjGqW077ZSOCMi5EBdu2jrkm73ONdTDN7eyjbQVWJnZNfZfqaCaaTd8jDaRtSBjN8mSRDaNTVmtV8A7arNOsPvEYVJbAbwF1amKAioo3C17NVr7a\ +oAQ0cMMXMNSxWM74QJpasdi4yjdkJRD1xNQjKNmsdHgdgECGjAdGvZJ3wx1hqrNfwc50hSEL+nO0xNk88Hsa2OQZryuavCNMDSCBQEi9mGIkjKpxPTBS9AAGAdBEEAUp0x3dLklDPXXL0LydxdkrMpCFLeG5bup/\ +hHpgmd6E/RbD1Dywgxu0TRuSwes5DnH5pXBRiD5PZzNbyYKeCMe/YPVOg0/K1gTlq8iYFc2soP+4NvkGN+yFsAHrf9qdE1pkFoP6DxruvAFF6J2p5z8ATROGCiX038ylehIPjlh1Z8c0fWLc+u0yZDSRpVvHgIoN\ ++hgPeHDRTCZewa1GrdBMsKVF4sgTbuUKDSkKer4Hb8qK9DUr6XaNh+2ukneFTDTZhGePEsfeKeVtsJ5JMmercD+nrZ4G5ZL+Js349EkPL7YgRPa5dNQSWzBy73Xuf828m74YIurFIuouNmyoiPJDRn26a51B56Nj\ +Ue3sgec+IPcddtzavju7Q9tSqq8811StMm8mbwBDtDub8Zs1QYb3duH3zgHTA2xZEbCCSQ+YQC3RVhgRdvb/cXL4mFAfO22brAwQLqx0HXULqZqYAE626zZqNV7GMfJSzQrb7pP/qqtSorQzF5oBFiAsYTtPOl6q\ +t+uMUW+pKfCdV05QA8jYvA3WyJZSANhEg9w41Wgqs7Zfi+hMrfSzPYE0Sj0HMXcKOnC6cD1ua5yCrpoV1NtnUycS004oEnnl2SlndqrzMGKvDAoZrGPUw2JVdyUNjbEgoxvX8Gd5U3iFDcd7TxtYKdKXRY/5V55/\ +0QBRgkpYKAzBzzdN3QlZPQIXiqxOXXi6xXWGuwTjwGEZECTLYKHFFQO7gfGmIwxFTUAiLBjswIKfHliIR5AdcDQ/GUeyFkQMjLT9fZCgcmDxM/kQvKD86KGYAJ/CJ6BUoE8UbbTk+HS45wYv2OeVoVR+yuZ/JdBI\ +GINadnLdkJ+KvG7sq9HkK7QHjsdqvkhWPF9Zr085BkbM9IL9n/KqtRXUccZTlJ6WTKkW7eeDLSydEIZAG4jBdOM8ThDTCeztOqHNEEJ4JhJ66sGLI6wZDewAWAP6NU3QImj7MoC/tVYDr5rMFjt7ndkE9ds9PxPB\ +ZrnCeQfh0lAw4vijHhi1BKpk2HDgjs+qr9bDEGfyGUtXZCwAwmiOitrY8XtLBotpumY+MuE06Tcgti4K5igBuBgYDSjoxHSO96F9EqT0NHWeTt/RI1AiFbdXMcKW6khs+T+xuCFP77N+jt912THrjTqb4TPAeDRW\ +2bYt3Dl8x/Ux6y2dd3oy8ZfNJBVpHN1poOJIGtS9NcR54sZkNLyAoC6XKncKm25bJW2p82/baeuC3EqNEaKQcV/8DyFEXW0qmXXz+GlXLNNieSsBOgJqSRlpmfiksT4Qh0AwuCTO56ekHkE8kRFw9l9QE5M/8zAA\ +ef6SxkPsHoAOfuXEuCLXVngeefgwXLKkwM7Z3lUEwGBExCTqS/F+vqKVoBcerByAFnO9YiXzles4Z8EDesWBo/tKak4ystXSPY+N8Cfw+6gSYAvTYVE2TU/KeYzOk4T94mHn6ZTkFx7VzTropt+DlR7uuMHgQqYd\ +tHG7Zv4xea0tP+PgZg8s6iltWl4xiqRYbaMduJs05LCfFqsGrgZGJwKXy44m7Y4A/CnL8QB6Tb6AYU55kqPWseQf4G7iuYcWVZNcnKGCPYbK58ceNMAY0Tj0YHq56M9cy9IBEgMGhCg1YRafrAJQpyWGQyGb5yZw\ +nhkOLIbBRE4XTpnNYgecAlgl6ZbNQ804almnEeZ49vOS8E657ahtR+9N+bBJdZiqbZ0vuQ/VP1qHCOk+WsW+Pcej9xx9FyWHHYbd87KueSjFnrHQS8binNROkQx6lgL8UB34s23Yu3Ir+L6atOtCcAMHRPGrZVSJ\ +epheLyVGHmBxNP3abe6zD0QxwO2luPCeL+6DOjwcoouy2W+E8dV7FKIYrIq7hxTGw9WXK+AQ6NN2SnhiGSDACid4evkKrBXQN0VUMz2S5qutfYimPvQCOn3C8wsSv4dt/EbFD3hzPoJXBgxXFcs5ybC9y7wHPJeO\ +XDXqc5iq1C1dMzlCgygbuARVkTF6CfHULJj7dzN7hx6y4t5OBLJScNkE2CCwwMmjH6Rnf3TFUgcna4F/9/LvrO7tMXkpgJkK+6/M7mIne2MOYwMpwXM2GE+fgqBF14SiicN+pgmAi1bmGJAAvQ3bokc772A0uzW3\ +m9jr8OAliDvETrBB9AZDlS26YNUbAapGh4eUJAWaiBaoVfzSVcdttAfCSYD04X8DWKmAfzBCkvztProamyB2P3v4e4uNIGi1miqg7PMNwO263qEZDQHWPBVsGz3OvuNztYKMKCqFjL07jpKXUSCemH9OvYCeziuc\ +lavruII6m7ocErTHIZ13YQU/0aJpARSihMEPdqYOrsQu57SmO88TXNPjdkkq/FaWouIvWFPL/ON2/g9780/bQysRBeVPnEY5NvLHXIX6Cbz84A1tjVF3QGreDiZWndoos1/CBoHsE9eiR6WX0RVt8cRXp36U+fiS\ +HxJvk8SV5Gt5FR945P/93ItEMo0H1i98/jV4ItmZhMOuGOIzqtUj9JXRcXqdOAdSo/GYI+tkSccgMaGqgG/yKfcWL5HfBx1Y7B2lROopBdQopUH+eBOq+MEYN3HXdXX7zMY8OvB2WDpzWp/KISMFAjRVkWbCrNRT\ +bmnIZncD2c6BrLBhBDFgzlkkbSr/Lsaiq8FHKkFuTMY8GLcxfaWuqGtggdrIbe6C2+z5h7t0lARCV4aHHBIDaFicn26ghdxEbQAnGzUtNj5Ci7ShxS4HLvOXDG4r64hSs2zzpyw77yybFTgsg7OPxrxa2Cx9A1vo\ +0YtatbBMx88IVsAhvYGz4o8ufi4rRx8H+8klOSb665ZuYgmKyslcrkHDlG8HcBJbAr4Dm9RssmFamENZdi/GlRwcfjr3a/aGcj4TRzGY7+bUQ8YAotXJPuc+5If3YZKNins7eDIQ+tCUeVxU7QgVD9FWvw2fhHAa\ +oE1DY59Xlh8G0mcufcryhZwaj63iaQvNJCKTatCyZTZbpIPZAqy4ojBEVSOLxf1gtth30YamPsE4qia7JKb5Ui5Rh3B7v0wllMcYDZnsAOl951OZ7CA8J0Na8hFV1yd0jcefpl4kAq9YoAycqprGjFOgvWG2TnLF\ +wdGUQ/7Bsh7ZpdAMnvGpuQ9xzayaP5QJnjmROjRCzzjfQh0BNLjYQICwzXlYCW9E2TVd6DCV+YoJGJyAaSbAhDJd8jbqbg/w0kJ81V/bo7QVeygpDDFFLZeMjkwB9w4iOsXc330OS6E0rg/wzzWf3ul/w6BQiqUU\ +35ODzxxokpA9nyPe6pr0ed+gz/1ADDmZcDDnMF7+4eyy4qgBjARaA5Us0q6W8vm076D1VoNHErzsFLdhi4Me6MT5LY8NXoNIoe/gszYpJlDXnKCN1i8JZ1YVvUWJ526G15qgPDRpl1ivuF430C2ZSGxy0hwxhtcE\ +NiuIg+XBJZ2TSGg1jSYTaTngs0c8y6Iwr8TcgXPyRd+TnZw0r5LUGSNdjAI6wyjNPh8pgPOdSH/V8GR+3L7MaB1DTPFPPZcXqAucVBVvIVzLAogm/TaFswLeYEQyPGcV8f+kdcpStI7P8fJCFIGzxkM+dC8k0wo7\ +Bdilx1PeaCBbiW6n8trQ2wqccIIcCd3lT0JvC16HaD4md+FZewwqXPt8FiuOECQ+1ms4xUOsHrNmts+ssmM1O3bBNJrmRGzFg/S3QDHAd+ekOPLg/wmSYKy1OGRrmbsMWdNZbQ43D0lnS+iKkGhruRuYWhPdJ0Bd\ +4YGvDpOY4v06D3FnQEJjcFP11Y27I5dzYGuU9PHlezBZkLqRvAK/RB+L/1PbMO1u2dxieFLT4Vlfx8y2D0GdFkSB4WzbSbjBGHPWf8f/mR0/CBLJ1Ia7EzrvNMpJVOixSC2SumaQHYjbobLG3GMe0AQgp3pg7+ES\ +vmjtpMtOpsnCdJcwxEh/6OoklBY12RBGP4asa/hZT+IL2k707SMZB7hN71Lii2OeGRxgeGeOdK5Llmx8asB2QgnO31PIuqgIWKH63eUUPXtckZYDWGuaBAuQh022Iw3R9VfNhi8kA1GHHily+DOc06cx5QS8r1gS\ +rNeY7ZBzb6sMnDloZVIZFncwtYZDCUJBiO4hagTgYClDXaK8E4va8RgOTsO5NZeJx0ForQObBH488RM6op77cWB3xqE38c3lFbL+8dzGE2seUYwHIDQaWMA5SaIvT2gpqTpuQ8njsZ7YndYNpdTHcZutbvVU5j6p\ +FzT+BTqY+DuwNeHkGyjN+YAPj94SSv42sdeYs/o1yK5Mo/E1vsz7C7DB4JAD7MabNNG5UkFyCZGE9QyqlKBe/CUs/vIYmH8uqSLjR8ipUIv91777ol7WhA6WNWcn2qie9+BrVOrOWDUhgXjXNfHqn0of1oQGBZA3\ +Zi1h1GnnfgKMYS5xByjRWxnF0pniJMbIR5chaYQ0eNnqxTR1JUSn7TFGlstpvH9va7cNYttETlcYX4jKDjj7LXCPvxAJDmnmNh7Io122iJhqiOkyMLHoivVPNty4HDDhmvMG5g5UbDGH1fT4sRaheUS5XRLYdg+a\ +sUEypuO+hOuC5ojGCcTxYmyzmF2K3KCXnt/whaHW6GJgB6Qmp6sT0ROgsg2J2EEb/QPWL0O2j9nkbg2FAPoimItYfcbidR5s9jORPu7CUyIYe/HpX+jFtxsfOJ5p4vgViRuTxB4n7QGEye51xgjbpAPGQJs46oZH\ +A9+lWYm51ehCZ10W+tbln8DlH1RZyhP+QWOuUg19o9A7J0G06RjY53RwG/Hm60xQZNRyAGDOhgMGaBtoAgMeCDkAb1Y848T7uL0EVhMX3NBaDrea43saIuwgO+fIFQG2Dn04pYCMQ9hnQClgQxAyaAka5HJc7ziD\ +W32ndMLZNwrdNNCoJrwIRFoSTv7D7LSfxJbAlNeiOp0LrvkPBlSY9ZDL8CkmZNC5R4OsBpYDeH8TIfjUGJbON86JL8RldbF+IwTJaiGYrpCAzi2KwN9cloWWD5Vp5CJ5AEP57Bvlsqkp9ZATNjaWD2t0it1dQ3fL\ +5ICpXcPeX8Mih9eYaANJihD6qnl86wl1s+gwCSl54hPuU8u1hhCAicFrEAhd87fH+8cB3927zQsn3zJ3IV4N6sgV/1C5sG3a9xKuOBszm+CGafQDdTCk7cYz6ulPwCevWVzkjCNYyVov2ROvKv2fMCUfrmfly+cB\ +uAql/7c/7XrO/iuE4zSdCU8n/BD6Z1SPso90w1SFvAts+x65z7nIAKwwop6FKf0CoAhsV9kdPr2OM4rVmPhlq+AbG1nSTUnxgtgKhZzjGY8aEd59nopVbfJyJAsldi5odu3uDofX4XCwwmR2gJpRx9hmf4qxnd5u\ +aVnBYvpfRAeVv9XSVp9sae98jpL5hY8yGSIhxCxWWdv4L7S25o+3tqxPgmWDe8jJpC3vjMXOtbyDLpF3wbxDN2S8XQ23KA3twMJhgPCGLKFx9l1nGx0LiJrt4jWCWzS9+xDxsdUYACrQNY1l86dNtkDfyC5FSjxH\ +T1KexWvBr9PHrSyJNsasEjYv6EeqW4KxmRsFFge5wctwwJyAL5e22Y4tT0iGwYa3ji+W9oadykw1e3PIF+3s/qCzTcrZJqXrrSGpadKPctoJnW3e8N3PHt7B3JBGDuftxqX6A4z3AYVyWTKPBAHJ5uANlZ+cY801\ +O0RkVWEPt3ckQtvJSkKiKvM2vfUC1hj7wKXnZImeV69hcU8Ga50TqMZ8YVt7XY+ZrJWTIWyTJpCis0c3DtRLcOGXYsIxgeoSPcsPMJoGHGUbSn9o0GULMQcY+CnQgiCQA0eArtQP6hGDh246eYfM4x6ZA9GeZz+1\ +e8Xn9tKTvns2fS2iRaJdMbNAzC6zQmWMgA4BE+GxGuSc0QnV2wHn5m5K3Dd7m0FVnAFa0jHA1BhEsjjmechZg0IxN+t09gZCVj7itmzJ03DqOSK4EhcGPXXdRsGDvrpuQM49PkDrg0RWr6S8VQcg2g4iDDtgULSy\ +E+91Id0KxCdxIxcu0KZFgi72e1ghpwTDq01R5eg7NaYUkvRUJaHJnBPetL4Ys04HJlT64kfBA9FrxgPBxAknOsBAJxeY3/ioFWKD+8vZjx1I0KxjSNJgkG9c55uswgXy7gmsDRhQRW+PMfzWBF3SSBTPMbsxWX43\ +hC2gg6e4CweUWmIz167eymmGOc3icR37pQ2TpX8Ak/XZS61CCEi+NgmbrwGuRQiZixCerUUIEdZM8Uwi9NRqE3TFiQTpOp6auDzVxZiGvrrwWDdfpWhwQgqJXRVP1MaNJy7kiVt2IITI7LAWIR7JZkcrQMIa3Xh4\ +LtoLLfP+MR60TOzm4df0ADTAfoR3HNA51jFfEEVEUEw+nbmWEsq6/JUxukWU8ceyWHa7EnsNGiyfL6mvpPMCBRkcJSang62tEwpfOtYHCZdKDmeWofOsKAMyrx23PTmRyS7Q/7nEvtEVCOxQHXnfiP57/tAjRDY8\ +fgQ5mZiaHcg1HLz4v/eSIuR4/e3gpc/GCm9JbKbZ9IfVG+Oc+Jfp3B86Tv4eBuzxCFyTgQLGINylhhuOa6+z6wEa5LkdoqUVCc8ySUSqPYvmRtpEIFLGYYJi8tCt11jUUgzuh1gR3D8DgYnF/xGFx+xuOY8G77tQ\ +/zSpCjZvJJUaK/XbMwbputXbeKRZundTAQSkO4yjE04eQUDxjri1zdP6Cj0wPFT65GDnHs2J3LDpWw6yrAv4jP68tK2y1Ri/IWWLVxdJQs2Dzz3f3uPjIaIDRi3+Qke0l09Dh6KQoL4iXWvaWvdbltg7Ct4jKNB6\ +3JM/cpX6GxJ1nVUnPBAbJBwefft42h73FHI3vDtrH6/Q7W2kWXsF0KznZjBdkQ9fpEgxV4hQY73wIVztnYO4AOyKfoVfP5I1NViFYR/4Mbohkav4Szg5+yj4ISTFF0kiMf9j/qpIAd9bQJBtn/NHDFAj5M+fgxtG\ ++bSdNNqIsGEb9/o34zY5n85/pYRaDvrt9JIrnANGvNxknTr9z+9Jd4AYNbVwPmvPVjwI1z2I1j0YrXsQr3uQ9B5gwSAGteE1AujLjUMg9YDoneGl4YtOpljgKvjBftPTcF/w8TWsBa6o4pVki19CqYmPoUo6ya8N\ +2Ze0EacEs/kafmcvarJLRNbKdfd7fFQuN8xsL+ZJB/K0W5dkjXMKJn4pB2+23tHveJtBr5oHxLwZXNLM5aZS2L8LgveCfDg+QeRnz74lTVCyjgM2BUQHp1A2uCGjgOpBeJYTA2BB+JLp3V1CfuunSI8E9N5AGj7G\ +eW3m393BZOBK7qYN5LICX6TR30O73Q0zm199x2SCv/DyoD1h1aNMbmBg9kyB+uHiDsPU7Pvn33v47YcRnpzMnw9APeZznllyj793h1QtqQ3S/y5/v6Di5LT8hIIE9A2K5mAb7v7jV/MaM12K11QQqMibKK/c/Ul2\ +8QpL3ModJj6V0FfuhC1TDAkN2htV3Vti0JzNCh9jNG3TeoQp55VY+rSe0xbdNOsf8EPE7LZ/KblarpQUBXpriXM9ukoNdDd8JQl5nm7HwTcS1D0PDvHgYK6ZjOYPTOErRubbrHEPXlR4x6Xs0kzRtesIbwiF8GEL\ +Q/eE8IrXK4Y7OUIzSdZoLrVhMn5GH254amYzjzSACZBQo3O+fI261YiHnBaYH3AX4ORm+00Kcqw9SvtP5cNude/13E+evprN3rx7f9NMBT5A1SesfAVDvt5RNncFec9D9qq0WbFV1C8nUcp2m4P+1xmby2p8lcTw\ +OV9lT+VOGuaTfMNhqqydTwqJhk02jgpJMeBXLLY492O0tclpPE2QYCKfY4OkkmCIgGFXPn3XSXyVljm2nC1kZGxN2rLz3SVpX6xq336frnmHwndY3N7ztgu7sD/8srBz+LaoVkmYBCoIFD+p6wa9L140dwwj53Oj\ +oeOks+0T+JRZULH45Y16AvRzRI+pMnQKmp3BuvCEF4Kx29wpyLXx/guomOf48w3tav1rW3KE+m07BWShlc3kZnNduOab2Pj5qcoprOv3O2KHpTYzEnT6GEkozsz4RzpnrX/d5zR6fDHilz++gnWFI7pfttxGGZdw\ +HA/CApp8eQKmoBkeUSrR9Z9MaeaDUsgVO+OVat3gf2Kh1rgysyxtfmJWb7OM3qdy3LvGDQer7mdMOuVRr9xJNG+/uoJ/vc+z6N7YmLzkfmtDud+qaAuHbsH2PvXT6zPXK76tq3vtde950CuHvXLUK8e9sumV825Z\ +9+ajO+09t9Bp6X6vR18sf7znT/vTt5SDz+Sh23jqNh7rl+NbysktZfPR8uIjpZ8/Uup+/mdVOf9oef4x2bn173PlNv4sGi0+Y939mVe3aIHezHVvJrpHRd3pb8Mt3HULnW47GVVHbuGlW+hsyC89TdObp+2V8165\ +DFdIif4LpfjP1gK/V0v8Xi3ye7XM79VCt5U/80+r9nu+jQQmKHmU5zhqr57zQd2cqcZfJGokbZWNW7vSQQ134fP6LhCOklRFCoBw+fNi/mtTGajY/Pv/ALbA9mA=\ """))) ESP32ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ """))) if __name__ == '__main__': diff --git a/tools/sdk/bin/bootloader.bin b/tools/sdk/bin/bootloader.bin index b614ae7fd09ded294e19b8efeb29ab9ab369ee4d..3eb62832809ae228269075ea17f278b135a6717c 100644 GIT binary patch delta 2233 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 p_b(3iity{Hj-C7 +#include #include "esp_err.h" #ifdef __cplusplus diff --git a/tools/sdk/include/config/sdkconfig.h b/tools/sdk/include/config/sdkconfig.h index 499d910d..ad2f7fbf 100644 --- a/tools/sdk/include/config/sdkconfig.h +++ b/tools/sdk/include/config/sdkconfig.h @@ -17,13 +17,16 @@ #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_BT_RESERVE_DRAM 0x10000 #define CONFIG_LOG_BOOTLOADER_LEVEL_ERROR 1 +#define CONFIG_CONSOLE_UART_BAUDRATE 115200 #define CONFIG_LWIP_MAX_SOCKETS 4 #define CONFIG_ESP32_ENABLE_STACK_BT 1 #define CONFIG_ULP_COPROC_RESERVE_MEM 0 #define CONFIG_ESPTOOLPY_BAUD 921600 #define CONFIG_TOOLPREFIX "xtensa-esp32-elf-" +#define CONFIG_CONSOLE_UART_NUM 0 #define CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC 1 #define CONFIG_LWIP_THREAD_LOCAL_STORAGE_INDEX 0 +#define CONFIG_CONSOLE_UART_DEFAULT 1 #define CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN 16384 #define CONFIG_AUTOSTART_ARDUINO 1 #define CONFIG_LOG_DEFAULT_LEVEL_ERROR 1 @@ -58,6 +61,7 @@ #define CONFIG_MBEDTLS_HARDWARE_SHA 1 #define CONFIG_FREERTOS_CORETIMER_0 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" +#define CONFIG_MBEDTLS_HAVE_TIME 1 #define CONFIG_FREERTOS_ISR_STACKSIZE 1536 #define CONFIG_OPTIMIZATION_LEVEL_DEBUG 1 #define CONFIG_SYSTEM_EVENT_QUEUE_SIZE 32 diff --git a/tools/sdk/include/driver/driver/adc.h b/tools/sdk/include/driver/driver/adc.h new file mode 100644 index 00000000..56bdbc17 --- /dev/null +++ b/tools/sdk/include/driver/driver/adc.h @@ -0,0 +1,122 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_ADC_H_ +#define _DRIVER_ADC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include "esp_err.h" + +typedef enum { + ADC_ATTEN_0db = 0, /*! +#include "esp_err.h" + +typedef enum { + DAC_CHANNEL_1 = 1, /*!< DAC channel 1 is GPIO25 */ + DAC_CHANNEL_2, /*!< DAC channel 2 is GPIO26 */ + DAC_CHANNEL_MAX, +} dac_channel_t; + +/** + * @brief Set Dac output voltage. + * + * Dac width is 8bit ,and the voltage max is vdd + * + * @param channel dac channel + * @param dac_value dac output value + * + * @return + * - ESP_OK success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t dac_out_voltage(dac_channel_t channel, uint8_t dac_value); + +/** + *----------EXAMPLE TO USE DAC------------ * + * @code{c} + * dac_out_voltage(DAC_CHANNEL_1,200);//the dac out voltage ≈ 200*vdd/255 + * @endcode + **/ + +#ifdef __cplusplus +} +#endif + +#endif /*_DRIVER_DAC_H_*/ + diff --git a/tools/sdk/include/driver/driver/gpio.h b/tools/sdk/include/driver/driver/gpio.h index de34ac4e..de7525bd 100644 --- a/tools/sdk/include/driver/driver/gpio.h +++ b/tools/sdk/include/driver/driver/gpio.h @@ -117,32 +117,6 @@ extern const uint32_t GPIO_PIN_MUX_REG[GPIO_PIN_COUNT]; #define GPIO_IS_VALID_GPIO(gpio_num) ((gpio_num < GPIO_PIN_COUNT && GPIO_PIN_MUX_REG[gpio_num] != 0)) //to decide whether it is a valid GPIO number #define GPIO_IS_VALID_OUTPUT_GPIO(gpio_num) ((GPIO_IS_VALID_GPIO(gpio_num)) && (gpio_num < 34)) //to decide whether it can be a valid GPIO number of output mode -/** - * @brief Pullup/pulldown information for a single GPIO pad - */ -typedef struct { - uint32_t reg; /*!< Register to modify to enable or disable pullups or pulldowns */ - uint32_t pu; /*!< Bit to set or clear in the above register to enable or disable the pullup, respectively */ - uint32_t pd; /*!< Bit to set or clear in the above register to enable or disable the pulldown, respectively */ -} gpio_pu_pd_desc_t; - - -/** - * Per-GPIO pullup/pulldown information - * On the ESP32, some GPIOs need their pullups and pulldowns enabled and disabled in the RTC - * peripheral instead of in the GPIO peripheral. This array documents for every GPIO what bit - * to set or clear. - * - * This array is non-static, so if you need a very quick way of toggling the pull-up/downs, you can just - * do e.g. REG_SET_BIT(gpio_pu_pd_desc[gpio_num].reg, gpio_pu_pd_desc[gpio_num].pu); inline. - * - * ToDo: Functions using the contents of this array will do a read/modify/write on GPIO as well as RTC - * registers. We may need to look into muxes/locks for other code that accesses these RTC registers when we - * write drivers for the RTC stuff. - */ -extern const gpio_pu_pd_desc_t gpio_pu_pd_desc[GPIO_PIN_COUNT]; - - typedef enum { GPIO_NUM_0 = 0, /*!< GPIO0, input and output */ GPIO_NUM_1 = 1, /*!< GPIO1, input and output */ diff --git a/tools/sdk/include/driver/driver/pcnt.h b/tools/sdk/include/driver/driver/pcnt.h index deff7818..d2620cf1 100644 --- a/tools/sdk/include/driver/driver/pcnt.h +++ b/tools/sdk/include/driver/driver/pcnt.h @@ -27,9 +27,9 @@ typedef enum { } pcnt_ctrl_mode_t; typedef enum { - PCNT_COUNT_DIS = 0, /*!< Counter mode: Decrease counter value*/ + PCNT_COUNT_DIS = 0, /*!< Counter mode: Inhibit counter(counter value will not change in this condition)*/ PCNT_COUNT_INC = 1, /*!< Counter mode: Increase counter value*/ - PCNT_COUNT_DEC = 2, /*!< Counter mode: Inhibit counter(counter value will not change in this condition)*/ + PCNT_COUNT_DEC = 2, /*!< Counter mode: Decrease counter value*/ PCNT_COUNT_MAX } pcnt_count_mode_t; @@ -45,7 +45,7 @@ typedef enum { PCNT_UNIT_MAX, } pcnt_unit_t; -typedef enum{ +typedef enum { PCNT_CHANNEL_0 = 0x00, /*!< PCNT channel0 */ PCNT_CHANNEL_1 = 0x01, /*!< PCNT channel1 */ PCNT_CHANNEL_MAX, diff --git a/tools/sdk/include/driver/driver/rtc_io.h b/tools/sdk/include/driver/driver/rtc_io.h new file mode 100644 index 00000000..5196b058 --- /dev/null +++ b/tools/sdk/include/driver/driver/rtc_io.h @@ -0,0 +1,167 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_RTC_GPIO_H_ +#define _DRIVER_RTC_GPIO_H_ + +#include +#include "esp_err.h" +#include "driver/gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Pullup/pulldown information for a single GPIO pad + */ +typedef struct { + uint32_t reg; /*!< Register of Rtc Pad */ + uint32_t mux; /*!< Mux seletct the Rtc pad is Digital Pad or Rtc pad */ + uint32_t func; /*!< Select Rtc Pad Func */ + uint32_t ie; /*!< Input Enable */ + uint32_t pullup; /*!< Pullup Enable */ + uint32_t pulldown; /*!< PullDown Enable */ + int rtc_num; /*!< The Rtc number */ +} rtc_gpio_desc_t; + +typedef enum { + RTC_GPIO_MODE_INPUT_ONLY , /*!< Pad output */ + RTC_GPIO_MODE_OUTPUT_ONLY, /*!< Pad input */ + RTC_GPIO_MODE_INPUT_OUTUT, /*!< Pad pull output + input */ + RTC_GPIO_MODE_DISABLED, /*!< Pad (output + input) disable */ +} rtc_gpio_mode_t; + +#define RTC_GPIO_IS_VALID_GPIO(gpio_num) ((gpio_num < GPIO_PIN_COUNT && rtc_gpio_desc[gpio_num].reg != 0)) //to decide whether it is a valid GPIO number + +extern const rtc_gpio_desc_t rtc_gpio_desc[GPIO_PIN_COUNT] ; + +/* + * @brief Init a gpio as rtc gpio + * + * when init a pad as analog function,need to call this funciton + * + * @param gpio_num gpio_num GPIO number. If you want to set the trigger type of e.g. of GPIO16, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - ESP_OK success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t rtc_gpio_init(gpio_num_t gpio_num); + +/** + * @brief Init a gpio as digital gpio + * + * @param gpio_num gpio_num GPIO number. If you want to set the trigger type of e.g. of GPIO16, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - ESP_OK success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t rtc_gpio_deinit(gpio_num_t gpio_num); + +/** + * @brief Get the rtc io input level + * + * @param gpio_num gpio_num GPIO number. If you want to set the trigger type of e.g. of GPIO16, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - 1 High level + * - 0 Low level + */ +uint32_t rtc_gpio_get_level(gpio_num_t gpio_num); + +/** + * @brief Set the rtc io output level + * + * @param gpio_num GPIO number. If you want to set the trigger type of e.g. of GPIO16, gpio_num should be GPIO_NUM_12 (12); + * @param level output level; + * + * @return + * - 1 High level + * - 0 Low level + */ +esp_err_t rtc_gpio_set_level(gpio_num_t gpio_num, uint32_t level); + +/** + * @brief Rtc gpio set direction + * + * Configure Rtc gpio direction,such as output_only,input_only,output_and_input + * + * @param gpio_num Configure GPIO pins number, it should be GPIO number. If you want to set direction of e.g. GPIO12, gpio_num should be GPIO_NUM_12 (12); + * @param mode GPIO direction + * + * @return + * - ESP_OK Success + * - ESP_ERR_INVALID_ARG GPIO error + */ +esp_err_t rtc_gpio_set_direction(gpio_num_t gpio_num, rtc_gpio_mode_t mode); + +/** + * @brief Rtc gpio pullup enable + * + * If the user needs to configure the GPIO pull ,Please call gpio_set_pull_mode.This function will be called in gpio_set_pull + * + * @param gpio_num GPIO number. If you want to set pull up or down mode for e.g. GPIO12, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - True the gpio number is Rts pad + * - False the gpio number is Digital pad + */ +esp_err_t rtc_gpio_pullup_en(gpio_num_t gpio_num); + +/** + * @brief Rtc gpio pulldown enable + * + * If the user needs to configure the GPIO pull ,Please call gpio_set_pull_mode.This function will be called in gpio_set_pull + * + * @param gpio_num GPIO number. If you want to set pull up or down mode for e.g. GPIO12, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - True the gpio number is Rts pad + * - False the gpio number is Digital pad + */ +esp_err_t rtc_gpio_pulldown_en(gpio_num_t gpio_num); + +/** + * @brief Rtc gpio pullup clear + * + * If the user needs to configure the GPIO pull ,Please call gpio_set_pull_mode.This function will be called in gpio_set_pull + * + * @param gpio_num GPIO number. If you want to set pull up or down mode for e.g. GPIO12, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - True the gpio number is Rts pad + * - False the gpio number is Digital pad + */ +esp_err_t rtc_gpio_pullup_dis(gpio_num_t gpio_num); + +/** + * @brief Rtc gpio pulldown clear + * + * If the user needs to configure the GPIO pull ,Please call gpio_set_pull_mode.This function will be called in gpio_set_pull + * + * @param gpio_num GPIO number. If you want to set pull up or down mode for e.g. GPIO12, gpio_num should be GPIO_NUM_12 (12); + * + * @return + * - True the gpio number is Rts pad + * - False the gpio number is Digital pad + */ +esp_err_t rtc_gpio_pulldown_dis(gpio_num_t gpio_num); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/tools/sdk/include/driver/driver/touch_pad.h b/tools/sdk/include/driver/driver/touch_pad.h new file mode 100644 index 00000000..b8dc6e75 --- /dev/null +++ b/tools/sdk/include/driver/driver/touch_pad.h @@ -0,0 +1,165 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef _DRIVER_TOUCH_PAD_H_ +#define _DRIVER_TOUCH_PAD_H_ +#ifdef __cplusplus +extern "C" { +#endif +#include "esp_intr.h" +#include "esp_err.h" +#define TOUCH_PAD_SLEEP_CYCLE_CONFIG (0x1000)//The Time is 150Khz,the Max value is 0xffff +#define TOUCH_PAD_MEASURE_CYCLE_CONFIG (0xffff)//The Time is 8Mhz,the Max value is 0xffff +typedef enum { + TOUCH_PAD_NUM0 = 0, /*!< Touch pad channel 0 is GPIO4 */ + TOUCH_PAD_NUM1, /*!< Touch pad channel 0 is GPIO0 */ + TOUCH_PAD_NUM2, /*!< Touch pad channel 0 is GPIO2 */ + TOUCH_PAD_NUM3, /*!< Touch pad channel 0 is GPIO15 */ + TOUCH_PAD_NUM4, /*!< Touch pad channel 0 is GPIO13 */ + TOUCH_PAD_NUM5, /*!< Touch pad channel 0 is GPIO12 */ + TOUCH_PAD_NUM6, /*!< Touch pad channel 0 is GPIO14 */ + TOUCH_PAD_NUM7, /*!< Touch pad channel 0 is GPIO27*/ + TOUCH_PAD_NUM8, /*!< Touch pad channel 0 is GPIO33*/ + TOUCH_PAD_NUM9, /*!< Touch pad channel 0 is GPIO32*/ + TOUCH_PAD_MAX, +} touch_pad_t; +/** + * @brief Initialize touch module. + * + *This function int touch pad module ,enable touch module + * + * @return None + * + */ +void touch_pad_init(); + +/** + * @brief Configure touch pad interrupt threshold. + * + * + * @param[in] touch_num : config touch num + * + * @param[in] threshold : interrupt threshold ,When the touch_pad_register less than threshold, + * will trigger the touch interrupt.User can use touch_pad_read function + * to determine the threshold. + * + * @return - ESP_OK Success + * - ESP_ERR_INVALID_ARG Touch pad error + * + */ +esp_err_t touch_pad_config(touch_pad_t touch_num, uint16_t threshold); + +/** + * @brief get touch pad touch_pad_register counter. + * + *User can use this function to determine the the interrupt threshold .When you do not touch the + *pad ,read the touch_pad_read number(NumNotTouch) by the touch_pad_register.When you touch the pad ,read the touch_pad_register + *number(NumTouch) by the touch_pad_read.Normal NumNotTouch>NumTouch,so you can select a interrupt threshold. + * + * @param[in] touch_num : touch num + * @param[out] touch_value : touch output value + * + * @return - ESP_OK Success + * - ESP_ERR_INVALID_ARG Touch pad error + * + */ +esp_err_t touch_pad_read(touch_pad_t touch_num, uint16_t * touch_value); + +/** + * @brief register TouchPad interrupt handler, the handler is an ISR. + * The handler will be attached to the same CPU core that this function is running on. + * @note + * Users should know that which CPU is running and then pick a INUM that is not used by system. + * We can find the information of INUM and interrupt level in soc.h. + * + * @param touch_intr_num Touch interrupt number,check the info in soc.h, and please see the core-isa.h for more details + * @param fn Interrupt handler function. + * + * @note + * Note that the handler function MUST be defined with attribution of "IRAM_ATTR". + * + * @param arg Parameter for handler function + * + * @return + * - ESP_OK Success ; + * - ESP_ERR_INVALID_ARG GPIO error + */ +esp_err_t touch_pad_isr_handler_register(uint32_t touch_intr_num, void(*fn)(void*), void *arg); + + +/** + * *************** ATTENTION ********************/ +/** + *@attention +*Touch button is through the body's capacitive characteristics, +*there is a charge discharge circuit inside the. When the hands touch, +*the charge and discharge time will be slow. +*Because of the different hardware, each pad needs to be calibrated at the factory. +*We use touch_pad_read to determine factory parament. +*/ +/** + *----------EXAMPLE TO CONIFGURE GPIO AS OUTPUT ------------ * + * @code{c} + * touch_pad_init(); + * void taskA(void* arg) + * { + * for(;;){ + * vtaskDelay(20/portTICK_PERIOD_MS); + * ets_printf("tocuch pad value %u\n",touch_pad_read(0));//Take the touched status and untouched status value + * } + * } + * @endcode + **/ +/** + *----------EXAMPLE TO SET ISR HANDLER ---------------------- + * @code{c} + * //the first parameter is INUM, you can pick one form interrupt level 1/2 which is not used by the system. + * touch_pad_isr_handler_register(19,rtc_intr,NULL); //hook the isr handler for TouchPad interrupt + * @endcode + * @note + * 1. user should arrange the INUMs that used, better not to use a same INUM for different interrupt. + * 2. do not pick the INUM that already occupied by the system. + * 3. refer to soc.h to check which INUMs that can be used. + */ +/** + *----------EXAMPLE TO USE TOUCH_PAD------------ * + * @code{c} + * touch_pad_init();//only init one time + * touch_pad_config(0,300);//set the intr threshold,use touch_pad_read to determine this threshold + * touch_pad_isr_handler_register(19,rtc_intr,NULL) + * #include "esp_attr.h" + * void IRAM_ATTR rtc_intr(void * arg) + * { + * uint32_t pad_intr = READ_PERI_REG(SARADC_SAR_TOUCH_CTRL2_REG) & 0x3ff; + * uint8_t i = 0; + * uint32_t rtc_intr = READ_PERI_REG(RTC_CNTL_INT_ST_REG); + * WRITE_PERI_REG(RTC_CNTL_INT_CLR_REG, rtc_intr); + * SET_PERI_REG_MASK(SARADC_SAR_TOUCH_CTRL2_REG, SARADC_TOUCH_MEAS_EN_CLR); + * if (rtc_intr & RTC_CNTL_TOUCH_INT_ST) { + * for (i = 0; i < TOUCH_PAD_MAX; ++i) { + * if ((pad_intr >> i) & 0x01) { + * ets_printf("touch pad intr %u\n",i); + * } + * } + * } + * } + * @endcode + **/ + +#ifdef __cplusplus +} +#endif + +#endif/*_DRIVER_TOUCH_PAD_H_*/ + diff --git a/tools/sdk/include/esp32/esp_coexist.h b/tools/sdk/include/esp32/esp_coexist.h new file mode 100644 index 00000000..f58d2ef9 --- /dev/null +++ b/tools/sdk/include/esp32/esp_coexist.h @@ -0,0 +1,46 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Init software coexist + * + * @return Init ok or failed. + */ +esp_err_t coex_init(void); + +/** + * @brief Get software coexist enable or not + * + * @return software coexist enable status. + */ +bool coexist_get_enable(void); + +/** + * @brief Set software coexist enable or not + * + * @param enable software coexist or disable it + * + * @return Void. + */ +void coexist_set_enable(bool enable); + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/include/esp32/rom/uart.h b/tools/sdk/include/esp32/rom/uart.h index aa3cf592..81fa26c2 100644 --- a/tools/sdk/include/esp32/rom/uart.h +++ b/tools/sdk/include/esp32/rom/uart.h @@ -18,6 +18,8 @@ #include "esp_types.h" #include "esp_attr.h" #include "ets_sys.h" +#include "soc/soc.h" +#include "soc/uart_reg.h" #ifdef __cplusplus extern "C" { @@ -260,11 +262,16 @@ void uart_tx_flush(uint8_t uart_no); /** * @brief Wait until uart tx full empty and the last char send ok. * - * @param uint8_t uart_no : 0 for UART0, 1 for UART1. + * @param uart_no : 0 for UART0, 1 for UART1, 2 for UART2 * - * @return None. + * The function defined in ROM code has a bug, so we define the correct version + * here for compatibility. */ -void uart_tx_wait_idle(uint8_t uart_no); +static inline void uart_tx_wait_idle(uint8_t uart_no) { + while(REG_GET_FIELD(UART_STATUS_REG(uart_no), UART_ST_UTX_OUT)) { + ; + } +} /** * @brief Get an input char from message channel. diff --git a/tools/sdk/include/esp32/soc/rtc_io_reg.h b/tools/sdk/include/esp32/soc/rtc_io_reg.h index 086e8b76..345bb804 100644 --- a/tools/sdk/include/esp32/soc/rtc_io_reg.h +++ b/tools/sdk/include/esp32/soc/rtc_io_reg.h @@ -1,1951 +1,1951 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#ifndef _SOC_RTC_IO_REG_H_ -#define _SOC_RTC_IO_REG_H_ - - -#include "soc.h" -#define RTC_GPIO_OUT_REG (DR_REG_RTCIO_BASE + 0x0) -/* RTC_GPIO_OUT_DATA : R/W ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 output value*/ -#define RTC_GPIO_OUT_DATA 0x0003FFFF -#define RTC_GPIO_OUT_DATA_M ((RTC_GPIO_OUT_DATA_V)<<(RTC_GPIO_OUT_DATA_S)) -#define RTC_GPIO_OUT_DATA_V 0x3FFFF -#define RTC_GPIO_OUT_DATA_S 14 - -#define RTC_GPIO_OUT_W1TS_REG (DR_REG_RTCIO_BASE + 0x4) -/* RTC_GPIO_OUT_DATA_W1TS : WO ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 output value write 1 to set*/ -#define RTC_GPIO_OUT_DATA_W1TS 0x0003FFFF -#define RTC_GPIO_OUT_DATA_W1TS_M ((RTC_GPIO_OUT_DATA_W1TS_V)<<(RTC_GPIO_OUT_DATA_W1TS_S)) -#define RTC_GPIO_OUT_DATA_W1TS_V 0x3FFFF -#define RTC_GPIO_OUT_DATA_W1TS_S 14 - -#define RTC_GPIO_OUT_W1TC_REG (DR_REG_RTCIO_BASE + 0x8) -/* RTC_GPIO_OUT_DATA_W1TC : WO ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 output value write 1 to clear*/ -#define RTC_GPIO_OUT_DATA_W1TC 0x0003FFFF -#define RTC_GPIO_OUT_DATA_W1TC_M ((RTC_GPIO_OUT_DATA_W1TC_V)<<(RTC_GPIO_OUT_DATA_W1TC_S)) -#define RTC_GPIO_OUT_DATA_W1TC_V 0x3FFFF -#define RTC_GPIO_OUT_DATA_W1TC_S 14 - -#define RTC_GPIO_ENABLE_REG (DR_REG_RTCIO_BASE + 0xc) -/* RTC_GPIO_ENABLE : R/W ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 output enable*/ -#define RTC_GPIO_ENABLE 0x0003FFFF -#define RTC_GPIO_ENABLE_M ((RTC_GPIO_ENABLE_V)<<(RTC_GPIO_ENABLE_S)) -#define RTC_GPIO_ENABLE_V 0x3FFFF -#define RTC_GPIO_ENABLE_S 14 - -#define RTC_GPIO_ENABLE_W1TS_REG (DR_REG_RTCIO_BASE + 0x10) -/* RTC_GPIO_ENABLE_W1TS : WO ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 output enable write 1 to set*/ -#define RTC_GPIO_ENABLE_W1TS 0x0003FFFF -#define RTC_GPIO_ENABLE_W1TS_M ((RTC_GPIO_ENABLE_W1TS_V)<<(RTC_GPIO_ENABLE_W1TS_S)) -#define RTC_GPIO_ENABLE_W1TS_V 0x3FFFF -#define RTC_GPIO_ENABLE_W1TS_S 14 - -#define RTC_GPIO_ENABLE_W1TC_REG (DR_REG_RTCIO_BASE + 0x14) -/* RTC_GPIO_ENABLE_W1TC : WO ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 output enable write 1 to clear*/ -#define RTC_GPIO_ENABLE_W1TC 0x0003FFFF -#define RTC_GPIO_ENABLE_W1TC_M ((RTC_GPIO_ENABLE_W1TC_V)<<(RTC_GPIO_ENABLE_W1TC_S)) -#define RTC_GPIO_ENABLE_W1TC_V 0x3FFFF -#define RTC_GPIO_ENABLE_W1TC_S 14 - -#define RTC_GPIO_STATUS_REG (DR_REG_RTCIO_BASE + 0x18) -/* RTC_GPIO_STATUS_INT : R/W ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 interrupt status*/ -#define RTC_GPIO_STATUS_INT 0x0003FFFF -#define RTC_GPIO_STATUS_INT_M ((RTC_GPIO_STATUS_INT_V)<<(RTC_GPIO_STATUS_INT_S)) -#define RTC_GPIO_STATUS_INT_V 0x3FFFF -#define RTC_GPIO_STATUS_INT_S 14 - -#define RTC_GPIO_STATUS_W1TS_REG (DR_REG_RTCIO_BASE + 0x1c) -/* RTC_GPIO_STATUS_INT_W1TS : WO ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 interrupt status write 1 to set*/ -#define RTC_GPIO_STATUS_INT_W1TS 0x0003FFFF -#define RTC_GPIO_STATUS_INT_W1TS_M ((RTC_GPIO_STATUS_INT_W1TS_V)<<(RTC_GPIO_STATUS_INT_W1TS_S)) -#define RTC_GPIO_STATUS_INT_W1TS_V 0x3FFFF -#define RTC_GPIO_STATUS_INT_W1TS_S 14 - -#define RTC_GPIO_STATUS_W1TC_REG (DR_REG_RTCIO_BASE + 0x20) -/* RTC_GPIO_STATUS_INT_W1TC : WO ;bitpos:[31:14] ;default: 0 ; */ -/*description: GPIO0~17 interrupt status write 1 to clear*/ -#define RTC_GPIO_STATUS_INT_W1TC 0x0003FFFF -#define RTC_GPIO_STATUS_INT_W1TC_M ((RTC_GPIO_STATUS_INT_W1TC_V)<<(RTC_GPIO_STATUS_INT_W1TC_S)) -#define RTC_GPIO_STATUS_INT_W1TC_V 0x3FFFF -#define RTC_GPIO_STATUS_INT_W1TC_S 14 - -#define RTC_GPIO_IN_REG (DR_REG_RTCIO_BASE + 0x24) -/* RTC_GPIO_IN_NEXT : RO ;bitpos:[31:14] ;default: ; */ -/*description: GPIO0~17 input value*/ -#define RTC_GPIO_IN_NEXT 0x0003FFFF -#define RTC_GPIO_IN_NEXT_M ((RTC_GPIO_IN_NEXT_V)<<(RTC_GPIO_IN_NEXT_S)) -#define RTC_GPIO_IN_NEXT_V 0x3FFFF -#define RTC_GPIO_IN_NEXT_S 14 - -#define RTC_GPIO_PIN0_REG (DR_REG_RTCIO_BASE + 0x28) -/* RTC_GPIO_PIN0_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN0_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN0_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN0_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN0_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN0_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN0_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN0_INT_TYPE_M ((RTC_GPIO_PIN0_INT_TYPE_V)<<(RTC_GPIO_PIN0_INT_TYPE_S)) -#define RTC_GPIO_PIN0_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN0_INT_TYPE_S 7 -/* RTC_GPIO_PIN0_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN0_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN0_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN0_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN0_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN1_REG (DR_REG_RTCIO_BASE + 0x2c) -/* RTC_GPIO_PIN1_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN1_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN1_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN1_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN1_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN1_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN1_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN1_INT_TYPE_M ((RTC_GPIO_PIN1_INT_TYPE_V)<<(RTC_GPIO_PIN1_INT_TYPE_S)) -#define RTC_GPIO_PIN1_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN1_INT_TYPE_S 7 -/* RTC_GPIO_PIN1_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN1_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN1_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN1_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN1_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN2_REG (DR_REG_RTCIO_BASE + 0x30) -/* RTC_GPIO_PIN2_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN2_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN2_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN2_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN2_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN2_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN2_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN2_INT_TYPE_M ((RTC_GPIO_PIN2_INT_TYPE_V)<<(RTC_GPIO_PIN2_INT_TYPE_S)) -#define RTC_GPIO_PIN2_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN2_INT_TYPE_S 7 -/* RTC_GPIO_PIN2_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN2_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN2_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN2_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN2_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN3_REG (DR_REG_RTCIO_BASE + 0x34) -/* RTC_GPIO_PIN3_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN3_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN3_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN3_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN3_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN3_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN3_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN3_INT_TYPE_M ((RTC_GPIO_PIN3_INT_TYPE_V)<<(RTC_GPIO_PIN3_INT_TYPE_S)) -#define RTC_GPIO_PIN3_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN3_INT_TYPE_S 7 -/* RTC_GPIO_PIN3_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN3_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN3_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN3_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN3_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN4_REG (DR_REG_RTCIO_BASE + 0x38) -/* RTC_GPIO_PIN4_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN4_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN4_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN4_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN4_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN4_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN4_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN4_INT_TYPE_M ((RTC_GPIO_PIN4_INT_TYPE_V)<<(RTC_GPIO_PIN4_INT_TYPE_S)) -#define RTC_GPIO_PIN4_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN4_INT_TYPE_S 7 -/* RTC_GPIO_PIN4_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN4_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN4_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN4_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN4_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN5_REG (DR_REG_RTCIO_BASE + 0x3c) -/* RTC_GPIO_PIN5_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN5_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN5_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN5_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN5_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN5_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN5_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN5_INT_TYPE_M ((RTC_GPIO_PIN5_INT_TYPE_V)<<(RTC_GPIO_PIN5_INT_TYPE_S)) -#define RTC_GPIO_PIN5_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN5_INT_TYPE_S 7 -/* RTC_GPIO_PIN5_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN5_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN5_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN5_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN5_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN6_REG (DR_REG_RTCIO_BASE + 0x40) -/* RTC_GPIO_PIN6_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN6_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN6_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN6_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN6_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN6_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN6_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN6_INT_TYPE_M ((RTC_GPIO_PIN6_INT_TYPE_V)<<(RTC_GPIO_PIN6_INT_TYPE_S)) -#define RTC_GPIO_PIN6_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN6_INT_TYPE_S 7 -/* RTC_GPIO_PIN6_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN6_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN6_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN6_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN6_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN7_REG (DR_REG_RTCIO_BASE + 0x44) -/* RTC_GPIO_PIN7_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN7_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN7_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN7_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN7_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN7_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN7_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN7_INT_TYPE_M ((RTC_GPIO_PIN7_INT_TYPE_V)<<(RTC_GPIO_PIN7_INT_TYPE_S)) -#define RTC_GPIO_PIN7_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN7_INT_TYPE_S 7 -/* RTC_GPIO_PIN7_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN7_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN7_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN7_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN7_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN8_REG (DR_REG_RTCIO_BASE + 0x48) -/* RTC_GPIO_PIN8_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN8_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN8_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN8_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN8_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN8_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN8_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN8_INT_TYPE_M ((RTC_GPIO_PIN8_INT_TYPE_V)<<(RTC_GPIO_PIN8_INT_TYPE_S)) -#define RTC_GPIO_PIN8_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN8_INT_TYPE_S 7 -/* RTC_GPIO_PIN8_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN8_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN8_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN8_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN8_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN9_REG (DR_REG_RTCIO_BASE + 0x4c) -/* RTC_GPIO_PIN9_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN9_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN9_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN9_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN9_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN9_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN9_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN9_INT_TYPE_M ((RTC_GPIO_PIN9_INT_TYPE_V)<<(RTC_GPIO_PIN9_INT_TYPE_S)) -#define RTC_GPIO_PIN9_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN9_INT_TYPE_S 7 -/* RTC_GPIO_PIN9_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN9_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN9_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN9_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN9_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN10_REG (DR_REG_RTCIO_BASE + 0x50) -/* RTC_GPIO_PIN10_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN10_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN10_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN10_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN10_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN10_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN10_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN10_INT_TYPE_M ((RTC_GPIO_PIN10_INT_TYPE_V)<<(RTC_GPIO_PIN10_INT_TYPE_S)) -#define RTC_GPIO_PIN10_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN10_INT_TYPE_S 7 -/* RTC_GPIO_PIN10_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN10_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN10_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN10_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN10_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN11_REG (DR_REG_RTCIO_BASE + 0x54) -/* RTC_GPIO_PIN11_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN11_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN11_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN11_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN11_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN11_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN11_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN11_INT_TYPE_M ((RTC_GPIO_PIN11_INT_TYPE_V)<<(RTC_GPIO_PIN11_INT_TYPE_S)) -#define RTC_GPIO_PIN11_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN11_INT_TYPE_S 7 -/* RTC_GPIO_PIN11_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN11_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN11_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN11_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN11_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN12_REG (DR_REG_RTCIO_BASE + 0x58) -/* RTC_GPIO_PIN12_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN12_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN12_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN12_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN12_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN12_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN12_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN12_INT_TYPE_M ((RTC_GPIO_PIN12_INT_TYPE_V)<<(RTC_GPIO_PIN12_INT_TYPE_S)) -#define RTC_GPIO_PIN12_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN12_INT_TYPE_S 7 -/* RTC_GPIO_PIN12_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN12_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN12_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN12_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN12_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN13_REG (DR_REG_RTCIO_BASE + 0x5c) -/* RTC_GPIO_PIN13_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN13_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN13_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN13_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN13_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN13_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN13_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN13_INT_TYPE_M ((RTC_GPIO_PIN13_INT_TYPE_V)<<(RTC_GPIO_PIN13_INT_TYPE_S)) -#define RTC_GPIO_PIN13_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN13_INT_TYPE_S 7 -/* RTC_GPIO_PIN13_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN13_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN13_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN13_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN13_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN14_REG (DR_REG_RTCIO_BASE + 0x60) -/* RTC_GPIO_PIN14_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN14_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN14_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN14_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN14_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN14_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN14_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN14_INT_TYPE_M ((RTC_GPIO_PIN14_INT_TYPE_V)<<(RTC_GPIO_PIN14_INT_TYPE_S)) -#define RTC_GPIO_PIN14_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN14_INT_TYPE_S 7 -/* RTC_GPIO_PIN14_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN14_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN14_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN14_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN14_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN15_REG (DR_REG_RTCIO_BASE + 0x64) -/* RTC_GPIO_PIN15_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN15_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN15_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN15_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN15_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN15_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN15_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN15_INT_TYPE_M ((RTC_GPIO_PIN15_INT_TYPE_V)<<(RTC_GPIO_PIN15_INT_TYPE_S)) -#define RTC_GPIO_PIN15_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN15_INT_TYPE_S 7 -/* RTC_GPIO_PIN15_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN15_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN15_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN15_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN15_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN16_REG (DR_REG_RTCIO_BASE + 0x68) -/* RTC_GPIO_PIN16_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN16_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN16_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN16_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN16_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN16_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN16_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN16_INT_TYPE_M ((RTC_GPIO_PIN16_INT_TYPE_V)<<(RTC_GPIO_PIN16_INT_TYPE_S)) -#define RTC_GPIO_PIN16_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN16_INT_TYPE_S 7 -/* RTC_GPIO_PIN16_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN16_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN16_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN16_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN16_PAD_DRIVER_S 2 - -#define RTC_GPIO_PIN17_REG (DR_REG_RTCIO_BASE + 0x6c) -/* RTC_GPIO_PIN17_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ -/*description: GPIO wake up enable only available in light sleep*/ -#define RTC_GPIO_PIN17_WAKEUP_ENABLE (BIT(10)) -#define RTC_GPIO_PIN17_WAKEUP_ENABLE_M (BIT(10)) -#define RTC_GPIO_PIN17_WAKEUP_ENABLE_V 0x1 -#define RTC_GPIO_PIN17_WAKEUP_ENABLE_S 10 -/* RTC_GPIO_PIN17_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ -/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge - trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ -#define RTC_GPIO_PIN17_INT_TYPE 0x00000007 -#define RTC_GPIO_PIN17_INT_TYPE_M ((RTC_GPIO_PIN17_INT_TYPE_V)<<(RTC_GPIO_PIN17_INT_TYPE_S)) -#define RTC_GPIO_PIN17_INT_TYPE_V 0x7 -#define RTC_GPIO_PIN17_INT_TYPE_S 7 -/* RTC_GPIO_PIN17_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ -/*description: if set to 0: normal output if set to 1: open drain*/ -#define RTC_GPIO_PIN17_PAD_DRIVER (BIT(2)) -#define RTC_GPIO_PIN17_PAD_DRIVER_M (BIT(2)) -#define RTC_GPIO_PIN17_PAD_DRIVER_V 0x1 -#define RTC_GPIO_PIN17_PAD_DRIVER_S 2 - -#define RTC_IO_RTC_DEBUG_SEL_REG (DR_REG_RTCIO_BASE + 0x70) -/* RTC_IO_DEBUG_12M_NO_GATING : R/W ;bitpos:[25] ;default: 1'd0 ; */ -/*description: */ -#define RTC_IO_DEBUG_12M_NO_GATING (BIT(25)) -#define RTC_IO_DEBUG_12M_NO_GATING_M (BIT(25)) -#define RTC_IO_DEBUG_12M_NO_GATING_V 0x1 -#define RTC_IO_DEBUG_12M_NO_GATING_S 25 -/* RTC_IO_DEBUG_SEL4 : R/W ;bitpos:[24:20] ;default: 5'd0 ; */ -/*description: */ -#define RTC_IO_DEBUG_SEL4 0x0000001F -#define RTC_IO_DEBUG_SEL4_M ((RTC_IO_DEBUG_SEL4_V)<<(RTC_IO_DEBUG_SEL4_S)) -#define RTC_IO_DEBUG_SEL4_V 0x1F -#define RTC_IO_DEBUG_SEL4_S 20 -/* RTC_IO_DEBUG_SEL3 : R/W ;bitpos:[19:15] ;default: 5'd0 ; */ -/*description: */ -#define RTC_IO_DEBUG_SEL3 0x0000001F -#define RTC_IO_DEBUG_SEL3_M ((RTC_IO_DEBUG_SEL3_V)<<(RTC_IO_DEBUG_SEL3_S)) -#define RTC_IO_DEBUG_SEL3_V 0x1F -#define RTC_IO_DEBUG_SEL3_S 15 -/* RTC_IO_DEBUG_SEL2 : R/W ;bitpos:[14:10] ;default: 5'd0 ; */ -/*description: */ -#define RTC_IO_DEBUG_SEL2 0x0000001F -#define RTC_IO_DEBUG_SEL2_M ((RTC_IO_DEBUG_SEL2_V)<<(RTC_IO_DEBUG_SEL2_S)) -#define RTC_IO_DEBUG_SEL2_V 0x1F -#define RTC_IO_DEBUG_SEL2_S 10 -/* RTC_IO_DEBUG_SEL1 : R/W ;bitpos:[9:5] ;default: 5'd0 ; */ -/*description: */ -#define RTC_IO_DEBUG_SEL1 0x0000001F -#define RTC_IO_DEBUG_SEL1_M ((RTC_IO_DEBUG_SEL1_V)<<(RTC_IO_DEBUG_SEL1_S)) -#define RTC_IO_DEBUG_SEL1_V 0x1F -#define RTC_IO_DEBUG_SEL1_S 5 -/* RTC_IO_DEBUG_SEL0 : R/W ;bitpos:[4:0] ;default: 5'd0 ; */ -/*description: */ -#define RTC_IO_DEBUG_SEL0 0x0000001F -#define RTC_IO_DEBUG_SEL0_M ((RTC_IO_DEBUG_SEL0_V)<<(RTC_IO_DEBUG_SEL0_S)) -#define RTC_IO_DEBUG_SEL0_V 0x1F -#define RTC_IO_DEBUG_SEL0_S 0 - -#define RTC_IO_DIG_PAD_HOLD_REG (DR_REG_RTCIO_BASE + 0x74) -/* RTC_IO_DIG_PAD_HOLD : R/W ;bitpos:[31:0] ;default: 1'd0 ; */ -/*description: select the digital pad hold value.*/ -#define RTC_IO_DIG_PAD_HOLD 0xFFFFFFFF -#define RTC_IO_DIG_PAD_HOLD_M ((RTC_IO_DIG_PAD_HOLD_V)<<(RTC_IO_DIG_PAD_HOLD_S)) -#define RTC_IO_DIG_PAD_HOLD_V 0xFFFFFFFF -#define RTC_IO_DIG_PAD_HOLD_S 0 - -#define RTC_IO_HALL_SENS_REG (DR_REG_RTCIO_BASE + 0x78) -/* RTC_IO_XPD_HALL : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: Power on hall sensor and connect to VP and VN*/ -#define RTC_IO_XPD_HALL (BIT(31)) -#define RTC_IO_XPD_HALL_M (BIT(31)) -#define RTC_IO_XPD_HALL_V 0x1 -#define RTC_IO_XPD_HALL_S 31 -/* RTC_IO_HALL_PHASE : R/W ;bitpos:[30] ;default: 1'd0 ; */ -/*description: Reverse phase of hall sensor*/ -#define RTC_IO_HALL_PHASE (BIT(30)) -#define RTC_IO_HALL_PHASE_M (BIT(30)) -#define RTC_IO_HALL_PHASE_V 0x1 -#define RTC_IO_HALL_PHASE_S 30 - -#define RTC_IO_SENSOR_PADS_REG (DR_REG_RTCIO_BASE + 0x7c) -/* RTC_IO_SENSE1_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_SENSE1_HOLD (BIT(31)) -#define RTC_IO_SENSE1_HOLD_M (BIT(31)) -#define RTC_IO_SENSE1_HOLD_V 0x1 -#define RTC_IO_SENSE1_HOLD_S 31 -/* RTC_IO_SENSE2_HOLD : R/W ;bitpos:[30] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_SENSE2_HOLD (BIT(30)) -#define RTC_IO_SENSE2_HOLD_M (BIT(30)) -#define RTC_IO_SENSE2_HOLD_V 0x1 -#define RTC_IO_SENSE2_HOLD_S 30 -/* RTC_IO_SENSE3_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_SENSE3_HOLD (BIT(29)) -#define RTC_IO_SENSE3_HOLD_M (BIT(29)) -#define RTC_IO_SENSE3_HOLD_V 0x1 -#define RTC_IO_SENSE3_HOLD_S 29 -/* RTC_IO_SENSE4_HOLD : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_SENSE4_HOLD (BIT(28)) -#define RTC_IO_SENSE4_HOLD_M (BIT(28)) -#define RTC_IO_SENSE4_HOLD_V 0x1 -#define RTC_IO_SENSE4_HOLD_S 28 -/* RTC_IO_SENSE1_MUX_SEL : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_SENSE1_MUX_SEL (BIT(27)) -#define RTC_IO_SENSE1_MUX_SEL_M (BIT(27)) -#define RTC_IO_SENSE1_MUX_SEL_V 0x1 -#define RTC_IO_SENSE1_MUX_SEL_S 27 -/* RTC_IO_SENSE2_MUX_SEL : R/W ;bitpos:[26] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_SENSE2_MUX_SEL (BIT(26)) -#define RTC_IO_SENSE2_MUX_SEL_M (BIT(26)) -#define RTC_IO_SENSE2_MUX_SEL_V 0x1 -#define RTC_IO_SENSE2_MUX_SEL_S 26 -/* RTC_IO_SENSE3_MUX_SEL : R/W ;bitpos:[25] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_SENSE3_MUX_SEL (BIT(25)) -#define RTC_IO_SENSE3_MUX_SEL_M (BIT(25)) -#define RTC_IO_SENSE3_MUX_SEL_V 0x1 -#define RTC_IO_SENSE3_MUX_SEL_S 25 -/* RTC_IO_SENSE4_MUX_SEL : R/W ;bitpos:[24] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_SENSE4_MUX_SEL (BIT(24)) -#define RTC_IO_SENSE4_MUX_SEL_M (BIT(24)) -#define RTC_IO_SENSE4_MUX_SEL_V 0x1 -#define RTC_IO_SENSE4_MUX_SEL_S 24 -/* RTC_IO_SENSE1_FUN_SEL : R/W ;bitpos:[23:22] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_SENSE1_FUN_SEL 0x00000003 -#define RTC_IO_SENSE1_FUN_SEL_M ((RTC_IO_SENSE1_FUN_SEL_V)<<(RTC_IO_SENSE1_FUN_SEL_S)) -#define RTC_IO_SENSE1_FUN_SEL_V 0x3 -#define RTC_IO_SENSE1_FUN_SEL_S 22 -/* RTC_IO_SENSE1_SLP_SEL : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_SENSE1_SLP_SEL (BIT(21)) -#define RTC_IO_SENSE1_SLP_SEL_M (BIT(21)) -#define RTC_IO_SENSE1_SLP_SEL_V 0x1 -#define RTC_IO_SENSE1_SLP_SEL_S 21 -/* RTC_IO_SENSE1_SLP_IE : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_SENSE1_SLP_IE (BIT(20)) -#define RTC_IO_SENSE1_SLP_IE_M (BIT(20)) -#define RTC_IO_SENSE1_SLP_IE_V 0x1 -#define RTC_IO_SENSE1_SLP_IE_S 20 -/* RTC_IO_SENSE1_FUN_IE : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_SENSE1_FUN_IE (BIT(19)) -#define RTC_IO_SENSE1_FUN_IE_M (BIT(19)) -#define RTC_IO_SENSE1_FUN_IE_V 0x1 -#define RTC_IO_SENSE1_FUN_IE_S 19 -/* RTC_IO_SENSE2_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_SENSE2_FUN_SEL 0x00000003 -#define RTC_IO_SENSE2_FUN_SEL_M ((RTC_IO_SENSE2_FUN_SEL_V)<<(RTC_IO_SENSE2_FUN_SEL_S)) -#define RTC_IO_SENSE2_FUN_SEL_V 0x3 -#define RTC_IO_SENSE2_FUN_SEL_S 17 -/* RTC_IO_SENSE2_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_SENSE2_SLP_SEL (BIT(16)) -#define RTC_IO_SENSE2_SLP_SEL_M (BIT(16)) -#define RTC_IO_SENSE2_SLP_SEL_V 0x1 -#define RTC_IO_SENSE2_SLP_SEL_S 16 -/* RTC_IO_SENSE2_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_SENSE2_SLP_IE (BIT(15)) -#define RTC_IO_SENSE2_SLP_IE_M (BIT(15)) -#define RTC_IO_SENSE2_SLP_IE_V 0x1 -#define RTC_IO_SENSE2_SLP_IE_S 15 -/* RTC_IO_SENSE2_FUN_IE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_SENSE2_FUN_IE (BIT(14)) -#define RTC_IO_SENSE2_FUN_IE_M (BIT(14)) -#define RTC_IO_SENSE2_FUN_IE_V 0x1 -#define RTC_IO_SENSE2_FUN_IE_S 14 -/* RTC_IO_SENSE3_FUN_SEL : R/W ;bitpos:[13:12] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_SENSE3_FUN_SEL 0x00000003 -#define RTC_IO_SENSE3_FUN_SEL_M ((RTC_IO_SENSE3_FUN_SEL_V)<<(RTC_IO_SENSE3_FUN_SEL_S)) -#define RTC_IO_SENSE3_FUN_SEL_V 0x3 -#define RTC_IO_SENSE3_FUN_SEL_S 12 -/* RTC_IO_SENSE3_SLP_SEL : R/W ;bitpos:[11] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_SENSE3_SLP_SEL (BIT(11)) -#define RTC_IO_SENSE3_SLP_SEL_M (BIT(11)) -#define RTC_IO_SENSE3_SLP_SEL_V 0x1 -#define RTC_IO_SENSE3_SLP_SEL_S 11 -/* RTC_IO_SENSE3_SLP_IE : R/W ;bitpos:[10] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_SENSE3_SLP_IE (BIT(10)) -#define RTC_IO_SENSE3_SLP_IE_M (BIT(10)) -#define RTC_IO_SENSE3_SLP_IE_V 0x1 -#define RTC_IO_SENSE3_SLP_IE_S 10 -/* RTC_IO_SENSE3_FUN_IE : R/W ;bitpos:[9] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_SENSE3_FUN_IE (BIT(9)) -#define RTC_IO_SENSE3_FUN_IE_M (BIT(9)) -#define RTC_IO_SENSE3_FUN_IE_V 0x1 -#define RTC_IO_SENSE3_FUN_IE_S 9 -/* RTC_IO_SENSE4_FUN_SEL : R/W ;bitpos:[8:7] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_SENSE4_FUN_SEL 0x00000003 -#define RTC_IO_SENSE4_FUN_SEL_M ((RTC_IO_SENSE4_FUN_SEL_V)<<(RTC_IO_SENSE4_FUN_SEL_S)) -#define RTC_IO_SENSE4_FUN_SEL_V 0x3 -#define RTC_IO_SENSE4_FUN_SEL_S 7 -/* RTC_IO_SENSE4_SLP_SEL : R/W ;bitpos:[6] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_SENSE4_SLP_SEL (BIT(6)) -#define RTC_IO_SENSE4_SLP_SEL_M (BIT(6)) -#define RTC_IO_SENSE4_SLP_SEL_V 0x1 -#define RTC_IO_SENSE4_SLP_SEL_S 6 -/* RTC_IO_SENSE4_SLP_IE : R/W ;bitpos:[5] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_SENSE4_SLP_IE (BIT(5)) -#define RTC_IO_SENSE4_SLP_IE_M (BIT(5)) -#define RTC_IO_SENSE4_SLP_IE_V 0x1 -#define RTC_IO_SENSE4_SLP_IE_S 5 -/* RTC_IO_SENSE4_FUN_IE : R/W ;bitpos:[4] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_SENSE4_FUN_IE (BIT(4)) -#define RTC_IO_SENSE4_FUN_IE_M (BIT(4)) -#define RTC_IO_SENSE4_FUN_IE_V 0x1 -#define RTC_IO_SENSE4_FUN_IE_S 4 - -#define RTC_IO_ADC_PAD_REG (DR_REG_RTCIO_BASE + 0x80) -/* RTC_IO_ADC1_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_ADC1_HOLD (BIT(31)) -#define RTC_IO_ADC1_HOLD_M (BIT(31)) -#define RTC_IO_ADC1_HOLD_V 0x1 -#define RTC_IO_ADC1_HOLD_S 31 -/* RTC_IO_ADC2_HOLD : R/W ;bitpos:[30] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_ADC2_HOLD (BIT(30)) -#define RTC_IO_ADC2_HOLD_M (BIT(30)) -#define RTC_IO_ADC2_HOLD_V 0x1 -#define RTC_IO_ADC2_HOLD_S 30 -/* RTC_IO_ADC1_MUX_SEL : R/W ;bitpos:[29] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_ADC1_MUX_SEL (BIT(29)) -#define RTC_IO_ADC1_MUX_SEL_M (BIT(29)) -#define RTC_IO_ADC1_MUX_SEL_V 0x1 -#define RTC_IO_ADC1_MUX_SEL_S 29 -/* RTC_IO_ADC2_MUX_SEL : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_ADC2_MUX_SEL (BIT(28)) -#define RTC_IO_ADC2_MUX_SEL_M (BIT(28)) -#define RTC_IO_ADC2_MUX_SEL_V 0x1 -#define RTC_IO_ADC2_MUX_SEL_S 28 -/* RTC_IO_ADC1_FUN_SEL : R/W ;bitpos:[27:26] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_ADC1_FUN_SEL 0x00000003 -#define RTC_IO_ADC1_FUN_SEL_M ((RTC_IO_ADC1_FUN_SEL_V)<<(RTC_IO_ADC1_FUN_SEL_S)) -#define RTC_IO_ADC1_FUN_SEL_V 0x3 -#define RTC_IO_ADC1_FUN_SEL_S 26 -/* RTC_IO_ADC1_SLP_SEL : R/W ;bitpos:[25] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_ADC1_SLP_SEL (BIT(25)) -#define RTC_IO_ADC1_SLP_SEL_M (BIT(25)) -#define RTC_IO_ADC1_SLP_SEL_V 0x1 -#define RTC_IO_ADC1_SLP_SEL_S 25 -/* RTC_IO_ADC1_SLP_IE : R/W ;bitpos:[24] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_ADC1_SLP_IE (BIT(24)) -#define RTC_IO_ADC1_SLP_IE_M (BIT(24)) -#define RTC_IO_ADC1_SLP_IE_V 0x1 -#define RTC_IO_ADC1_SLP_IE_S 24 -/* RTC_IO_ADC1_FUN_IE : R/W ;bitpos:[23] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_ADC1_FUN_IE (BIT(23)) -#define RTC_IO_ADC1_FUN_IE_M (BIT(23)) -#define RTC_IO_ADC1_FUN_IE_V 0x1 -#define RTC_IO_ADC1_FUN_IE_S 23 -/* RTC_IO_ADC2_FUN_SEL : R/W ;bitpos:[22:21] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_ADC2_FUN_SEL 0x00000003 -#define RTC_IO_ADC2_FUN_SEL_M ((RTC_IO_ADC2_FUN_SEL_V)<<(RTC_IO_ADC2_FUN_SEL_S)) -#define RTC_IO_ADC2_FUN_SEL_V 0x3 -#define RTC_IO_ADC2_FUN_SEL_S 21 -/* RTC_IO_ADC2_SLP_SEL : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_ADC2_SLP_SEL (BIT(20)) -#define RTC_IO_ADC2_SLP_SEL_M (BIT(20)) -#define RTC_IO_ADC2_SLP_SEL_V 0x1 -#define RTC_IO_ADC2_SLP_SEL_S 20 -/* RTC_IO_ADC2_SLP_IE : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_ADC2_SLP_IE (BIT(19)) -#define RTC_IO_ADC2_SLP_IE_M (BIT(19)) -#define RTC_IO_ADC2_SLP_IE_V 0x1 -#define RTC_IO_ADC2_SLP_IE_S 19 -/* RTC_IO_ADC2_FUN_IE : R/W ;bitpos:[18] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_ADC2_FUN_IE (BIT(18)) -#define RTC_IO_ADC2_FUN_IE_M (BIT(18)) -#define RTC_IO_ADC2_FUN_IE_V 0x1 -#define RTC_IO_ADC2_FUN_IE_S 18 - -#define RTC_IO_PAD_DAC1_REG (DR_REG_RTCIO_BASE + 0x84) -/* RTC_IO_PDAC1_DRV : R/W ;bitpos:[31:30] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_PDAC1_DRV 0x00000003 -#define RTC_IO_PDAC1_DRV_M ((RTC_IO_PDAC1_DRV_V)<<(RTC_IO_PDAC1_DRV_S)) -#define RTC_IO_PDAC1_DRV_V 0x3 -#define RTC_IO_PDAC1_DRV_S 30 -/* RTC_IO_PDAC1_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_PDAC1_HOLD (BIT(29)) -#define RTC_IO_PDAC1_HOLD_M (BIT(29)) -#define RTC_IO_PDAC1_HOLD_V 0x1 -#define RTC_IO_PDAC1_HOLD_S 29 -/* RTC_IO_PDAC1_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_PDAC1_RDE (BIT(28)) -#define RTC_IO_PDAC1_RDE_M (BIT(28)) -#define RTC_IO_PDAC1_RDE_V 0x1 -#define RTC_IO_PDAC1_RDE_S 28 -/* RTC_IO_PDAC1_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_PDAC1_RUE (BIT(27)) -#define RTC_IO_PDAC1_RUE_M (BIT(27)) -#define RTC_IO_PDAC1_RUE_V 0x1 -#define RTC_IO_PDAC1_RUE_S 27 -/* RTC_IO_PDAC1_DAC : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ -/*description: PAD DAC1 control code.*/ -#define RTC_IO_PDAC1_DAC 0x000000FF -#define RTC_IO_PDAC1_DAC_M ((RTC_IO_PDAC1_DAC_V)<<(RTC_IO_PDAC1_DAC_S)) -#define RTC_IO_PDAC1_DAC_V 0xFF -#define RTC_IO_PDAC1_DAC_S 19 -/* RTC_IO_PDAC1_XPD_DAC : R/W ;bitpos:[18] ;default: 1'd0 ; */ -/*description: Power on DAC1. Usually we need to tristate PDAC1 if we power - on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ -#define RTC_IO_PDAC1_XPD_DAC (BIT(18)) -#define RTC_IO_PDAC1_XPD_DAC_M (BIT(18)) -#define RTC_IO_PDAC1_XPD_DAC_V 0x1 -#define RTC_IO_PDAC1_XPD_DAC_S 18 -/* RTC_IO_PDAC1_MUX_SEL : R/W ;bitpos:[17] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_PDAC1_MUX_SEL (BIT(17)) -#define RTC_IO_PDAC1_MUX_SEL_M (BIT(17)) -#define RTC_IO_PDAC1_MUX_SEL_V 0x1 -#define RTC_IO_PDAC1_MUX_SEL_S 17 -/* RTC_IO_PDAC1_FUN_SEL : R/W ;bitpos:[16:15] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_PDAC1_FUN_SEL 0x00000003 -#define RTC_IO_PDAC1_FUN_SEL_M ((RTC_IO_PDAC1_FUN_SEL_V)<<(RTC_IO_PDAC1_FUN_SEL_S)) -#define RTC_IO_PDAC1_FUN_SEL_V 0x3 -#define RTC_IO_PDAC1_FUN_SEL_S 15 -/* RTC_IO_PDAC1_SLP_SEL : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_PDAC1_SLP_SEL (BIT(14)) -#define RTC_IO_PDAC1_SLP_SEL_M (BIT(14)) -#define RTC_IO_PDAC1_SLP_SEL_V 0x1 -#define RTC_IO_PDAC1_SLP_SEL_S 14 -/* RTC_IO_PDAC1_SLP_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_PDAC1_SLP_IE (BIT(13)) -#define RTC_IO_PDAC1_SLP_IE_M (BIT(13)) -#define RTC_IO_PDAC1_SLP_IE_V 0x1 -#define RTC_IO_PDAC1_SLP_IE_S 13 -/* RTC_IO_PDAC1_SLP_OE : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_PDAC1_SLP_OE (BIT(12)) -#define RTC_IO_PDAC1_SLP_OE_M (BIT(12)) -#define RTC_IO_PDAC1_SLP_OE_V 0x1 -#define RTC_IO_PDAC1_SLP_OE_S 12 -/* RTC_IO_PDAC1_FUN_IE : R/W ;bitpos:[11] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_PDAC1_FUN_IE (BIT(11)) -#define RTC_IO_PDAC1_FUN_IE_M (BIT(11)) -#define RTC_IO_PDAC1_FUN_IE_V 0x1 -#define RTC_IO_PDAC1_FUN_IE_S 11 -/* RTC_IO_PDAC1_DAC_XPD_FORCE : R/W ;bitpos:[10] ;default: 1'd0 ; */ -/*description: Power on DAC1. Usually we need to tristate PDAC1 if we power - on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ -#define RTC_IO_PDAC1_DAC_XPD_FORCE (BIT(10)) -#define RTC_IO_PDAC1_DAC_XPD_FORCE_M (BIT(10)) -#define RTC_IO_PDAC1_DAC_XPD_FORCE_V 0x1 -#define RTC_IO_PDAC1_DAC_XPD_FORCE_S 10 - -#define RTC_IO_PAD_DAC2_REG (DR_REG_RTCIO_BASE + 0x88) -/* RTC_IO_PDAC2_DRV : R/W ;bitpos:[31:30] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_PDAC2_DRV 0x00000003 -#define RTC_IO_PDAC2_DRV_M ((RTC_IO_PDAC2_DRV_V)<<(RTC_IO_PDAC2_DRV_S)) -#define RTC_IO_PDAC2_DRV_V 0x3 -#define RTC_IO_PDAC2_DRV_S 30 -/* RTC_IO_PDAC2_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_PDAC2_HOLD (BIT(29)) -#define RTC_IO_PDAC2_HOLD_M (BIT(29)) -#define RTC_IO_PDAC2_HOLD_V 0x1 -#define RTC_IO_PDAC2_HOLD_S 29 -/* RTC_IO_PDAC2_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_PDAC2_RDE (BIT(28)) -#define RTC_IO_PDAC2_RDE_M (BIT(28)) -#define RTC_IO_PDAC2_RDE_V 0x1 -#define RTC_IO_PDAC2_RDE_S 28 -/* RTC_IO_PDAC2_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_PDAC2_RUE (BIT(27)) -#define RTC_IO_PDAC2_RUE_M (BIT(27)) -#define RTC_IO_PDAC2_RUE_V 0x1 -#define RTC_IO_PDAC2_RUE_S 27 -/* RTC_IO_PDAC2_DAC : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ -/*description: PAD DAC2 control code.*/ -#define RTC_IO_PDAC2_DAC 0x000000FF -#define RTC_IO_PDAC2_DAC_M ((RTC_IO_PDAC2_DAC_V)<<(RTC_IO_PDAC2_DAC_S)) -#define RTC_IO_PDAC2_DAC_V 0xFF -#define RTC_IO_PDAC2_DAC_S 19 -/* RTC_IO_PDAC2_XPD_DAC : R/W ;bitpos:[18] ;default: 1'd0 ; */ -/*description: Power on DAC2. Usually we need to tristate PDAC1 if we power - on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ -#define RTC_IO_PDAC2_XPD_DAC (BIT(18)) -#define RTC_IO_PDAC2_XPD_DAC_M (BIT(18)) -#define RTC_IO_PDAC2_XPD_DAC_V 0x1 -#define RTC_IO_PDAC2_XPD_DAC_S 18 -/* RTC_IO_PDAC2_MUX_SEL : R/W ;bitpos:[17] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_PDAC2_MUX_SEL (BIT(17)) -#define RTC_IO_PDAC2_MUX_SEL_M (BIT(17)) -#define RTC_IO_PDAC2_MUX_SEL_V 0x1 -#define RTC_IO_PDAC2_MUX_SEL_S 17 -/* RTC_IO_PDAC2_FUN_SEL : R/W ;bitpos:[16:15] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_PDAC2_FUN_SEL 0x00000003 -#define RTC_IO_PDAC2_FUN_SEL_M ((RTC_IO_PDAC2_FUN_SEL_V)<<(RTC_IO_PDAC2_FUN_SEL_S)) -#define RTC_IO_PDAC2_FUN_SEL_V 0x3 -#define RTC_IO_PDAC2_FUN_SEL_S 15 -/* RTC_IO_PDAC2_SLP_SEL : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_PDAC2_SLP_SEL (BIT(14)) -#define RTC_IO_PDAC2_SLP_SEL_M (BIT(14)) -#define RTC_IO_PDAC2_SLP_SEL_V 0x1 -#define RTC_IO_PDAC2_SLP_SEL_S 14 -/* RTC_IO_PDAC2_SLP_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_PDAC2_SLP_IE (BIT(13)) -#define RTC_IO_PDAC2_SLP_IE_M (BIT(13)) -#define RTC_IO_PDAC2_SLP_IE_V 0x1 -#define RTC_IO_PDAC2_SLP_IE_S 13 -/* RTC_IO_PDAC2_SLP_OE : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_PDAC2_SLP_OE (BIT(12)) -#define RTC_IO_PDAC2_SLP_OE_M (BIT(12)) -#define RTC_IO_PDAC2_SLP_OE_V 0x1 -#define RTC_IO_PDAC2_SLP_OE_S 12 -/* RTC_IO_PDAC2_FUN_IE : R/W ;bitpos:[11] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_PDAC2_FUN_IE (BIT(11)) -#define RTC_IO_PDAC2_FUN_IE_M (BIT(11)) -#define RTC_IO_PDAC2_FUN_IE_V 0x1 -#define RTC_IO_PDAC2_FUN_IE_S 11 -/* RTC_IO_PDAC2_DAC_XPD_FORCE : R/W ;bitpos:[10] ;default: 1'd0 ; */ -/*description: Power on DAC2. Usually we need to tristate PDAC2 if we power - on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ -#define RTC_IO_PDAC2_DAC_XPD_FORCE (BIT(10)) -#define RTC_IO_PDAC2_DAC_XPD_FORCE_M (BIT(10)) -#define RTC_IO_PDAC2_DAC_XPD_FORCE_V 0x1 -#define RTC_IO_PDAC2_DAC_XPD_FORCE_S 10 - -#define RTC_IO_XTAL_32K_PAD_REG (DR_REG_RTCIO_BASE + 0x8c) -/* RTC_IO_X32N_DRV : R/W ;bitpos:[31:30] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_X32N_DRV 0x00000003 -#define RTC_IO_X32N_DRV_M ((RTC_IO_X32N_DRV_V)<<(RTC_IO_X32N_DRV_S)) -#define RTC_IO_X32N_DRV_V 0x3 -#define RTC_IO_X32N_DRV_S 30 -/* RTC_IO_X32N_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_X32N_HOLD (BIT(29)) -#define RTC_IO_X32N_HOLD_M (BIT(29)) -#define RTC_IO_X32N_HOLD_V 0x1 -#define RTC_IO_X32N_HOLD_S 29 -/* RTC_IO_X32N_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_X32N_RDE (BIT(28)) -#define RTC_IO_X32N_RDE_M (BIT(28)) -#define RTC_IO_X32N_RDE_V 0x1 -#define RTC_IO_X32N_RDE_S 28 -/* RTC_IO_X32N_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_X32N_RUE (BIT(27)) -#define RTC_IO_X32N_RUE_M (BIT(27)) -#define RTC_IO_X32N_RUE_V 0x1 -#define RTC_IO_X32N_RUE_S 27 -/* RTC_IO_X32P_DRV : R/W ;bitpos:[26:25] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_X32P_DRV 0x00000003 -#define RTC_IO_X32P_DRV_M ((RTC_IO_X32P_DRV_V)<<(RTC_IO_X32P_DRV_S)) -#define RTC_IO_X32P_DRV_V 0x3 -#define RTC_IO_X32P_DRV_S 25 -/* RTC_IO_X32P_HOLD : R/W ;bitpos:[24] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_X32P_HOLD (BIT(24)) -#define RTC_IO_X32P_HOLD_M (BIT(24)) -#define RTC_IO_X32P_HOLD_V 0x1 -#define RTC_IO_X32P_HOLD_S 24 -/* RTC_IO_X32P_RDE : R/W ;bitpos:[23] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_X32P_RDE (BIT(23)) -#define RTC_IO_X32P_RDE_M (BIT(23)) -#define RTC_IO_X32P_RDE_V 0x1 -#define RTC_IO_X32P_RDE_S 23 -/* RTC_IO_X32P_RUE : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_X32P_RUE (BIT(22)) -#define RTC_IO_X32P_RUE_M (BIT(22)) -#define RTC_IO_X32P_RUE_V 0x1 -#define RTC_IO_X32P_RUE_S 22 -/* RTC_IO_DAC_XTAL_32K : R/W ;bitpos:[21:20] ;default: 2'b01 ; */ -/*description: 32K XTAL bias current DAC.*/ -#define RTC_IO_DAC_XTAL_32K 0x00000003 -#define RTC_IO_DAC_XTAL_32K_M ((RTC_IO_DAC_XTAL_32K_V)<<(RTC_IO_DAC_XTAL_32K_S)) -#define RTC_IO_DAC_XTAL_32K_V 0x3 -#define RTC_IO_DAC_XTAL_32K_S 20 -/* RTC_IO_XPD_XTAL_32K : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Power up 32kHz crystal oscillator*/ -#define RTC_IO_XPD_XTAL_32K (BIT(19)) -#define RTC_IO_XPD_XTAL_32K_M (BIT(19)) -#define RTC_IO_XPD_XTAL_32K_V 0x1 -#define RTC_IO_XPD_XTAL_32K_S 19 -/* RTC_IO_X32N_MUX_SEL : R/W ;bitpos:[18] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_X32N_MUX_SEL (BIT(18)) -#define RTC_IO_X32N_MUX_SEL_M (BIT(18)) -#define RTC_IO_X32N_MUX_SEL_V 0x1 -#define RTC_IO_X32N_MUX_SEL_S 18 -/* RTC_IO_X32P_MUX_SEL : R/W ;bitpos:[17] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_X32P_MUX_SEL (BIT(17)) -#define RTC_IO_X32P_MUX_SEL_M (BIT(17)) -#define RTC_IO_X32P_MUX_SEL_V 0x1 -#define RTC_IO_X32P_MUX_SEL_S 17 -/* RTC_IO_X32N_FUN_SEL : R/W ;bitpos:[16:15] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_X32N_FUN_SEL 0x00000003 -#define RTC_IO_X32N_FUN_SEL_M ((RTC_IO_X32N_FUN_SEL_V)<<(RTC_IO_X32N_FUN_SEL_S)) -#define RTC_IO_X32N_FUN_SEL_V 0x3 -#define RTC_IO_X32N_FUN_SEL_S 15 -/* RTC_IO_X32N_SLP_SEL : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_X32N_SLP_SEL (BIT(14)) -#define RTC_IO_X32N_SLP_SEL_M (BIT(14)) -#define RTC_IO_X32N_SLP_SEL_V 0x1 -#define RTC_IO_X32N_SLP_SEL_S 14 -/* RTC_IO_X32N_SLP_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_X32N_SLP_IE (BIT(13)) -#define RTC_IO_X32N_SLP_IE_M (BIT(13)) -#define RTC_IO_X32N_SLP_IE_V 0x1 -#define RTC_IO_X32N_SLP_IE_S 13 -/* RTC_IO_X32N_SLP_OE : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_X32N_SLP_OE (BIT(12)) -#define RTC_IO_X32N_SLP_OE_M (BIT(12)) -#define RTC_IO_X32N_SLP_OE_V 0x1 -#define RTC_IO_X32N_SLP_OE_S 12 -/* RTC_IO_X32N_FUN_IE : R/W ;bitpos:[11] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_X32N_FUN_IE (BIT(11)) -#define RTC_IO_X32N_FUN_IE_M (BIT(11)) -#define RTC_IO_X32N_FUN_IE_V 0x1 -#define RTC_IO_X32N_FUN_IE_S 11 -/* RTC_IO_X32P_FUN_SEL : R/W ;bitpos:[10:9] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_X32P_FUN_SEL 0x00000003 -#define RTC_IO_X32P_FUN_SEL_M ((RTC_IO_X32P_FUN_SEL_V)<<(RTC_IO_X32P_FUN_SEL_S)) -#define RTC_IO_X32P_FUN_SEL_V 0x3 -#define RTC_IO_X32P_FUN_SEL_S 9 -/* RTC_IO_X32P_SLP_SEL : R/W ;bitpos:[8] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_X32P_SLP_SEL (BIT(8)) -#define RTC_IO_X32P_SLP_SEL_M (BIT(8)) -#define RTC_IO_X32P_SLP_SEL_V 0x1 -#define RTC_IO_X32P_SLP_SEL_S 8 -/* RTC_IO_X32P_SLP_IE : R/W ;bitpos:[7] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_X32P_SLP_IE (BIT(7)) -#define RTC_IO_X32P_SLP_IE_M (BIT(7)) -#define RTC_IO_X32P_SLP_IE_V 0x1 -#define RTC_IO_X32P_SLP_IE_S 7 -/* RTC_IO_X32P_SLP_OE : R/W ;bitpos:[6] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_X32P_SLP_OE (BIT(6)) -#define RTC_IO_X32P_SLP_OE_M (BIT(6)) -#define RTC_IO_X32P_SLP_OE_V 0x1 -#define RTC_IO_X32P_SLP_OE_S 6 -/* RTC_IO_X32P_FUN_IE : R/W ;bitpos:[5] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_X32P_FUN_IE (BIT(5)) -#define RTC_IO_X32P_FUN_IE_M (BIT(5)) -#define RTC_IO_X32P_FUN_IE_V 0x1 -#define RTC_IO_X32P_FUN_IE_S 5 -/* RTC_IO_DRES_XTAL_32K : R/W ;bitpos:[4:3] ;default: 2'b10 ; */ -/*description: 32K XTAL resistor bias control.*/ -#define RTC_IO_DRES_XTAL_32K 0x00000003 -#define RTC_IO_DRES_XTAL_32K_M ((RTC_IO_DRES_XTAL_32K_V)<<(RTC_IO_DRES_XTAL_32K_S)) -#define RTC_IO_DRES_XTAL_32K_V 0x3 -#define RTC_IO_DRES_XTAL_32K_S 3 -/* RTC_IO_DBIAS_XTAL_32K : R/W ;bitpos:[2:1] ;default: 2'b00 ; */ -/*description: 32K XTAL self-bias reference control.*/ -#define RTC_IO_DBIAS_XTAL_32K 0x00000003 -#define RTC_IO_DBIAS_XTAL_32K_M ((RTC_IO_DBIAS_XTAL_32K_V)<<(RTC_IO_DBIAS_XTAL_32K_S)) -#define RTC_IO_DBIAS_XTAL_32K_V 0x3 -#define RTC_IO_DBIAS_XTAL_32K_S 1 - -#define RTC_IO_TOUCH_CFG_REG (DR_REG_RTCIO_BASE + 0x90) -/* RTC_IO_TOUCH_XPD_BIAS : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: touch sensor bias power on.*/ -#define RTC_IO_TOUCH_XPD_BIAS (BIT(31)) -#define RTC_IO_TOUCH_XPD_BIAS_M (BIT(31)) -#define RTC_IO_TOUCH_XPD_BIAS_V 0x1 -#define RTC_IO_TOUCH_XPD_BIAS_S 31 -/* RTC_IO_TOUCH_DREFH : R/W ;bitpos:[30:29] ;default: 2'b11 ; */ -/*description: touch sensor saw wave top voltage.*/ -#define RTC_IO_TOUCH_DREFH 0x00000003 -#define RTC_IO_TOUCH_DREFH_M ((RTC_IO_TOUCH_DREFH_V)<<(RTC_IO_TOUCH_DREFH_S)) -#define RTC_IO_TOUCH_DREFH_V 0x3 -#define RTC_IO_TOUCH_DREFH_S 29 -/* RTC_IO_TOUCH_DREFL : R/W ;bitpos:[28:27] ;default: 2'b00 ; */ -/*description: touch sensor saw wave bottom voltage.*/ -#define RTC_IO_TOUCH_DREFL 0x00000003 -#define RTC_IO_TOUCH_DREFL_M ((RTC_IO_TOUCH_DREFL_V)<<(RTC_IO_TOUCH_DREFL_S)) -#define RTC_IO_TOUCH_DREFL_V 0x3 -#define RTC_IO_TOUCH_DREFL_S 27 -/* RTC_IO_TOUCH_DRANGE : R/W ;bitpos:[26:25] ;default: 2'b11 ; */ -/*description: touch sensor saw wave voltage range.*/ -#define RTC_IO_TOUCH_DRANGE 0x00000003 -#define RTC_IO_TOUCH_DRANGE_M ((RTC_IO_TOUCH_DRANGE_V)<<(RTC_IO_TOUCH_DRANGE_S)) -#define RTC_IO_TOUCH_DRANGE_V 0x3 -#define RTC_IO_TOUCH_DRANGE_S 25 -/* RTC_IO_TOUCH_DCUR : R/W ;bitpos:[24:23] ;default: 2'b00 ; */ -/*description: touch sensor bias current. Should have option to tie with BIAS_SLEEP(When - BIAS_SLEEP this setting is available*/ -#define RTC_IO_TOUCH_DCUR 0x00000003 -#define RTC_IO_TOUCH_DCUR_M ((RTC_IO_TOUCH_DCUR_V)<<(RTC_IO_TOUCH_DCUR_S)) -#define RTC_IO_TOUCH_DCUR_V 0x3 -#define RTC_IO_TOUCH_DCUR_S 23 - -#define RTC_IO_TOUCH_PAD0_REG (DR_REG_RTCIO_BASE + 0x94) -/* RTC_IO_TOUCH_PAD0_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD0_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD0_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD0_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD0_HOLD_S 31 -/* RTC_IO_TOUCH_PAD0_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD0_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD0_DRV_M ((RTC_IO_TOUCH_PAD0_DRV_V)<<(RTC_IO_TOUCH_PAD0_DRV_S)) -#define RTC_IO_TOUCH_PAD0_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD0_DRV_S 29 -/* RTC_IO_TOUCH_PAD0_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD0_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD0_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD0_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD0_RDE_S 28 -/* RTC_IO_TOUCH_PAD0_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD0_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD0_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD0_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD0_RUE_S 27 -/* RTC_IO_TOUCH_PAD0_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD0_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD0_DAC_M ((RTC_IO_TOUCH_PAD0_DAC_V)<<(RTC_IO_TOUCH_PAD0_DAC_S)) -#define RTC_IO_TOUCH_PAD0_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD0_DAC_S 23 -/* RTC_IO_TOUCH_PAD0_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD0_START (BIT(22)) -#define RTC_IO_TOUCH_PAD0_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD0_START_V 0x1 -#define RTC_IO_TOUCH_PAD0_START_S 22 -/* RTC_IO_TOUCH_PAD0_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD0_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD0_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD0_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD0_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD0_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD0_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD0_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD0_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD0_XPD_S 20 -/* RTC_IO_TOUCH_PAD0_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD0_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD0_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD0_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD0_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD0_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD0_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD0_FUN_SEL_M ((RTC_IO_TOUCH_PAD0_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD0_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD0_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD0_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD0_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD0_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD0_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD0_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD0_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD0_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD0_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD0_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD0_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD0_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD0_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD0_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD0_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD0_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD0_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD0_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD0_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD0_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD0_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD0_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD0_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale GPIO4*/ -#define RTC_IO_TOUCH_PAD0_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD0_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD0_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD0_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD1_REG (DR_REG_RTCIO_BASE + 0x98) -/* RTC_IO_TOUCH_PAD1_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: */ -#define RTC_IO_TOUCH_PAD1_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD1_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD1_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD1_HOLD_S 31 -/* RTC_IO_TOUCH_PAD1_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD1_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD1_DRV_M ((RTC_IO_TOUCH_PAD1_DRV_V)<<(RTC_IO_TOUCH_PAD1_DRV_S)) -#define RTC_IO_TOUCH_PAD1_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD1_DRV_S 29 -/* RTC_IO_TOUCH_PAD1_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD1_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD1_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD1_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD1_RDE_S 28 -/* RTC_IO_TOUCH_PAD1_RUE : R/W ;bitpos:[27] ;default: 1'd1 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD1_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD1_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD1_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD1_RUE_S 27 -/* RTC_IO_TOUCH_PAD1_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD1_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD1_DAC_M ((RTC_IO_TOUCH_PAD1_DAC_V)<<(RTC_IO_TOUCH_PAD1_DAC_S)) -#define RTC_IO_TOUCH_PAD1_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD1_DAC_S 23 -/* RTC_IO_TOUCH_PAD1_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD1_START (BIT(22)) -#define RTC_IO_TOUCH_PAD1_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD1_START_V 0x1 -#define RTC_IO_TOUCH_PAD1_START_S 22 -/* RTC_IO_TOUCH_PAD1_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD1_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD1_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD1_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD1_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD1_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD1_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD1_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD1_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD1_XPD_S 20 -/* RTC_IO_TOUCH_PAD1_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD1_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD1_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD1_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD1_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD1_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD1_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD1_FUN_SEL_M ((RTC_IO_TOUCH_PAD1_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD1_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD1_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD1_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD1_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD1_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD1_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD1_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD1_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD1_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD1_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD1_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD1_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD1_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD1_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD1_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD1_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD1_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD1_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD1_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD1_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD1_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD1_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD1_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD1_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.GPIO0*/ -#define RTC_IO_TOUCH_PAD1_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD1_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD1_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD1_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD2_REG (DR_REG_RTCIO_BASE + 0x9c) -/* RTC_IO_TOUCH_PAD2_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD2_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD2_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD2_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD2_HOLD_S 31 -/* RTC_IO_TOUCH_PAD2_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD2_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD2_DRV_M ((RTC_IO_TOUCH_PAD2_DRV_V)<<(RTC_IO_TOUCH_PAD2_DRV_S)) -#define RTC_IO_TOUCH_PAD2_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD2_DRV_S 29 -/* RTC_IO_TOUCH_PAD2_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD2_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD2_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD2_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD2_RDE_S 28 -/* RTC_IO_TOUCH_PAD2_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD2_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD2_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD2_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD2_RUE_S 27 -/* RTC_IO_TOUCH_PAD2_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD2_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD2_DAC_M ((RTC_IO_TOUCH_PAD2_DAC_V)<<(RTC_IO_TOUCH_PAD2_DAC_S)) -#define RTC_IO_TOUCH_PAD2_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD2_DAC_S 23 -/* RTC_IO_TOUCH_PAD2_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD2_START (BIT(22)) -#define RTC_IO_TOUCH_PAD2_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD2_START_V 0x1 -#define RTC_IO_TOUCH_PAD2_START_S 22 -/* RTC_IO_TOUCH_PAD2_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD2_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD2_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD2_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD2_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD2_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD2_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD2_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD2_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD2_XPD_S 20 -/* RTC_IO_TOUCH_PAD2_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD2_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD2_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD2_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD2_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD2_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD2_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD2_FUN_SEL_M ((RTC_IO_TOUCH_PAD2_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD2_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD2_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD2_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD2_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD2_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD2_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD2_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD2_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD2_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD2_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD2_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD2_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD2_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD2_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD2_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD2_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD2_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD2_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD2_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD2_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD2_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD2_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD2_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD2_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.GPIO2*/ -#define RTC_IO_TOUCH_PAD2_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD2_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD2_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD2_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD3_REG (DR_REG_RTCIO_BASE + 0xa0) -/* RTC_IO_TOUCH_PAD3_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD3_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD3_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD3_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD3_HOLD_S 31 -/* RTC_IO_TOUCH_PAD3_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD3_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD3_DRV_M ((RTC_IO_TOUCH_PAD3_DRV_V)<<(RTC_IO_TOUCH_PAD3_DRV_S)) -#define RTC_IO_TOUCH_PAD3_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD3_DRV_S 29 -/* RTC_IO_TOUCH_PAD3_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD3_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD3_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD3_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD3_RDE_S 28 -/* RTC_IO_TOUCH_PAD3_RUE : R/W ;bitpos:[27] ;default: 1'd1 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD3_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD3_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD3_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD3_RUE_S 27 -/* RTC_IO_TOUCH_PAD3_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD3_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD3_DAC_M ((RTC_IO_TOUCH_PAD3_DAC_V)<<(RTC_IO_TOUCH_PAD3_DAC_S)) -#define RTC_IO_TOUCH_PAD3_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD3_DAC_S 23 -/* RTC_IO_TOUCH_PAD3_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD3_START (BIT(22)) -#define RTC_IO_TOUCH_PAD3_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD3_START_V 0x1 -#define RTC_IO_TOUCH_PAD3_START_S 22 -/* RTC_IO_TOUCH_PAD3_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD3_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD3_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD3_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD3_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD3_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD3_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD3_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD3_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD3_XPD_S 20 -/* RTC_IO_TOUCH_PAD3_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD3_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD3_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD3_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD3_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD3_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD3_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD3_FUN_SEL_M ((RTC_IO_TOUCH_PAD3_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD3_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD3_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD3_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD3_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD3_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD3_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD3_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD3_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD3_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD3_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD3_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD3_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD3_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD3_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD3_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD3_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD3_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD3_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD3_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD3_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD3_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD3_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD3_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD3_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTDO*/ -#define RTC_IO_TOUCH_PAD3_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD3_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD3_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD3_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD4_REG (DR_REG_RTCIO_BASE + 0xa4) -/* RTC_IO_TOUCH_PAD4_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD4_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD4_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD4_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD4_HOLD_S 31 -/* RTC_IO_TOUCH_PAD4_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD4_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD4_DRV_M ((RTC_IO_TOUCH_PAD4_DRV_V)<<(RTC_IO_TOUCH_PAD4_DRV_S)) -#define RTC_IO_TOUCH_PAD4_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD4_DRV_S 29 -/* RTC_IO_TOUCH_PAD4_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD4_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD4_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD4_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD4_RDE_S 28 -/* RTC_IO_TOUCH_PAD4_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD4_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD4_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD4_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD4_RUE_S 27 -/* RTC_IO_TOUCH_PAD4_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD4_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD4_DAC_M ((RTC_IO_TOUCH_PAD4_DAC_V)<<(RTC_IO_TOUCH_PAD4_DAC_S)) -#define RTC_IO_TOUCH_PAD4_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD4_DAC_S 23 -/* RTC_IO_TOUCH_PAD4_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD4_START (BIT(22)) -#define RTC_IO_TOUCH_PAD4_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD4_START_V 0x1 -#define RTC_IO_TOUCH_PAD4_START_S 22 -/* RTC_IO_TOUCH_PAD4_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD4_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD4_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD4_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD4_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD4_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD4_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD4_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD4_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD4_XPD_S 20 -/* RTC_IO_TOUCH_PAD4_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD4_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD4_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD4_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD4_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD4_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD4_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD4_FUN_SEL_M ((RTC_IO_TOUCH_PAD4_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD4_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD4_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD4_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD4_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD4_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD4_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD4_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD4_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD4_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD4_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD4_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD4_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD4_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD4_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD4_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD4_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD4_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD4_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD4_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD4_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD4_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD4_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD4_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD4_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTCK*/ -#define RTC_IO_TOUCH_PAD4_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD4_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD4_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD4_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD5_REG (DR_REG_RTCIO_BASE + 0xa8) -/* RTC_IO_TOUCH_PAD5_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD5_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD5_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD5_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD5_HOLD_S 31 -/* RTC_IO_TOUCH_PAD5_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD5_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD5_DRV_M ((RTC_IO_TOUCH_PAD5_DRV_V)<<(RTC_IO_TOUCH_PAD5_DRV_S)) -#define RTC_IO_TOUCH_PAD5_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD5_DRV_S 29 -/* RTC_IO_TOUCH_PAD5_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD5_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD5_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD5_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD5_RDE_S 28 -/* RTC_IO_TOUCH_PAD5_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD5_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD5_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD5_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD5_RUE_S 27 -/* RTC_IO_TOUCH_PAD5_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD5_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD5_DAC_M ((RTC_IO_TOUCH_PAD5_DAC_V)<<(RTC_IO_TOUCH_PAD5_DAC_S)) -#define RTC_IO_TOUCH_PAD5_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD5_DAC_S 23 -/* RTC_IO_TOUCH_PAD5_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD5_START (BIT(22)) -#define RTC_IO_TOUCH_PAD5_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD5_START_V 0x1 -#define RTC_IO_TOUCH_PAD5_START_S 22 -/* RTC_IO_TOUCH_PAD5_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD5_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD5_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD5_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD5_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD5_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD5_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD5_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD5_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD5_XPD_S 20 -/* RTC_IO_TOUCH_PAD5_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD5_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD5_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD5_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD5_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD5_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD5_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD5_FUN_SEL_M ((RTC_IO_TOUCH_PAD5_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD5_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD5_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD5_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD5_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD5_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD5_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD5_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD5_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD5_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD5_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD5_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD5_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD5_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD5_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD5_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD5_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD5_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD5_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD5_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD5_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD5_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD5_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD5_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD5_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTDI*/ -#define RTC_IO_TOUCH_PAD5_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD5_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD5_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD5_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD6_REG (DR_REG_RTCIO_BASE + 0xac) -/* RTC_IO_TOUCH_PAD6_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD6_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD6_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD6_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD6_HOLD_S 31 -/* RTC_IO_TOUCH_PAD6_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD6_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD6_DRV_M ((RTC_IO_TOUCH_PAD6_DRV_V)<<(RTC_IO_TOUCH_PAD6_DRV_S)) -#define RTC_IO_TOUCH_PAD6_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD6_DRV_S 29 -/* RTC_IO_TOUCH_PAD6_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD6_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD6_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD6_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD6_RDE_S 28 -/* RTC_IO_TOUCH_PAD6_RUE : R/W ;bitpos:[27] ;default: 1'd1 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD6_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD6_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD6_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD6_RUE_S 27 -/* RTC_IO_TOUCH_PAD6_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD6_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD6_DAC_M ((RTC_IO_TOUCH_PAD6_DAC_V)<<(RTC_IO_TOUCH_PAD6_DAC_S)) -#define RTC_IO_TOUCH_PAD6_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD6_DAC_S 23 -/* RTC_IO_TOUCH_PAD6_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD6_START (BIT(22)) -#define RTC_IO_TOUCH_PAD6_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD6_START_V 0x1 -#define RTC_IO_TOUCH_PAD6_START_S 22 -/* RTC_IO_TOUCH_PAD6_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD6_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD6_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD6_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD6_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD6_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD6_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD6_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD6_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD6_XPD_S 20 -/* RTC_IO_TOUCH_PAD6_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD6_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD6_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD6_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD6_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD6_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD6_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD6_FUN_SEL_M ((RTC_IO_TOUCH_PAD6_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD6_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD6_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD6_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD6_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD6_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD6_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD6_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD6_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD6_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD6_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD6_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD6_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD6_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD6_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD6_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD6_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD6_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD6_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD6_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD6_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD6_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD6_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD6_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD6_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTMS*/ -#define RTC_IO_TOUCH_PAD6_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD6_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD6_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD6_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD7_REG (DR_REG_RTCIO_BASE + 0xb0) -/* RTC_IO_TOUCH_PAD7_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ -/*description: hold the current value of the output when setting the hold to Ò1Ó*/ -#define RTC_IO_TOUCH_PAD7_HOLD (BIT(31)) -#define RTC_IO_TOUCH_PAD7_HOLD_M (BIT(31)) -#define RTC_IO_TOUCH_PAD7_HOLD_V 0x1 -#define RTC_IO_TOUCH_PAD7_HOLD_S 31 -/* RTC_IO_TOUCH_PAD7_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ -/*description: the driver strength of the pad*/ -#define RTC_IO_TOUCH_PAD7_DRV 0x00000003 -#define RTC_IO_TOUCH_PAD7_DRV_M ((RTC_IO_TOUCH_PAD7_DRV_V)<<(RTC_IO_TOUCH_PAD7_DRV_S)) -#define RTC_IO_TOUCH_PAD7_DRV_V 0x3 -#define RTC_IO_TOUCH_PAD7_DRV_S 29 -/* RTC_IO_TOUCH_PAD7_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: the pull down enable of the pad*/ -#define RTC_IO_TOUCH_PAD7_RDE (BIT(28)) -#define RTC_IO_TOUCH_PAD7_RDE_M (BIT(28)) -#define RTC_IO_TOUCH_PAD7_RDE_V 0x1 -#define RTC_IO_TOUCH_PAD7_RDE_S 28 -/* RTC_IO_TOUCH_PAD7_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: the pull up enable of the pad*/ -#define RTC_IO_TOUCH_PAD7_RUE (BIT(27)) -#define RTC_IO_TOUCH_PAD7_RUE_M (BIT(27)) -#define RTC_IO_TOUCH_PAD7_RUE_V 0x1 -#define RTC_IO_TOUCH_PAD7_RUE_S 27 -/* RTC_IO_TOUCH_PAD7_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD7_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD7_DAC_M ((RTC_IO_TOUCH_PAD7_DAC_V)<<(RTC_IO_TOUCH_PAD7_DAC_S)) -#define RTC_IO_TOUCH_PAD7_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD7_DAC_S 23 -/* RTC_IO_TOUCH_PAD7_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD7_START (BIT(22)) -#define RTC_IO_TOUCH_PAD7_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD7_START_V 0x1 -#define RTC_IO_TOUCH_PAD7_START_S 22 -/* RTC_IO_TOUCH_PAD7_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD7_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD7_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD7_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD7_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD7_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD7_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD7_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD7_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD7_XPD_S 20 -/* RTC_IO_TOUCH_PAD7_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ -#define RTC_IO_TOUCH_PAD7_MUX_SEL (BIT(19)) -#define RTC_IO_TOUCH_PAD7_MUX_SEL_M (BIT(19)) -#define RTC_IO_TOUCH_PAD7_MUX_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD7_MUX_SEL_S 19 -/* RTC_IO_TOUCH_PAD7_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ -/*description: the functional selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD7_FUN_SEL 0x00000003 -#define RTC_IO_TOUCH_PAD7_FUN_SEL_M ((RTC_IO_TOUCH_PAD7_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD7_FUN_SEL_S)) -#define RTC_IO_TOUCH_PAD7_FUN_SEL_V 0x3 -#define RTC_IO_TOUCH_PAD7_FUN_SEL_S 17 -/* RTC_IO_TOUCH_PAD7_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ -/*description: the sleep status selection signal of the pad*/ -#define RTC_IO_TOUCH_PAD7_SLP_SEL (BIT(16)) -#define RTC_IO_TOUCH_PAD7_SLP_SEL_M (BIT(16)) -#define RTC_IO_TOUCH_PAD7_SLP_SEL_V 0x1 -#define RTC_IO_TOUCH_PAD7_SLP_SEL_S 16 -/* RTC_IO_TOUCH_PAD7_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ -/*description: the input enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD7_SLP_IE (BIT(15)) -#define RTC_IO_TOUCH_PAD7_SLP_IE_M (BIT(15)) -#define RTC_IO_TOUCH_PAD7_SLP_IE_V 0x1 -#define RTC_IO_TOUCH_PAD7_SLP_IE_S 15 -/* RTC_IO_TOUCH_PAD7_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ -/*description: the output enable of the pad in sleep status*/ -#define RTC_IO_TOUCH_PAD7_SLP_OE (BIT(14)) -#define RTC_IO_TOUCH_PAD7_SLP_OE_M (BIT(14)) -#define RTC_IO_TOUCH_PAD7_SLP_OE_V 0x1 -#define RTC_IO_TOUCH_PAD7_SLP_OE_S 14 -/* RTC_IO_TOUCH_PAD7_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ -/*description: the input enable of the pad*/ -#define RTC_IO_TOUCH_PAD7_FUN_IE (BIT(13)) -#define RTC_IO_TOUCH_PAD7_FUN_IE_M (BIT(13)) -#define RTC_IO_TOUCH_PAD7_FUN_IE_V 0x1 -#define RTC_IO_TOUCH_PAD7_FUN_IE_S 13 -/* RTC_IO_TOUCH_PAD7_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.GPIO27*/ -#define RTC_IO_TOUCH_PAD7_TO_GPIO (BIT(12)) -#define RTC_IO_TOUCH_PAD7_TO_GPIO_M (BIT(12)) -#define RTC_IO_TOUCH_PAD7_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD7_TO_GPIO_S 12 - -#define RTC_IO_TOUCH_PAD8_REG (DR_REG_RTCIO_BASE + 0xb4) -/* RTC_IO_TOUCH_PAD8_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD8_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD8_DAC_M ((RTC_IO_TOUCH_PAD8_DAC_V)<<(RTC_IO_TOUCH_PAD8_DAC_S)) -#define RTC_IO_TOUCH_PAD8_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD8_DAC_S 23 -/* RTC_IO_TOUCH_PAD8_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD8_START (BIT(22)) -#define RTC_IO_TOUCH_PAD8_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD8_START_V 0x1 -#define RTC_IO_TOUCH_PAD8_START_S 22 -/* RTC_IO_TOUCH_PAD8_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD8_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD8_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD8_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD8_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD8_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD8_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD8_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD8_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD8_XPD_S 20 -/* RTC_IO_TOUCH_PAD8_TO_GPIO : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale*/ -#define RTC_IO_TOUCH_PAD8_TO_GPIO (BIT(19)) -#define RTC_IO_TOUCH_PAD8_TO_GPIO_M (BIT(19)) -#define RTC_IO_TOUCH_PAD8_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD8_TO_GPIO_S 19 - -#define RTC_IO_TOUCH_PAD9_REG (DR_REG_RTCIO_BASE + 0xb8) -/* RTC_IO_TOUCH_PAD9_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ -/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ -#define RTC_IO_TOUCH_PAD9_DAC 0x00000007 -#define RTC_IO_TOUCH_PAD9_DAC_M ((RTC_IO_TOUCH_PAD9_DAC_V)<<(RTC_IO_TOUCH_PAD9_DAC_S)) -#define RTC_IO_TOUCH_PAD9_DAC_V 0x7 -#define RTC_IO_TOUCH_PAD9_DAC_S 23 -/* RTC_IO_TOUCH_PAD9_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ -/*description: start touch sensor.*/ -#define RTC_IO_TOUCH_PAD9_START (BIT(22)) -#define RTC_IO_TOUCH_PAD9_START_M (BIT(22)) -#define RTC_IO_TOUCH_PAD9_START_V 0x1 -#define RTC_IO_TOUCH_PAD9_START_S 22 -/* RTC_IO_TOUCH_PAD9_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ -/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ -#define RTC_IO_TOUCH_PAD9_TIE_OPT (BIT(21)) -#define RTC_IO_TOUCH_PAD9_TIE_OPT_M (BIT(21)) -#define RTC_IO_TOUCH_PAD9_TIE_OPT_V 0x1 -#define RTC_IO_TOUCH_PAD9_TIE_OPT_S 21 -/* RTC_IO_TOUCH_PAD9_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ -/*description: touch sensor power on.*/ -#define RTC_IO_TOUCH_PAD9_XPD (BIT(20)) -#define RTC_IO_TOUCH_PAD9_XPD_M (BIT(20)) -#define RTC_IO_TOUCH_PAD9_XPD_V 0x1 -#define RTC_IO_TOUCH_PAD9_XPD_S 20 -/* RTC_IO_TOUCH_PAD9_TO_GPIO : R/W ;bitpos:[19] ;default: 1'd0 ; */ -/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale*/ -#define RTC_IO_TOUCH_PAD9_TO_GPIO (BIT(19)) -#define RTC_IO_TOUCH_PAD9_TO_GPIO_M (BIT(19)) -#define RTC_IO_TOUCH_PAD9_TO_GPIO_V 0x1 -#define RTC_IO_TOUCH_PAD9_TO_GPIO_S 19 - -#define RTC_IO_EXT_WAKEUP0_REG (DR_REG_RTCIO_BASE + 0xbc) -/* RTC_IO_EXT_WAKEUP0_SEL : R/W ;bitpos:[31:27] ;default: 5'd0 ; */ -/*description: select the wakeup source Ó0Ó select GPIO0 Ó1Ó select GPIO2 ...Ò17Ó select GPIO17*/ -#define RTC_IO_EXT_WAKEUP0_SEL 0x0000001F -#define RTC_IO_EXT_WAKEUP0_SEL_M ((RTC_IO_EXT_WAKEUP0_SEL_V)<<(RTC_IO_EXT_WAKEUP0_SEL_S)) -#define RTC_IO_EXT_WAKEUP0_SEL_V 0x1F -#define RTC_IO_EXT_WAKEUP0_SEL_S 27 - -#define RTC_IO_XTL_EXT_CTR_REG (DR_REG_RTCIO_BASE + 0xc0) -/* RTC_IO_XTL_EXT_CTR_SEL : R/W ;bitpos:[31:27] ;default: 5'd0 ; */ -/*description: select the external xtl power source Ó0Ó select GPIO0 Ó1Ó select - GPIO2 ...Ò17Ó select GPIO17*/ -#define RTC_IO_XTL_EXT_CTR_SEL 0x0000001F -#define RTC_IO_XTL_EXT_CTR_SEL_M ((RTC_IO_XTL_EXT_CTR_SEL_V)<<(RTC_IO_XTL_EXT_CTR_SEL_S)) -#define RTC_IO_XTL_EXT_CTR_SEL_V 0x1F -#define RTC_IO_XTL_EXT_CTR_SEL_S 27 - -#define RTC_IO_SAR_I2C_IO_REG (DR_REG_RTCIO_BASE + 0xc4) -/* RTC_IO_SAR_I2C_SDA_SEL : R/W ;bitpos:[31:30] ;default: 2'd0 ; */ -/*description: Ò0Ó using TOUCH_PAD[1] as i2c sda Ò1Ó using TOUCH_PAD[3] as i2c sda*/ -#define RTC_IO_SAR_I2C_SDA_SEL 0x00000003 -#define RTC_IO_SAR_I2C_SDA_SEL_M ((RTC_IO_SAR_I2C_SDA_SEL_V)<<(RTC_IO_SAR_I2C_SDA_SEL_S)) -#define RTC_IO_SAR_I2C_SDA_SEL_V 0x3 -#define RTC_IO_SAR_I2C_SDA_SEL_S 30 -/* RTC_IO_SAR_I2C_SCL_SEL : R/W ;bitpos:[29:28] ;default: 2'd0 ; */ -/*description: Ò0Ó using TOUCH_PAD[0] as i2c clk Ò1Ó using TOUCH_PAD[2] as i2c clk*/ -#define RTC_IO_SAR_I2C_SCL_SEL 0x00000003 -#define RTC_IO_SAR_I2C_SCL_SEL_M ((RTC_IO_SAR_I2C_SCL_SEL_V)<<(RTC_IO_SAR_I2C_SCL_SEL_S)) -#define RTC_IO_SAR_I2C_SCL_SEL_V 0x3 -#define RTC_IO_SAR_I2C_SCL_SEL_S 28 -/* RTC_IO_SAR_DEBUG_BIT_SEL : R/W ;bitpos:[27:23] ;default: 5'h0 ; */ -/*description: */ -#define RTC_IO_SAR_DEBUG_BIT_SEL 0x0000001F -#define RTC_IO_SAR_DEBUG_BIT_SEL_M ((RTC_IO_SAR_DEBUG_BIT_SEL_V)<<(RTC_IO_SAR_DEBUG_BIT_SEL_S)) -#define RTC_IO_SAR_DEBUG_BIT_SEL_V 0x1F -#define RTC_IO_SAR_DEBUG_BIT_SEL_S 23 - -#define RTC_IO_DATE_REG (DR_REG_RTCIO_BASE + 0xc8) -/* RTC_IO_IO_DATE : R/W ;bitpos:[27:0] ;default: 28'h1603160 ; */ -/*description: date*/ -#define RTC_IO_IO_DATE 0x0FFFFFFF -#define RTC_IO_IO_DATE_M ((RTC_IO_IO_DATE_V)<<(RTC_IO_IO_DATE_S)) -#define RTC_IO_IO_DATE_V 0xFFFFFFF -#define RTC_IO_IO_DATE_S 0 -#define RTC_IO_RTC_IO_DATE_VERSION 0x1703160 - - - - -#endif /*_SOC_RTC_IO_REG_H_ */ - - +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#ifndef _SOC_RTC_IO_REG_H_ +#define _SOC_RTC_IO_REG_H_ + + +#include "soc.h" +#define RTC_GPIO_OUT_REG (DR_REG_RTCIO_BASE + 0x0) +/* RTC_GPIO_OUT_DATA : R/W ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 output value*/ +#define RTC_GPIO_OUT_DATA 0x0003FFFF +#define RTC_GPIO_OUT_DATA_M ((RTC_GPIO_OUT_DATA_V)<<(RTC_GPIO_OUT_DATA_S)) +#define RTC_GPIO_OUT_DATA_V 0x3FFFF +#define RTC_GPIO_OUT_DATA_S 14 + +#define RTC_GPIO_OUT_W1TS_REG (DR_REG_RTCIO_BASE + 0x4) +/* RTC_GPIO_OUT_DATA_W1TS : WO ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 output value write 1 to set*/ +#define RTC_GPIO_OUT_DATA_W1TS 0x0003FFFF +#define RTC_GPIO_OUT_DATA_W1TS_M ((RTC_GPIO_OUT_DATA_W1TS_V)<<(RTC_GPIO_OUT_DATA_W1TS_S)) +#define RTC_GPIO_OUT_DATA_W1TS_V 0x3FFFF +#define RTC_GPIO_OUT_DATA_W1TS_S 14 + +#define RTC_GPIO_OUT_W1TC_REG (DR_REG_RTCIO_BASE + 0x8) +/* RTC_GPIO_OUT_DATA_W1TC : WO ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 output value write 1 to clear*/ +#define RTC_GPIO_OUT_DATA_W1TC 0x0003FFFF +#define RTC_GPIO_OUT_DATA_W1TC_M ((RTC_GPIO_OUT_DATA_W1TC_V)<<(RTC_GPIO_OUT_DATA_W1TC_S)) +#define RTC_GPIO_OUT_DATA_W1TC_V 0x3FFFF +#define RTC_GPIO_OUT_DATA_W1TC_S 14 + +#define RTC_GPIO_ENABLE_REG (DR_REG_RTCIO_BASE + 0xc) +/* RTC_GPIO_ENABLE : R/W ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 output enable*/ +#define RTC_GPIO_ENABLE 0x0003FFFF +#define RTC_GPIO_ENABLE_M ((RTC_GPIO_ENABLE_V)<<(RTC_GPIO_ENABLE_S)) +#define RTC_GPIO_ENABLE_V 0x3FFFF +#define RTC_GPIO_ENABLE_S 14 + +#define RTC_GPIO_ENABLE_W1TS_REG (DR_REG_RTCIO_BASE + 0x10) +/* RTC_GPIO_ENABLE_W1TS : WO ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 output enable write 1 to set*/ +#define RTC_GPIO_ENABLE_W1TS 0x0003FFFF +#define RTC_GPIO_ENABLE_W1TS_M ((RTC_GPIO_ENABLE_W1TS_V)<<(RTC_GPIO_ENABLE_W1TS_S)) +#define RTC_GPIO_ENABLE_W1TS_V 0x3FFFF +#define RTC_GPIO_ENABLE_W1TS_S 14 + +#define RTC_GPIO_ENABLE_W1TC_REG (DR_REG_RTCIO_BASE + 0x14) +/* RTC_GPIO_ENABLE_W1TC : WO ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 output enable write 1 to clear*/ +#define RTC_GPIO_ENABLE_W1TC 0x0003FFFF +#define RTC_GPIO_ENABLE_W1TC_M ((RTC_GPIO_ENABLE_W1TC_V)<<(RTC_GPIO_ENABLE_W1TC_S)) +#define RTC_GPIO_ENABLE_W1TC_V 0x3FFFF +#define RTC_GPIO_ENABLE_W1TC_S 14 + +#define RTC_GPIO_STATUS_REG (DR_REG_RTCIO_BASE + 0x18) +/* RTC_GPIO_STATUS_INT : R/W ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 interrupt status*/ +#define RTC_GPIO_STATUS_INT 0x0003FFFF +#define RTC_GPIO_STATUS_INT_M ((RTC_GPIO_STATUS_INT_V)<<(RTC_GPIO_STATUS_INT_S)) +#define RTC_GPIO_STATUS_INT_V 0x3FFFF +#define RTC_GPIO_STATUS_INT_S 14 + +#define RTC_GPIO_STATUS_W1TS_REG (DR_REG_RTCIO_BASE + 0x1c) +/* RTC_GPIO_STATUS_INT_W1TS : WO ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 interrupt status write 1 to set*/ +#define RTC_GPIO_STATUS_INT_W1TS 0x0003FFFF +#define RTC_GPIO_STATUS_INT_W1TS_M ((RTC_GPIO_STATUS_INT_W1TS_V)<<(RTC_GPIO_STATUS_INT_W1TS_S)) +#define RTC_GPIO_STATUS_INT_W1TS_V 0x3FFFF +#define RTC_GPIO_STATUS_INT_W1TS_S 14 + +#define RTC_GPIO_STATUS_W1TC_REG (DR_REG_RTCIO_BASE + 0x20) +/* RTC_GPIO_STATUS_INT_W1TC : WO ;bitpos:[31:14] ;default: 0 ; */ +/*description: GPIO0~17 interrupt status write 1 to clear*/ +#define RTC_GPIO_STATUS_INT_W1TC 0x0003FFFF +#define RTC_GPIO_STATUS_INT_W1TC_M ((RTC_GPIO_STATUS_INT_W1TC_V)<<(RTC_GPIO_STATUS_INT_W1TC_S)) +#define RTC_GPIO_STATUS_INT_W1TC_V 0x3FFFF +#define RTC_GPIO_STATUS_INT_W1TC_S 14 + +#define RTC_GPIO_IN_REG (DR_REG_RTCIO_BASE + 0x24) +/* RTC_GPIO_IN_NEXT : RO ;bitpos:[31:14] ;default: ; */ +/*description: GPIO0~17 input value*/ +#define RTC_GPIO_IN_NEXT 0x0003FFFF +#define RTC_GPIO_IN_NEXT_M ((RTC_GPIO_IN_NEXT_V)<<(RTC_GPIO_IN_NEXT_S)) +#define RTC_GPIO_IN_NEXT_V 0x3FFFF +#define RTC_GPIO_IN_NEXT_S 14 + +#define RTC_GPIO_PIN0_REG (DR_REG_RTCIO_BASE + 0x28) +/* RTC_GPIO_PIN0_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN0_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN0_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN0_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN0_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN0_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN0_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN0_INT_TYPE_M ((RTC_GPIO_PIN0_INT_TYPE_V)<<(RTC_GPIO_PIN0_INT_TYPE_S)) +#define RTC_GPIO_PIN0_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN0_INT_TYPE_S 7 +/* RTC_GPIO_PIN0_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN0_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN0_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN0_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN0_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN1_REG (DR_REG_RTCIO_BASE + 0x2c) +/* RTC_GPIO_PIN1_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN1_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN1_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN1_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN1_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN1_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN1_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN1_INT_TYPE_M ((RTC_GPIO_PIN1_INT_TYPE_V)<<(RTC_GPIO_PIN1_INT_TYPE_S)) +#define RTC_GPIO_PIN1_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN1_INT_TYPE_S 7 +/* RTC_GPIO_PIN1_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN1_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN1_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN1_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN1_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN2_REG (DR_REG_RTCIO_BASE + 0x30) +/* RTC_GPIO_PIN2_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN2_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN2_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN2_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN2_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN2_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN2_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN2_INT_TYPE_M ((RTC_GPIO_PIN2_INT_TYPE_V)<<(RTC_GPIO_PIN2_INT_TYPE_S)) +#define RTC_GPIO_PIN2_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN2_INT_TYPE_S 7 +/* RTC_GPIO_PIN2_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN2_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN2_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN2_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN2_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN3_REG (DR_REG_RTCIO_BASE + 0x34) +/* RTC_GPIO_PIN3_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN3_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN3_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN3_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN3_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN3_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN3_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN3_INT_TYPE_M ((RTC_GPIO_PIN3_INT_TYPE_V)<<(RTC_GPIO_PIN3_INT_TYPE_S)) +#define RTC_GPIO_PIN3_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN3_INT_TYPE_S 7 +/* RTC_GPIO_PIN3_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN3_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN3_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN3_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN3_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN4_REG (DR_REG_RTCIO_BASE + 0x38) +/* RTC_GPIO_PIN4_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN4_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN4_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN4_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN4_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN4_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN4_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN4_INT_TYPE_M ((RTC_GPIO_PIN4_INT_TYPE_V)<<(RTC_GPIO_PIN4_INT_TYPE_S)) +#define RTC_GPIO_PIN4_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN4_INT_TYPE_S 7 +/* RTC_GPIO_PIN4_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN4_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN4_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN4_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN4_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN5_REG (DR_REG_RTCIO_BASE + 0x3c) +/* RTC_GPIO_PIN5_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN5_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN5_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN5_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN5_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN5_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN5_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN5_INT_TYPE_M ((RTC_GPIO_PIN5_INT_TYPE_V)<<(RTC_GPIO_PIN5_INT_TYPE_S)) +#define RTC_GPIO_PIN5_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN5_INT_TYPE_S 7 +/* RTC_GPIO_PIN5_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN5_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN5_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN5_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN5_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN6_REG (DR_REG_RTCIO_BASE + 0x40) +/* RTC_GPIO_PIN6_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN6_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN6_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN6_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN6_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN6_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN6_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN6_INT_TYPE_M ((RTC_GPIO_PIN6_INT_TYPE_V)<<(RTC_GPIO_PIN6_INT_TYPE_S)) +#define RTC_GPIO_PIN6_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN6_INT_TYPE_S 7 +/* RTC_GPIO_PIN6_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN6_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN6_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN6_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN6_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN7_REG (DR_REG_RTCIO_BASE + 0x44) +/* RTC_GPIO_PIN7_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN7_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN7_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN7_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN7_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN7_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN7_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN7_INT_TYPE_M ((RTC_GPIO_PIN7_INT_TYPE_V)<<(RTC_GPIO_PIN7_INT_TYPE_S)) +#define RTC_GPIO_PIN7_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN7_INT_TYPE_S 7 +/* RTC_GPIO_PIN7_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN7_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN7_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN7_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN7_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN8_REG (DR_REG_RTCIO_BASE + 0x48) +/* RTC_GPIO_PIN8_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN8_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN8_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN8_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN8_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN8_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN8_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN8_INT_TYPE_M ((RTC_GPIO_PIN8_INT_TYPE_V)<<(RTC_GPIO_PIN8_INT_TYPE_S)) +#define RTC_GPIO_PIN8_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN8_INT_TYPE_S 7 +/* RTC_GPIO_PIN8_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN8_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN8_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN8_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN8_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN9_REG (DR_REG_RTCIO_BASE + 0x4c) +/* RTC_GPIO_PIN9_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN9_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN9_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN9_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN9_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN9_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN9_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN9_INT_TYPE_M ((RTC_GPIO_PIN9_INT_TYPE_V)<<(RTC_GPIO_PIN9_INT_TYPE_S)) +#define RTC_GPIO_PIN9_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN9_INT_TYPE_S 7 +/* RTC_GPIO_PIN9_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN9_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN9_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN9_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN9_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN10_REG (DR_REG_RTCIO_BASE + 0x50) +/* RTC_GPIO_PIN10_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN10_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN10_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN10_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN10_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN10_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN10_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN10_INT_TYPE_M ((RTC_GPIO_PIN10_INT_TYPE_V)<<(RTC_GPIO_PIN10_INT_TYPE_S)) +#define RTC_GPIO_PIN10_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN10_INT_TYPE_S 7 +/* RTC_GPIO_PIN10_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN10_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN10_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN10_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN10_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN11_REG (DR_REG_RTCIO_BASE + 0x54) +/* RTC_GPIO_PIN11_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN11_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN11_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN11_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN11_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN11_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN11_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN11_INT_TYPE_M ((RTC_GPIO_PIN11_INT_TYPE_V)<<(RTC_GPIO_PIN11_INT_TYPE_S)) +#define RTC_GPIO_PIN11_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN11_INT_TYPE_S 7 +/* RTC_GPIO_PIN11_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN11_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN11_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN11_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN11_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN12_REG (DR_REG_RTCIO_BASE + 0x58) +/* RTC_GPIO_PIN12_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN12_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN12_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN12_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN12_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN12_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN12_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN12_INT_TYPE_M ((RTC_GPIO_PIN12_INT_TYPE_V)<<(RTC_GPIO_PIN12_INT_TYPE_S)) +#define RTC_GPIO_PIN12_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN12_INT_TYPE_S 7 +/* RTC_GPIO_PIN12_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN12_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN12_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN12_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN12_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN13_REG (DR_REG_RTCIO_BASE + 0x5c) +/* RTC_GPIO_PIN13_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN13_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN13_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN13_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN13_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN13_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN13_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN13_INT_TYPE_M ((RTC_GPIO_PIN13_INT_TYPE_V)<<(RTC_GPIO_PIN13_INT_TYPE_S)) +#define RTC_GPIO_PIN13_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN13_INT_TYPE_S 7 +/* RTC_GPIO_PIN13_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN13_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN13_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN13_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN13_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN14_REG (DR_REG_RTCIO_BASE + 0x60) +/* RTC_GPIO_PIN14_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN14_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN14_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN14_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN14_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN14_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN14_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN14_INT_TYPE_M ((RTC_GPIO_PIN14_INT_TYPE_V)<<(RTC_GPIO_PIN14_INT_TYPE_S)) +#define RTC_GPIO_PIN14_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN14_INT_TYPE_S 7 +/* RTC_GPIO_PIN14_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN14_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN14_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN14_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN14_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN15_REG (DR_REG_RTCIO_BASE + 0x64) +/* RTC_GPIO_PIN15_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN15_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN15_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN15_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN15_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN15_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN15_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN15_INT_TYPE_M ((RTC_GPIO_PIN15_INT_TYPE_V)<<(RTC_GPIO_PIN15_INT_TYPE_S)) +#define RTC_GPIO_PIN15_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN15_INT_TYPE_S 7 +/* RTC_GPIO_PIN15_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN15_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN15_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN15_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN15_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN16_REG (DR_REG_RTCIO_BASE + 0x68) +/* RTC_GPIO_PIN16_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN16_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN16_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN16_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN16_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN16_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN16_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN16_INT_TYPE_M ((RTC_GPIO_PIN16_INT_TYPE_V)<<(RTC_GPIO_PIN16_INT_TYPE_S)) +#define RTC_GPIO_PIN16_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN16_INT_TYPE_S 7 +/* RTC_GPIO_PIN16_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN16_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN16_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN16_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN16_PAD_DRIVER_S 2 + +#define RTC_GPIO_PIN17_REG (DR_REG_RTCIO_BASE + 0x6c) +/* RTC_GPIO_PIN17_WAKEUP_ENABLE : R/W ;bitpos:[10] ;default: 0 ; */ +/*description: GPIO wake up enable only available in light sleep*/ +#define RTC_GPIO_PIN17_WAKEUP_ENABLE (BIT(10)) +#define RTC_GPIO_PIN17_WAKEUP_ENABLE_M (BIT(10)) +#define RTC_GPIO_PIN17_WAKEUP_ENABLE_V 0x1 +#define RTC_GPIO_PIN17_WAKEUP_ENABLE_S 10 +/* RTC_GPIO_PIN17_INT_TYPE : R/W ;bitpos:[9:7] ;default: 0 ; */ +/*description: if set to 0: GPIO interrupt disable if set to 1: rising edge + trigger if set to 2: falling edge trigger if set to 3: any edge trigger if set to 4: low level trigger if set to 5: high level trigger*/ +#define RTC_GPIO_PIN17_INT_TYPE 0x00000007 +#define RTC_GPIO_PIN17_INT_TYPE_M ((RTC_GPIO_PIN17_INT_TYPE_V)<<(RTC_GPIO_PIN17_INT_TYPE_S)) +#define RTC_GPIO_PIN17_INT_TYPE_V 0x7 +#define RTC_GPIO_PIN17_INT_TYPE_S 7 +/* RTC_GPIO_PIN17_PAD_DRIVER : R/W ;bitpos:[2] ;default: 0 ; */ +/*description: if set to 0: normal output if set to 1: open drain*/ +#define RTC_GPIO_PIN17_PAD_DRIVER (BIT(2)) +#define RTC_GPIO_PIN17_PAD_DRIVER_M (BIT(2)) +#define RTC_GPIO_PIN17_PAD_DRIVER_V 0x1 +#define RTC_GPIO_PIN17_PAD_DRIVER_S 2 + +#define RTC_IO_RTC_DEBUG_SEL_REG (DR_REG_RTCIO_BASE + 0x70) +/* RTC_IO_DEBUG_12M_NO_GATING : R/W ;bitpos:[25] ;default: 1'd0 ; */ +/*description: */ +#define RTC_IO_DEBUG_12M_NO_GATING (BIT(25)) +#define RTC_IO_DEBUG_12M_NO_GATING_M (BIT(25)) +#define RTC_IO_DEBUG_12M_NO_GATING_V 0x1 +#define RTC_IO_DEBUG_12M_NO_GATING_S 25 +/* RTC_IO_DEBUG_SEL4 : R/W ;bitpos:[24:20] ;default: 5'd0 ; */ +/*description: */ +#define RTC_IO_DEBUG_SEL4 0x0000001F +#define RTC_IO_DEBUG_SEL4_M ((RTC_IO_DEBUG_SEL4_V)<<(RTC_IO_DEBUG_SEL4_S)) +#define RTC_IO_DEBUG_SEL4_V 0x1F +#define RTC_IO_DEBUG_SEL4_S 20 +/* RTC_IO_DEBUG_SEL3 : R/W ;bitpos:[19:15] ;default: 5'd0 ; */ +/*description: */ +#define RTC_IO_DEBUG_SEL3 0x0000001F +#define RTC_IO_DEBUG_SEL3_M ((RTC_IO_DEBUG_SEL3_V)<<(RTC_IO_DEBUG_SEL3_S)) +#define RTC_IO_DEBUG_SEL3_V 0x1F +#define RTC_IO_DEBUG_SEL3_S 15 +/* RTC_IO_DEBUG_SEL2 : R/W ;bitpos:[14:10] ;default: 5'd0 ; */ +/*description: */ +#define RTC_IO_DEBUG_SEL2 0x0000001F +#define RTC_IO_DEBUG_SEL2_M ((RTC_IO_DEBUG_SEL2_V)<<(RTC_IO_DEBUG_SEL2_S)) +#define RTC_IO_DEBUG_SEL2_V 0x1F +#define RTC_IO_DEBUG_SEL2_S 10 +/* RTC_IO_DEBUG_SEL1 : R/W ;bitpos:[9:5] ;default: 5'd0 ; */ +/*description: */ +#define RTC_IO_DEBUG_SEL1 0x0000001F +#define RTC_IO_DEBUG_SEL1_M ((RTC_IO_DEBUG_SEL1_V)<<(RTC_IO_DEBUG_SEL1_S)) +#define RTC_IO_DEBUG_SEL1_V 0x1F +#define RTC_IO_DEBUG_SEL1_S 5 +/* RTC_IO_DEBUG_SEL0 : R/W ;bitpos:[4:0] ;default: 5'd0 ; */ +/*description: */ +#define RTC_IO_DEBUG_SEL0 0x0000001F +#define RTC_IO_DEBUG_SEL0_M ((RTC_IO_DEBUG_SEL0_V)<<(RTC_IO_DEBUG_SEL0_S)) +#define RTC_IO_DEBUG_SEL0_V 0x1F +#define RTC_IO_DEBUG_SEL0_S 0 + +#define RTC_IO_DIG_PAD_HOLD_REG (DR_REG_RTCIO_BASE + 0x74) +/* RTC_IO_DIG_PAD_HOLD : R/W ;bitpos:[31:0] ;default: 1'd0 ; */ +/*description: select the digital pad hold value.*/ +#define RTC_IO_DIG_PAD_HOLD 0xFFFFFFFF +#define RTC_IO_DIG_PAD_HOLD_M ((RTC_IO_DIG_PAD_HOLD_V)<<(RTC_IO_DIG_PAD_HOLD_S)) +#define RTC_IO_DIG_PAD_HOLD_V 0xFFFFFFFF +#define RTC_IO_DIG_PAD_HOLD_S 0 + +#define RTC_IO_HALL_SENS_REG (DR_REG_RTCIO_BASE + 0x78) +/* RTC_IO_XPD_HALL : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: Power on hall sensor and connect to VP and VN*/ +#define RTC_IO_XPD_HALL (BIT(31)) +#define RTC_IO_XPD_HALL_M (BIT(31)) +#define RTC_IO_XPD_HALL_V 0x1 +#define RTC_IO_XPD_HALL_S 31 +/* RTC_IO_HALL_PHASE : R/W ;bitpos:[30] ;default: 1'd0 ; */ +/*description: Reverse phase of hall sensor*/ +#define RTC_IO_HALL_PHASE (BIT(30)) +#define RTC_IO_HALL_PHASE_M (BIT(30)) +#define RTC_IO_HALL_PHASE_V 0x1 +#define RTC_IO_HALL_PHASE_S 30 + +#define RTC_IO_SENSOR_PADS_REG (DR_REG_RTCIO_BASE + 0x7c) +/* RTC_IO_SENSE1_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_SENSE1_HOLD (BIT(31)) +#define RTC_IO_SENSE1_HOLD_M (BIT(31)) +#define RTC_IO_SENSE1_HOLD_V 0x1 +#define RTC_IO_SENSE1_HOLD_S 31 +/* RTC_IO_SENSE2_HOLD : R/W ;bitpos:[30] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_SENSE2_HOLD (BIT(30)) +#define RTC_IO_SENSE2_HOLD_M (BIT(30)) +#define RTC_IO_SENSE2_HOLD_V 0x1 +#define RTC_IO_SENSE2_HOLD_S 30 +/* RTC_IO_SENSE3_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_SENSE3_HOLD (BIT(29)) +#define RTC_IO_SENSE3_HOLD_M (BIT(29)) +#define RTC_IO_SENSE3_HOLD_V 0x1 +#define RTC_IO_SENSE3_HOLD_S 29 +/* RTC_IO_SENSE4_HOLD : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_SENSE4_HOLD (BIT(28)) +#define RTC_IO_SENSE4_HOLD_M (BIT(28)) +#define RTC_IO_SENSE4_HOLD_V 0x1 +#define RTC_IO_SENSE4_HOLD_S 28 +/* RTC_IO_SENSE1_MUX_SEL : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_SENSE1_MUX_SEL (BIT(27)) +#define RTC_IO_SENSE1_MUX_SEL_M (BIT(27)) +#define RTC_IO_SENSE1_MUX_SEL_V 0x1 +#define RTC_IO_SENSE1_MUX_SEL_S 27 +/* RTC_IO_SENSE2_MUX_SEL : R/W ;bitpos:[26] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_SENSE2_MUX_SEL (BIT(26)) +#define RTC_IO_SENSE2_MUX_SEL_M (BIT(26)) +#define RTC_IO_SENSE2_MUX_SEL_V 0x1 +#define RTC_IO_SENSE2_MUX_SEL_S 26 +/* RTC_IO_SENSE3_MUX_SEL : R/W ;bitpos:[25] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_SENSE3_MUX_SEL (BIT(25)) +#define RTC_IO_SENSE3_MUX_SEL_M (BIT(25)) +#define RTC_IO_SENSE3_MUX_SEL_V 0x1 +#define RTC_IO_SENSE3_MUX_SEL_S 25 +/* RTC_IO_SENSE4_MUX_SEL : R/W ;bitpos:[24] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_SENSE4_MUX_SEL (BIT(24)) +#define RTC_IO_SENSE4_MUX_SEL_M (BIT(24)) +#define RTC_IO_SENSE4_MUX_SEL_V 0x1 +#define RTC_IO_SENSE4_MUX_SEL_S 24 +/* RTC_IO_SENSE1_FUN_SEL : R/W ;bitpos:[23:22] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_SENSE1_FUN_SEL 0x00000003 +#define RTC_IO_SENSE1_FUN_SEL_M ((RTC_IO_SENSE1_FUN_SEL_V)<<(RTC_IO_SENSE1_FUN_SEL_S)) +#define RTC_IO_SENSE1_FUN_SEL_V 0x3 +#define RTC_IO_SENSE1_FUN_SEL_S 22 +/* RTC_IO_SENSE1_SLP_SEL : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_SENSE1_SLP_SEL (BIT(21)) +#define RTC_IO_SENSE1_SLP_SEL_M (BIT(21)) +#define RTC_IO_SENSE1_SLP_SEL_V 0x1 +#define RTC_IO_SENSE1_SLP_SEL_S 21 +/* RTC_IO_SENSE1_SLP_IE : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_SENSE1_SLP_IE (BIT(20)) +#define RTC_IO_SENSE1_SLP_IE_M (BIT(20)) +#define RTC_IO_SENSE1_SLP_IE_V 0x1 +#define RTC_IO_SENSE1_SLP_IE_S 20 +/* RTC_IO_SENSE1_FUN_IE : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_SENSE1_FUN_IE (BIT(19)) +#define RTC_IO_SENSE1_FUN_IE_M (BIT(19)) +#define RTC_IO_SENSE1_FUN_IE_V 0x1 +#define RTC_IO_SENSE1_FUN_IE_S 19 +/* RTC_IO_SENSE2_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_SENSE2_FUN_SEL 0x00000003 +#define RTC_IO_SENSE2_FUN_SEL_M ((RTC_IO_SENSE2_FUN_SEL_V)<<(RTC_IO_SENSE2_FUN_SEL_S)) +#define RTC_IO_SENSE2_FUN_SEL_V 0x3 +#define RTC_IO_SENSE2_FUN_SEL_S 17 +/* RTC_IO_SENSE2_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_SENSE2_SLP_SEL (BIT(16)) +#define RTC_IO_SENSE2_SLP_SEL_M (BIT(16)) +#define RTC_IO_SENSE2_SLP_SEL_V 0x1 +#define RTC_IO_SENSE2_SLP_SEL_S 16 +/* RTC_IO_SENSE2_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_SENSE2_SLP_IE (BIT(15)) +#define RTC_IO_SENSE2_SLP_IE_M (BIT(15)) +#define RTC_IO_SENSE2_SLP_IE_V 0x1 +#define RTC_IO_SENSE2_SLP_IE_S 15 +/* RTC_IO_SENSE2_FUN_IE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_SENSE2_FUN_IE (BIT(14)) +#define RTC_IO_SENSE2_FUN_IE_M (BIT(14)) +#define RTC_IO_SENSE2_FUN_IE_V 0x1 +#define RTC_IO_SENSE2_FUN_IE_S 14 +/* RTC_IO_SENSE3_FUN_SEL : R/W ;bitpos:[13:12] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_SENSE3_FUN_SEL 0x00000003 +#define RTC_IO_SENSE3_FUN_SEL_M ((RTC_IO_SENSE3_FUN_SEL_V)<<(RTC_IO_SENSE3_FUN_SEL_S)) +#define RTC_IO_SENSE3_FUN_SEL_V 0x3 +#define RTC_IO_SENSE3_FUN_SEL_S 12 +/* RTC_IO_SENSE3_SLP_SEL : R/W ;bitpos:[11] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_SENSE3_SLP_SEL (BIT(11)) +#define RTC_IO_SENSE3_SLP_SEL_M (BIT(11)) +#define RTC_IO_SENSE3_SLP_SEL_V 0x1 +#define RTC_IO_SENSE3_SLP_SEL_S 11 +/* RTC_IO_SENSE3_SLP_IE : R/W ;bitpos:[10] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_SENSE3_SLP_IE (BIT(10)) +#define RTC_IO_SENSE3_SLP_IE_M (BIT(10)) +#define RTC_IO_SENSE3_SLP_IE_V 0x1 +#define RTC_IO_SENSE3_SLP_IE_S 10 +/* RTC_IO_SENSE3_FUN_IE : R/W ;bitpos:[9] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_SENSE3_FUN_IE (BIT(9)) +#define RTC_IO_SENSE3_FUN_IE_M (BIT(9)) +#define RTC_IO_SENSE3_FUN_IE_V 0x1 +#define RTC_IO_SENSE3_FUN_IE_S 9 +/* RTC_IO_SENSE4_FUN_SEL : R/W ;bitpos:[8:7] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_SENSE4_FUN_SEL 0x00000003 +#define RTC_IO_SENSE4_FUN_SEL_M ((RTC_IO_SENSE4_FUN_SEL_V)<<(RTC_IO_SENSE4_FUN_SEL_S)) +#define RTC_IO_SENSE4_FUN_SEL_V 0x3 +#define RTC_IO_SENSE4_FUN_SEL_S 7 +/* RTC_IO_SENSE4_SLP_SEL : R/W ;bitpos:[6] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_SENSE4_SLP_SEL (BIT(6)) +#define RTC_IO_SENSE4_SLP_SEL_M (BIT(6)) +#define RTC_IO_SENSE4_SLP_SEL_V 0x1 +#define RTC_IO_SENSE4_SLP_SEL_S 6 +/* RTC_IO_SENSE4_SLP_IE : R/W ;bitpos:[5] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_SENSE4_SLP_IE (BIT(5)) +#define RTC_IO_SENSE4_SLP_IE_M (BIT(5)) +#define RTC_IO_SENSE4_SLP_IE_V 0x1 +#define RTC_IO_SENSE4_SLP_IE_S 5 +/* RTC_IO_SENSE4_FUN_IE : R/W ;bitpos:[4] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_SENSE4_FUN_IE (BIT(4)) +#define RTC_IO_SENSE4_FUN_IE_M (BIT(4)) +#define RTC_IO_SENSE4_FUN_IE_V 0x1 +#define RTC_IO_SENSE4_FUN_IE_S 4 + +#define RTC_IO_ADC_PAD_REG (DR_REG_RTCIO_BASE + 0x80) +/* RTC_IO_ADC1_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_ADC1_HOLD (BIT(31)) +#define RTC_IO_ADC1_HOLD_M (BIT(31)) +#define RTC_IO_ADC1_HOLD_V 0x1 +#define RTC_IO_ADC1_HOLD_S 31 +/* RTC_IO_ADC2_HOLD : R/W ;bitpos:[30] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_ADC2_HOLD (BIT(30)) +#define RTC_IO_ADC2_HOLD_M (BIT(30)) +#define RTC_IO_ADC2_HOLD_V 0x1 +#define RTC_IO_ADC2_HOLD_S 30 +/* RTC_IO_ADC1_MUX_SEL : R/W ;bitpos:[29] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_ADC1_MUX_SEL (BIT(29)) +#define RTC_IO_ADC1_MUX_SEL_M (BIT(29)) +#define RTC_IO_ADC1_MUX_SEL_V 0x1 +#define RTC_IO_ADC1_MUX_SEL_S 29 +/* RTC_IO_ADC2_MUX_SEL : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_ADC2_MUX_SEL (BIT(28)) +#define RTC_IO_ADC2_MUX_SEL_M (BIT(28)) +#define RTC_IO_ADC2_MUX_SEL_V 0x1 +#define RTC_IO_ADC2_MUX_SEL_S 28 +/* RTC_IO_ADC1_FUN_SEL : R/W ;bitpos:[27:26] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_ADC1_FUN_SEL 0x00000003 +#define RTC_IO_ADC1_FUN_SEL_M ((RTC_IO_ADC1_FUN_SEL_V)<<(RTC_IO_ADC1_FUN_SEL_S)) +#define RTC_IO_ADC1_FUN_SEL_V 0x3 +#define RTC_IO_ADC1_FUN_SEL_S 26 +/* RTC_IO_ADC1_SLP_SEL : R/W ;bitpos:[25] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_ADC1_SLP_SEL (BIT(25)) +#define RTC_IO_ADC1_SLP_SEL_M (BIT(25)) +#define RTC_IO_ADC1_SLP_SEL_V 0x1 +#define RTC_IO_ADC1_SLP_SEL_S 25 +/* RTC_IO_ADC1_SLP_IE : R/W ;bitpos:[24] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_ADC1_SLP_IE (BIT(24)) +#define RTC_IO_ADC1_SLP_IE_M (BIT(24)) +#define RTC_IO_ADC1_SLP_IE_V 0x1 +#define RTC_IO_ADC1_SLP_IE_S 24 +/* RTC_IO_ADC1_FUN_IE : R/W ;bitpos:[23] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_ADC1_FUN_IE (BIT(23)) +#define RTC_IO_ADC1_FUN_IE_M (BIT(23)) +#define RTC_IO_ADC1_FUN_IE_V 0x1 +#define RTC_IO_ADC1_FUN_IE_S 23 +/* RTC_IO_ADC2_FUN_SEL : R/W ;bitpos:[22:21] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_ADC2_FUN_SEL 0x00000003 +#define RTC_IO_ADC2_FUN_SEL_M ((RTC_IO_ADC2_FUN_SEL_V)<<(RTC_IO_ADC2_FUN_SEL_S)) +#define RTC_IO_ADC2_FUN_SEL_V 0x3 +#define RTC_IO_ADC2_FUN_SEL_S 21 +/* RTC_IO_ADC2_SLP_SEL : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_ADC2_SLP_SEL (BIT(20)) +#define RTC_IO_ADC2_SLP_SEL_M (BIT(20)) +#define RTC_IO_ADC2_SLP_SEL_V 0x1 +#define RTC_IO_ADC2_SLP_SEL_S 20 +/* RTC_IO_ADC2_SLP_IE : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_ADC2_SLP_IE (BIT(19)) +#define RTC_IO_ADC2_SLP_IE_M (BIT(19)) +#define RTC_IO_ADC2_SLP_IE_V 0x1 +#define RTC_IO_ADC2_SLP_IE_S 19 +/* RTC_IO_ADC2_FUN_IE : R/W ;bitpos:[18] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_ADC2_FUN_IE (BIT(18)) +#define RTC_IO_ADC2_FUN_IE_M (BIT(18)) +#define RTC_IO_ADC2_FUN_IE_V 0x1 +#define RTC_IO_ADC2_FUN_IE_S 18 + +#define RTC_IO_PAD_DAC1_REG (DR_REG_RTCIO_BASE + 0x84) +/* RTC_IO_PDAC1_DRV : R/W ;bitpos:[31:30] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_PDAC1_DRV 0x00000003 +#define RTC_IO_PDAC1_DRV_M ((RTC_IO_PDAC1_DRV_V)<<(RTC_IO_PDAC1_DRV_S)) +#define RTC_IO_PDAC1_DRV_V 0x3 +#define RTC_IO_PDAC1_DRV_S 30 +/* RTC_IO_PDAC1_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_PDAC1_HOLD (BIT(29)) +#define RTC_IO_PDAC1_HOLD_M (BIT(29)) +#define RTC_IO_PDAC1_HOLD_V 0x1 +#define RTC_IO_PDAC1_HOLD_S 29 +/* RTC_IO_PDAC1_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_PDAC1_RDE (BIT(28)) +#define RTC_IO_PDAC1_RDE_M (BIT(28)) +#define RTC_IO_PDAC1_RDE_V 0x1 +#define RTC_IO_PDAC1_RDE_S 28 +/* RTC_IO_PDAC1_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_PDAC1_RUE (BIT(27)) +#define RTC_IO_PDAC1_RUE_M (BIT(27)) +#define RTC_IO_PDAC1_RUE_V 0x1 +#define RTC_IO_PDAC1_RUE_S 27 +/* RTC_IO_PDAC1_DAC : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ +/*description: PAD DAC1 control code.*/ +#define RTC_IO_PDAC1_DAC 0x000000FF +#define RTC_IO_PDAC1_DAC_M ((RTC_IO_PDAC1_DAC_V)<<(RTC_IO_PDAC1_DAC_S)) +#define RTC_IO_PDAC1_DAC_V 0xFF +#define RTC_IO_PDAC1_DAC_S 19 +/* RTC_IO_PDAC1_XPD_DAC : R/W ;bitpos:[18] ;default: 1'd0 ; */ +/*description: Power on DAC1. Usually we need to tristate PDAC1 if we power + on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ +#define RTC_IO_PDAC1_XPD_DAC (BIT(18)) +#define RTC_IO_PDAC1_XPD_DAC_M (BIT(18)) +#define RTC_IO_PDAC1_XPD_DAC_V 0x1 +#define RTC_IO_PDAC1_XPD_DAC_S 18 +/* RTC_IO_PDAC1_MUX_SEL : R/W ;bitpos:[17] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_PDAC1_MUX_SEL (BIT(17)) +#define RTC_IO_PDAC1_MUX_SEL_M (BIT(17)) +#define RTC_IO_PDAC1_MUX_SEL_V 0x1 +#define RTC_IO_PDAC1_MUX_SEL_S 17 +/* RTC_IO_PDAC1_FUN_SEL : R/W ;bitpos:[16:15] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_PDAC1_FUN_SEL 0x00000003 +#define RTC_IO_PDAC1_FUN_SEL_M ((RTC_IO_PDAC1_FUN_SEL_V)<<(RTC_IO_PDAC1_FUN_SEL_S)) +#define RTC_IO_PDAC1_FUN_SEL_V 0x3 +#define RTC_IO_PDAC1_FUN_SEL_S 15 +/* RTC_IO_PDAC1_SLP_SEL : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_PDAC1_SLP_SEL (BIT(14)) +#define RTC_IO_PDAC1_SLP_SEL_M (BIT(14)) +#define RTC_IO_PDAC1_SLP_SEL_V 0x1 +#define RTC_IO_PDAC1_SLP_SEL_S 14 +/* RTC_IO_PDAC1_SLP_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_PDAC1_SLP_IE (BIT(13)) +#define RTC_IO_PDAC1_SLP_IE_M (BIT(13)) +#define RTC_IO_PDAC1_SLP_IE_V 0x1 +#define RTC_IO_PDAC1_SLP_IE_S 13 +/* RTC_IO_PDAC1_SLP_OE : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_PDAC1_SLP_OE (BIT(12)) +#define RTC_IO_PDAC1_SLP_OE_M (BIT(12)) +#define RTC_IO_PDAC1_SLP_OE_V 0x1 +#define RTC_IO_PDAC1_SLP_OE_S 12 +/* RTC_IO_PDAC1_FUN_IE : R/W ;bitpos:[11] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_PDAC1_FUN_IE (BIT(11)) +#define RTC_IO_PDAC1_FUN_IE_M (BIT(11)) +#define RTC_IO_PDAC1_FUN_IE_V 0x1 +#define RTC_IO_PDAC1_FUN_IE_S 11 +/* RTC_IO_PDAC1_DAC_XPD_FORCE : R/W ;bitpos:[10] ;default: 1'd0 ; */ +/*description: Power on DAC1. Usually we need to tristate PDAC1 if we power + on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ +#define RTC_IO_PDAC1_DAC_XPD_FORCE (BIT(10)) +#define RTC_IO_PDAC1_DAC_XPD_FORCE_M (BIT(10)) +#define RTC_IO_PDAC1_DAC_XPD_FORCE_V 0x1 +#define RTC_IO_PDAC1_DAC_XPD_FORCE_S 10 + +#define RTC_IO_PAD_DAC2_REG (DR_REG_RTCIO_BASE + 0x88) +/* RTC_IO_PDAC2_DRV : R/W ;bitpos:[31:30] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_PDAC2_DRV 0x00000003 +#define RTC_IO_PDAC2_DRV_M ((RTC_IO_PDAC2_DRV_V)<<(RTC_IO_PDAC2_DRV_S)) +#define RTC_IO_PDAC2_DRV_V 0x3 +#define RTC_IO_PDAC2_DRV_S 30 +/* RTC_IO_PDAC2_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_PDAC2_HOLD (BIT(29)) +#define RTC_IO_PDAC2_HOLD_M (BIT(29)) +#define RTC_IO_PDAC2_HOLD_V 0x1 +#define RTC_IO_PDAC2_HOLD_S 29 +/* RTC_IO_PDAC2_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_PDAC2_RDE (BIT(28)) +#define RTC_IO_PDAC2_RDE_M (BIT(28)) +#define RTC_IO_PDAC2_RDE_V 0x1 +#define RTC_IO_PDAC2_RDE_S 28 +/* RTC_IO_PDAC2_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_PDAC2_RUE (BIT(27)) +#define RTC_IO_PDAC2_RUE_M (BIT(27)) +#define RTC_IO_PDAC2_RUE_V 0x1 +#define RTC_IO_PDAC2_RUE_S 27 +/* RTC_IO_PDAC2_DAC : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ +/*description: PAD DAC2 control code.*/ +#define RTC_IO_PDAC2_DAC 0x000000FF +#define RTC_IO_PDAC2_DAC_M ((RTC_IO_PDAC2_DAC_V)<<(RTC_IO_PDAC2_DAC_S)) +#define RTC_IO_PDAC2_DAC_V 0xFF +#define RTC_IO_PDAC2_DAC_S 19 +/* RTC_IO_PDAC2_XPD_DAC : R/W ;bitpos:[18] ;default: 1'd0 ; */ +/*description: Power on DAC2. Usually we need to tristate PDAC1 if we power + on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ +#define RTC_IO_PDAC2_XPD_DAC (BIT(18)) +#define RTC_IO_PDAC2_XPD_DAC_M (BIT(18)) +#define RTC_IO_PDAC2_XPD_DAC_V 0x1 +#define RTC_IO_PDAC2_XPD_DAC_S 18 +/* RTC_IO_PDAC2_MUX_SEL : R/W ;bitpos:[17] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_PDAC2_MUX_SEL (BIT(17)) +#define RTC_IO_PDAC2_MUX_SEL_M (BIT(17)) +#define RTC_IO_PDAC2_MUX_SEL_V 0x1 +#define RTC_IO_PDAC2_MUX_SEL_S 17 +/* RTC_IO_PDAC2_FUN_SEL : R/W ;bitpos:[16:15] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_PDAC2_FUN_SEL 0x00000003 +#define RTC_IO_PDAC2_FUN_SEL_M ((RTC_IO_PDAC2_FUN_SEL_V)<<(RTC_IO_PDAC2_FUN_SEL_S)) +#define RTC_IO_PDAC2_FUN_SEL_V 0x3 +#define RTC_IO_PDAC2_FUN_SEL_S 15 +/* RTC_IO_PDAC2_SLP_SEL : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_PDAC2_SLP_SEL (BIT(14)) +#define RTC_IO_PDAC2_SLP_SEL_M (BIT(14)) +#define RTC_IO_PDAC2_SLP_SEL_V 0x1 +#define RTC_IO_PDAC2_SLP_SEL_S 14 +/* RTC_IO_PDAC2_SLP_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_PDAC2_SLP_IE (BIT(13)) +#define RTC_IO_PDAC2_SLP_IE_M (BIT(13)) +#define RTC_IO_PDAC2_SLP_IE_V 0x1 +#define RTC_IO_PDAC2_SLP_IE_S 13 +/* RTC_IO_PDAC2_SLP_OE : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_PDAC2_SLP_OE (BIT(12)) +#define RTC_IO_PDAC2_SLP_OE_M (BIT(12)) +#define RTC_IO_PDAC2_SLP_OE_V 0x1 +#define RTC_IO_PDAC2_SLP_OE_S 12 +/* RTC_IO_PDAC2_FUN_IE : R/W ;bitpos:[11] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_PDAC2_FUN_IE (BIT(11)) +#define RTC_IO_PDAC2_FUN_IE_M (BIT(11)) +#define RTC_IO_PDAC2_FUN_IE_V 0x1 +#define RTC_IO_PDAC2_FUN_IE_S 11 +/* RTC_IO_PDAC2_DAC_XPD_FORCE : R/W ;bitpos:[10] ;default: 1'd0 ; */ +/*description: Power on DAC2. Usually we need to tristate PDAC2 if we power + on the DAC i.e. IE=0 OE=0 RDE=0 RUE=0*/ +#define RTC_IO_PDAC2_DAC_XPD_FORCE (BIT(10)) +#define RTC_IO_PDAC2_DAC_XPD_FORCE_M (BIT(10)) +#define RTC_IO_PDAC2_DAC_XPD_FORCE_V 0x1 +#define RTC_IO_PDAC2_DAC_XPD_FORCE_S 10 + +#define RTC_IO_XTAL_32K_PAD_REG (DR_REG_RTCIO_BASE + 0x8c) +/* RTC_IO_X32N_DRV : R/W ;bitpos:[31:30] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_X32N_DRV 0x00000003 +#define RTC_IO_X32N_DRV_M ((RTC_IO_X32N_DRV_V)<<(RTC_IO_X32N_DRV_S)) +#define RTC_IO_X32N_DRV_V 0x3 +#define RTC_IO_X32N_DRV_S 30 +/* RTC_IO_X32N_HOLD : R/W ;bitpos:[29] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_X32N_HOLD (BIT(29)) +#define RTC_IO_X32N_HOLD_M (BIT(29)) +#define RTC_IO_X32N_HOLD_V 0x1 +#define RTC_IO_X32N_HOLD_S 29 +/* RTC_IO_X32N_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_X32N_RDE (BIT(28)) +#define RTC_IO_X32N_RDE_M (BIT(28)) +#define RTC_IO_X32N_RDE_V 0x1 +#define RTC_IO_X32N_RDE_S 28 +/* RTC_IO_X32N_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_X32N_RUE (BIT(27)) +#define RTC_IO_X32N_RUE_M (BIT(27)) +#define RTC_IO_X32N_RUE_V 0x1 +#define RTC_IO_X32N_RUE_S 27 +/* RTC_IO_X32P_DRV : R/W ;bitpos:[26:25] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_X32P_DRV 0x00000003 +#define RTC_IO_X32P_DRV_M ((RTC_IO_X32P_DRV_V)<<(RTC_IO_X32P_DRV_S)) +#define RTC_IO_X32P_DRV_V 0x3 +#define RTC_IO_X32P_DRV_S 25 +/* RTC_IO_X32P_HOLD : R/W ;bitpos:[24] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_X32P_HOLD (BIT(24)) +#define RTC_IO_X32P_HOLD_M (BIT(24)) +#define RTC_IO_X32P_HOLD_V 0x1 +#define RTC_IO_X32P_HOLD_S 24 +/* RTC_IO_X32P_RDE : R/W ;bitpos:[23] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_X32P_RDE (BIT(23)) +#define RTC_IO_X32P_RDE_M (BIT(23)) +#define RTC_IO_X32P_RDE_V 0x1 +#define RTC_IO_X32P_RDE_S 23 +/* RTC_IO_X32P_RUE : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_X32P_RUE (BIT(22)) +#define RTC_IO_X32P_RUE_M (BIT(22)) +#define RTC_IO_X32P_RUE_V 0x1 +#define RTC_IO_X32P_RUE_S 22 +/* RTC_IO_DAC_XTAL_32K : R/W ;bitpos:[21:20] ;default: 2'b01 ; */ +/*description: 32K XTAL bias current DAC.*/ +#define RTC_IO_DAC_XTAL_32K 0x00000003 +#define RTC_IO_DAC_XTAL_32K_M ((RTC_IO_DAC_XTAL_32K_V)<<(RTC_IO_DAC_XTAL_32K_S)) +#define RTC_IO_DAC_XTAL_32K_V 0x3 +#define RTC_IO_DAC_XTAL_32K_S 20 +/* RTC_IO_XPD_XTAL_32K : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Power up 32kHz crystal oscillator*/ +#define RTC_IO_XPD_XTAL_32K (BIT(19)) +#define RTC_IO_XPD_XTAL_32K_M (BIT(19)) +#define RTC_IO_XPD_XTAL_32K_V 0x1 +#define RTC_IO_XPD_XTAL_32K_S 19 +/* RTC_IO_X32N_MUX_SEL : R/W ;bitpos:[18] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_X32N_MUX_SEL (BIT(18)) +#define RTC_IO_X32N_MUX_SEL_M (BIT(18)) +#define RTC_IO_X32N_MUX_SEL_V 0x1 +#define RTC_IO_X32N_MUX_SEL_S 18 +/* RTC_IO_X32P_MUX_SEL : R/W ;bitpos:[17] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_X32P_MUX_SEL (BIT(17)) +#define RTC_IO_X32P_MUX_SEL_M (BIT(17)) +#define RTC_IO_X32P_MUX_SEL_V 0x1 +#define RTC_IO_X32P_MUX_SEL_S 17 +/* RTC_IO_X32N_FUN_SEL : R/W ;bitpos:[16:15] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_X32N_FUN_SEL 0x00000003 +#define RTC_IO_X32N_FUN_SEL_M ((RTC_IO_X32N_FUN_SEL_V)<<(RTC_IO_X32N_FUN_SEL_S)) +#define RTC_IO_X32N_FUN_SEL_V 0x3 +#define RTC_IO_X32N_FUN_SEL_S 15 +/* RTC_IO_X32N_SLP_SEL : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_X32N_SLP_SEL (BIT(14)) +#define RTC_IO_X32N_SLP_SEL_M (BIT(14)) +#define RTC_IO_X32N_SLP_SEL_V 0x1 +#define RTC_IO_X32N_SLP_SEL_S 14 +/* RTC_IO_X32N_SLP_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_X32N_SLP_IE (BIT(13)) +#define RTC_IO_X32N_SLP_IE_M (BIT(13)) +#define RTC_IO_X32N_SLP_IE_V 0x1 +#define RTC_IO_X32N_SLP_IE_S 13 +/* RTC_IO_X32N_SLP_OE : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_X32N_SLP_OE (BIT(12)) +#define RTC_IO_X32N_SLP_OE_M (BIT(12)) +#define RTC_IO_X32N_SLP_OE_V 0x1 +#define RTC_IO_X32N_SLP_OE_S 12 +/* RTC_IO_X32N_FUN_IE : R/W ;bitpos:[11] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_X32N_FUN_IE (BIT(11)) +#define RTC_IO_X32N_FUN_IE_M (BIT(11)) +#define RTC_IO_X32N_FUN_IE_V 0x1 +#define RTC_IO_X32N_FUN_IE_S 11 +/* RTC_IO_X32P_FUN_SEL : R/W ;bitpos:[10:9] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_X32P_FUN_SEL 0x00000003 +#define RTC_IO_X32P_FUN_SEL_M ((RTC_IO_X32P_FUN_SEL_V)<<(RTC_IO_X32P_FUN_SEL_S)) +#define RTC_IO_X32P_FUN_SEL_V 0x3 +#define RTC_IO_X32P_FUN_SEL_S 9 +/* RTC_IO_X32P_SLP_SEL : R/W ;bitpos:[8] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_X32P_SLP_SEL (BIT(8)) +#define RTC_IO_X32P_SLP_SEL_M (BIT(8)) +#define RTC_IO_X32P_SLP_SEL_V 0x1 +#define RTC_IO_X32P_SLP_SEL_S 8 +/* RTC_IO_X32P_SLP_IE : R/W ;bitpos:[7] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_X32P_SLP_IE (BIT(7)) +#define RTC_IO_X32P_SLP_IE_M (BIT(7)) +#define RTC_IO_X32P_SLP_IE_V 0x1 +#define RTC_IO_X32P_SLP_IE_S 7 +/* RTC_IO_X32P_SLP_OE : R/W ;bitpos:[6] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_X32P_SLP_OE (BIT(6)) +#define RTC_IO_X32P_SLP_OE_M (BIT(6)) +#define RTC_IO_X32P_SLP_OE_V 0x1 +#define RTC_IO_X32P_SLP_OE_S 6 +/* RTC_IO_X32P_FUN_IE : R/W ;bitpos:[5] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_X32P_FUN_IE (BIT(5)) +#define RTC_IO_X32P_FUN_IE_M (BIT(5)) +#define RTC_IO_X32P_FUN_IE_V 0x1 +#define RTC_IO_X32P_FUN_IE_S 5 +/* RTC_IO_DRES_XTAL_32K : R/W ;bitpos:[4:3] ;default: 2'b10 ; */ +/*description: 32K XTAL resistor bias control.*/ +#define RTC_IO_DRES_XTAL_32K 0x00000003 +#define RTC_IO_DRES_XTAL_32K_M ((RTC_IO_DRES_XTAL_32K_V)<<(RTC_IO_DRES_XTAL_32K_S)) +#define RTC_IO_DRES_XTAL_32K_V 0x3 +#define RTC_IO_DRES_XTAL_32K_S 3 +/* RTC_IO_DBIAS_XTAL_32K : R/W ;bitpos:[2:1] ;default: 2'b00 ; */ +/*description: 32K XTAL self-bias reference control.*/ +#define RTC_IO_DBIAS_XTAL_32K 0x00000003 +#define RTC_IO_DBIAS_XTAL_32K_M ((RTC_IO_DBIAS_XTAL_32K_V)<<(RTC_IO_DBIAS_XTAL_32K_S)) +#define RTC_IO_DBIAS_XTAL_32K_V 0x3 +#define RTC_IO_DBIAS_XTAL_32K_S 1 + +#define RTC_IO_TOUCH_CFG_REG (DR_REG_RTCIO_BASE + 0x90) +/* RTC_IO_TOUCH_XPD_BIAS : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: touch sensor bias power on.*/ +#define RTC_IO_TOUCH_XPD_BIAS (BIT(31)) +#define RTC_IO_TOUCH_XPD_BIAS_M (BIT(31)) +#define RTC_IO_TOUCH_XPD_BIAS_V 0x1 +#define RTC_IO_TOUCH_XPD_BIAS_S 31 +/* RTC_IO_TOUCH_DREFH : R/W ;bitpos:[30:29] ;default: 2'b11 ; */ +/*description: touch sensor saw wave top voltage.*/ +#define RTC_IO_TOUCH_DREFH 0x00000003 +#define RTC_IO_TOUCH_DREFH_M ((RTC_IO_TOUCH_DREFH_V)<<(RTC_IO_TOUCH_DREFH_S)) +#define RTC_IO_TOUCH_DREFH_V 0x3 +#define RTC_IO_TOUCH_DREFH_S 29 +/* RTC_IO_TOUCH_DREFL : R/W ;bitpos:[28:27] ;default: 2'b00 ; */ +/*description: touch sensor saw wave bottom voltage.*/ +#define RTC_IO_TOUCH_DREFL 0x00000003 +#define RTC_IO_TOUCH_DREFL_M ((RTC_IO_TOUCH_DREFL_V)<<(RTC_IO_TOUCH_DREFL_S)) +#define RTC_IO_TOUCH_DREFL_V 0x3 +#define RTC_IO_TOUCH_DREFL_S 27 +/* RTC_IO_TOUCH_DRANGE : R/W ;bitpos:[26:25] ;default: 2'b11 ; */ +/*description: touch sensor saw wave voltage range.*/ +#define RTC_IO_TOUCH_DRANGE 0x00000003 +#define RTC_IO_TOUCH_DRANGE_M ((RTC_IO_TOUCH_DRANGE_V)<<(RTC_IO_TOUCH_DRANGE_S)) +#define RTC_IO_TOUCH_DRANGE_V 0x3 +#define RTC_IO_TOUCH_DRANGE_S 25 +/* RTC_IO_TOUCH_DCUR : R/W ;bitpos:[24:23] ;default: 2'b00 ; */ +/*description: touch sensor bias current. Should have option to tie with BIAS_SLEEP(When + BIAS_SLEEP this setting is available*/ +#define RTC_IO_TOUCH_DCUR 0x00000003 +#define RTC_IO_TOUCH_DCUR_M ((RTC_IO_TOUCH_DCUR_V)<<(RTC_IO_TOUCH_DCUR_S)) +#define RTC_IO_TOUCH_DCUR_V 0x3 +#define RTC_IO_TOUCH_DCUR_S 23 + +#define RTC_IO_TOUCH_PAD0_REG (DR_REG_RTCIO_BASE + 0x94) +/* RTC_IO_TOUCH_PAD0_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD0_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD0_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD0_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD0_HOLD_S 31 +/* RTC_IO_TOUCH_PAD0_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD0_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD0_DRV_M ((RTC_IO_TOUCH_PAD0_DRV_V)<<(RTC_IO_TOUCH_PAD0_DRV_S)) +#define RTC_IO_TOUCH_PAD0_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD0_DRV_S 29 +/* RTC_IO_TOUCH_PAD0_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD0_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD0_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD0_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD0_RDE_S 28 +/* RTC_IO_TOUCH_PAD0_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD0_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD0_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD0_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD0_RUE_S 27 +/* RTC_IO_TOUCH_PAD0_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD0_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD0_DAC_M ((RTC_IO_TOUCH_PAD0_DAC_V)<<(RTC_IO_TOUCH_PAD0_DAC_S)) +#define RTC_IO_TOUCH_PAD0_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD0_DAC_S 23 +/* RTC_IO_TOUCH_PAD0_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD0_START (BIT(22)) +#define RTC_IO_TOUCH_PAD0_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD0_START_V 0x1 +#define RTC_IO_TOUCH_PAD0_START_S 22 +/* RTC_IO_TOUCH_PAD0_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD0_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD0_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD0_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD0_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD0_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD0_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD0_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD0_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD0_XPD_S 20 +/* RTC_IO_TOUCH_PAD0_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD0_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD0_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD0_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD0_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD0_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD0_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD0_FUN_SEL_M ((RTC_IO_TOUCH_PAD0_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD0_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD0_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD0_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD0_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD0_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD0_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD0_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD0_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD0_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD0_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD0_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD0_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD0_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD0_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD0_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD0_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD0_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD0_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD0_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD0_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD0_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD0_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD0_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD0_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale GPIO4*/ +#define RTC_IO_TOUCH_PAD0_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD0_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD0_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD0_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD1_REG (DR_REG_RTCIO_BASE + 0x98) +/* RTC_IO_TOUCH_PAD1_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: */ +#define RTC_IO_TOUCH_PAD1_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD1_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD1_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD1_HOLD_S 31 +/* RTC_IO_TOUCH_PAD1_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD1_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD1_DRV_M ((RTC_IO_TOUCH_PAD1_DRV_V)<<(RTC_IO_TOUCH_PAD1_DRV_S)) +#define RTC_IO_TOUCH_PAD1_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD1_DRV_S 29 +/* RTC_IO_TOUCH_PAD1_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD1_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD1_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD1_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD1_RDE_S 28 +/* RTC_IO_TOUCH_PAD1_RUE : R/W ;bitpos:[27] ;default: 1'd1 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD1_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD1_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD1_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD1_RUE_S 27 +/* RTC_IO_TOUCH_PAD1_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD1_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD1_DAC_M ((RTC_IO_TOUCH_PAD1_DAC_V)<<(RTC_IO_TOUCH_PAD1_DAC_S)) +#define RTC_IO_TOUCH_PAD1_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD1_DAC_S 23 +/* RTC_IO_TOUCH_PAD1_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD1_START (BIT(22)) +#define RTC_IO_TOUCH_PAD1_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD1_START_V 0x1 +#define RTC_IO_TOUCH_PAD1_START_S 22 +/* RTC_IO_TOUCH_PAD1_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD1_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD1_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD1_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD1_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD1_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD1_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD1_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD1_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD1_XPD_S 20 +/* RTC_IO_TOUCH_PAD1_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD1_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD1_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD1_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD1_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD1_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD1_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD1_FUN_SEL_M ((RTC_IO_TOUCH_PAD1_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD1_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD1_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD1_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD1_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD1_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD1_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD1_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD1_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD1_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD1_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD1_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD1_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD1_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD1_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD1_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD1_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD1_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD1_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD1_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD1_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD1_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD1_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD1_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD1_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.GPIO0*/ +#define RTC_IO_TOUCH_PAD1_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD1_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD1_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD1_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD2_REG (DR_REG_RTCIO_BASE + 0x9c) +/* RTC_IO_TOUCH_PAD2_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD2_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD2_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD2_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD2_HOLD_S 31 +/* RTC_IO_TOUCH_PAD2_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD2_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD2_DRV_M ((RTC_IO_TOUCH_PAD2_DRV_V)<<(RTC_IO_TOUCH_PAD2_DRV_S)) +#define RTC_IO_TOUCH_PAD2_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD2_DRV_S 29 +/* RTC_IO_TOUCH_PAD2_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD2_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD2_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD2_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD2_RDE_S 28 +/* RTC_IO_TOUCH_PAD2_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD2_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD2_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD2_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD2_RUE_S 27 +/* RTC_IO_TOUCH_PAD2_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD2_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD2_DAC_M ((RTC_IO_TOUCH_PAD2_DAC_V)<<(RTC_IO_TOUCH_PAD2_DAC_S)) +#define RTC_IO_TOUCH_PAD2_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD2_DAC_S 23 +/* RTC_IO_TOUCH_PAD2_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD2_START (BIT(22)) +#define RTC_IO_TOUCH_PAD2_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD2_START_V 0x1 +#define RTC_IO_TOUCH_PAD2_START_S 22 +/* RTC_IO_TOUCH_PAD2_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD2_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD2_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD2_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD2_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD2_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD2_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD2_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD2_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD2_XPD_S 20 +/* RTC_IO_TOUCH_PAD2_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD2_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD2_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD2_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD2_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD2_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD2_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD2_FUN_SEL_M ((RTC_IO_TOUCH_PAD2_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD2_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD2_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD2_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD2_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD2_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD2_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD2_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD2_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD2_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD2_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD2_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD2_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD2_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD2_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD2_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD2_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD2_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD2_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD2_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD2_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD2_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD2_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD2_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD2_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.GPIO2*/ +#define RTC_IO_TOUCH_PAD2_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD2_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD2_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD2_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD3_REG (DR_REG_RTCIO_BASE + 0xa0) +/* RTC_IO_TOUCH_PAD3_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD3_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD3_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD3_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD3_HOLD_S 31 +/* RTC_IO_TOUCH_PAD3_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD3_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD3_DRV_M ((RTC_IO_TOUCH_PAD3_DRV_V)<<(RTC_IO_TOUCH_PAD3_DRV_S)) +#define RTC_IO_TOUCH_PAD3_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD3_DRV_S 29 +/* RTC_IO_TOUCH_PAD3_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD3_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD3_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD3_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD3_RDE_S 28 +/* RTC_IO_TOUCH_PAD3_RUE : R/W ;bitpos:[27] ;default: 1'd1 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD3_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD3_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD3_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD3_RUE_S 27 +/* RTC_IO_TOUCH_PAD3_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD3_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD3_DAC_M ((RTC_IO_TOUCH_PAD3_DAC_V)<<(RTC_IO_TOUCH_PAD3_DAC_S)) +#define RTC_IO_TOUCH_PAD3_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD3_DAC_S 23 +/* RTC_IO_TOUCH_PAD3_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD3_START (BIT(22)) +#define RTC_IO_TOUCH_PAD3_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD3_START_V 0x1 +#define RTC_IO_TOUCH_PAD3_START_S 22 +/* RTC_IO_TOUCH_PAD3_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD3_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD3_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD3_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD3_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD3_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD3_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD3_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD3_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD3_XPD_S 20 +/* RTC_IO_TOUCH_PAD3_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD3_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD3_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD3_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD3_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD3_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD3_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD3_FUN_SEL_M ((RTC_IO_TOUCH_PAD3_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD3_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD3_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD3_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD3_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD3_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD3_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD3_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD3_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD3_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD3_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD3_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD3_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD3_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD3_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD3_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD3_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD3_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD3_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD3_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD3_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD3_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD3_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD3_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD3_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTDO*/ +#define RTC_IO_TOUCH_PAD3_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD3_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD3_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD3_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD4_REG (DR_REG_RTCIO_BASE + 0xa4) +/* RTC_IO_TOUCH_PAD4_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD4_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD4_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD4_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD4_HOLD_S 31 +/* RTC_IO_TOUCH_PAD4_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD4_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD4_DRV_M ((RTC_IO_TOUCH_PAD4_DRV_V)<<(RTC_IO_TOUCH_PAD4_DRV_S)) +#define RTC_IO_TOUCH_PAD4_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD4_DRV_S 29 +/* RTC_IO_TOUCH_PAD4_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD4_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD4_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD4_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD4_RDE_S 28 +/* RTC_IO_TOUCH_PAD4_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD4_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD4_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD4_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD4_RUE_S 27 +/* RTC_IO_TOUCH_PAD4_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD4_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD4_DAC_M ((RTC_IO_TOUCH_PAD4_DAC_V)<<(RTC_IO_TOUCH_PAD4_DAC_S)) +#define RTC_IO_TOUCH_PAD4_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD4_DAC_S 23 +/* RTC_IO_TOUCH_PAD4_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD4_START (BIT(22)) +#define RTC_IO_TOUCH_PAD4_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD4_START_V 0x1 +#define RTC_IO_TOUCH_PAD4_START_S 22 +/* RTC_IO_TOUCH_PAD4_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD4_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD4_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD4_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD4_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD4_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD4_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD4_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD4_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD4_XPD_S 20 +/* RTC_IO_TOUCH_PAD4_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD4_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD4_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD4_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD4_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD4_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD4_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD4_FUN_SEL_M ((RTC_IO_TOUCH_PAD4_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD4_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD4_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD4_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD4_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD4_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD4_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD4_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD4_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD4_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD4_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD4_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD4_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD4_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD4_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD4_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD4_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD4_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD4_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD4_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD4_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD4_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD4_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD4_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD4_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTCK*/ +#define RTC_IO_TOUCH_PAD4_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD4_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD4_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD4_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD5_REG (DR_REG_RTCIO_BASE + 0xa8) +/* RTC_IO_TOUCH_PAD5_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD5_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD5_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD5_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD5_HOLD_S 31 +/* RTC_IO_TOUCH_PAD5_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD5_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD5_DRV_M ((RTC_IO_TOUCH_PAD5_DRV_V)<<(RTC_IO_TOUCH_PAD5_DRV_S)) +#define RTC_IO_TOUCH_PAD5_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD5_DRV_S 29 +/* RTC_IO_TOUCH_PAD5_RDE : R/W ;bitpos:[28] ;default: 1'd1 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD5_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD5_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD5_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD5_RDE_S 28 +/* RTC_IO_TOUCH_PAD5_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD5_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD5_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD5_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD5_RUE_S 27 +/* RTC_IO_TOUCH_PAD5_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD5_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD5_DAC_M ((RTC_IO_TOUCH_PAD5_DAC_V)<<(RTC_IO_TOUCH_PAD5_DAC_S)) +#define RTC_IO_TOUCH_PAD5_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD5_DAC_S 23 +/* RTC_IO_TOUCH_PAD5_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD5_START (BIT(22)) +#define RTC_IO_TOUCH_PAD5_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD5_START_V 0x1 +#define RTC_IO_TOUCH_PAD5_START_S 22 +/* RTC_IO_TOUCH_PAD5_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD5_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD5_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD5_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD5_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD5_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD5_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD5_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD5_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD5_XPD_S 20 +/* RTC_IO_TOUCH_PAD5_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD5_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD5_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD5_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD5_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD5_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD5_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD5_FUN_SEL_M ((RTC_IO_TOUCH_PAD5_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD5_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD5_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD5_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD5_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD5_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD5_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD5_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD5_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD5_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD5_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD5_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD5_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD5_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD5_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD5_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD5_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD5_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD5_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD5_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD5_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD5_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD5_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD5_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD5_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTDI*/ +#define RTC_IO_TOUCH_PAD5_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD5_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD5_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD5_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD6_REG (DR_REG_RTCIO_BASE + 0xac) +/* RTC_IO_TOUCH_PAD6_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD6_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD6_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD6_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD6_HOLD_S 31 +/* RTC_IO_TOUCH_PAD6_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD6_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD6_DRV_M ((RTC_IO_TOUCH_PAD6_DRV_V)<<(RTC_IO_TOUCH_PAD6_DRV_S)) +#define RTC_IO_TOUCH_PAD6_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD6_DRV_S 29 +/* RTC_IO_TOUCH_PAD6_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD6_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD6_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD6_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD6_RDE_S 28 +/* RTC_IO_TOUCH_PAD6_RUE : R/W ;bitpos:[27] ;default: 1'd1 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD6_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD6_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD6_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD6_RUE_S 27 +/* RTC_IO_TOUCH_PAD6_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD6_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD6_DAC_M ((RTC_IO_TOUCH_PAD6_DAC_V)<<(RTC_IO_TOUCH_PAD6_DAC_S)) +#define RTC_IO_TOUCH_PAD6_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD6_DAC_S 23 +/* RTC_IO_TOUCH_PAD6_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD6_START (BIT(22)) +#define RTC_IO_TOUCH_PAD6_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD6_START_V 0x1 +#define RTC_IO_TOUCH_PAD6_START_S 22 +/* RTC_IO_TOUCH_PAD6_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD6_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD6_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD6_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD6_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD6_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD6_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD6_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD6_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD6_XPD_S 20 +/* RTC_IO_TOUCH_PAD6_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD6_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD6_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD6_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD6_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD6_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD6_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD6_FUN_SEL_M ((RTC_IO_TOUCH_PAD6_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD6_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD6_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD6_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD6_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD6_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD6_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD6_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD6_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD6_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD6_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD6_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD6_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD6_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD6_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD6_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD6_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD6_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD6_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD6_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD6_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD6_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD6_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD6_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD6_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.MTMS*/ +#define RTC_IO_TOUCH_PAD6_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD6_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD6_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD6_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD7_REG (DR_REG_RTCIO_BASE + 0xb0) +/* RTC_IO_TOUCH_PAD7_HOLD : R/W ;bitpos:[31] ;default: 1'd0 ; */ +/*description: hold the current value of the output when setting the hold to Ò1Ó*/ +#define RTC_IO_TOUCH_PAD7_HOLD (BIT(31)) +#define RTC_IO_TOUCH_PAD7_HOLD_M (BIT(31)) +#define RTC_IO_TOUCH_PAD7_HOLD_V 0x1 +#define RTC_IO_TOUCH_PAD7_HOLD_S 31 +/* RTC_IO_TOUCH_PAD7_DRV : R/W ;bitpos:[30:29] ;default: 2'd2 ; */ +/*description: the driver strength of the pad*/ +#define RTC_IO_TOUCH_PAD7_DRV 0x00000003 +#define RTC_IO_TOUCH_PAD7_DRV_M ((RTC_IO_TOUCH_PAD7_DRV_V)<<(RTC_IO_TOUCH_PAD7_DRV_S)) +#define RTC_IO_TOUCH_PAD7_DRV_V 0x3 +#define RTC_IO_TOUCH_PAD7_DRV_S 29 +/* RTC_IO_TOUCH_PAD7_RDE : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: the pull down enable of the pad*/ +#define RTC_IO_TOUCH_PAD7_RDE (BIT(28)) +#define RTC_IO_TOUCH_PAD7_RDE_M (BIT(28)) +#define RTC_IO_TOUCH_PAD7_RDE_V 0x1 +#define RTC_IO_TOUCH_PAD7_RDE_S 28 +/* RTC_IO_TOUCH_PAD7_RUE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: the pull up enable of the pad*/ +#define RTC_IO_TOUCH_PAD7_RUE (BIT(27)) +#define RTC_IO_TOUCH_PAD7_RUE_M (BIT(27)) +#define RTC_IO_TOUCH_PAD7_RUE_V 0x1 +#define RTC_IO_TOUCH_PAD7_RUE_S 27 +/* RTC_IO_TOUCH_PAD7_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD7_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD7_DAC_M ((RTC_IO_TOUCH_PAD7_DAC_V)<<(RTC_IO_TOUCH_PAD7_DAC_S)) +#define RTC_IO_TOUCH_PAD7_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD7_DAC_S 23 +/* RTC_IO_TOUCH_PAD7_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD7_START (BIT(22)) +#define RTC_IO_TOUCH_PAD7_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD7_START_V 0x1 +#define RTC_IO_TOUCH_PAD7_START_S 22 +/* RTC_IO_TOUCH_PAD7_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD7_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD7_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD7_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD7_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD7_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD7_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD7_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD7_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD7_XPD_S 20 +/* RTC_IO_TOUCH_PAD7_MUX_SEL : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: Ò1Ó select the digital function Ó0Óslection the rtc function*/ +#define RTC_IO_TOUCH_PAD7_MUX_SEL (BIT(19)) +#define RTC_IO_TOUCH_PAD7_MUX_SEL_M (BIT(19)) +#define RTC_IO_TOUCH_PAD7_MUX_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD7_MUX_SEL_S 19 +/* RTC_IO_TOUCH_PAD7_FUN_SEL : R/W ;bitpos:[18:17] ;default: 2'd0 ; */ +/*description: the functional selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD7_FUN_SEL 0x00000003 +#define RTC_IO_TOUCH_PAD7_FUN_SEL_M ((RTC_IO_TOUCH_PAD7_FUN_SEL_V)<<(RTC_IO_TOUCH_PAD7_FUN_SEL_S)) +#define RTC_IO_TOUCH_PAD7_FUN_SEL_V 0x3 +#define RTC_IO_TOUCH_PAD7_FUN_SEL_S 17 +/* RTC_IO_TOUCH_PAD7_SLP_SEL : R/W ;bitpos:[16] ;default: 1'd0 ; */ +/*description: the sleep status selection signal of the pad*/ +#define RTC_IO_TOUCH_PAD7_SLP_SEL (BIT(16)) +#define RTC_IO_TOUCH_PAD7_SLP_SEL_M (BIT(16)) +#define RTC_IO_TOUCH_PAD7_SLP_SEL_V 0x1 +#define RTC_IO_TOUCH_PAD7_SLP_SEL_S 16 +/* RTC_IO_TOUCH_PAD7_SLP_IE : R/W ;bitpos:[15] ;default: 1'd0 ; */ +/*description: the input enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD7_SLP_IE (BIT(15)) +#define RTC_IO_TOUCH_PAD7_SLP_IE_M (BIT(15)) +#define RTC_IO_TOUCH_PAD7_SLP_IE_V 0x1 +#define RTC_IO_TOUCH_PAD7_SLP_IE_S 15 +/* RTC_IO_TOUCH_PAD7_SLP_OE : R/W ;bitpos:[14] ;default: 1'd0 ; */ +/*description: the output enable of the pad in sleep status*/ +#define RTC_IO_TOUCH_PAD7_SLP_OE (BIT(14)) +#define RTC_IO_TOUCH_PAD7_SLP_OE_M (BIT(14)) +#define RTC_IO_TOUCH_PAD7_SLP_OE_V 0x1 +#define RTC_IO_TOUCH_PAD7_SLP_OE_S 14 +/* RTC_IO_TOUCH_PAD7_FUN_IE : R/W ;bitpos:[13] ;default: 1'd0 ; */ +/*description: the input enable of the pad*/ +#define RTC_IO_TOUCH_PAD7_FUN_IE (BIT(13)) +#define RTC_IO_TOUCH_PAD7_FUN_IE_M (BIT(13)) +#define RTC_IO_TOUCH_PAD7_FUN_IE_V 0x1 +#define RTC_IO_TOUCH_PAD7_FUN_IE_S 13 +/* RTC_IO_TOUCH_PAD7_TO_GPIO : R/W ;bitpos:[12] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale.GPIO27*/ +#define RTC_IO_TOUCH_PAD7_TO_GPIO (BIT(12)) +#define RTC_IO_TOUCH_PAD7_TO_GPIO_M (BIT(12)) +#define RTC_IO_TOUCH_PAD7_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD7_TO_GPIO_S 12 + +#define RTC_IO_TOUCH_PAD8_REG (DR_REG_RTCIO_BASE + 0xb4) +/* RTC_IO_TOUCH_PAD8_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD8_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD8_DAC_M ((RTC_IO_TOUCH_PAD8_DAC_V)<<(RTC_IO_TOUCH_PAD8_DAC_S)) +#define RTC_IO_TOUCH_PAD8_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD8_DAC_S 23 +/* RTC_IO_TOUCH_PAD8_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD8_START (BIT(22)) +#define RTC_IO_TOUCH_PAD8_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD8_START_V 0x1 +#define RTC_IO_TOUCH_PAD8_START_S 22 +/* RTC_IO_TOUCH_PAD8_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD8_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD8_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD8_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD8_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD8_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD8_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD8_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD8_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD8_XPD_S 20 +/* RTC_IO_TOUCH_PAD8_TO_GPIO : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale*/ +#define RTC_IO_TOUCH_PAD8_TO_GPIO (BIT(19)) +#define RTC_IO_TOUCH_PAD8_TO_GPIO_M (BIT(19)) +#define RTC_IO_TOUCH_PAD8_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD8_TO_GPIO_S 19 + +#define RTC_IO_TOUCH_PAD9_REG (DR_REG_RTCIO_BASE + 0xb8) +/* RTC_IO_TOUCH_PAD9_DAC : R/W ;bitpos:[25:23] ;default: 3'h4 ; */ +/*description: touch sensor slope control. 3-bit for each touch panel default 100.*/ +#define RTC_IO_TOUCH_PAD9_DAC 0x00000007 +#define RTC_IO_TOUCH_PAD9_DAC_M ((RTC_IO_TOUCH_PAD9_DAC_V)<<(RTC_IO_TOUCH_PAD9_DAC_S)) +#define RTC_IO_TOUCH_PAD9_DAC_V 0x7 +#define RTC_IO_TOUCH_PAD9_DAC_S 23 +/* RTC_IO_TOUCH_PAD9_START : R/W ;bitpos:[22] ;default: 1'd0 ; */ +/*description: start touch sensor.*/ +#define RTC_IO_TOUCH_PAD9_START (BIT(22)) +#define RTC_IO_TOUCH_PAD9_START_M (BIT(22)) +#define RTC_IO_TOUCH_PAD9_START_V 0x1 +#define RTC_IO_TOUCH_PAD9_START_S 22 +/* RTC_IO_TOUCH_PAD9_TIE_OPT : R/W ;bitpos:[21] ;default: 1'd0 ; */ +/*description: default touch sensor tie option. 0: tie low 1: tie high.*/ +#define RTC_IO_TOUCH_PAD9_TIE_OPT (BIT(21)) +#define RTC_IO_TOUCH_PAD9_TIE_OPT_M (BIT(21)) +#define RTC_IO_TOUCH_PAD9_TIE_OPT_V 0x1 +#define RTC_IO_TOUCH_PAD9_TIE_OPT_S 21 +/* RTC_IO_TOUCH_PAD9_XPD : R/W ;bitpos:[20] ;default: 1'd0 ; */ +/*description: touch sensor power on.*/ +#define RTC_IO_TOUCH_PAD9_XPD (BIT(20)) +#define RTC_IO_TOUCH_PAD9_XPD_M (BIT(20)) +#define RTC_IO_TOUCH_PAD9_XPD_V 0x1 +#define RTC_IO_TOUCH_PAD9_XPD_S 20 +/* RTC_IO_TOUCH_PAD9_TO_GPIO : R/W ;bitpos:[19] ;default: 1'd0 ; */ +/*description: connect the rtc pad input to digital pad input Ó0Ó is availbale*/ +#define RTC_IO_TOUCH_PAD9_TO_GPIO (BIT(19)) +#define RTC_IO_TOUCH_PAD9_TO_GPIO_M (BIT(19)) +#define RTC_IO_TOUCH_PAD9_TO_GPIO_V 0x1 +#define RTC_IO_TOUCH_PAD9_TO_GPIO_S 19 + +#define RTC_IO_EXT_WAKEUP0_REG (DR_REG_RTCIO_BASE + 0xbc) +/* RTC_IO_EXT_WAKEUP0_SEL : R/W ;bitpos:[31:27] ;default: 5'd0 ; */ +/*description: select the wakeup source Ó0Ó select GPIO0 Ó1Ó select GPIO2 ...Ò17Ó select GPIO17*/ +#define RTC_IO_EXT_WAKEUP0_SEL 0x0000001F +#define RTC_IO_EXT_WAKEUP0_SEL_M ((RTC_IO_EXT_WAKEUP0_SEL_V)<<(RTC_IO_EXT_WAKEUP0_SEL_S)) +#define RTC_IO_EXT_WAKEUP0_SEL_V 0x1F +#define RTC_IO_EXT_WAKEUP0_SEL_S 27 + +#define RTC_IO_XTL_EXT_CTR_REG (DR_REG_RTCIO_BASE + 0xc0) +/* RTC_IO_XTL_EXT_CTR_SEL : R/W ;bitpos:[31:27] ;default: 5'd0 ; */ +/*description: select the external xtl power source Ó0Ó select GPIO0 Ó1Ó select + GPIO2 ...Ò17Ó select GPIO17*/ +#define RTC_IO_XTL_EXT_CTR_SEL 0x0000001F +#define RTC_IO_XTL_EXT_CTR_SEL_M ((RTC_IO_XTL_EXT_CTR_SEL_V)<<(RTC_IO_XTL_EXT_CTR_SEL_S)) +#define RTC_IO_XTL_EXT_CTR_SEL_V 0x1F +#define RTC_IO_XTL_EXT_CTR_SEL_S 27 + +#define RTC_IO_SAR_I2C_IO_REG (DR_REG_RTCIO_BASE + 0xc4) +/* RTC_IO_SAR_I2C_SDA_SEL : R/W ;bitpos:[31:30] ;default: 2'd0 ; */ +/*description: Ò0Ó using TOUCH_PAD[1] as i2c sda Ò1Ó using TOUCH_PAD[3] as i2c sda*/ +#define RTC_IO_SAR_I2C_SDA_SEL 0x00000003 +#define RTC_IO_SAR_I2C_SDA_SEL_M ((RTC_IO_SAR_I2C_SDA_SEL_V)<<(RTC_IO_SAR_I2C_SDA_SEL_S)) +#define RTC_IO_SAR_I2C_SDA_SEL_V 0x3 +#define RTC_IO_SAR_I2C_SDA_SEL_S 30 +/* RTC_IO_SAR_I2C_SCL_SEL : R/W ;bitpos:[29:28] ;default: 2'd0 ; */ +/*description: Ò0Ó using TOUCH_PAD[0] as i2c clk Ò1Ó using TOUCH_PAD[2] as i2c clk*/ +#define RTC_IO_SAR_I2C_SCL_SEL 0x00000003 +#define RTC_IO_SAR_I2C_SCL_SEL_M ((RTC_IO_SAR_I2C_SCL_SEL_V)<<(RTC_IO_SAR_I2C_SCL_SEL_S)) +#define RTC_IO_SAR_I2C_SCL_SEL_V 0x3 +#define RTC_IO_SAR_I2C_SCL_SEL_S 28 +/* RTC_IO_SAR_DEBUG_BIT_SEL : R/W ;bitpos:[27:23] ;default: 5'h0 ; */ +/*description: */ +#define RTC_IO_SAR_DEBUG_BIT_SEL 0x0000001F +#define RTC_IO_SAR_DEBUG_BIT_SEL_M ((RTC_IO_SAR_DEBUG_BIT_SEL_V)<<(RTC_IO_SAR_DEBUG_BIT_SEL_S)) +#define RTC_IO_SAR_DEBUG_BIT_SEL_V 0x1F +#define RTC_IO_SAR_DEBUG_BIT_SEL_S 23 + +#define RTC_IO_DATE_REG (DR_REG_RTCIO_BASE + 0xc8) +/* RTC_IO_IO_DATE : R/W ;bitpos:[27:0] ;default: 28'h1603160 ; */ +/*description: date*/ +#define RTC_IO_IO_DATE 0x0FFFFFFF +#define RTC_IO_IO_DATE_M ((RTC_IO_IO_DATE_V)<<(RTC_IO_IO_DATE_S)) +#define RTC_IO_IO_DATE_V 0xFFFFFFF +#define RTC_IO_IO_DATE_S 0 +#define RTC_IO_RTC_IO_DATE_VERSION 0x1703160 + + + + +#endif /*_SOC_RTC_IO_REG_H_ */ + + diff --git a/tools/sdk/include/esp32/soc/saradc_reg.h b/tools/sdk/include/esp32/soc/saradc_reg.h deleted file mode 100644 index 51903297..00000000 --- a/tools/sdk/include/esp32/soc/saradc_reg.h +++ /dev/null @@ -1,1047 +0,0 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#ifndef _SOC_SARADC_REG_H_ -#define _SOC_SARADC_REG_H_ - - -#include "soc.h" -#define SARADC_SAR_READ_CTRL_REG (DR_REG_SARADC_BASE + 0x0000) -/* SARADC_SAR1_DATA_INV : R/W ;bitpos:[28] ;default: 1'd0 ; */ -/*description: Invert SAR ADC1 data*/ -#define SARADC_SAR1_DATA_INV (BIT(28)) -#define SARADC_SAR1_DATA_INV_M (BIT(28)) -#define SARADC_SAR1_DATA_INV_V 0x1 -#define SARADC_SAR1_DATA_INV_S 28 -/* SARADC_SAR1_DIG_FORCE : R/W ;bitpos:[27] ;default: 1'd0 ; */ -/*description: 1: SAR ADC1 controlled by DIG ADC1 CTRL 0: SAR ADC1 controlled by RTC ADC1 CTRL*/ -#define SARADC_SAR1_DIG_FORCE (BIT(27)) -#define SARADC_SAR1_DIG_FORCE_M (BIT(27)) -#define SARADC_SAR1_DIG_FORCE_V 0x1 -#define SARADC_SAR1_DIG_FORCE_S 27 -/* SARADC_SAR1_SAMPLE_NUM : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ -/*description: */ -#define SARADC_SAR1_SAMPLE_NUM 0x000000FF -#define SARADC_SAR1_SAMPLE_NUM_M ((SARADC_SAR1_SAMPLE_NUM_V)<<(SARADC_SAR1_SAMPLE_NUM_S)) -#define SARADC_SAR1_SAMPLE_NUM_V 0xFF -#define SARADC_SAR1_SAMPLE_NUM_S 19 -/* SARADC_SAR1_CLK_GATED : R/W ;bitpos:[18] ;default: 1'b1 ; */ -/*description: */ -#define SARADC_SAR1_CLK_GATED (BIT(18)) -#define SARADC_SAR1_CLK_GATED_M (BIT(18)) -#define SARADC_SAR1_CLK_GATED_V 0x1 -#define SARADC_SAR1_CLK_GATED_S 18 -/* SARADC_SAR1_SAMPLE_BIT : R/W ;bitpos:[17:16] ;default: 2'd3 ; */ -/*description: 00: for 9-bit width 01: for 10-bit width 10: for 11-bit width - 11: for 12-bit width*/ -#define SARADC_SAR1_SAMPLE_BIT 0x00000003 -#define SARADC_SAR1_SAMPLE_BIT_M ((SARADC_SAR1_SAMPLE_BIT_V)<<(SARADC_SAR1_SAMPLE_BIT_S)) -#define SARADC_SAR1_SAMPLE_BIT_V 0x3 -#define SARADC_SAR1_SAMPLE_BIT_S 16 -/* SARADC_SAR1_SAMPLE_CYCLE : R/W ;bitpos:[15:8] ;default: 8'd9 ; */ -/*description: sample cycles for SAR ADC1*/ -#define SARADC_SAR1_SAMPLE_CYCLE 0x000000FF -#define SARADC_SAR1_SAMPLE_CYCLE_M ((SARADC_SAR1_SAMPLE_CYCLE_V)<<(SARADC_SAR1_SAMPLE_CYCLE_S)) -#define SARADC_SAR1_SAMPLE_CYCLE_V 0xFF -#define SARADC_SAR1_SAMPLE_CYCLE_S 8 -/* SARADC_SAR1_CLK_DIV : R/W ;bitpos:[7:0] ;default: 8'd2 ; */ -/*description: clock divider*/ -#define SARADC_SAR1_CLK_DIV 0x000000FF -#define SARADC_SAR1_CLK_DIV_M ((SARADC_SAR1_CLK_DIV_V)<<(SARADC_SAR1_CLK_DIV_S)) -#define SARADC_SAR1_CLK_DIV_V 0xFF -#define SARADC_SAR1_CLK_DIV_S 0 - -#define SARADC_SAR_READ_STATUS1_REG (DR_REG_SARADC_BASE + 0x0004) -/* SARADC_SAR1_READER_STATUS : RO ;bitpos:[31:0] ;default: 32'h0 ; */ -/*description: */ -#define SARADC_SAR1_READER_STATUS 0xFFFFFFFF -#define SARADC_SAR1_READER_STATUS_M ((SARADC_SAR1_READER_STATUS_V)<<(SARADC_SAR1_READER_STATUS_S)) -#define SARADC_SAR1_READER_STATUS_V 0xFFFFFFFF -#define SARADC_SAR1_READER_STATUS_S 0 - -#define SARADC_SAR_MEAS_WAIT1_REG (DR_REG_SARADC_BASE + 0x0008) -/* SARADC_SAR_AMP_WAIT2 : R/W ;bitpos:[31:16] ;default: 16'd10 ; */ -/*description: */ -#define SARADC_SAR_AMP_WAIT2 0x0000FFFF -#define SARADC_SAR_AMP_WAIT2_M ((SARADC_SAR_AMP_WAIT2_V)<<(SARADC_SAR_AMP_WAIT2_S)) -#define SARADC_SAR_AMP_WAIT2_V 0xFFFF -#define SARADC_SAR_AMP_WAIT2_S 16 -/* SARADC_SAR_AMP_WAIT1 : R/W ;bitpos:[15:0] ;default: 16'd10 ; */ -/*description: */ -#define SARADC_SAR_AMP_WAIT1 0x0000FFFF -#define SARADC_SAR_AMP_WAIT1_M ((SARADC_SAR_AMP_WAIT1_V)<<(SARADC_SAR_AMP_WAIT1_S)) -#define SARADC_SAR_AMP_WAIT1_V 0xFFFF -#define SARADC_SAR_AMP_WAIT1_S 0 - -#define SARADC_SAR_MEAS_WAIT2_REG (DR_REG_SARADC_BASE + 0x000c) -/* SARADC_SAR2_RSTB_WAIT : R/W ;bitpos:[27:20] ;default: 8'd2 ; */ -/*description: */ -#define SARADC_SAR2_RSTB_WAIT 0x000000FF -#define SARADC_SAR2_RSTB_WAIT_M ((SARADC_SAR2_RSTB_WAIT_V)<<(SARADC_SAR2_RSTB_WAIT_S)) -#define SARADC_SAR2_RSTB_WAIT_V 0xFF -#define SARADC_SAR2_RSTB_WAIT_S 20 -/* SARADC_FORCE_XPD_SAR : R/W ;bitpos:[19:18] ;default: 2'd0 ; */ -/*description: */ -#define SARADC_FORCE_XPD_SAR 0x00000003 -#define SARADC_FORCE_XPD_SAR_M ((SARADC_FORCE_XPD_SAR_V)<<(SARADC_FORCE_XPD_SAR_S)) -#define SARADC_FORCE_XPD_SAR_V 0x3 -#define SARADC_FORCE_XPD_SAR_S 18 -/* SARADC_FORCE_XPD_AMP : R/W ;bitpos:[17:16] ;default: 2'd0 ; */ -/*description: */ -#define SARADC_FORCE_XPD_AMP 0x00000003 -#define SARADC_FORCE_XPD_AMP_M ((SARADC_FORCE_XPD_AMP_V)<<(SARADC_FORCE_XPD_AMP_S)) -#define SARADC_FORCE_XPD_AMP_V 0x3 -#define SARADC_FORCE_XPD_AMP_S 16 -/* SARADC_SAR_AMP_WAIT3 : R/W ;bitpos:[15:0] ;default: 16'd10 ; */ -/*description: */ -#define SARADC_SAR_AMP_WAIT3 0x0000FFFF -#define SARADC_SAR_AMP_WAIT3_M ((SARADC_SAR_AMP_WAIT3_V)<<(SARADC_SAR_AMP_WAIT3_S)) -#define SARADC_SAR_AMP_WAIT3_V 0xFFFF -#define SARADC_SAR_AMP_WAIT3_S 0 - -#define SARADC_SAR_MEAS_CTRL_REG (DR_REG_SARADC_BASE + 0x0010) -/* SARADC_SAR2_XPD_WAIT : R/W ;bitpos:[31:24] ;default: 8'h7 ; */ -/*description: */ -#define SARADC_SAR2_XPD_WAIT 0x000000FF -#define SARADC_SAR2_XPD_WAIT_M ((SARADC_SAR2_XPD_WAIT_V)<<(SARADC_SAR2_XPD_WAIT_S)) -#define SARADC_SAR2_XPD_WAIT_V 0xFF -#define SARADC_SAR2_XPD_WAIT_S 24 -/* SARADC_SAR_RSTB_FSM : R/W ;bitpos:[23:20] ;default: 4'b0000 ; */ -/*description: */ -#define SARADC_SAR_RSTB_FSM 0x0000000F -#define SARADC_SAR_RSTB_FSM_M ((SARADC_SAR_RSTB_FSM_V)<<(SARADC_SAR_RSTB_FSM_S)) -#define SARADC_SAR_RSTB_FSM_V 0xF -#define SARADC_SAR_RSTB_FSM_S 20 -/* SARADC_XPD_SAR_FSM : R/W ;bitpos:[19:16] ;default: 4'b0111 ; */ -/*description: */ -#define SARADC_XPD_SAR_FSM 0x0000000F -#define SARADC_XPD_SAR_FSM_M ((SARADC_XPD_SAR_FSM_V)<<(SARADC_XPD_SAR_FSM_S)) -#define SARADC_XPD_SAR_FSM_V 0xF -#define SARADC_XPD_SAR_FSM_S 16 -/* SARADC_AMP_SHORT_REF_GND_FSM : R/W ;bitpos:[15:12] ;default: 4'b0011 ; */ -/*description: */ -#define SARADC_AMP_SHORT_REF_GND_FSM 0x0000000F -#define SARADC_AMP_SHORT_REF_GND_FSM_M ((SARADC_AMP_SHORT_REF_GND_FSM_V)<<(SARADC_AMP_SHORT_REF_GND_FSM_S)) -#define SARADC_AMP_SHORT_REF_GND_FSM_V 0xF -#define SARADC_AMP_SHORT_REF_GND_FSM_S 12 -/* SARADC_AMP_SHORT_REF_FSM : R/W ;bitpos:[11:8] ;default: 4'b0011 ; */ -/*description: */ -#define SARADC_AMP_SHORT_REF_FSM 0x0000000F -#define SARADC_AMP_SHORT_REF_FSM_M ((SARADC_AMP_SHORT_REF_FSM_V)<<(SARADC_AMP_SHORT_REF_FSM_S)) -#define SARADC_AMP_SHORT_REF_FSM_V 0xF -#define SARADC_AMP_SHORT_REF_FSM_S 8 -/* SARADC_AMP_RST_FB_FSM : R/W ;bitpos:[7:4] ;default: 4'b1000 ; */ -/*description: */ -#define SARADC_AMP_RST_FB_FSM 0x0000000F -#define SARADC_AMP_RST_FB_FSM_M ((SARADC_AMP_RST_FB_FSM_V)<<(SARADC_AMP_RST_FB_FSM_S)) -#define SARADC_AMP_RST_FB_FSM_V 0xF -#define SARADC_AMP_RST_FB_FSM_S 4 -/* SARADC_XPD_SAR_AMP_FSM : R/W ;bitpos:[3:0] ;default: 4'b1111 ; */ -/*description: */ -#define SARADC_XPD_SAR_AMP_FSM 0x0000000F -#define SARADC_XPD_SAR_AMP_FSM_M ((SARADC_XPD_SAR_AMP_FSM_V)<<(SARADC_XPD_SAR_AMP_FSM_S)) -#define SARADC_XPD_SAR_AMP_FSM_V 0xF -#define SARADC_XPD_SAR_AMP_FSM_S 0 - -#define SARADC_SAR_READ_STATUS2_REG (DR_REG_SARADC_BASE + 0x0014) -/* SARADC_SAR2_READER_STATUS : RO ;bitpos:[31:0] ;default: 32'h0 ; */ -/*description: */ -#define SARADC_SAR2_READER_STATUS 0xFFFFFFFF -#define SARADC_SAR2_READER_STATUS_M ((SARADC_SAR2_READER_STATUS_V)<<(SARADC_SAR2_READER_STATUS_S)) -#define SARADC_SAR2_READER_STATUS_V 0xFFFFFFFF -#define SARADC_SAR2_READER_STATUS_S 0 - -#define SARADC_ULP_CP_SLEEP_CYC0_REG (DR_REG_SARADC_BASE + 0x0018) -/* SARADC_SLEEP_CYCLES_S0 : R/W ;bitpos:[31:0] ;default: 32'd200 ; */ -/*description: sleep cycles for ULP-coprocessor timer*/ -#define SARADC_SLEEP_CYCLES_S0 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S0_M ((SARADC_SLEEP_CYCLES_S0_V)<<(SARADC_SLEEP_CYCLES_S0_S)) -#define SARADC_SLEEP_CYCLES_S0_V 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S0_S 0 - -#define SARADC_ULP_CP_SLEEP_CYC1_REG (DR_REG_SARADC_BASE + 0x001c) -/* SARADC_SLEEP_CYCLES_S1 : R/W ;bitpos:[31:0] ;default: 32'd100 ; */ -/*description: */ -#define SARADC_SLEEP_CYCLES_S1 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S1_M ((SARADC_SLEEP_CYCLES_S1_V)<<(SARADC_SLEEP_CYCLES_S1_S)) -#define SARADC_SLEEP_CYCLES_S1_V 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S1_S 0 - -#define SARADC_ULP_CP_SLEEP_CYC2_REG (DR_REG_SARADC_BASE + 0x0020) -/* SARADC_SLEEP_CYCLES_S2 : R/W ;bitpos:[31:0] ;default: 32'd50 ; */ -/*description: */ -#define SARADC_SLEEP_CYCLES_S2 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S2_M ((SARADC_SLEEP_CYCLES_S2_V)<<(SARADC_SLEEP_CYCLES_S2_S)) -#define SARADC_SLEEP_CYCLES_S2_V 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S2_S 0 - -#define SARADC_ULP_CP_SLEEP_CYC3_REG (DR_REG_SARADC_BASE + 0x0024) -/* SARADC_SLEEP_CYCLES_S3 : R/W ;bitpos:[31:0] ;default: 32'd40 ; */ -/*description: */ -#define SARADC_SLEEP_CYCLES_S3 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S3_M ((SARADC_SLEEP_CYCLES_S3_V)<<(SARADC_SLEEP_CYCLES_S3_S)) -#define SARADC_SLEEP_CYCLES_S3_V 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S3_S 0 - -#define SARADC_ULP_CP_SLEEP_CYC4_REG (DR_REG_SARADC_BASE + 0x0028) -/* SARADC_SLEEP_CYCLES_S4 : R/W ;bitpos:[31:0] ;default: 32'd20 ; */ -/*description: */ -#define SARADC_SLEEP_CYCLES_S4 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S4_M ((SARADC_SLEEP_CYCLES_S4_V)<<(SARADC_SLEEP_CYCLES_S4_S)) -#define SARADC_SLEEP_CYCLES_S4_V 0xFFFFFFFF -#define SARADC_SLEEP_CYCLES_S4_S 0 - -#define SARADC_SAR_START_FORCE_REG (DR_REG_SARADC_BASE + 0x002c) -/* SARADC_SAR2_PWDET_EN : R/W ;bitpos:[24] ;default: 1'b0 ; */ -/*description: N/A*/ -#define SARADC_SAR2_PWDET_EN (BIT(24)) -#define SARADC_SAR2_PWDET_EN_M (BIT(24)) -#define SARADC_SAR2_PWDET_EN_V 0x1 -#define SARADC_SAR2_PWDET_EN_S 24 -/* SARADC_SAR1_STOP : R/W ;bitpos:[23] ;default: 1'b0 ; */ -/*description: stop SAR ADC1 conversion*/ -#define SARADC_SAR1_STOP (BIT(23)) -#define SARADC_SAR1_STOP_M (BIT(23)) -#define SARADC_SAR1_STOP_V 0x1 -#define SARADC_SAR1_STOP_S 23 -/* SARADC_SAR2_STOP : R/W ;bitpos:[22] ;default: 1'b0 ; */ -/*description: stop SAR ADC2 conversion*/ -#define SARADC_SAR2_STOP (BIT(22)) -#define SARADC_SAR2_STOP_M (BIT(22)) -#define SARADC_SAR2_STOP_V 0x1 -#define SARADC_SAR2_STOP_S 22 -/* SARADC_PC_INIT : R/W ;bitpos:[21:11] ;default: 11'b0 ; */ -/*description: initialized PC for ULP-coprocessor*/ -#define SARADC_PC_INIT 0x000007FF -#define SARADC_PC_INIT_M ((SARADC_PC_INIT_V)<<(SARADC_PC_INIT_S)) -#define SARADC_PC_INIT_V 0x7FF -#define SARADC_PC_INIT_S 11 -/* SARADC_SARCLK_EN : R/W ;bitpos:[10] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_SARCLK_EN (BIT(10)) -#define SARADC_SARCLK_EN_M (BIT(10)) -#define SARADC_SARCLK_EN_V 0x1 -#define SARADC_SARCLK_EN_S 10 -/* SARADC_ULP_CP_START_TOP : R/W ;bitpos:[9] ;default: 1'b0 ; */ -/*description: Write 1 to start ULP-coprocessor only active when reg_ulp_cp_force_start_top - = 1*/ -#define SARADC_ULP_CP_START_TOP (BIT(9)) -#define SARADC_ULP_CP_START_TOP_M (BIT(9)) -#define SARADC_ULP_CP_START_TOP_V 0x1 -#define SARADC_ULP_CP_START_TOP_S 9 -/* SARADC_ULP_CP_FORCE_START_TOP : R/W ;bitpos:[8] ;default: 1'b0 ; */ -/*description: 1: ULP-coprocessor is started by SW 0: ULP-coprocessor is started by timer*/ -#define SARADC_ULP_CP_FORCE_START_TOP (BIT(8)) -#define SARADC_ULP_CP_FORCE_START_TOP_M (BIT(8)) -#define SARADC_ULP_CP_FORCE_START_TOP_V 0x1 -#define SARADC_ULP_CP_FORCE_START_TOP_S 8 -/* SARADC_SAR2_PWDET_CCT : R/W ;bitpos:[7:5] ;default: 3'b0 ; */ -/*description: SAR2_PWDET_CCT PA power detector capacitance tuning.*/ -#define SARADC_SAR2_PWDET_CCT 0x00000007 -#define SARADC_SAR2_PWDET_CCT_M ((SARADC_SAR2_PWDET_CCT_V)<<(SARADC_SAR2_PWDET_CCT_S)) -#define SARADC_SAR2_PWDET_CCT_V 0x7 -#define SARADC_SAR2_PWDET_CCT_S 5 -/* SARADC_SAR2_EN_TEST : R/W ;bitpos:[4] ;default: 1'b0 ; */ -/*description: SAR2_EN_TEST only active when reg_sar2_dig_force = 0*/ -#define SARADC_SAR2_EN_TEST (BIT(4)) -#define SARADC_SAR2_EN_TEST_M (BIT(4)) -#define SARADC_SAR2_EN_TEST_V 0x1 -#define SARADC_SAR2_EN_TEST_S 4 -/* SARADC_SAR2_BIT_WIDTH : R/W ;bitpos:[3:2] ;default: 2'b11 ; */ -/*description: 00: 9 bit 01: 10 bits 10: 11bits 11: 12bits*/ -#define SARADC_SAR2_BIT_WIDTH 0x00000003 -#define SARADC_SAR2_BIT_WIDTH_M ((SARADC_SAR2_BIT_WIDTH_V)<<(SARADC_SAR2_BIT_WIDTH_S)) -#define SARADC_SAR2_BIT_WIDTH_V 0x3 -#define SARADC_SAR2_BIT_WIDTH_S 2 -/* SARADC_SAR1_BIT_WIDTH : R/W ;bitpos:[1:0] ;default: 2'b11 ; */ -/*description: 00: 9 bit 01: 10 bits 10: 11bits 11: 12bits*/ -#define SARADC_SAR1_BIT_WIDTH 0x00000003 -#define SARADC_SAR1_BIT_WIDTH_M ((SARADC_SAR1_BIT_WIDTH_V)<<(SARADC_SAR1_BIT_WIDTH_S)) -#define SARADC_SAR1_BIT_WIDTH_V 0x3 -#define SARADC_SAR1_BIT_WIDTH_S 0 - -#define SARADC_SAR_MEM_WR_CTRL_REG (DR_REG_SARADC_BASE + 0x0030) -/* SARADC_RTC_MEM_WR_OFFST_CLR : WO ;bitpos:[22] ;default: 1'd0 ; */ -/*description: */ -#define SARADC_RTC_MEM_WR_OFFST_CLR (BIT(22)) -#define SARADC_RTC_MEM_WR_OFFST_CLR_M (BIT(22)) -#define SARADC_RTC_MEM_WR_OFFST_CLR_V 0x1 -#define SARADC_RTC_MEM_WR_OFFST_CLR_S 22 -/* SARADC_MEM_WR_ADDR_SIZE : R/W ;bitpos:[21:11] ;default: 11'd512 ; */ -/*description: */ -#define SARADC_MEM_WR_ADDR_SIZE 0x000007FF -#define SARADC_MEM_WR_ADDR_SIZE_M ((SARADC_MEM_WR_ADDR_SIZE_V)<<(SARADC_MEM_WR_ADDR_SIZE_S)) -#define SARADC_MEM_WR_ADDR_SIZE_V 0x7FF -#define SARADC_MEM_WR_ADDR_SIZE_S 11 -/* SARADC_MEM_WR_ADDR_INIT : R/W ;bitpos:[10:0] ;default: 11'd512 ; */ -/*description: */ -#define SARADC_MEM_WR_ADDR_INIT 0x000007FF -#define SARADC_MEM_WR_ADDR_INIT_M ((SARADC_MEM_WR_ADDR_INIT_V)<<(SARADC_MEM_WR_ADDR_INIT_S)) -#define SARADC_MEM_WR_ADDR_INIT_V 0x7FF -#define SARADC_MEM_WR_ADDR_INIT_S 0 - -#define SARADC_SAR_ATTEN1_REG (DR_REG_SARADC_BASE + 0x0034) -/* SARADC_SAR1_ATTEN : R/W ;bitpos:[31:0] ;default: 32'hffffffff ; */ -/*description: 2-bit attenuation for each pad 11:1dB 10:6dB 01:3dB 00:0dB*/ -#define SARADC_SAR1_ATTEN 0xFFFFFFFF -#define SARADC_SAR1_ATTEN_M ((SARADC_SAR1_ATTEN_V)<<(SARADC_SAR1_ATTEN_S)) -#define SARADC_SAR1_ATTEN_V 0xFFFFFFFF -#define SARADC_SAR1_ATTEN_S 0 - -#define SARADC_SAR_ATTEN2_REG (DR_REG_SARADC_BASE + 0x0038) -/* SARADC_SAR2_ATTEN : R/W ;bitpos:[31:0] ;default: 32'hffffffff ; */ -/*description: 2-bit attenuation for each pad 11:1dB 10:6dB 01:3dB 00:0dB*/ -#define SARADC_SAR2_ATTEN 0xFFFFFFFF -#define SARADC_SAR2_ATTEN_M ((SARADC_SAR2_ATTEN_V)<<(SARADC_SAR2_ATTEN_S)) -#define SARADC_SAR2_ATTEN_V 0xFFFFFFFF -#define SARADC_SAR2_ATTEN_S 0 - -#define SARADC_SAR_SLAVE_ADDR1_REG (DR_REG_SARADC_BASE + 0x003c) -/* SARADC_MEAS_STATUS : RO ;bitpos:[29:22] ;default: 8'h0 ; */ -/*description: */ -#define SARADC_MEAS_STATUS 0x000000FF -#define SARADC_MEAS_STATUS_M ((SARADC_MEAS_STATUS_V)<<(SARADC_MEAS_STATUS_S)) -#define SARADC_MEAS_STATUS_V 0xFF -#define SARADC_MEAS_STATUS_S 22 -/* SARADC_I2C_SLAVE_ADDR0 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR0 0x000007FF -#define SARADC_I2C_SLAVE_ADDR0_M ((SARADC_I2C_SLAVE_ADDR0_V)<<(SARADC_I2C_SLAVE_ADDR0_S)) -#define SARADC_I2C_SLAVE_ADDR0_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR0_S 11 -/* SARADC_I2C_SLAVE_ADDR1 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR1 0x000007FF -#define SARADC_I2C_SLAVE_ADDR1_M ((SARADC_I2C_SLAVE_ADDR1_V)<<(SARADC_I2C_SLAVE_ADDR1_S)) -#define SARADC_I2C_SLAVE_ADDR1_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR1_S 0 - -#define SARADC_SAR_SLAVE_ADDR2_REG (DR_REG_SARADC_BASE + 0x0040) -/* SARADC_I2C_SLAVE_ADDR2 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR2 0x000007FF -#define SARADC_I2C_SLAVE_ADDR2_M ((SARADC_I2C_SLAVE_ADDR2_V)<<(SARADC_I2C_SLAVE_ADDR2_S)) -#define SARADC_I2C_SLAVE_ADDR2_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR2_S 11 -/* SARADC_I2C_SLAVE_ADDR3 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR3 0x000007FF -#define SARADC_I2C_SLAVE_ADDR3_M ((SARADC_I2C_SLAVE_ADDR3_V)<<(SARADC_I2C_SLAVE_ADDR3_S)) -#define SARADC_I2C_SLAVE_ADDR3_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR3_S 0 - -#define SARADC_SAR_SLAVE_ADDR3_REG (DR_REG_SARADC_BASE + 0x0044) -/* SARADC_TSENS_RDY_OUT : RO ;bitpos:[30] ;default: 1'h0 ; */ -/*description: indicate temperature sensor out ready*/ -#define SARADC_TSENS_RDY_OUT (BIT(30)) -#define SARADC_TSENS_RDY_OUT_M (BIT(30)) -#define SARADC_TSENS_RDY_OUT_V 0x1 -#define SARADC_TSENS_RDY_OUT_S 30 -/* SARADC_TSENS_OUT : RO ;bitpos:[29:22] ;default: 8'h0 ; */ -/*description: temperature sensor data out*/ -#define SARADC_TSENS_OUT 0x000000FF -#define SARADC_TSENS_OUT_M ((SARADC_TSENS_OUT_V)<<(SARADC_TSENS_OUT_S)) -#define SARADC_TSENS_OUT_V 0xFF -#define SARADC_TSENS_OUT_S 22 -/* SARADC_I2C_SLAVE_ADDR4 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR4 0x000007FF -#define SARADC_I2C_SLAVE_ADDR4_M ((SARADC_I2C_SLAVE_ADDR4_V)<<(SARADC_I2C_SLAVE_ADDR4_S)) -#define SARADC_I2C_SLAVE_ADDR4_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR4_S 11 -/* SARADC_I2C_SLAVE_ADDR5 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR5 0x000007FF -#define SARADC_I2C_SLAVE_ADDR5_M ((SARADC_I2C_SLAVE_ADDR5_V)<<(SARADC_I2C_SLAVE_ADDR5_S)) -#define SARADC_I2C_SLAVE_ADDR5_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR5_S 0 - -#define SARADC_SAR_SLAVE_ADDR4_REG (DR_REG_SARADC_BASE + 0x0048) -/* SARADC_I2C_DONE : RO ;bitpos:[30] ;default: 1'h0 ; */ -/*description: indicate I2C done*/ -#define SARADC_I2C_DONE (BIT(30)) -#define SARADC_I2C_DONE_M (BIT(30)) -#define SARADC_I2C_DONE_V 0x1 -#define SARADC_I2C_DONE_S 30 -/* SARADC_I2C_RDATA : RO ;bitpos:[29:22] ;default: 8'h0 ; */ -/*description: I2C read data*/ -#define SARADC_I2C_RDATA 0x000000FF -#define SARADC_I2C_RDATA_M ((SARADC_I2C_RDATA_V)<<(SARADC_I2C_RDATA_S)) -#define SARADC_I2C_RDATA_V 0xFF -#define SARADC_I2C_RDATA_S 22 -/* SARADC_I2C_SLAVE_ADDR6 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR6 0x000007FF -#define SARADC_I2C_SLAVE_ADDR6_M ((SARADC_I2C_SLAVE_ADDR6_V)<<(SARADC_I2C_SLAVE_ADDR6_S)) -#define SARADC_I2C_SLAVE_ADDR6_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR6_S 11 -/* SARADC_I2C_SLAVE_ADDR7 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ -/*description: */ -#define SARADC_I2C_SLAVE_ADDR7 0x000007FF -#define SARADC_I2C_SLAVE_ADDR7_M ((SARADC_I2C_SLAVE_ADDR7_V)<<(SARADC_I2C_SLAVE_ADDR7_S)) -#define SARADC_I2C_SLAVE_ADDR7_V 0x7FF -#define SARADC_I2C_SLAVE_ADDR7_S 0 - -#define SARADC_SAR_TSENS_CTRL_REG (DR_REG_SARADC_BASE + 0x004c) -/* SARADC_TSENS_DUMP_OUT : R/W ;bitpos:[26] ;default: 1'b0 ; */ -/*description: temperature sensor dump out only active when reg_tsens_power_up_force = 1*/ -#define SARADC_TSENS_DUMP_OUT (BIT(26)) -#define SARADC_TSENS_DUMP_OUT_M (BIT(26)) -#define SARADC_TSENS_DUMP_OUT_V 0x1 -#define SARADC_TSENS_DUMP_OUT_S 26 -/* SARADC_TSENS_POWER_UP_FORCE : R/W ;bitpos:[25] ;default: 1'b0 ; */ -/*description: 1: dump out & power up controlled by SW 0: by FSM*/ -#define SARADC_TSENS_POWER_UP_FORCE (BIT(25)) -#define SARADC_TSENS_POWER_UP_FORCE_M (BIT(25)) -#define SARADC_TSENS_POWER_UP_FORCE_V 0x1 -#define SARADC_TSENS_POWER_UP_FORCE_S 25 -/* SARADC_TSENS_POWER_UP : R/W ;bitpos:[24] ;default: 1'b0 ; */ -/*description: temperature sensor power up*/ -#define SARADC_TSENS_POWER_UP (BIT(24)) -#define SARADC_TSENS_POWER_UP_M (BIT(24)) -#define SARADC_TSENS_POWER_UP_V 0x1 -#define SARADC_TSENS_POWER_UP_S 24 -/* SARADC_TSENS_CLK_DIV : R/W ;bitpos:[23:16] ;default: 8'd6 ; */ -/*description: temperature sensor clock divider*/ -#define SARADC_TSENS_CLK_DIV 0x000000FF -#define SARADC_TSENS_CLK_DIV_M ((SARADC_TSENS_CLK_DIV_V)<<(SARADC_TSENS_CLK_DIV_S)) -#define SARADC_TSENS_CLK_DIV_V 0xFF -#define SARADC_TSENS_CLK_DIV_S 16 -/* SARADC_TSENS_IN_INV : R/W ;bitpos:[15] ;default: 1'b0 ; */ -/*description: invert temperature sensor data*/ -#define SARADC_TSENS_IN_INV (BIT(15)) -#define SARADC_TSENS_IN_INV_M (BIT(15)) -#define SARADC_TSENS_IN_INV_V 0x1 -#define SARADC_TSENS_IN_INV_S 15 -/* SARADC_TSENS_CLK_GATED : R/W ;bitpos:[14] ;default: 1'b1 ; */ -/*description: */ -#define SARADC_TSENS_CLK_GATED (BIT(14)) -#define SARADC_TSENS_CLK_GATED_M (BIT(14)) -#define SARADC_TSENS_CLK_GATED_V 0x1 -#define SARADC_TSENS_CLK_GATED_S 14 -/* SARADC_TSENS_CLK_INV : R/W ;bitpos:[13] ;default: 1'b1 ; */ -/*description: */ -#define SARADC_TSENS_CLK_INV (BIT(13)) -#define SARADC_TSENS_CLK_INV_M (BIT(13)) -#define SARADC_TSENS_CLK_INV_V 0x1 -#define SARADC_TSENS_CLK_INV_S 13 -/* SARADC_TSENS_XPD_FORCE : R/W ;bitpos:[12] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_TSENS_XPD_FORCE (BIT(12)) -#define SARADC_TSENS_XPD_FORCE_M (BIT(12)) -#define SARADC_TSENS_XPD_FORCE_V 0x1 -#define SARADC_TSENS_XPD_FORCE_S 12 -/* SARADC_TSENS_XPD_WAIT : R/W ;bitpos:[11:0] ;default: 12'h2 ; */ -/*description: */ -#define SARADC_TSENS_XPD_WAIT 0x00000FFF -#define SARADC_TSENS_XPD_WAIT_M ((SARADC_TSENS_XPD_WAIT_V)<<(SARADC_TSENS_XPD_WAIT_S)) -#define SARADC_TSENS_XPD_WAIT_V 0xFFF -#define SARADC_TSENS_XPD_WAIT_S 0 - -#define SARADC_SAR_I2C_CTRL_REG (DR_REG_SARADC_BASE + 0x0050) -/* SARADC_SAR_I2C_START_FORCE : R/W ;bitpos:[29] ;default: 1'b0 ; */ -/*description: 1: I2C started by SW 0: I2C started by FSM*/ -#define SARADC_SAR_I2C_START_FORCE (BIT(29)) -#define SARADC_SAR_I2C_START_FORCE_M (BIT(29)) -#define SARADC_SAR_I2C_START_FORCE_V 0x1 -#define SARADC_SAR_I2C_START_FORCE_S 29 -/* SARADC_SAR_I2C_START : R/W ;bitpos:[28] ;default: 1'b0 ; */ -/*description: start I2C only active when reg_sar_i2c_start_force = 1*/ -#define SARADC_SAR_I2C_START (BIT(28)) -#define SARADC_SAR_I2C_START_M (BIT(28)) -#define SARADC_SAR_I2C_START_V 0x1 -#define SARADC_SAR_I2C_START_S 28 -/* SARADC_SAR_I2C_CTRL : R/W ;bitpos:[27:0] ;default: 28'b0 ; */ -/*description: I2C control data only active when reg_sar_i2c_start_force = 1*/ -#define SARADC_SAR_I2C_CTRL 0x0FFFFFFF -#define SARADC_SAR_I2C_CTRL_M ((SARADC_SAR_I2C_CTRL_V)<<(SARADC_SAR_I2C_CTRL_S)) -#define SARADC_SAR_I2C_CTRL_V 0xFFFFFFF -#define SARADC_SAR_I2C_CTRL_S 0 - -#define SARADC_SAR_MEAS_START1_REG (DR_REG_SARADC_BASE + 0x0054) -/* SARADC_SAR1_EN_PAD_FORCE : R/W ;bitpos:[31] ;default: 1'b0 ; */ -/*description: 1: SAR ADC1 pad enable bitmap is controlled by SW 0: SAR ADC1 - pad enable bitmap is controlled by ULP-coprocessor*/ -#define SARADC_SAR1_EN_PAD_FORCE (BIT(31)) -#define SARADC_SAR1_EN_PAD_FORCE_M (BIT(31)) -#define SARADC_SAR1_EN_PAD_FORCE_V 0x1 -#define SARADC_SAR1_EN_PAD_FORCE_S 31 -/* SARADC_SAR1_EN_PAD : R/W ;bitpos:[30:19] ;default: 12'b0 ; */ -/*description: SAR ADC1 pad enable bitmap only active when reg_sar1_en_pad_force = 1*/ -#define SARADC_SAR1_EN_PAD 0x00000FFF -#define SARADC_SAR1_EN_PAD_M ((SARADC_SAR1_EN_PAD_V)<<(SARADC_SAR1_EN_PAD_S)) -#define SARADC_SAR1_EN_PAD_V 0xFFF -#define SARADC_SAR1_EN_PAD_S 19 -/* SARADC_MEAS1_START_FORCE : R/W ;bitpos:[18] ;default: 1'b0 ; */ -/*description: 1: SAR ADC1 controller (in RTC) is started by SW 0: SAR ADC1 - controller is started by ULP-coprocessor*/ -#define SARADC_MEAS1_START_FORCE (BIT(18)) -#define SARADC_MEAS1_START_FORCE_M (BIT(18)) -#define SARADC_MEAS1_START_FORCE_V 0x1 -#define SARADC_MEAS1_START_FORCE_S 18 -/* SARADC_MEAS1_START_SAR : R/W ;bitpos:[17] ;default: 1'b0 ; */ -/*description: SAR ADC1 controller (in RTC) starts conversion only active when - reg_meas1_start_force = 1*/ -#define SARADC_MEAS1_START_SAR (BIT(17)) -#define SARADC_MEAS1_START_SAR_M (BIT(17)) -#define SARADC_MEAS1_START_SAR_V 0x1 -#define SARADC_MEAS1_START_SAR_S 17 -/* SARADC_MEAS1_DONE_SAR : RO ;bitpos:[16] ;default: 1'b0 ; */ -/*description: SAR ADC1 conversion done indication*/ -#define SARADC_MEAS1_DONE_SAR (BIT(16)) -#define SARADC_MEAS1_DONE_SAR_M (BIT(16)) -#define SARADC_MEAS1_DONE_SAR_V 0x1 -#define SARADC_MEAS1_DONE_SAR_S 16 -/* SARADC_MEAS1_DATA_SAR : RO ;bitpos:[15:0] ;default: 16'b0 ; */ -/*description: SAR ADC1 data*/ -#define SARADC_MEAS1_DATA_SAR 0x0000FFFF -#define SARADC_MEAS1_DATA_SAR_M ((SARADC_MEAS1_DATA_SAR_V)<<(SARADC_MEAS1_DATA_SAR_S)) -#define SARADC_MEAS1_DATA_SAR_V 0xFFFF -#define SARADC_MEAS1_DATA_SAR_S 0 - -#define SARADC_SAR_TOUCH_CTRL1_REG (DR_REG_SARADC_BASE + 0x0058) -/* SARADC_HALL_PHASE_FORCE : R/W ;bitpos:[27] ;default: 1'b0 ; */ -/*description: 1: HALL PHASE is controlled by SW 0: HALL PHASE is controlled - by FSM in ULP-coprocessor*/ -#define SARADC_HALL_PHASE_FORCE (BIT(27)) -#define SARADC_HALL_PHASE_FORCE_M (BIT(27)) -#define SARADC_HALL_PHASE_FORCE_V 0x1 -#define SARADC_HALL_PHASE_FORCE_S 27 -/* SARADC_XPD_HALL_FORCE : R/W ;bitpos:[26] ;default: 1'b0 ; */ -/*description: 1: XPD HALL is controlled by SW. 0: XPD HALL is controlled by - FSM in ULP-coprocessor*/ -#define SARADC_XPD_HALL_FORCE (BIT(26)) -#define SARADC_XPD_HALL_FORCE_M (BIT(26)) -#define SARADC_XPD_HALL_FORCE_V 0x1 -#define SARADC_XPD_HALL_FORCE_S 26 -/* SARADC_TOUCH_OUT_1EN : R/W ;bitpos:[25] ;default: 1'b1 ; */ -/*description: 1: wakeup interrupt is generated if SET1 is "touched" 0: - wakeup interrupt is generated only if SET1 & SET2 is both "touched"*/ -#define SARADC_TOUCH_OUT_1EN (BIT(25)) -#define SARADC_TOUCH_OUT_1EN_M (BIT(25)) -#define SARADC_TOUCH_OUT_1EN_V 0x1 -#define SARADC_TOUCH_OUT_1EN_S 25 -/* SARADC_TOUCH_OUT_SEL : R/W ;bitpos:[24] ;default: 1'b0 ; */ -/*description: 1: when the counter is greater then the threshold the touch - pad is considered as "touched" 0: when the counter is less than the threshold the touch pad is considered as "touched"*/ -#define SARADC_TOUCH_OUT_SEL (BIT(24)) -#define SARADC_TOUCH_OUT_SEL_M (BIT(24)) -#define SARADC_TOUCH_OUT_SEL_V 0x1 -#define SARADC_TOUCH_OUT_SEL_S 24 -/* SARADC_TOUCH_XPD_WAIT : R/W ;bitpos:[23:16] ;default: 8'h4 ; */ -/*description: the waiting cycles (in 8MHz) between TOUCH_START and TOUCH_XPD*/ -#define SARADC_TOUCH_XPD_WAIT 0x000000FF -#define SARADC_TOUCH_XPD_WAIT_M ((SARADC_TOUCH_XPD_WAIT_V)<<(SARADC_TOUCH_XPD_WAIT_S)) -#define SARADC_TOUCH_XPD_WAIT_V 0xFF -#define SARADC_TOUCH_XPD_WAIT_S 16 -/* SARADC_TOUCH_MEAS_DELAY : R/W ;bitpos:[15:0] ;default: 16'h1000 ; */ -/*description: the meas length (in 8MHz)*/ -#define SARADC_TOUCH_MEAS_DELAY 0x0000FFFF -#define SARADC_TOUCH_MEAS_DELAY_M ((SARADC_TOUCH_MEAS_DELAY_V)<<(SARADC_TOUCH_MEAS_DELAY_S)) -#define SARADC_TOUCH_MEAS_DELAY_V 0xFFFF -#define SARADC_TOUCH_MEAS_DELAY_S 0 - -#define SARADC_SAR_TOUCH_THRES1_REG (DR_REG_SARADC_BASE + 0x005c) -/* SARADC_TOUCH_OUT_TH0 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 0*/ -#define SARADC_TOUCH_OUT_TH0 0x0000FFFF -#define SARADC_TOUCH_OUT_TH0_M ((SARADC_TOUCH_OUT_TH0_V)<<(SARADC_TOUCH_OUT_TH0_S)) -#define SARADC_TOUCH_OUT_TH0_V 0xFFFF -#define SARADC_TOUCH_OUT_TH0_S 16 -/* SARADC_TOUCH_OUT_TH1 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 1*/ -#define SARADC_TOUCH_OUT_TH1 0x0000FFFF -#define SARADC_TOUCH_OUT_TH1_M ((SARADC_TOUCH_OUT_TH1_V)<<(SARADC_TOUCH_OUT_TH1_S)) -#define SARADC_TOUCH_OUT_TH1_V 0xFFFF -#define SARADC_TOUCH_OUT_TH1_S 0 - -#define SARADC_SAR_TOUCH_THRES2_REG (DR_REG_SARADC_BASE + 0x0060) -/* SARADC_TOUCH_OUT_TH2 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 2*/ -#define SARADC_TOUCH_OUT_TH2 0x0000FFFF -#define SARADC_TOUCH_OUT_TH2_M ((SARADC_TOUCH_OUT_TH2_V)<<(SARADC_TOUCH_OUT_TH2_S)) -#define SARADC_TOUCH_OUT_TH2_V 0xFFFF -#define SARADC_TOUCH_OUT_TH2_S 16 -/* SARADC_TOUCH_OUT_TH3 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 3*/ -#define SARADC_TOUCH_OUT_TH3 0x0000FFFF -#define SARADC_TOUCH_OUT_TH3_M ((SARADC_TOUCH_OUT_TH3_V)<<(SARADC_TOUCH_OUT_TH3_S)) -#define SARADC_TOUCH_OUT_TH3_V 0xFFFF -#define SARADC_TOUCH_OUT_TH3_S 0 - -#define SARADC_SAR_TOUCH_THRES3_REG (DR_REG_SARADC_BASE + 0x0064) -/* SARADC_TOUCH_OUT_TH4 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 4*/ -#define SARADC_TOUCH_OUT_TH4 0x0000FFFF -#define SARADC_TOUCH_OUT_TH4_M ((SARADC_TOUCH_OUT_TH4_V)<<(SARADC_TOUCH_OUT_TH4_S)) -#define SARADC_TOUCH_OUT_TH4_V 0xFFFF -#define SARADC_TOUCH_OUT_TH4_S 16 -/* SARADC_TOUCH_OUT_TH5 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 5*/ -#define SARADC_TOUCH_OUT_TH5 0x0000FFFF -#define SARADC_TOUCH_OUT_TH5_M ((SARADC_TOUCH_OUT_TH5_V)<<(SARADC_TOUCH_OUT_TH5_S)) -#define SARADC_TOUCH_OUT_TH5_V 0xFFFF -#define SARADC_TOUCH_OUT_TH5_S 0 - -#define SARADC_SAR_TOUCH_THRES4_REG (DR_REG_SARADC_BASE + 0x0068) -/* SARADC_TOUCH_OUT_TH6 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 6*/ -#define SARADC_TOUCH_OUT_TH6 0x0000FFFF -#define SARADC_TOUCH_OUT_TH6_M ((SARADC_TOUCH_OUT_TH6_V)<<(SARADC_TOUCH_OUT_TH6_S)) -#define SARADC_TOUCH_OUT_TH6_V 0xFFFF -#define SARADC_TOUCH_OUT_TH6_S 16 -/* SARADC_TOUCH_OUT_TH7 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 7*/ -#define SARADC_TOUCH_OUT_TH7 0x0000FFFF -#define SARADC_TOUCH_OUT_TH7_M ((SARADC_TOUCH_OUT_TH7_V)<<(SARADC_TOUCH_OUT_TH7_S)) -#define SARADC_TOUCH_OUT_TH7_V 0xFFFF -#define SARADC_TOUCH_OUT_TH7_S 0 - -#define SARADC_SAR_TOUCH_THRES5_REG (DR_REG_SARADC_BASE + 0x006c) -/* SARADC_TOUCH_OUT_TH8 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 8*/ -#define SARADC_TOUCH_OUT_TH8 0x0000FFFF -#define SARADC_TOUCH_OUT_TH8_M ((SARADC_TOUCH_OUT_TH8_V)<<(SARADC_TOUCH_OUT_TH8_S)) -#define SARADC_TOUCH_OUT_TH8_V 0xFFFF -#define SARADC_TOUCH_OUT_TH8_S 16 -/* SARADC_TOUCH_OUT_TH9 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the threshold for touch pad 9*/ -#define SARADC_TOUCH_OUT_TH9 0x0000FFFF -#define SARADC_TOUCH_OUT_TH9_M ((SARADC_TOUCH_OUT_TH9_V)<<(SARADC_TOUCH_OUT_TH9_S)) -#define SARADC_TOUCH_OUT_TH9_V 0xFFFF -#define SARADC_TOUCH_OUT_TH9_S 0 - -#define SARADC_SAR_TOUCH_OUT1_REG (DR_REG_SARADC_BASE + 0x0070) -/* SARADC_TOUCH_MEAS_OUT0 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the counter for touch pad 0*/ -#define SARADC_TOUCH_MEAS_OUT0 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT0_M ((SARADC_TOUCH_MEAS_OUT0_V)<<(SARADC_TOUCH_MEAS_OUT0_S)) -#define SARADC_TOUCH_MEAS_OUT0_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT0_S 16 -/* SARADC_TOUCH_MEAS_OUT1 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the counter for touch pad 1*/ -#define SARADC_TOUCH_MEAS_OUT1 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT1_M ((SARADC_TOUCH_MEAS_OUT1_V)<<(SARADC_TOUCH_MEAS_OUT1_S)) -#define SARADC_TOUCH_MEAS_OUT1_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT1_S 0 - -#define SARADC_SAR_TOUCH_OUT2_REG (DR_REG_SARADC_BASE + 0x0074) -/* SARADC_TOUCH_MEAS_OUT2 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the counter for touch pad 2*/ -#define SARADC_TOUCH_MEAS_OUT2 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT2_M ((SARADC_TOUCH_MEAS_OUT2_V)<<(SARADC_TOUCH_MEAS_OUT2_S)) -#define SARADC_TOUCH_MEAS_OUT2_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT2_S 16 -/* SARADC_TOUCH_MEAS_OUT3 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the counter for touch pad 3*/ -#define SARADC_TOUCH_MEAS_OUT3 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT3_M ((SARADC_TOUCH_MEAS_OUT3_V)<<(SARADC_TOUCH_MEAS_OUT3_S)) -#define SARADC_TOUCH_MEAS_OUT3_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT3_S 0 - -#define SARADC_SAR_TOUCH_OUT3_REG (DR_REG_SARADC_BASE + 0x0078) -/* SARADC_TOUCH_MEAS_OUT4 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the counter for touch pad 4*/ -#define SARADC_TOUCH_MEAS_OUT4 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT4_M ((SARADC_TOUCH_MEAS_OUT4_V)<<(SARADC_TOUCH_MEAS_OUT4_S)) -#define SARADC_TOUCH_MEAS_OUT4_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT4_S 16 -/* SARADC_TOUCH_MEAS_OUT5 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the counter for touch pad 5*/ -#define SARADC_TOUCH_MEAS_OUT5 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT5_M ((SARADC_TOUCH_MEAS_OUT5_V)<<(SARADC_TOUCH_MEAS_OUT5_S)) -#define SARADC_TOUCH_MEAS_OUT5_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT5_S 0 - -#define SARADC_SAR_TOUCH_OUT4_REG (DR_REG_SARADC_BASE + 0x007c) -/* SARADC_TOUCH_MEAS_OUT6 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the counter for touch pad 6*/ -#define SARADC_TOUCH_MEAS_OUT6 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT6_M ((SARADC_TOUCH_MEAS_OUT6_V)<<(SARADC_TOUCH_MEAS_OUT6_S)) -#define SARADC_TOUCH_MEAS_OUT6_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT6_S 16 -/* SARADC_TOUCH_MEAS_OUT7 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the counter for touch pad 7*/ -#define SARADC_TOUCH_MEAS_OUT7 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT7_M ((SARADC_TOUCH_MEAS_OUT7_V)<<(SARADC_TOUCH_MEAS_OUT7_S)) -#define SARADC_TOUCH_MEAS_OUT7_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT7_S 0 - -#define SARADC_SAR_TOUCH_OUT5_REG (DR_REG_SARADC_BASE + 0x0080) -/* SARADC_TOUCH_MEAS_OUT8 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ -/*description: the counter for touch pad 8*/ -#define SARADC_TOUCH_MEAS_OUT8 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT8_M ((SARADC_TOUCH_MEAS_OUT8_V)<<(SARADC_TOUCH_MEAS_OUT8_S)) -#define SARADC_TOUCH_MEAS_OUT8_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT8_S 16 -/* SARADC_TOUCH_MEAS_OUT9 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ -/*description: the counter for touch pad 9*/ -#define SARADC_TOUCH_MEAS_OUT9 0x0000FFFF -#define SARADC_TOUCH_MEAS_OUT9_M ((SARADC_TOUCH_MEAS_OUT9_V)<<(SARADC_TOUCH_MEAS_OUT9_S)) -#define SARADC_TOUCH_MEAS_OUT9_V 0xFFFF -#define SARADC_TOUCH_MEAS_OUT9_S 0 - -#define SARADC_SAR_TOUCH_CTRL2_REG (DR_REG_SARADC_BASE + 0x0084) -/* SARADC_TOUCH_MEAS_EN_CLR : WO ;bitpos:[30] ;default: 1'h0 ; */ -/*description: to clear reg_touch_meas_en*/ -#define SARADC_TOUCH_MEAS_EN_CLR (BIT(30)) -#define SARADC_TOUCH_MEAS_EN_CLR_M (BIT(30)) -#define SARADC_TOUCH_MEAS_EN_CLR_V 0x1 -#define SARADC_TOUCH_MEAS_EN_CLR_S 30 -/* SARADC_TOUCH_SLEEP_CYCLES : R/W ;bitpos:[29:14] ;default: 16'h100 ; */ -/*description: sleep cycles for timer*/ -#define SARADC_TOUCH_SLEEP_CYCLES 0x0000FFFF -#define SARADC_TOUCH_SLEEP_CYCLES_M ((SARADC_TOUCH_SLEEP_CYCLES_V)<<(SARADC_TOUCH_SLEEP_CYCLES_S)) -#define SARADC_TOUCH_SLEEP_CYCLES_V 0xFFFF -#define SARADC_TOUCH_SLEEP_CYCLES_S 14 -/* SARADC_TOUCH_START_FORCE : R/W ;bitpos:[13] ;default: 1'h0 ; */ -/*description: 1: to start touch fsm by SW 0: to start touch fsm by timer*/ -#define SARADC_TOUCH_START_FORCE (BIT(13)) -#define SARADC_TOUCH_START_FORCE_M (BIT(13)) -#define SARADC_TOUCH_START_FORCE_V 0x1 -#define SARADC_TOUCH_START_FORCE_S 13 -/* SARADC_TOUCH_START_EN : R/W ;bitpos:[12] ;default: 1'h0 ; */ -/*description: 1: start touch fsm valid when reg_touch_start_force is set*/ -#define SARADC_TOUCH_START_EN (BIT(12)) -#define SARADC_TOUCH_START_EN_M (BIT(12)) -#define SARADC_TOUCH_START_EN_V 0x1 -#define SARADC_TOUCH_START_EN_S 12 -/* SARADC_TOUCH_START_FSM_EN : R/W ;bitpos:[11] ;default: 1'h1 ; */ -/*description: 1: TOUCH_START & TOUCH_XPD is controlled by touch fsm 0: TOUCH_START - & TOUCH_XPD is controlled by registers*/ -#define SARADC_TOUCH_START_FSM_EN (BIT(11)) -#define SARADC_TOUCH_START_FSM_EN_M (BIT(11)) -#define SARADC_TOUCH_START_FSM_EN_V 0x1 -#define SARADC_TOUCH_START_FSM_EN_S 11 -/* SARADC_TOUCH_MEAS_DONE : RO ;bitpos:[10] ;default: 1'h0 ; */ -/*description: fsm set 1 to indicate touch touch meas is done*/ -#define SARADC_TOUCH_MEAS_DONE (BIT(10)) -#define SARADC_TOUCH_MEAS_DONE_M (BIT(10)) -#define SARADC_TOUCH_MEAS_DONE_V 0x1 -#define SARADC_TOUCH_MEAS_DONE_S 10 -/* SARADC_TOUCH_MEAS_EN : RO ;bitpos:[9:0] ;default: 10'h0 ; */ -/*description: 10-bit register to indicate which pads are "touched"*/ -#define SARADC_TOUCH_MEAS_EN 0x000003FF -#define SARADC_TOUCH_MEAS_EN_M ((SARADC_TOUCH_MEAS_EN_V)<<(SARADC_TOUCH_MEAS_EN_S)) -#define SARADC_TOUCH_MEAS_EN_V 0x3FF -#define SARADC_TOUCH_MEAS_EN_S 0 - -#define SARADC_SAR_TOUCH_ENABLE_REG (DR_REG_SARADC_BASE + 0x008c) -/* SARADC_TOUCH_PAD_OUTEN1 : R/W ;bitpos:[29:20] ;default: 10'h3ff ; */ -/*description: Bitmap defining SET1 for generating wakeup interrupt. SET1 is - "touched" only if at least one of touch pad in SET1 is "touched".*/ -#define SARADC_TOUCH_PAD_OUTEN1 0x000003FF -#define SARADC_TOUCH_PAD_OUTEN1_M ((SARADC_TOUCH_PAD_OUTEN1_V)<<(SARADC_TOUCH_PAD_OUTEN1_S)) -#define SARADC_TOUCH_PAD_OUTEN1_V 0x3FF -#define SARADC_TOUCH_PAD_OUTEN1_S 20 -/* SARADC_TOUCH_PAD_OUTEN2 : R/W ;bitpos:[19:10] ;default: 10'h3ff ; */ -/*description: Bitmap defining SET2 for generating wakeup interrupt. SET2 is - "touched" only if at least one of touch pad in SET2 is "touched".*/ -#define SARADC_TOUCH_PAD_OUTEN2 0x000003FF -#define SARADC_TOUCH_PAD_OUTEN2_M ((SARADC_TOUCH_PAD_OUTEN2_V)<<(SARADC_TOUCH_PAD_OUTEN2_S)) -#define SARADC_TOUCH_PAD_OUTEN2_V 0x3FF -#define SARADC_TOUCH_PAD_OUTEN2_S 10 -/* SARADC_TOUCH_PAD_WORKEN : R/W ;bitpos:[9:0] ;default: 10'h3ff ; */ -/*description: Bitmap defining the working set during the measurement.*/ -#define SARADC_TOUCH_PAD_WORKEN 0x000003FF -#define SARADC_TOUCH_PAD_WORKEN_M ((SARADC_TOUCH_PAD_WORKEN_V)<<(SARADC_TOUCH_PAD_WORKEN_S)) -#define SARADC_TOUCH_PAD_WORKEN_V 0x3FF -#define SARADC_TOUCH_PAD_WORKEN_S 0 - -#define SARADC_SAR_READ_CTRL2_REG (DR_REG_SARADC_BASE + 0x0090) -/* SARADC_SAR2_DATA_INV : R/W ;bitpos:[29] ;default: 1'b0 ; */ -/*description: Invert SAR ADC2 data*/ -#define SARADC_SAR2_DATA_INV (BIT(29)) -#define SARADC_SAR2_DATA_INV_M (BIT(29)) -#define SARADC_SAR2_DATA_INV_V 0x1 -#define SARADC_SAR2_DATA_INV_S 29 -/* SARADC_SAR2_DIG_FORCE : R/W ;bitpos:[28] ;default: 1'b0 ; */ -/*description: 1: SAR ADC2 controlled by DIG ADC2 CTRL or PWDET CTRL 0: SAR - ADC2 controlled by RTC ADC2 CTRL*/ -#define SARADC_SAR2_DIG_FORCE (BIT(28)) -#define SARADC_SAR2_DIG_FORCE_M (BIT(28)) -#define SARADC_SAR2_DIG_FORCE_V 0x1 -#define SARADC_SAR2_DIG_FORCE_S 28 -/* SARADC_SAR2_PWDET_FORCE : R/W ;bitpos:[27] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_SAR2_PWDET_FORCE (BIT(27)) -#define SARADC_SAR2_PWDET_FORCE_M (BIT(27)) -#define SARADC_SAR2_PWDET_FORCE_V 0x1 -#define SARADC_SAR2_PWDET_FORCE_S 27 -/* SARADC_SAR2_SAMPLE_NUM : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ -/*description: */ -#define SARADC_SAR2_SAMPLE_NUM 0x000000FF -#define SARADC_SAR2_SAMPLE_NUM_M ((SARADC_SAR2_SAMPLE_NUM_V)<<(SARADC_SAR2_SAMPLE_NUM_S)) -#define SARADC_SAR2_SAMPLE_NUM_V 0xFF -#define SARADC_SAR2_SAMPLE_NUM_S 19 -/* SARADC_SAR2_CLK_GATED : R/W ;bitpos:[18] ;default: 1'b1 ; */ -/*description: */ -#define SARADC_SAR2_CLK_GATED (BIT(18)) -#define SARADC_SAR2_CLK_GATED_M (BIT(18)) -#define SARADC_SAR2_CLK_GATED_V 0x1 -#define SARADC_SAR2_CLK_GATED_S 18 -/* SARADC_SAR2_SAMPLE_BIT : R/W ;bitpos:[17:16] ;default: 2'd3 ; */ -/*description: 00: for 9-bit width 01: for 10-bit width 10: for 11-bit width - 11: for 12-bit width*/ -#define SARADC_SAR2_SAMPLE_BIT 0x00000003 -#define SARADC_SAR2_SAMPLE_BIT_M ((SARADC_SAR2_SAMPLE_BIT_V)<<(SARADC_SAR2_SAMPLE_BIT_S)) -#define SARADC_SAR2_SAMPLE_BIT_V 0x3 -#define SARADC_SAR2_SAMPLE_BIT_S 16 -/* SARADC_SAR2_SAMPLE_CYCLE : R/W ;bitpos:[15:8] ;default: 8'd9 ; */ -/*description: sample cycles for SAR ADC2*/ -#define SARADC_SAR2_SAMPLE_CYCLE 0x000000FF -#define SARADC_SAR2_SAMPLE_CYCLE_M ((SARADC_SAR2_SAMPLE_CYCLE_V)<<(SARADC_SAR2_SAMPLE_CYCLE_S)) -#define SARADC_SAR2_SAMPLE_CYCLE_V 0xFF -#define SARADC_SAR2_SAMPLE_CYCLE_S 8 -/* SARADC_SAR2_CLK_DIV : R/W ;bitpos:[7:0] ;default: 8'd2 ; */ -/*description: clock divider*/ -#define SARADC_SAR2_CLK_DIV 0x000000FF -#define SARADC_SAR2_CLK_DIV_M ((SARADC_SAR2_CLK_DIV_V)<<(SARADC_SAR2_CLK_DIV_S)) -#define SARADC_SAR2_CLK_DIV_V 0xFF -#define SARADC_SAR2_CLK_DIV_S 0 - -#define SARADC_SAR_MEAS_START2_REG (DR_REG_SARADC_BASE + 0x0094) -/* SARADC_SAR2_EN_PAD_FORCE : R/W ;bitpos:[31] ;default: 1'b0 ; */ -/*description: 1: SAR ADC2 pad enable bitmap is controlled by SW 0: SAR ADC2 - pad enable bitmap is controlled by ULP-coprocessor*/ -#define SARADC_SAR2_EN_PAD_FORCE (BIT(31)) -#define SARADC_SAR2_EN_PAD_FORCE_M (BIT(31)) -#define SARADC_SAR2_EN_PAD_FORCE_V 0x1 -#define SARADC_SAR2_EN_PAD_FORCE_S 31 -/* SARADC_SAR2_EN_PAD : R/W ;bitpos:[30:19] ;default: 12'b0 ; */ -/*description: SAR ADC2 pad enable bitmap only active when reg_sar2_en_pad_force = 1*/ -#define SARADC_SAR2_EN_PAD 0x00000FFF -#define SARADC_SAR2_EN_PAD_M ((SARADC_SAR2_EN_PAD_V)<<(SARADC_SAR2_EN_PAD_S)) -#define SARADC_SAR2_EN_PAD_V 0xFFF -#define SARADC_SAR2_EN_PAD_S 19 -/* SARADC_MEAS2_START_FORCE : R/W ;bitpos:[18] ;default: 1'b0 ; */ -/*description: 1: SAR ADC2 controller (in RTC) is started by SW 0: SAR ADC2 - controller is started by ULP-coprocessor*/ -#define SARADC_MEAS2_START_FORCE (BIT(18)) -#define SARADC_MEAS2_START_FORCE_M (BIT(18)) -#define SARADC_MEAS2_START_FORCE_V 0x1 -#define SARADC_MEAS2_START_FORCE_S 18 -/* SARADC_MEAS2_START_SAR : R/W ;bitpos:[17] ;default: 1'b0 ; */ -/*description: SAR ADC2 controller (in RTC) starts conversion only active when - reg_meas2_start_force = 1*/ -#define SARADC_MEAS2_START_SAR (BIT(17)) -#define SARADC_MEAS2_START_SAR_M (BIT(17)) -#define SARADC_MEAS2_START_SAR_V 0x1 -#define SARADC_MEAS2_START_SAR_S 17 -/* SARADC_MEAS2_DONE_SAR : RO ;bitpos:[16] ;default: 1'b0 ; */ -/*description: SAR ADC2 conversion done indication*/ -#define SARADC_MEAS2_DONE_SAR (BIT(16)) -#define SARADC_MEAS2_DONE_SAR_M (BIT(16)) -#define SARADC_MEAS2_DONE_SAR_V 0x1 -#define SARADC_MEAS2_DONE_SAR_S 16 -/* SARADC_MEAS2_DATA_SAR : RO ;bitpos:[15:0] ;default: 16'b0 ; */ -/*description: SAR ADC2 data*/ -#define SARADC_MEAS2_DATA_SAR 0x0000FFFF -#define SARADC_MEAS2_DATA_SAR_M ((SARADC_MEAS2_DATA_SAR_V)<<(SARADC_MEAS2_DATA_SAR_S)) -#define SARADC_MEAS2_DATA_SAR_V 0xFFFF -#define SARADC_MEAS2_DATA_SAR_S 0 - -#define SARADC_SAR_DAC_CTRL1_REG (DR_REG_SARADC_BASE + 0x0098) -/* SARADC_DAC_CLK_INV : R/W ;bitpos:[25] ;default: 1'b0 ; */ -/*description: 1: invert PDAC_CLK*/ -#define SARADC_DAC_CLK_INV (BIT(25)) -#define SARADC_DAC_CLK_INV_M (BIT(25)) -#define SARADC_DAC_CLK_INV_V 0x1 -#define SARADC_DAC_CLK_INV_S 25 -/* SARADC_DAC_CLK_FORCE_HIGH : R/W ;bitpos:[24] ;default: 1'b0 ; */ -/*description: 1: force PDAC_CLK to high*/ -#define SARADC_DAC_CLK_FORCE_HIGH (BIT(24)) -#define SARADC_DAC_CLK_FORCE_HIGH_M (BIT(24)) -#define SARADC_DAC_CLK_FORCE_HIGH_V 0x1 -#define SARADC_DAC_CLK_FORCE_HIGH_S 24 -/* SARADC_DAC_CLK_FORCE_LOW : R/W ;bitpos:[23] ;default: 1'b0 ; */ -/*description: 1: force PDAC_CLK to low*/ -#define SARADC_DAC_CLK_FORCE_LOW (BIT(23)) -#define SARADC_DAC_CLK_FORCE_LOW_M (BIT(23)) -#define SARADC_DAC_CLK_FORCE_LOW_V 0x1 -#define SARADC_DAC_CLK_FORCE_LOW_S 23 -/* SARADC_DAC_DIG_FORCE : R/W ;bitpos:[22] ;default: 1'b0 ; */ -/*description: 1: DAC1 & DAC2 use DMA 0: DAC1 & DAC2 do not use DMA*/ -#define SARADC_DAC_DIG_FORCE (BIT(22)) -#define SARADC_DAC_DIG_FORCE_M (BIT(22)) -#define SARADC_DAC_DIG_FORCE_V 0x1 -#define SARADC_DAC_DIG_FORCE_S 22 -/* SARADC_DEBUG_BIT_SEL : R/W ;bitpos:[21:17] ;default: 5'b0 ; */ -/*description: */ -#define SARADC_DEBUG_BIT_SEL 0x0000001F -#define SARADC_DEBUG_BIT_SEL_M ((SARADC_DEBUG_BIT_SEL_V)<<(SARADC_DEBUG_BIT_SEL_S)) -#define SARADC_DEBUG_BIT_SEL_V 0x1F -#define SARADC_DEBUG_BIT_SEL_S 17 -/* SARADC_SW_TONE_EN : R/W ;bitpos:[16] ;default: 1'b0 ; */ -/*description: 1: enable CW generator 0: disable CW generator*/ -#define SARADC_SW_TONE_EN (BIT(16)) -#define SARADC_SW_TONE_EN_M (BIT(16)) -#define SARADC_SW_TONE_EN_V 0x1 -#define SARADC_SW_TONE_EN_S 16 -/* SARADC_SW_FSTEP : R/W ;bitpos:[15:0] ;default: 16'b0 ; */ -/*description: frequency step for CW generator can be used to adjust the frequency*/ -#define SARADC_SW_FSTEP 0x0000FFFF -#define SARADC_SW_FSTEP_M ((SARADC_SW_FSTEP_V)<<(SARADC_SW_FSTEP_S)) -#define SARADC_SW_FSTEP_V 0xFFFF -#define SARADC_SW_FSTEP_S 0 - -#define SARADC_SAR_DAC_CTRL2_REG (DR_REG_SARADC_BASE + 0x009c) -/* SARADC_DAC_CW_EN2 : R/W ;bitpos:[25] ;default: 1'b1 ; */ -/*description: 1: to select CW generator as source to PDAC2_DAC[7:0] 0: to - select register reg_pdac2_dac[7:0] as source to PDAC2_DAC[7:0]*/ -#define SARADC_DAC_CW_EN2 (BIT(25)) -#define SARADC_DAC_CW_EN2_M (BIT(25)) -#define SARADC_DAC_CW_EN2_V 0x1 -#define SARADC_DAC_CW_EN2_S 25 -/* SARADC_DAC_CW_EN1 : R/W ;bitpos:[24] ;default: 1'b1 ; */ -/*description: 1: to select CW generator as source to PDAC1_DAC[7:0] 0: to - select register reg_pdac1_dac[7:0] as source to PDAC1_DAC[7:0]*/ -#define SARADC_DAC_CW_EN1 (BIT(24)) -#define SARADC_DAC_CW_EN1_M (BIT(24)) -#define SARADC_DAC_CW_EN1_V 0x1 -#define SARADC_DAC_CW_EN1_S 24 -/* SARADC_DAC_INV2 : R/W ;bitpos:[23:22] ;default: 2'b0 ; */ -/*description: 00: do not invert any bits 01: invert all bits 10: invert MSB - 11: invert all bits except MSB*/ -#define SARADC_DAC_INV2 0x00000003 -#define SARADC_DAC_INV2_M ((SARADC_DAC_INV2_V)<<(SARADC_DAC_INV2_S)) -#define SARADC_DAC_INV2_V 0x3 -#define SARADC_DAC_INV2_S 22 -/* SARADC_DAC_INV1 : R/W ;bitpos:[21:20] ;default: 2'b0 ; */ -/*description: 00: do not invert any bits 01: invert all bits 10: invert MSB - 11: invert all bits except MSB*/ -#define SARADC_DAC_INV1 0x00000003 -#define SARADC_DAC_INV1_M ((SARADC_DAC_INV1_V)<<(SARADC_DAC_INV1_S)) -#define SARADC_DAC_INV1_V 0x3 -#define SARADC_DAC_INV1_S 20 -/* SARADC_DAC_SCALE2 : R/W ;bitpos:[19:18] ;default: 2'b0 ; */ -/*description: 00: no scale 01: scale to 1/2 10: scale to 1/4 scale to 1/8*/ -#define SARADC_DAC_SCALE2 0x00000003 -#define SARADC_DAC_SCALE2_M ((SARADC_DAC_SCALE2_V)<<(SARADC_DAC_SCALE2_S)) -#define SARADC_DAC_SCALE2_V 0x3 -#define SARADC_DAC_SCALE2_S 18 -/* SARADC_DAC_SCALE1 : R/W ;bitpos:[17:16] ;default: 2'b0 ; */ -/*description: 00: no scale 01: scale to 1/2 10: scale to 1/4 scale to 1/8*/ -#define SARADC_DAC_SCALE1 0x00000003 -#define SARADC_DAC_SCALE1_M ((SARADC_DAC_SCALE1_V)<<(SARADC_DAC_SCALE1_S)) -#define SARADC_DAC_SCALE1_V 0x3 -#define SARADC_DAC_SCALE1_S 16 -/* SARADC_DAC_DC2 : R/W ;bitpos:[15:8] ;default: 8'b0 ; */ -/*description: DC offset for DAC2 CW generator*/ -#define SARADC_DAC_DC2 0x000000FF -#define SARADC_DAC_DC2_M ((SARADC_DAC_DC2_V)<<(SARADC_DAC_DC2_S)) -#define SARADC_DAC_DC2_V 0xFF -#define SARADC_DAC_DC2_S 8 -/* SARADC_DAC_DC1 : R/W ;bitpos:[7:0] ;default: 8'b0 ; */ -/*description: DC offset for DAC1 CW generator*/ -#define SARADC_DAC_DC1 0x000000FF -#define SARADC_DAC_DC1_M ((SARADC_DAC_DC1_V)<<(SARADC_DAC_DC1_S)) -#define SARADC_DAC_DC1_V 0xFF -#define SARADC_DAC_DC1_S 0 - -#define SARADC_SAR_MEAS_CTRL2_REG (DR_REG_SARADC_BASE + 0x0a0) -/* SARADC_AMP_SHORT_REF_GND_FORCE : R/W ;bitpos:[18:17] ;default: 2'b0 ; */ -/*description: */ -#define SARADC_AMP_SHORT_REF_GND_FORCE 0x00000003 -#define SARADC_AMP_SHORT_REF_GND_FORCE_M ((SARADC_AMP_SHORT_REF_GND_FORCE_V)<<(SARADC_AMP_SHORT_REF_GND_FORCE_S)) -#define SARADC_AMP_SHORT_REF_GND_FORCE_V 0x3 -#define SARADC_AMP_SHORT_REF_GND_FORCE_S 17 -/* SARADC_AMP_SHORT_REF_FORCE : R/W ;bitpos:[16:15] ;default: 2'b0 ; */ -/*description: */ -#define SARADC_AMP_SHORT_REF_FORCE 0x00000003 -#define SARADC_AMP_SHORT_REF_FORCE_M ((SARADC_AMP_SHORT_REF_FORCE_V)<<(SARADC_AMP_SHORT_REF_FORCE_S)) -#define SARADC_AMP_SHORT_REF_FORCE_V 0x3 -#define SARADC_AMP_SHORT_REF_FORCE_S 15 -/* SARADC_AMP_RST_FB_FORCE : R/W ;bitpos:[14:13] ;default: 2'b0 ; */ -/*description: */ -#define SARADC_AMP_RST_FB_FORCE 0x00000003 -#define SARADC_AMP_RST_FB_FORCE_M ((SARADC_AMP_RST_FB_FORCE_V)<<(SARADC_AMP_RST_FB_FORCE_S)) -#define SARADC_AMP_RST_FB_FORCE_V 0x3 -#define SARADC_AMP_RST_FB_FORCE_S 13 -/* SARADC_SAR2_RSTB_FORCE : R/W ;bitpos:[12:11] ;default: 2'b0 ; */ -/*description: */ -#define SARADC_SAR2_RSTB_FORCE 0x00000003 -#define SARADC_SAR2_RSTB_FORCE_M ((SARADC_SAR2_RSTB_FORCE_V)<<(SARADC_SAR2_RSTB_FORCE_S)) -#define SARADC_SAR2_RSTB_FORCE_V 0x3 -#define SARADC_SAR2_RSTB_FORCE_S 11 -/* SARADC_SAR_RSTB_FSM_IDLE : R/W ;bitpos:[10] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_SAR_RSTB_FSM_IDLE (BIT(10)) -#define SARADC_SAR_RSTB_FSM_IDLE_M (BIT(10)) -#define SARADC_SAR_RSTB_FSM_IDLE_V 0x1 -#define SARADC_SAR_RSTB_FSM_IDLE_S 10 -/* SARADC_XPD_SAR_FSM_IDLE : R/W ;bitpos:[9] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_XPD_SAR_FSM_IDLE (BIT(9)) -#define SARADC_XPD_SAR_FSM_IDLE_M (BIT(9)) -#define SARADC_XPD_SAR_FSM_IDLE_V 0x1 -#define SARADC_XPD_SAR_FSM_IDLE_S 9 -/* SARADC_AMP_SHORT_REF_GND_FSM_IDLE : R/W ;bitpos:[8] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_AMP_SHORT_REF_GND_FSM_IDLE (BIT(8)) -#define SARADC_AMP_SHORT_REF_GND_FSM_IDLE_M (BIT(8)) -#define SARADC_AMP_SHORT_REF_GND_FSM_IDLE_V 0x1 -#define SARADC_AMP_SHORT_REF_GND_FSM_IDLE_S 8 -/* SARADC_AMP_SHORT_REF_FSM_IDLE : R/W ;bitpos:[7] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_AMP_SHORT_REF_FSM_IDLE (BIT(7)) -#define SARADC_AMP_SHORT_REF_FSM_IDLE_M (BIT(7)) -#define SARADC_AMP_SHORT_REF_FSM_IDLE_V 0x1 -#define SARADC_AMP_SHORT_REF_FSM_IDLE_S 7 -/* SARADC_AMP_RST_FB_FSM_IDLE : R/W ;bitpos:[6] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_AMP_RST_FB_FSM_IDLE (BIT(6)) -#define SARADC_AMP_RST_FB_FSM_IDLE_M (BIT(6)) -#define SARADC_AMP_RST_FB_FSM_IDLE_V 0x1 -#define SARADC_AMP_RST_FB_FSM_IDLE_S 6 -/* SARADC_XPD_SAR_AMP_FSM_IDLE : R/W ;bitpos:[5] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_XPD_SAR_AMP_FSM_IDLE (BIT(5)) -#define SARADC_XPD_SAR_AMP_FSM_IDLE_M (BIT(5)) -#define SARADC_XPD_SAR_AMP_FSM_IDLE_V 0x1 -#define SARADC_XPD_SAR_AMP_FSM_IDLE_S 5 -/* SARADC_SAR1_DAC_XPD_FSM_IDLE : R/W ;bitpos:[4] ;default: 1'b0 ; */ -/*description: */ -#define SARADC_SAR1_DAC_XPD_FSM_IDLE (BIT(4)) -#define SARADC_SAR1_DAC_XPD_FSM_IDLE_M (BIT(4)) -#define SARADC_SAR1_DAC_XPD_FSM_IDLE_V 0x1 -#define SARADC_SAR1_DAC_XPD_FSM_IDLE_S 4 -/* SARADC_SAR1_DAC_XPD_FSM : R/W ;bitpos:[3:0] ;default: 4'b0011 ; */ -/*description: */ -#define SARADC_SAR1_DAC_XPD_FSM 0x0000000F -#define SARADC_SAR1_DAC_XPD_FSM_M ((SARADC_SAR1_DAC_XPD_FSM_V)<<(SARADC_SAR1_DAC_XPD_FSM_S)) -#define SARADC_SAR1_DAC_XPD_FSM_V 0xF -#define SARADC_SAR1_DAC_XPD_FSM_S 0 - -#define SARADC_SAR_NOUSE_REG (DR_REG_SARADC_BASE + 0x00F8) -/* SARADC_SAR_NOUSE : R/W ;bitpos:[31:0] ;default: 32'h0 ; */ -/*description: */ -#define SARADC_SAR_NOUSE 0xFFFFFFFF -#define SARADC_SAR_NOUSE_M ((SARADC_SAR_NOUSE_V)<<(SARADC_SAR_NOUSE_S)) -#define SARADC_SAR_NOUSE_V 0xFFFFFFFF -#define SARADC_SAR_NOUSE_S 0 - -#define SARADC_SARDATE_REG (DR_REG_SARADC_BASE + 0x00FC) -/* SARADC_SAR_DATE : R/W ;bitpos:[27:0] ;default: 28'h1605180 ; */ -/*description: */ -#define SARADC_SAR_DATE 0x0FFFFFFF -#define SARADC_SAR_DATE_M ((SARADC_SAR_DATE_V)<<(SARADC_SAR_DATE_S)) -#define SARADC_SAR_DATE_V 0xFFFFFFF -#define SARADC_SAR_DATE_S 0 - - - - -#endif /*_SOC_SARADC_REG_H_ */ - - diff --git a/tools/sdk/include/esp32/soc/sens_reg.h b/tools/sdk/include/esp32/soc/sens_reg.h new file mode 100644 index 00000000..0a032d21 --- /dev/null +++ b/tools/sdk/include/esp32/soc/sens_reg.h @@ -0,0 +1,1047 @@ +// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#ifndef _SOC_SENS_REG_H_ +#define _SOC_SENS_REG_H_ + + +#include "soc.h" +#define SENS_SAR_READ_CTRL_REG (DR_REG_SENS_BASE + 0x0000) +/* SENS_SAR1_DATA_INV : R/W ;bitpos:[28] ;default: 1'd0 ; */ +/*description: Invert SAR ADC1 data*/ +#define SENS_SAR1_DATA_INV (BIT(28)) +#define SENS_SAR1_DATA_INV_M (BIT(28)) +#define SENS_SAR1_DATA_INV_V 0x1 +#define SENS_SAR1_DATA_INV_S 28 +/* SENS_SAR1_DIG_FORCE : R/W ;bitpos:[27] ;default: 1'd0 ; */ +/*description: 1: SAR ADC1 controlled by DIG ADC1 CTRL 0: SAR ADC1 controlled by RTC ADC1 CTRL*/ +#define SENS_SAR1_DIG_FORCE (BIT(27)) +#define SENS_SAR1_DIG_FORCE_M (BIT(27)) +#define SENS_SAR1_DIG_FORCE_V 0x1 +#define SENS_SAR1_DIG_FORCE_S 27 +/* SENS_SAR1_SAMPLE_NUM : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ +/*description: */ +#define SENS_SAR1_SAMPLE_NUM 0x000000FF +#define SENS_SAR1_SAMPLE_NUM_M ((SENS_SAR1_SAMPLE_NUM_V)<<(SENS_SAR1_SAMPLE_NUM_S)) +#define SENS_SAR1_SAMPLE_NUM_V 0xFF +#define SENS_SAR1_SAMPLE_NUM_S 19 +/* SENS_SAR1_CLK_GATED : R/W ;bitpos:[18] ;default: 1'b1 ; */ +/*description: */ +#define SENS_SAR1_CLK_GATED (BIT(18)) +#define SENS_SAR1_CLK_GATED_M (BIT(18)) +#define SENS_SAR1_CLK_GATED_V 0x1 +#define SENS_SAR1_CLK_GATED_S 18 +/* SENS_SAR1_SAMPLE_BIT : R/W ;bitpos:[17:16] ;default: 2'd3 ; */ +/*description: 00: for 9-bit width 01: for 10-bit width 10: for 11-bit width + 11: for 12-bit width*/ +#define SENS_SAR1_SAMPLE_BIT 0x00000003 +#define SENS_SAR1_SAMPLE_BIT_M ((SENS_SAR1_SAMPLE_BIT_V)<<(SENS_SAR1_SAMPLE_BIT_S)) +#define SENS_SAR1_SAMPLE_BIT_V 0x3 +#define SENS_SAR1_SAMPLE_BIT_S 16 +/* SENS_SAR1_SAMPLE_CYCLE : R/W ;bitpos:[15:8] ;default: 8'd9 ; */ +/*description: sample cycles for SAR ADC1*/ +#define SENS_SAR1_SAMPLE_CYCLE 0x000000FF +#define SENS_SAR1_SAMPLE_CYCLE_M ((SENS_SAR1_SAMPLE_CYCLE_V)<<(SENS_SAR1_SAMPLE_CYCLE_S)) +#define SENS_SAR1_SAMPLE_CYCLE_V 0xFF +#define SENS_SAR1_SAMPLE_CYCLE_S 8 +/* SENS_SAR1_CLK_DIV : R/W ;bitpos:[7:0] ;default: 8'd2 ; */ +/*description: clock divider*/ +#define SENS_SAR1_CLK_DIV 0x000000FF +#define SENS_SAR1_CLK_DIV_M ((SENS_SAR1_CLK_DIV_V)<<(SENS_SAR1_CLK_DIV_S)) +#define SENS_SAR1_CLK_DIV_V 0xFF +#define SENS_SAR1_CLK_DIV_S 0 + +#define SENS_SAR_READ_STATUS1_REG (DR_REG_SENS_BASE + 0x0004) +/* SENS_SAR1_READER_STATUS : RO ;bitpos:[31:0] ;default: 32'h0 ; */ +/*description: */ +#define SENS_SAR1_READER_STATUS 0xFFFFFFFF +#define SENS_SAR1_READER_STATUS_M ((SENS_SAR1_READER_STATUS_V)<<(SENS_SAR1_READER_STATUS_S)) +#define SENS_SAR1_READER_STATUS_V 0xFFFFFFFF +#define SENS_SAR1_READER_STATUS_S 0 + +#define SENS_SAR_MEAS_WAIT1_REG (DR_REG_SENS_BASE + 0x0008) +/* SENS_SAR_AMP_WAIT2 : R/W ;bitpos:[31:16] ;default: 16'd10 ; */ +/*description: */ +#define SENS_SAR_AMP_WAIT2 0x0000FFFF +#define SENS_SAR_AMP_WAIT2_M ((SENS_SAR_AMP_WAIT2_V)<<(SENS_SAR_AMP_WAIT2_S)) +#define SENS_SAR_AMP_WAIT2_V 0xFFFF +#define SENS_SAR_AMP_WAIT2_S 16 +/* SENS_SAR_AMP_WAIT1 : R/W ;bitpos:[15:0] ;default: 16'd10 ; */ +/*description: */ +#define SENS_SAR_AMP_WAIT1 0x0000FFFF +#define SENS_SAR_AMP_WAIT1_M ((SENS_SAR_AMP_WAIT1_V)<<(SENS_SAR_AMP_WAIT1_S)) +#define SENS_SAR_AMP_WAIT1_V 0xFFFF +#define SENS_SAR_AMP_WAIT1_S 0 + +#define SENS_SAR_MEAS_WAIT2_REG (DR_REG_SENS_BASE + 0x000c) +/* SENS_SAR2_RSTB_WAIT : R/W ;bitpos:[27:20] ;default: 8'd2 ; */ +/*description: */ +#define SENS_SAR2_RSTB_WAIT 0x000000FF +#define SENS_SAR2_RSTB_WAIT_M ((SENS_SAR2_RSTB_WAIT_V)<<(SENS_SAR2_RSTB_WAIT_S)) +#define SENS_SAR2_RSTB_WAIT_V 0xFF +#define SENS_SAR2_RSTB_WAIT_S 20 +/* SENS_FORCE_XPD_SAR : R/W ;bitpos:[19:18] ;default: 2'd0 ; */ +/*description: */ +#define SENS_FORCE_XPD_SAR 0x00000003 +#define SENS_FORCE_XPD_SAR_M ((SENS_FORCE_XPD_SAR_V)<<(SENS_FORCE_XPD_SAR_S)) +#define SENS_FORCE_XPD_SAR_V 0x3 +#define SENS_FORCE_XPD_SAR_S 18 +/* SENS_FORCE_XPD_AMP : R/W ;bitpos:[17:16] ;default: 2'd0 ; */ +/*description: */ +#define SENS_FORCE_XPD_AMP 0x00000003 +#define SENS_FORCE_XPD_AMP_M ((SENS_FORCE_XPD_AMP_V)<<(SENS_FORCE_XPD_AMP_S)) +#define SENS_FORCE_XPD_AMP_V 0x3 +#define SENS_FORCE_XPD_AMP_S 16 +/* SENS_SAR_AMP_WAIT3 : R/W ;bitpos:[15:0] ;default: 16'd10 ; */ +/*description: */ +#define SENS_SAR_AMP_WAIT3 0x0000FFFF +#define SENS_SAR_AMP_WAIT3_M ((SENS_SAR_AMP_WAIT3_V)<<(SENS_SAR_AMP_WAIT3_S)) +#define SENS_SAR_AMP_WAIT3_V 0xFFFF +#define SENS_SAR_AMP_WAIT3_S 0 + +#define SENS_SAR_MEAS_CTRL_REG (DR_REG_SENS_BASE + 0x0010) +/* SENS_SAR2_XPD_WAIT : R/W ;bitpos:[31:24] ;default: 8'h7 ; */ +/*description: */ +#define SENS_SAR2_XPD_WAIT 0x000000FF +#define SENS_SAR2_XPD_WAIT_M ((SENS_SAR2_XPD_WAIT_V)<<(SENS_SAR2_XPD_WAIT_S)) +#define SENS_SAR2_XPD_WAIT_V 0xFF +#define SENS_SAR2_XPD_WAIT_S 24 +/* SENS_SAR_RSTB_FSM : R/W ;bitpos:[23:20] ;default: 4'b0000 ; */ +/*description: */ +#define SENS_SAR_RSTB_FSM 0x0000000F +#define SENS_SAR_RSTB_FSM_M ((SENS_SAR_RSTB_FSM_V)<<(SENS_SAR_RSTB_FSM_S)) +#define SENS_SAR_RSTB_FSM_V 0xF +#define SENS_SAR_RSTB_FSM_S 20 +/* SENS_XPD_SAR_FSM : R/W ;bitpos:[19:16] ;default: 4'b0111 ; */ +/*description: */ +#define SENS_XPD_SAR_FSM 0x0000000F +#define SENS_XPD_SAR_FSM_M ((SENS_XPD_SAR_FSM_V)<<(SENS_XPD_SAR_FSM_S)) +#define SENS_XPD_SAR_FSM_V 0xF +#define SENS_XPD_SAR_FSM_S 16 +/* SENS_AMP_SHORT_REF_GND_FSM : R/W ;bitpos:[15:12] ;default: 4'b0011 ; */ +/*description: */ +#define SENS_AMP_SHORT_REF_GND_FSM 0x0000000F +#define SENS_AMP_SHORT_REF_GND_FSM_M ((SENS_AMP_SHORT_REF_GND_FSM_V)<<(SENS_AMP_SHORT_REF_GND_FSM_S)) +#define SENS_AMP_SHORT_REF_GND_FSM_V 0xF +#define SENS_AMP_SHORT_REF_GND_FSM_S 12 +/* SENS_AMP_SHORT_REF_FSM : R/W ;bitpos:[11:8] ;default: 4'b0011 ; */ +/*description: */ +#define SENS_AMP_SHORT_REF_FSM 0x0000000F +#define SENS_AMP_SHORT_REF_FSM_M ((SENS_AMP_SHORT_REF_FSM_V)<<(SENS_AMP_SHORT_REF_FSM_S)) +#define SENS_AMP_SHORT_REF_FSM_V 0xF +#define SENS_AMP_SHORT_REF_FSM_S 8 +/* SENS_AMP_RST_FB_FSM : R/W ;bitpos:[7:4] ;default: 4'b1000 ; */ +/*description: */ +#define SENS_AMP_RST_FB_FSM 0x0000000F +#define SENS_AMP_RST_FB_FSM_M ((SENS_AMP_RST_FB_FSM_V)<<(SENS_AMP_RST_FB_FSM_S)) +#define SENS_AMP_RST_FB_FSM_V 0xF +#define SENS_AMP_RST_FB_FSM_S 4 +/* SENS_XPD_SAR_AMP_FSM : R/W ;bitpos:[3:0] ;default: 4'b1111 ; */ +/*description: */ +#define SENS_XPD_SAR_AMP_FSM 0x0000000F +#define SENS_XPD_SAR_AMP_FSM_M ((SENS_XPD_SAR_AMP_FSM_V)<<(SENS_XPD_SAR_AMP_FSM_S)) +#define SENS_XPD_SAR_AMP_FSM_V 0xF +#define SENS_XPD_SAR_AMP_FSM_S 0 + +#define SENS_SAR_READ_STATUS2_REG (DR_REG_SENS_BASE + 0x0014) +/* SENS_SAR2_READER_STATUS : RO ;bitpos:[31:0] ;default: 32'h0 ; */ +/*description: */ +#define SENS_SAR2_READER_STATUS 0xFFFFFFFF +#define SENS_SAR2_READER_STATUS_M ((SENS_SAR2_READER_STATUS_V)<<(SENS_SAR2_READER_STATUS_S)) +#define SENS_SAR2_READER_STATUS_V 0xFFFFFFFF +#define SENS_SAR2_READER_STATUS_S 0 + +#define SENS_ULP_CP_SLEEP_CYC0_REG (DR_REG_SENS_BASE + 0x0018) +/* SENS_SLEEP_CYCLES_S0 : R/W ;bitpos:[31:0] ;default: 32'd200 ; */ +/*description: sleep cycles for ULP-coprocessor timer*/ +#define SENS_SLEEP_CYCLES_S0 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S0_M ((SENS_SLEEP_CYCLES_S0_V)<<(SENS_SLEEP_CYCLES_S0_S)) +#define SENS_SLEEP_CYCLES_S0_V 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S0_S 0 + +#define SENS_ULP_CP_SLEEP_CYC1_REG (DR_REG_SENS_BASE + 0x001c) +/* SENS_SLEEP_CYCLES_S1 : R/W ;bitpos:[31:0] ;default: 32'd100 ; */ +/*description: */ +#define SENS_SLEEP_CYCLES_S1 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S1_M ((SENS_SLEEP_CYCLES_S1_V)<<(SENS_SLEEP_CYCLES_S1_S)) +#define SENS_SLEEP_CYCLES_S1_V 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S1_S 0 + +#define SENS_ULP_CP_SLEEP_CYC2_REG (DR_REG_SENS_BASE + 0x0020) +/* SENS_SLEEP_CYCLES_S2 : R/W ;bitpos:[31:0] ;default: 32'd50 ; */ +/*description: */ +#define SENS_SLEEP_CYCLES_S2 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S2_M ((SENS_SLEEP_CYCLES_S2_V)<<(SENS_SLEEP_CYCLES_S2_S)) +#define SENS_SLEEP_CYCLES_S2_V 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S2_S 0 + +#define SENS_ULP_CP_SLEEP_CYC3_REG (DR_REG_SENS_BASE + 0x0024) +/* SENS_SLEEP_CYCLES_S3 : R/W ;bitpos:[31:0] ;default: 32'd40 ; */ +/*description: */ +#define SENS_SLEEP_CYCLES_S3 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S3_M ((SENS_SLEEP_CYCLES_S3_V)<<(SENS_SLEEP_CYCLES_S3_S)) +#define SENS_SLEEP_CYCLES_S3_V 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S3_S 0 + +#define SENS_ULP_CP_SLEEP_CYC4_REG (DR_REG_SENS_BASE + 0x0028) +/* SENS_SLEEP_CYCLES_S4 : R/W ;bitpos:[31:0] ;default: 32'd20 ; */ +/*description: */ +#define SENS_SLEEP_CYCLES_S4 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S4_M ((SENS_SLEEP_CYCLES_S4_V)<<(SENS_SLEEP_CYCLES_S4_S)) +#define SENS_SLEEP_CYCLES_S4_V 0xFFFFFFFF +#define SENS_SLEEP_CYCLES_S4_S 0 + +#define SENS_SAR_START_FORCE_REG (DR_REG_SENS_BASE + 0x002c) +/* SENS_SAR2_PWDET_EN : R/W ;bitpos:[24] ;default: 1'b0 ; */ +/*description: N/A*/ +#define SENS_SAR2_PWDET_EN (BIT(24)) +#define SENS_SAR2_PWDET_EN_M (BIT(24)) +#define SENS_SAR2_PWDET_EN_V 0x1 +#define SENS_SAR2_PWDET_EN_S 24 +/* SENS_SAR1_STOP : R/W ;bitpos:[23] ;default: 1'b0 ; */ +/*description: stop SAR ADC1 conversion*/ +#define SENS_SAR1_STOP (BIT(23)) +#define SENS_SAR1_STOP_M (BIT(23)) +#define SENS_SAR1_STOP_V 0x1 +#define SENS_SAR1_STOP_S 23 +/* SENS_SAR2_STOP : R/W ;bitpos:[22] ;default: 1'b0 ; */ +/*description: stop SAR ADC2 conversion*/ +#define SENS_SAR2_STOP (BIT(22)) +#define SENS_SAR2_STOP_M (BIT(22)) +#define SENS_SAR2_STOP_V 0x1 +#define SENS_SAR2_STOP_S 22 +/* SENS_PC_INIT : R/W ;bitpos:[21:11] ;default: 11'b0 ; */ +/*description: initialized PC for ULP-coprocessor*/ +#define SENS_PC_INIT 0x000007FF +#define SENS_PC_INIT_M ((SENS_PC_INIT_V)<<(SENS_PC_INIT_S)) +#define SENS_PC_INIT_V 0x7FF +#define SENS_PC_INIT_S 11 +/* SENS_SARCLK_EN : R/W ;bitpos:[10] ;default: 1'b0 ; */ +/*description: */ +#define SENS_SARCLK_EN (BIT(10)) +#define SENS_SARCLK_EN_M (BIT(10)) +#define SENS_SARCLK_EN_V 0x1 +#define SENS_SARCLK_EN_S 10 +/* SENS_ULP_CP_START_TOP : R/W ;bitpos:[9] ;default: 1'b0 ; */ +/*description: Write 1 to start ULP-coprocessor only active when reg_ulp_cp_force_start_top + = 1*/ +#define SENS_ULP_CP_START_TOP (BIT(9)) +#define SENS_ULP_CP_START_TOP_M (BIT(9)) +#define SENS_ULP_CP_START_TOP_V 0x1 +#define SENS_ULP_CP_START_TOP_S 9 +/* SENS_ULP_CP_FORCE_START_TOP : R/W ;bitpos:[8] ;default: 1'b0 ; */ +/*description: 1: ULP-coprocessor is started by SW 0: ULP-coprocessor is started by timer*/ +#define SENS_ULP_CP_FORCE_START_TOP (BIT(8)) +#define SENS_ULP_CP_FORCE_START_TOP_M (BIT(8)) +#define SENS_ULP_CP_FORCE_START_TOP_V 0x1 +#define SENS_ULP_CP_FORCE_START_TOP_S 8 +/* SENS_SAR2_PWDET_CCT : R/W ;bitpos:[7:5] ;default: 3'b0 ; */ +/*description: SAR2_PWDET_CCT PA power detector capacitance tuning.*/ +#define SENS_SAR2_PWDET_CCT 0x00000007 +#define SENS_SAR2_PWDET_CCT_M ((SENS_SAR2_PWDET_CCT_V)<<(SENS_SAR2_PWDET_CCT_S)) +#define SENS_SAR2_PWDET_CCT_V 0x7 +#define SENS_SAR2_PWDET_CCT_S 5 +/* SENS_SAR2_EN_TEST : R/W ;bitpos:[4] ;default: 1'b0 ; */ +/*description: SAR2_EN_TEST only active when reg_sar2_dig_force = 0*/ +#define SENS_SAR2_EN_TEST (BIT(4)) +#define SENS_SAR2_EN_TEST_M (BIT(4)) +#define SENS_SAR2_EN_TEST_V 0x1 +#define SENS_SAR2_EN_TEST_S 4 +/* SENS_SAR2_BIT_WIDTH : R/W ;bitpos:[3:2] ;default: 2'b11 ; */ +/*description: 00: 9 bit 01: 10 bits 10: 11bits 11: 12bits*/ +#define SENS_SAR2_BIT_WIDTH 0x00000003 +#define SENS_SAR2_BIT_WIDTH_M ((SENS_SAR2_BIT_WIDTH_V)<<(SENS_SAR2_BIT_WIDTH_S)) +#define SENS_SAR2_BIT_WIDTH_V 0x3 +#define SENS_SAR2_BIT_WIDTH_S 2 +/* SENS_SAR1_BIT_WIDTH : R/W ;bitpos:[1:0] ;default: 2'b11 ; */ +/*description: 00: 9 bit 01: 10 bits 10: 11bits 11: 12bits*/ +#define SENS_SAR1_BIT_WIDTH 0x00000003 +#define SENS_SAR1_BIT_WIDTH_M ((SENS_SAR1_BIT_WIDTH_V)<<(SENS_SAR1_BIT_WIDTH_S)) +#define SENS_SAR1_BIT_WIDTH_V 0x3 +#define SENS_SAR1_BIT_WIDTH_S 0 + +#define SENS_SAR_MEM_WR_CTRL_REG (DR_REG_SENS_BASE + 0x0030) +/* SENS_RTC_MEM_WR_OFFST_CLR : WO ;bitpos:[22] ;default: 1'd0 ; */ +/*description: */ +#define SENS_RTC_MEM_WR_OFFST_CLR (BIT(22)) +#define SENS_RTC_MEM_WR_OFFST_CLR_M (BIT(22)) +#define SENS_RTC_MEM_WR_OFFST_CLR_V 0x1 +#define SENS_RTC_MEM_WR_OFFST_CLR_S 22 +/* SENS_MEM_WR_ADDR_SIZE : R/W ;bitpos:[21:11] ;default: 11'd512 ; */ +/*description: */ +#define SENS_MEM_WR_ADDR_SIZE 0x000007FF +#define SENS_MEM_WR_ADDR_SIZE_M ((SENS_MEM_WR_ADDR_SIZE_V)<<(SENS_MEM_WR_ADDR_SIZE_S)) +#define SENS_MEM_WR_ADDR_SIZE_V 0x7FF +#define SENS_MEM_WR_ADDR_SIZE_S 11 +/* SENS_MEM_WR_ADDR_INIT : R/W ;bitpos:[10:0] ;default: 11'd512 ; */ +/*description: */ +#define SENS_MEM_WR_ADDR_INIT 0x000007FF +#define SENS_MEM_WR_ADDR_INIT_M ((SENS_MEM_WR_ADDR_INIT_V)<<(SENS_MEM_WR_ADDR_INIT_S)) +#define SENS_MEM_WR_ADDR_INIT_V 0x7FF +#define SENS_MEM_WR_ADDR_INIT_S 0 + +#define SENS_SAR_ATTEN1_REG (DR_REG_SENS_BASE + 0x0034) +/* SENS_SAR1_ATTEN : R/W ;bitpos:[31:0] ;default: 32'hffffffff ; */ +/*description: 2-bit attenuation for each pad 11:1dB 10:6dB 01:3dB 00:0dB*/ +#define SENS_SAR1_ATTEN 0xFFFFFFFF +#define SENS_SAR1_ATTEN_M ((SENS_SAR1_ATTEN_V)<<(SENS_SAR1_ATTEN_S)) +#define SENS_SAR1_ATTEN_V 0xFFFFFFFF +#define SENS_SAR1_ATTEN_S 0 + +#define SENS_SAR_ATTEN2_REG (DR_REG_SENS_BASE + 0x0038) +/* SENS_SAR2_ATTEN : R/W ;bitpos:[31:0] ;default: 32'hffffffff ; */ +/*description: 2-bit attenuation for each pad 11:1dB 10:6dB 01:3dB 00:0dB*/ +#define SENS_SAR2_ATTEN 0xFFFFFFFF +#define SENS_SAR2_ATTEN_M ((SENS_SAR2_ATTEN_V)<<(SENS_SAR2_ATTEN_S)) +#define SENS_SAR2_ATTEN_V 0xFFFFFFFF +#define SENS_SAR2_ATTEN_S 0 + +#define SENS_SAR_SLAVE_ADDR1_REG (DR_REG_SENS_BASE + 0x003c) +/* SENS_MEAS_STATUS : RO ;bitpos:[29:22] ;default: 8'h0 ; */ +/*description: */ +#define SENS_MEAS_STATUS 0x000000FF +#define SENS_MEAS_STATUS_M ((SENS_MEAS_STATUS_V)<<(SENS_MEAS_STATUS_S)) +#define SENS_MEAS_STATUS_V 0xFF +#define SENS_MEAS_STATUS_S 22 +/* SENS_I2C_SLAVE_ADDR0 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR0 0x000007FF +#define SENS_I2C_SLAVE_ADDR0_M ((SENS_I2C_SLAVE_ADDR0_V)<<(SENS_I2C_SLAVE_ADDR0_S)) +#define SENS_I2C_SLAVE_ADDR0_V 0x7FF +#define SENS_I2C_SLAVE_ADDR0_S 11 +/* SENS_I2C_SLAVE_ADDR1 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR1 0x000007FF +#define SENS_I2C_SLAVE_ADDR1_M ((SENS_I2C_SLAVE_ADDR1_V)<<(SENS_I2C_SLAVE_ADDR1_S)) +#define SENS_I2C_SLAVE_ADDR1_V 0x7FF +#define SENS_I2C_SLAVE_ADDR1_S 0 + +#define SENS_SAR_SLAVE_ADDR2_REG (DR_REG_SENS_BASE + 0x0040) +/* SENS_I2C_SLAVE_ADDR2 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR2 0x000007FF +#define SENS_I2C_SLAVE_ADDR2_M ((SENS_I2C_SLAVE_ADDR2_V)<<(SENS_I2C_SLAVE_ADDR2_S)) +#define SENS_I2C_SLAVE_ADDR2_V 0x7FF +#define SENS_I2C_SLAVE_ADDR2_S 11 +/* SENS_I2C_SLAVE_ADDR3 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR3 0x000007FF +#define SENS_I2C_SLAVE_ADDR3_M ((SENS_I2C_SLAVE_ADDR3_V)<<(SENS_I2C_SLAVE_ADDR3_S)) +#define SENS_I2C_SLAVE_ADDR3_V 0x7FF +#define SENS_I2C_SLAVE_ADDR3_S 0 + +#define SENS_SAR_SLAVE_ADDR3_REG (DR_REG_SENS_BASE + 0x0044) +/* SENS_TSENS_RDY_OUT : RO ;bitpos:[30] ;default: 1'h0 ; */ +/*description: indicate temperature sensor out ready*/ +#define SENS_TSENS_RDY_OUT (BIT(30)) +#define SENS_TSENS_RDY_OUT_M (BIT(30)) +#define SENS_TSENS_RDY_OUT_V 0x1 +#define SENS_TSENS_RDY_OUT_S 30 +/* SENS_TSENS_OUT : RO ;bitpos:[29:22] ;default: 8'h0 ; */ +/*description: temperature sensor data out*/ +#define SENS_TSENS_OUT 0x000000FF +#define SENS_TSENS_OUT_M ((SENS_TSENS_OUT_V)<<(SENS_TSENS_OUT_S)) +#define SENS_TSENS_OUT_V 0xFF +#define SENS_TSENS_OUT_S 22 +/* SENS_I2C_SLAVE_ADDR4 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR4 0x000007FF +#define SENS_I2C_SLAVE_ADDR4_M ((SENS_I2C_SLAVE_ADDR4_V)<<(SENS_I2C_SLAVE_ADDR4_S)) +#define SENS_I2C_SLAVE_ADDR4_V 0x7FF +#define SENS_I2C_SLAVE_ADDR4_S 11 +/* SENS_I2C_SLAVE_ADDR5 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR5 0x000007FF +#define SENS_I2C_SLAVE_ADDR5_M ((SENS_I2C_SLAVE_ADDR5_V)<<(SENS_I2C_SLAVE_ADDR5_S)) +#define SENS_I2C_SLAVE_ADDR5_V 0x7FF +#define SENS_I2C_SLAVE_ADDR5_S 0 + +#define SENS_SAR_SLAVE_ADDR4_REG (DR_REG_SENS_BASE + 0x0048) +/* SENS_I2C_DONE : RO ;bitpos:[30] ;default: 1'h0 ; */ +/*description: indicate I2C done*/ +#define SENS_I2C_DONE (BIT(30)) +#define SENS_I2C_DONE_M (BIT(30)) +#define SENS_I2C_DONE_V 0x1 +#define SENS_I2C_DONE_S 30 +/* SENS_I2C_RDATA : RO ;bitpos:[29:22] ;default: 8'h0 ; */ +/*description: I2C read data*/ +#define SENS_I2C_RDATA 0x000000FF +#define SENS_I2C_RDATA_M ((SENS_I2C_RDATA_V)<<(SENS_I2C_RDATA_S)) +#define SENS_I2C_RDATA_V 0xFF +#define SENS_I2C_RDATA_S 22 +/* SENS_I2C_SLAVE_ADDR6 : R/W ;bitpos:[21:11] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR6 0x000007FF +#define SENS_I2C_SLAVE_ADDR6_M ((SENS_I2C_SLAVE_ADDR6_V)<<(SENS_I2C_SLAVE_ADDR6_S)) +#define SENS_I2C_SLAVE_ADDR6_V 0x7FF +#define SENS_I2C_SLAVE_ADDR6_S 11 +/* SENS_I2C_SLAVE_ADDR7 : R/W ;bitpos:[10:0] ;default: 11'h0 ; */ +/*description: */ +#define SENS_I2C_SLAVE_ADDR7 0x000007FF +#define SENS_I2C_SLAVE_ADDR7_M ((SENS_I2C_SLAVE_ADDR7_V)<<(SENS_I2C_SLAVE_ADDR7_S)) +#define SENS_I2C_SLAVE_ADDR7_V 0x7FF +#define SENS_I2C_SLAVE_ADDR7_S 0 + +#define SENS_SAR_TSENS_CTRL_REG (DR_REG_SENS_BASE + 0x004c) +/* SENS_TSENS_DUMP_OUT : R/W ;bitpos:[26] ;default: 1'b0 ; */ +/*description: temperature sensor dump out only active when reg_tsens_power_up_force = 1*/ +#define SENS_TSENS_DUMP_OUT (BIT(26)) +#define SENS_TSENS_DUMP_OUT_M (BIT(26)) +#define SENS_TSENS_DUMP_OUT_V 0x1 +#define SENS_TSENS_DUMP_OUT_S 26 +/* SENS_TSENS_POWER_UP_FORCE : R/W ;bitpos:[25] ;default: 1'b0 ; */ +/*description: 1: dump out & power up controlled by SW 0: by FSM*/ +#define SENS_TSENS_POWER_UP_FORCE (BIT(25)) +#define SENS_TSENS_POWER_UP_FORCE_M (BIT(25)) +#define SENS_TSENS_POWER_UP_FORCE_V 0x1 +#define SENS_TSENS_POWER_UP_FORCE_S 25 +/* SENS_TSENS_POWER_UP : R/W ;bitpos:[24] ;default: 1'b0 ; */ +/*description: temperature sensor power up*/ +#define SENS_TSENS_POWER_UP (BIT(24)) +#define SENS_TSENS_POWER_UP_M (BIT(24)) +#define SENS_TSENS_POWER_UP_V 0x1 +#define SENS_TSENS_POWER_UP_S 24 +/* SENS_TSENS_CLK_DIV : R/W ;bitpos:[23:16] ;default: 8'd6 ; */ +/*description: temperature sensor clock divider*/ +#define SENS_TSENS_CLK_DIV 0x000000FF +#define SENS_TSENS_CLK_DIV_M ((SENS_TSENS_CLK_DIV_V)<<(SENS_TSENS_CLK_DIV_S)) +#define SENS_TSENS_CLK_DIV_V 0xFF +#define SENS_TSENS_CLK_DIV_S 16 +/* SENS_TSENS_IN_INV : R/W ;bitpos:[15] ;default: 1'b0 ; */ +/*description: invert temperature sensor data*/ +#define SENS_TSENS_IN_INV (BIT(15)) +#define SENS_TSENS_IN_INV_M (BIT(15)) +#define SENS_TSENS_IN_INV_V 0x1 +#define SENS_TSENS_IN_INV_S 15 +/* SENS_TSENS_CLK_GATED : R/W ;bitpos:[14] ;default: 1'b1 ; */ +/*description: */ +#define SENS_TSENS_CLK_GATED (BIT(14)) +#define SENS_TSENS_CLK_GATED_M (BIT(14)) +#define SENS_TSENS_CLK_GATED_V 0x1 +#define SENS_TSENS_CLK_GATED_S 14 +/* SENS_TSENS_CLK_INV : R/W ;bitpos:[13] ;default: 1'b1 ; */ +/*description: */ +#define SENS_TSENS_CLK_INV (BIT(13)) +#define SENS_TSENS_CLK_INV_M (BIT(13)) +#define SENS_TSENS_CLK_INV_V 0x1 +#define SENS_TSENS_CLK_INV_S 13 +/* SENS_TSENS_XPD_FORCE : R/W ;bitpos:[12] ;default: 1'b0 ; */ +/*description: */ +#define SENS_TSENS_XPD_FORCE (BIT(12)) +#define SENS_TSENS_XPD_FORCE_M (BIT(12)) +#define SENS_TSENS_XPD_FORCE_V 0x1 +#define SENS_TSENS_XPD_FORCE_S 12 +/* SENS_TSENS_XPD_WAIT : R/W ;bitpos:[11:0] ;default: 12'h2 ; */ +/*description: */ +#define SENS_TSENS_XPD_WAIT 0x00000FFF +#define SENS_TSENS_XPD_WAIT_M ((SENS_TSENS_XPD_WAIT_V)<<(SENS_TSENS_XPD_WAIT_S)) +#define SENS_TSENS_XPD_WAIT_V 0xFFF +#define SENS_TSENS_XPD_WAIT_S 0 + +#define SENS_SAR_I2C_CTRL_REG (DR_REG_SENS_BASE + 0x0050) +/* SENS_SAR_I2C_START_FORCE : R/W ;bitpos:[29] ;default: 1'b0 ; */ +/*description: 1: I2C started by SW 0: I2C started by FSM*/ +#define SENS_SAR_I2C_START_FORCE (BIT(29)) +#define SENS_SAR_I2C_START_FORCE_M (BIT(29)) +#define SENS_SAR_I2C_START_FORCE_V 0x1 +#define SENS_SAR_I2C_START_FORCE_S 29 +/* SENS_SAR_I2C_START : R/W ;bitpos:[28] ;default: 1'b0 ; */ +/*description: start I2C only active when reg_sar_i2c_start_force = 1*/ +#define SENS_SAR_I2C_START (BIT(28)) +#define SENS_SAR_I2C_START_M (BIT(28)) +#define SENS_SAR_I2C_START_V 0x1 +#define SENS_SAR_I2C_START_S 28 +/* SENS_SAR_I2C_CTRL : R/W ;bitpos:[27:0] ;default: 28'b0 ; */ +/*description: I2C control data only active when reg_sar_i2c_start_force = 1*/ +#define SENS_SAR_I2C_CTRL 0x0FFFFFFF +#define SENS_SAR_I2C_CTRL_M ((SENS_SAR_I2C_CTRL_V)<<(SENS_SAR_I2C_CTRL_S)) +#define SENS_SAR_I2C_CTRL_V 0xFFFFFFF +#define SENS_SAR_I2C_CTRL_S 0 + +#define SENS_SAR_MEAS_START1_REG (DR_REG_SENS_BASE + 0x0054) +/* SENS_SAR1_EN_PAD_FORCE : R/W ;bitpos:[31] ;default: 1'b0 ; */ +/*description: 1: SAR ADC1 pad enable bitmap is controlled by SW 0: SAR ADC1 + pad enable bitmap is controlled by ULP-coprocessor*/ +#define SENS_SAR1_EN_PAD_FORCE (BIT(31)) +#define SENS_SAR1_EN_PAD_FORCE_M (BIT(31)) +#define SENS_SAR1_EN_PAD_FORCE_V 0x1 +#define SENS_SAR1_EN_PAD_FORCE_S 31 +/* SENS_SAR1_EN_PAD : R/W ;bitpos:[30:19] ;default: 12'b0 ; */ +/*description: SAR ADC1 pad enable bitmap only active when reg_sar1_en_pad_force = 1*/ +#define SENS_SAR1_EN_PAD 0x00000FFF +#define SENS_SAR1_EN_PAD_M ((SENS_SAR1_EN_PAD_V)<<(SENS_SAR1_EN_PAD_S)) +#define SENS_SAR1_EN_PAD_V 0xFFF +#define SENS_SAR1_EN_PAD_S 19 +/* SENS_MEAS1_START_FORCE : R/W ;bitpos:[18] ;default: 1'b0 ; */ +/*description: 1: SAR ADC1 controller (in RTC) is started by SW 0: SAR ADC1 + controller is started by ULP-coprocessor*/ +#define SENS_MEAS1_START_FORCE (BIT(18)) +#define SENS_MEAS1_START_FORCE_M (BIT(18)) +#define SENS_MEAS1_START_FORCE_V 0x1 +#define SENS_MEAS1_START_FORCE_S 18 +/* SENS_MEAS1_START_SAR : R/W ;bitpos:[17] ;default: 1'b0 ; */ +/*description: SAR ADC1 controller (in RTC) starts conversion only active when + reg_meas1_start_force = 1*/ +#define SENS_MEAS1_START_SAR (BIT(17)) +#define SENS_MEAS1_START_SAR_M (BIT(17)) +#define SENS_MEAS1_START_SAR_V 0x1 +#define SENS_MEAS1_START_SAR_S 17 +/* SENS_MEAS1_DONE_SAR : RO ;bitpos:[16] ;default: 1'b0 ; */ +/*description: SAR ADC1 conversion done indication*/ +#define SENS_MEAS1_DONE_SAR (BIT(16)) +#define SENS_MEAS1_DONE_SAR_M (BIT(16)) +#define SENS_MEAS1_DONE_SAR_V 0x1 +#define SENS_MEAS1_DONE_SAR_S 16 +/* SENS_MEAS1_DATA_SAR : RO ;bitpos:[15:0] ;default: 16'b0 ; */ +/*description: SAR ADC1 data*/ +#define SENS_MEAS1_DATA_SAR 0x0000FFFF +#define SENS_MEAS1_DATA_SAR_M ((SENS_MEAS1_DATA_SAR_V)<<(SENS_MEAS1_DATA_SAR_S)) +#define SENS_MEAS1_DATA_SAR_V 0xFFFF +#define SENS_MEAS1_DATA_SAR_S 0 + +#define SENS_SAR_TOUCH_CTRL1_REG (DR_REG_SENS_BASE + 0x0058) +/* SENS_HALL_PHASE_FORCE : R/W ;bitpos:[27] ;default: 1'b0 ; */ +/*description: 1: HALL PHASE is controlled by SW 0: HALL PHASE is controlled + by FSM in ULP-coprocessor*/ +#define SENS_HALL_PHASE_FORCE (BIT(27)) +#define SENS_HALL_PHASE_FORCE_M (BIT(27)) +#define SENS_HALL_PHASE_FORCE_V 0x1 +#define SENS_HALL_PHASE_FORCE_S 27 +/* SENS_XPD_HALL_FORCE : R/W ;bitpos:[26] ;default: 1'b0 ; */ +/*description: 1: XPD HALL is controlled by SW. 0: XPD HALL is controlled by + FSM in ULP-coprocessor*/ +#define SENS_XPD_HALL_FORCE (BIT(26)) +#define SENS_XPD_HALL_FORCE_M (BIT(26)) +#define SENS_XPD_HALL_FORCE_V 0x1 +#define SENS_XPD_HALL_FORCE_S 26 +/* SENS_TOUCH_OUT_1EN : R/W ;bitpos:[25] ;default: 1'b1 ; */ +/*description: 1: wakeup interrupt is generated if SET1 is "touched" 0: + wakeup interrupt is generated only if SET1 & SET2 is both "touched"*/ +#define SENS_TOUCH_OUT_1EN (BIT(25)) +#define SENS_TOUCH_OUT_1EN_M (BIT(25)) +#define SENS_TOUCH_OUT_1EN_V 0x1 +#define SENS_TOUCH_OUT_1EN_S 25 +/* SENS_TOUCH_OUT_SEL : R/W ;bitpos:[24] ;default: 1'b0 ; */ +/*description: 1: when the counter is greater then the threshold the touch + pad is considered as "touched" 0: when the counter is less than the threshold the touch pad is considered as "touched"*/ +#define SENS_TOUCH_OUT_SEL (BIT(24)) +#define SENS_TOUCH_OUT_SEL_M (BIT(24)) +#define SENS_TOUCH_OUT_SEL_V 0x1 +#define SENS_TOUCH_OUT_SEL_S 24 +/* SENS_TOUCH_XPD_WAIT : R/W ;bitpos:[23:16] ;default: 8'h4 ; */ +/*description: the waiting cycles (in 8MHz) between TOUCH_START and TOUCH_XPD*/ +#define SENS_TOUCH_XPD_WAIT 0x000000FF +#define SENS_TOUCH_XPD_WAIT_M ((SENS_TOUCH_XPD_WAIT_V)<<(SENS_TOUCH_XPD_WAIT_S)) +#define SENS_TOUCH_XPD_WAIT_V 0xFF +#define SENS_TOUCH_XPD_WAIT_S 16 +/* SENS_TOUCH_MEAS_DELAY : R/W ;bitpos:[15:0] ;default: 16'h1000 ; */ +/*description: the meas length (in 8MHz)*/ +#define SENS_TOUCH_MEAS_DELAY 0x0000FFFF +#define SENS_TOUCH_MEAS_DELAY_M ((SENS_TOUCH_MEAS_DELAY_V)<<(SENS_TOUCH_MEAS_DELAY_S)) +#define SENS_TOUCH_MEAS_DELAY_V 0xFFFF +#define SENS_TOUCH_MEAS_DELAY_S 0 + +#define SENS_SAR_TOUCH_THRES1_REG (DR_REG_SENS_BASE + 0x005c) +/* SENS_TOUCH_OUT_TH0 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 0*/ +#define SENS_TOUCH_OUT_TH0 0x0000FFFF +#define SENS_TOUCH_OUT_TH0_M ((SENS_TOUCH_OUT_TH0_V)<<(SENS_TOUCH_OUT_TH0_S)) +#define SENS_TOUCH_OUT_TH0_V 0xFFFF +#define SENS_TOUCH_OUT_TH0_S 16 +/* SENS_TOUCH_OUT_TH1 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 1*/ +#define SENS_TOUCH_OUT_TH1 0x0000FFFF +#define SENS_TOUCH_OUT_TH1_M ((SENS_TOUCH_OUT_TH1_V)<<(SENS_TOUCH_OUT_TH1_S)) +#define SENS_TOUCH_OUT_TH1_V 0xFFFF +#define SENS_TOUCH_OUT_TH1_S 0 + +#define SENS_SAR_TOUCH_THRES2_REG (DR_REG_SENS_BASE + 0x0060) +/* SENS_TOUCH_OUT_TH2 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 2*/ +#define SENS_TOUCH_OUT_TH2 0x0000FFFF +#define SENS_TOUCH_OUT_TH2_M ((SENS_TOUCH_OUT_TH2_V)<<(SENS_TOUCH_OUT_TH2_S)) +#define SENS_TOUCH_OUT_TH2_V 0xFFFF +#define SENS_TOUCH_OUT_TH2_S 16 +/* SENS_TOUCH_OUT_TH3 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 3*/ +#define SENS_TOUCH_OUT_TH3 0x0000FFFF +#define SENS_TOUCH_OUT_TH3_M ((SENS_TOUCH_OUT_TH3_V)<<(SENS_TOUCH_OUT_TH3_S)) +#define SENS_TOUCH_OUT_TH3_V 0xFFFF +#define SENS_TOUCH_OUT_TH3_S 0 + +#define SENS_SAR_TOUCH_THRES3_REG (DR_REG_SENS_BASE + 0x0064) +/* SENS_TOUCH_OUT_TH4 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 4*/ +#define SENS_TOUCH_OUT_TH4 0x0000FFFF +#define SENS_TOUCH_OUT_TH4_M ((SENS_TOUCH_OUT_TH4_V)<<(SENS_TOUCH_OUT_TH4_S)) +#define SENS_TOUCH_OUT_TH4_V 0xFFFF +#define SENS_TOUCH_OUT_TH4_S 16 +/* SENS_TOUCH_OUT_TH5 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 5*/ +#define SENS_TOUCH_OUT_TH5 0x0000FFFF +#define SENS_TOUCH_OUT_TH5_M ((SENS_TOUCH_OUT_TH5_V)<<(SENS_TOUCH_OUT_TH5_S)) +#define SENS_TOUCH_OUT_TH5_V 0xFFFF +#define SENS_TOUCH_OUT_TH5_S 0 + +#define SENS_SAR_TOUCH_THRES4_REG (DR_REG_SENS_BASE + 0x0068) +/* SENS_TOUCH_OUT_TH6 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 6*/ +#define SENS_TOUCH_OUT_TH6 0x0000FFFF +#define SENS_TOUCH_OUT_TH6_M ((SENS_TOUCH_OUT_TH6_V)<<(SENS_TOUCH_OUT_TH6_S)) +#define SENS_TOUCH_OUT_TH6_V 0xFFFF +#define SENS_TOUCH_OUT_TH6_S 16 +/* SENS_TOUCH_OUT_TH7 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 7*/ +#define SENS_TOUCH_OUT_TH7 0x0000FFFF +#define SENS_TOUCH_OUT_TH7_M ((SENS_TOUCH_OUT_TH7_V)<<(SENS_TOUCH_OUT_TH7_S)) +#define SENS_TOUCH_OUT_TH7_V 0xFFFF +#define SENS_TOUCH_OUT_TH7_S 0 + +#define SENS_SAR_TOUCH_THRES5_REG (DR_REG_SENS_BASE + 0x006c) +/* SENS_TOUCH_OUT_TH8 : R/W ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 8*/ +#define SENS_TOUCH_OUT_TH8 0x0000FFFF +#define SENS_TOUCH_OUT_TH8_M ((SENS_TOUCH_OUT_TH8_V)<<(SENS_TOUCH_OUT_TH8_S)) +#define SENS_TOUCH_OUT_TH8_V 0xFFFF +#define SENS_TOUCH_OUT_TH8_S 16 +/* SENS_TOUCH_OUT_TH9 : R/W ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the threshold for touch pad 9*/ +#define SENS_TOUCH_OUT_TH9 0x0000FFFF +#define SENS_TOUCH_OUT_TH9_M ((SENS_TOUCH_OUT_TH9_V)<<(SENS_TOUCH_OUT_TH9_S)) +#define SENS_TOUCH_OUT_TH9_V 0xFFFF +#define SENS_TOUCH_OUT_TH9_S 0 + +#define SENS_SAR_TOUCH_OUT1_REG (DR_REG_SENS_BASE + 0x0070) +/* SENS_TOUCH_MEAS_OUT0 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the counter for touch pad 0*/ +#define SENS_TOUCH_MEAS_OUT0 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT0_M ((SENS_TOUCH_MEAS_OUT0_V)<<(SENS_TOUCH_MEAS_OUT0_S)) +#define SENS_TOUCH_MEAS_OUT0_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT0_S 16 +/* SENS_TOUCH_MEAS_OUT1 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the counter for touch pad 1*/ +#define SENS_TOUCH_MEAS_OUT1 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT1_M ((SENS_TOUCH_MEAS_OUT1_V)<<(SENS_TOUCH_MEAS_OUT1_S)) +#define SENS_TOUCH_MEAS_OUT1_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT1_S 0 + +#define SENS_SAR_TOUCH_OUT2_REG (DR_REG_SENS_BASE + 0x0074) +/* SENS_TOUCH_MEAS_OUT2 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the counter for touch pad 2*/ +#define SENS_TOUCH_MEAS_OUT2 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT2_M ((SENS_TOUCH_MEAS_OUT2_V)<<(SENS_TOUCH_MEAS_OUT2_S)) +#define SENS_TOUCH_MEAS_OUT2_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT2_S 16 +/* SENS_TOUCH_MEAS_OUT3 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the counter for touch pad 3*/ +#define SENS_TOUCH_MEAS_OUT3 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT3_M ((SENS_TOUCH_MEAS_OUT3_V)<<(SENS_TOUCH_MEAS_OUT3_S)) +#define SENS_TOUCH_MEAS_OUT3_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT3_S 0 + +#define SENS_SAR_TOUCH_OUT3_REG (DR_REG_SENS_BASE + 0x0078) +/* SENS_TOUCH_MEAS_OUT4 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the counter for touch pad 4*/ +#define SENS_TOUCH_MEAS_OUT4 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT4_M ((SENS_TOUCH_MEAS_OUT4_V)<<(SENS_TOUCH_MEAS_OUT4_S)) +#define SENS_TOUCH_MEAS_OUT4_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT4_S 16 +/* SENS_TOUCH_MEAS_OUT5 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the counter for touch pad 5*/ +#define SENS_TOUCH_MEAS_OUT5 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT5_M ((SENS_TOUCH_MEAS_OUT5_V)<<(SENS_TOUCH_MEAS_OUT5_S)) +#define SENS_TOUCH_MEAS_OUT5_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT5_S 0 + +#define SENS_SAR_TOUCH_OUT4_REG (DR_REG_SENS_BASE + 0x007c) +/* SENS_TOUCH_MEAS_OUT6 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the counter for touch pad 6*/ +#define SENS_TOUCH_MEAS_OUT6 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT6_M ((SENS_TOUCH_MEAS_OUT6_V)<<(SENS_TOUCH_MEAS_OUT6_S)) +#define SENS_TOUCH_MEAS_OUT6_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT6_S 16 +/* SENS_TOUCH_MEAS_OUT7 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the counter for touch pad 7*/ +#define SENS_TOUCH_MEAS_OUT7 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT7_M ((SENS_TOUCH_MEAS_OUT7_V)<<(SENS_TOUCH_MEAS_OUT7_S)) +#define SENS_TOUCH_MEAS_OUT7_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT7_S 0 + +#define SENS_SAR_TOUCH_OUT5_REG (DR_REG_SENS_BASE + 0x0080) +/* SENS_TOUCH_MEAS_OUT8 : RO ;bitpos:[31:16] ;default: 16'h0 ; */ +/*description: the counter for touch pad 8*/ +#define SENS_TOUCH_MEAS_OUT8 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT8_M ((SENS_TOUCH_MEAS_OUT8_V)<<(SENS_TOUCH_MEAS_OUT8_S)) +#define SENS_TOUCH_MEAS_OUT8_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT8_S 16 +/* SENS_TOUCH_MEAS_OUT9 : RO ;bitpos:[15:0] ;default: 16'h0 ; */ +/*description: the counter for touch pad 9*/ +#define SENS_TOUCH_MEAS_OUT9 0x0000FFFF +#define SENS_TOUCH_MEAS_OUT9_M ((SENS_TOUCH_MEAS_OUT9_V)<<(SENS_TOUCH_MEAS_OUT9_S)) +#define SENS_TOUCH_MEAS_OUT9_V 0xFFFF +#define SENS_TOUCH_MEAS_OUT9_S 0 + +#define SENS_SAR_TOUCH_CTRL2_REG (DR_REG_SENS_BASE + 0x0084) +/* SENS_TOUCH_MEAS_EN_CLR : WO ;bitpos:[30] ;default: 1'h0 ; */ +/*description: to clear reg_touch_meas_en*/ +#define SENS_TOUCH_MEAS_EN_CLR (BIT(30)) +#define SENS_TOUCH_MEAS_EN_CLR_M (BIT(30)) +#define SENS_TOUCH_MEAS_EN_CLR_V 0x1 +#define SENS_TOUCH_MEAS_EN_CLR_S 30 +/* SENS_TOUCH_SLEEP_CYCLES : R/W ;bitpos:[29:14] ;default: 16'h100 ; */ +/*description: sleep cycles for timer*/ +#define SENS_TOUCH_SLEEP_CYCLES 0x0000FFFF +#define SENS_TOUCH_SLEEP_CYCLES_M ((SENS_TOUCH_SLEEP_CYCLES_V)<<(SENS_TOUCH_SLEEP_CYCLES_S)) +#define SENS_TOUCH_SLEEP_CYCLES_V 0xFFFF +#define SENS_TOUCH_SLEEP_CYCLES_S 14 +/* SENS_TOUCH_START_FORCE : R/W ;bitpos:[13] ;default: 1'h0 ; */ +/*description: 1: to start touch fsm by SW 0: to start touch fsm by timer*/ +#define SENS_TOUCH_START_FORCE (BIT(13)) +#define SENS_TOUCH_START_FORCE_M (BIT(13)) +#define SENS_TOUCH_START_FORCE_V 0x1 +#define SENS_TOUCH_START_FORCE_S 13 +/* SENS_TOUCH_START_EN : R/W ;bitpos:[12] ;default: 1'h0 ; */ +/*description: 1: start touch fsm valid when reg_touch_start_force is set*/ +#define SENS_TOUCH_START_EN (BIT(12)) +#define SENS_TOUCH_START_EN_M (BIT(12)) +#define SENS_TOUCH_START_EN_V 0x1 +#define SENS_TOUCH_START_EN_S 12 +/* SENS_TOUCH_START_FSM_EN : R/W ;bitpos:[11] ;default: 1'h1 ; */ +/*description: 1: TOUCH_START & TOUCH_XPD is controlled by touch fsm 0: TOUCH_START + & TOUCH_XPD is controlled by registers*/ +#define SENS_TOUCH_START_FSM_EN (BIT(11)) +#define SENS_TOUCH_START_FSM_EN_M (BIT(11)) +#define SENS_TOUCH_START_FSM_EN_V 0x1 +#define SENS_TOUCH_START_FSM_EN_S 11 +/* SENS_TOUCH_MEAS_DONE : RO ;bitpos:[10] ;default: 1'h0 ; */ +/*description: fsm set 1 to indicate touch touch meas is done*/ +#define SENS_TOUCH_MEAS_DONE (BIT(10)) +#define SENS_TOUCH_MEAS_DONE_M (BIT(10)) +#define SENS_TOUCH_MEAS_DONE_V 0x1 +#define SENS_TOUCH_MEAS_DONE_S 10 +/* SENS_TOUCH_MEAS_EN : RO ;bitpos:[9:0] ;default: 10'h0 ; */ +/*description: 10-bit register to indicate which pads are "touched"*/ +#define SENS_TOUCH_MEAS_EN 0x000003FF +#define SENS_TOUCH_MEAS_EN_M ((SENS_TOUCH_MEAS_EN_V)<<(SENS_TOUCH_MEAS_EN_S)) +#define SENS_TOUCH_MEAS_EN_V 0x3FF +#define SENS_TOUCH_MEAS_EN_S 0 + +#define SENS_SAR_TOUCH_ENABLE_REG (DR_REG_SENS_BASE + 0x008c) +/* SENS_TOUCH_PAD_OUTEN1 : R/W ;bitpos:[29:20] ;default: 10'h3ff ; */ +/*description: Bitmap defining SET1 for generating wakeup interrupt. SET1 is + "touched" only if at least one of touch pad in SET1 is "touched".*/ +#define SENS_TOUCH_PAD_OUTEN1 0x000003FF +#define SENS_TOUCH_PAD_OUTEN1_M ((SENS_TOUCH_PAD_OUTEN1_V)<<(SENS_TOUCH_PAD_OUTEN1_S)) +#define SENS_TOUCH_PAD_OUTEN1_V 0x3FF +#define SENS_TOUCH_PAD_OUTEN1_S 20 +/* SENS_TOUCH_PAD_OUTEN2 : R/W ;bitpos:[19:10] ;default: 10'h3ff ; */ +/*description: Bitmap defining SET2 for generating wakeup interrupt. SET2 is + "touched" only if at least one of touch pad in SET2 is "touched".*/ +#define SENS_TOUCH_PAD_OUTEN2 0x000003FF +#define SENS_TOUCH_PAD_OUTEN2_M ((SENS_TOUCH_PAD_OUTEN2_V)<<(SENS_TOUCH_PAD_OUTEN2_S)) +#define SENS_TOUCH_PAD_OUTEN2_V 0x3FF +#define SENS_TOUCH_PAD_OUTEN2_S 10 +/* SENS_TOUCH_PAD_WORKEN : R/W ;bitpos:[9:0] ;default: 10'h3ff ; */ +/*description: Bitmap defining the working set during the measurement.*/ +#define SENS_TOUCH_PAD_WORKEN 0x000003FF +#define SENS_TOUCH_PAD_WORKEN_M ((SENS_TOUCH_PAD_WORKEN_V)<<(SENS_TOUCH_PAD_WORKEN_S)) +#define SENS_TOUCH_PAD_WORKEN_V 0x3FF +#define SENS_TOUCH_PAD_WORKEN_S 0 + +#define SENS_SAR_READ_CTRL2_REG (DR_REG_SENS_BASE + 0x0090) +/* SENS_SAR2_DATA_INV : R/W ;bitpos:[29] ;default: 1'b0 ; */ +/*description: Invert SAR ADC2 data*/ +#define SENS_SAR2_DATA_INV (BIT(29)) +#define SENS_SAR2_DATA_INV_M (BIT(29)) +#define SENS_SAR2_DATA_INV_V 0x1 +#define SENS_SAR2_DATA_INV_S 29 +/* SENS_SAR2_DIG_FORCE : R/W ;bitpos:[28] ;default: 1'b0 ; */ +/*description: 1: SAR ADC2 controlled by DIG ADC2 CTRL or PWDET CTRL 0: SAR + ADC2 controlled by RTC ADC2 CTRL*/ +#define SENS_SAR2_DIG_FORCE (BIT(28)) +#define SENS_SAR2_DIG_FORCE_M (BIT(28)) +#define SENS_SAR2_DIG_FORCE_V 0x1 +#define SENS_SAR2_DIG_FORCE_S 28 +/* SENS_SAR2_PWDET_FORCE : R/W ;bitpos:[27] ;default: 1'b0 ; */ +/*description: */ +#define SENS_SAR2_PWDET_FORCE (BIT(27)) +#define SENS_SAR2_PWDET_FORCE_M (BIT(27)) +#define SENS_SAR2_PWDET_FORCE_V 0x1 +#define SENS_SAR2_PWDET_FORCE_S 27 +/* SENS_SAR2_SAMPLE_NUM : R/W ;bitpos:[26:19] ;default: 8'd0 ; */ +/*description: */ +#define SENS_SAR2_SAMPLE_NUM 0x000000FF +#define SENS_SAR2_SAMPLE_NUM_M ((SENS_SAR2_SAMPLE_NUM_V)<<(SENS_SAR2_SAMPLE_NUM_S)) +#define SENS_SAR2_SAMPLE_NUM_V 0xFF +#define SENS_SAR2_SAMPLE_NUM_S 19 +/* SENS_SAR2_CLK_GATED : R/W ;bitpos:[18] ;default: 1'b1 ; */ +/*description: */ +#define SENS_SAR2_CLK_GATED (BIT(18)) +#define SENS_SAR2_CLK_GATED_M (BIT(18)) +#define SENS_SAR2_CLK_GATED_V 0x1 +#define SENS_SAR2_CLK_GATED_S 18 +/* SENS_SAR2_SAMPLE_BIT : R/W ;bitpos:[17:16] ;default: 2'd3 ; */ +/*description: 00: for 9-bit width 01: for 10-bit width 10: for 11-bit width + 11: for 12-bit width*/ +#define SENS_SAR2_SAMPLE_BIT 0x00000003 +#define SENS_SAR2_SAMPLE_BIT_M ((SENS_SAR2_SAMPLE_BIT_V)<<(SENS_SAR2_SAMPLE_BIT_S)) +#define SENS_SAR2_SAMPLE_BIT_V 0x3 +#define SENS_SAR2_SAMPLE_BIT_S 16 +/* SENS_SAR2_SAMPLE_CYCLE : R/W ;bitpos:[15:8] ;default: 8'd9 ; */ +/*description: sample cycles for SAR ADC2*/ +#define SENS_SAR2_SAMPLE_CYCLE 0x000000FF +#define SENS_SAR2_SAMPLE_CYCLE_M ((SENS_SAR2_SAMPLE_CYCLE_V)<<(SENS_SAR2_SAMPLE_CYCLE_S)) +#define SENS_SAR2_SAMPLE_CYCLE_V 0xFF +#define SENS_SAR2_SAMPLE_CYCLE_S 8 +/* SENS_SAR2_CLK_DIV : R/W ;bitpos:[7:0] ;default: 8'd2 ; */ +/*description: clock divider*/ +#define SENS_SAR2_CLK_DIV 0x000000FF +#define SENS_SAR2_CLK_DIV_M ((SENS_SAR2_CLK_DIV_V)<<(SENS_SAR2_CLK_DIV_S)) +#define SENS_SAR2_CLK_DIV_V 0xFF +#define SENS_SAR2_CLK_DIV_S 0 + +#define SENS_SAR_MEAS_START2_REG (DR_REG_SENS_BASE + 0x0094) +/* SENS_SAR2_EN_PAD_FORCE : R/W ;bitpos:[31] ;default: 1'b0 ; */ +/*description: 1: SAR ADC2 pad enable bitmap is controlled by SW 0: SAR ADC2 + pad enable bitmap is controlled by ULP-coprocessor*/ +#define SENS_SAR2_EN_PAD_FORCE (BIT(31)) +#define SENS_SAR2_EN_PAD_FORCE_M (BIT(31)) +#define SENS_SAR2_EN_PAD_FORCE_V 0x1 +#define SENS_SAR2_EN_PAD_FORCE_S 31 +/* SENS_SAR2_EN_PAD : R/W ;bitpos:[30:19] ;default: 12'b0 ; */ +/*description: SAR ADC2 pad enable bitmap only active when reg_sar2_en_pad_force = 1*/ +#define SENS_SAR2_EN_PAD 0x00000FFF +#define SENS_SAR2_EN_PAD_M ((SENS_SAR2_EN_PAD_V)<<(SENS_SAR2_EN_PAD_S)) +#define SENS_SAR2_EN_PAD_V 0xFFF +#define SENS_SAR2_EN_PAD_S 19 +/* SENS_MEAS2_START_FORCE : R/W ;bitpos:[18] ;default: 1'b0 ; */ +/*description: 1: SAR ADC2 controller (in RTC) is started by SW 0: SAR ADC2 + controller is started by ULP-coprocessor*/ +#define SENS_MEAS2_START_FORCE (BIT(18)) +#define SENS_MEAS2_START_FORCE_M (BIT(18)) +#define SENS_MEAS2_START_FORCE_V 0x1 +#define SENS_MEAS2_START_FORCE_S 18 +/* SENS_MEAS2_START_SAR : R/W ;bitpos:[17] ;default: 1'b0 ; */ +/*description: SAR ADC2 controller (in RTC) starts conversion only active when + reg_meas2_start_force = 1*/ +#define SENS_MEAS2_START_SAR (BIT(17)) +#define SENS_MEAS2_START_SAR_M (BIT(17)) +#define SENS_MEAS2_START_SAR_V 0x1 +#define SENS_MEAS2_START_SAR_S 17 +/* SENS_MEAS2_DONE_SAR : RO ;bitpos:[16] ;default: 1'b0 ; */ +/*description: SAR ADC2 conversion done indication*/ +#define SENS_MEAS2_DONE_SAR (BIT(16)) +#define SENS_MEAS2_DONE_SAR_M (BIT(16)) +#define SENS_MEAS2_DONE_SAR_V 0x1 +#define SENS_MEAS2_DONE_SAR_S 16 +/* SENS_MEAS2_DATA_SAR : RO ;bitpos:[15:0] ;default: 16'b0 ; */ +/*description: SAR ADC2 data*/ +#define SENS_MEAS2_DATA_SAR 0x0000FFFF +#define SENS_MEAS2_DATA_SAR_M ((SENS_MEAS2_DATA_SAR_V)<<(SENS_MEAS2_DATA_SAR_S)) +#define SENS_MEAS2_DATA_SAR_V 0xFFFF +#define SENS_MEAS2_DATA_SAR_S 0 + +#define SENS_SAR_DAC_CTRL1_REG (DR_REG_SENS_BASE + 0x0098) +/* SENS_DAC_CLK_INV : R/W ;bitpos:[25] ;default: 1'b0 ; */ +/*description: 1: invert PDAC_CLK*/ +#define SENS_DAC_CLK_INV (BIT(25)) +#define SENS_DAC_CLK_INV_M (BIT(25)) +#define SENS_DAC_CLK_INV_V 0x1 +#define SENS_DAC_CLK_INV_S 25 +/* SENS_DAC_CLK_FORCE_HIGH : R/W ;bitpos:[24] ;default: 1'b0 ; */ +/*description: 1: force PDAC_CLK to high*/ +#define SENS_DAC_CLK_FORCE_HIGH (BIT(24)) +#define SENS_DAC_CLK_FORCE_HIGH_M (BIT(24)) +#define SENS_DAC_CLK_FORCE_HIGH_V 0x1 +#define SENS_DAC_CLK_FORCE_HIGH_S 24 +/* SENS_DAC_CLK_FORCE_LOW : R/W ;bitpos:[23] ;default: 1'b0 ; */ +/*description: 1: force PDAC_CLK to low*/ +#define SENS_DAC_CLK_FORCE_LOW (BIT(23)) +#define SENS_DAC_CLK_FORCE_LOW_M (BIT(23)) +#define SENS_DAC_CLK_FORCE_LOW_V 0x1 +#define SENS_DAC_CLK_FORCE_LOW_S 23 +/* SENS_DAC_DIG_FORCE : R/W ;bitpos:[22] ;default: 1'b0 ; */ +/*description: 1: DAC1 & DAC2 use DMA 0: DAC1 & DAC2 do not use DMA*/ +#define SENS_DAC_DIG_FORCE (BIT(22)) +#define SENS_DAC_DIG_FORCE_M (BIT(22)) +#define SENS_DAC_DIG_FORCE_V 0x1 +#define SENS_DAC_DIG_FORCE_S 22 +/* SENS_DEBUG_BIT_SEL : R/W ;bitpos:[21:17] ;default: 5'b0 ; */ +/*description: */ +#define SENS_DEBUG_BIT_SEL 0x0000001F +#define SENS_DEBUG_BIT_SEL_M ((SENS_DEBUG_BIT_SEL_V)<<(SENS_DEBUG_BIT_SEL_S)) +#define SENS_DEBUG_BIT_SEL_V 0x1F +#define SENS_DEBUG_BIT_SEL_S 17 +/* SENS_SW_TONE_EN : R/W ;bitpos:[16] ;default: 1'b0 ; */ +/*description: 1: enable CW generator 0: disable CW generator*/ +#define SENS_SW_TONE_EN (BIT(16)) +#define SENS_SW_TONE_EN_M (BIT(16)) +#define SENS_SW_TONE_EN_V 0x1 +#define SENS_SW_TONE_EN_S 16 +/* SENS_SW_FSTEP : R/W ;bitpos:[15:0] ;default: 16'b0 ; */ +/*description: frequency step for CW generator can be used to adjust the frequency*/ +#define SENS_SW_FSTEP 0x0000FFFF +#define SENS_SW_FSTEP_M ((SENS_SW_FSTEP_V)<<(SENS_SW_FSTEP_S)) +#define SENS_SW_FSTEP_V 0xFFFF +#define SENS_SW_FSTEP_S 0 + +#define SENS_SAR_DAC_CTRL2_REG (DR_REG_SENS_BASE + 0x009c) +/* SENS_DAC_CW_EN2 : R/W ;bitpos:[25] ;default: 1'b1 ; */ +/*description: 1: to select CW generator as source to PDAC2_DAC[7:0] 0: to + select register reg_pdac2_dac[7:0] as source to PDAC2_DAC[7:0]*/ +#define SENS_DAC_CW_EN2 (BIT(25)) +#define SENS_DAC_CW_EN2_M (BIT(25)) +#define SENS_DAC_CW_EN2_V 0x1 +#define SENS_DAC_CW_EN2_S 25 +/* SENS_DAC_CW_EN1 : R/W ;bitpos:[24] ;default: 1'b1 ; */ +/*description: 1: to select CW generator as source to PDAC1_DAC[7:0] 0: to + select register reg_pdac1_dac[7:0] as source to PDAC1_DAC[7:0]*/ +#define SENS_DAC_CW_EN1 (BIT(24)) +#define SENS_DAC_CW_EN1_M (BIT(24)) +#define SENS_DAC_CW_EN1_V 0x1 +#define SENS_DAC_CW_EN1_S 24 +/* SENS_DAC_INV2 : R/W ;bitpos:[23:22] ;default: 2'b0 ; */ +/*description: 00: do not invert any bits 01: invert all bits 10: invert MSB + 11: invert all bits except MSB*/ +#define SENS_DAC_INV2 0x00000003 +#define SENS_DAC_INV2_M ((SENS_DAC_INV2_V)<<(SENS_DAC_INV2_S)) +#define SENS_DAC_INV2_V 0x3 +#define SENS_DAC_INV2_S 22 +/* SENS_DAC_INV1 : R/W ;bitpos:[21:20] ;default: 2'b0 ; */ +/*description: 00: do not invert any bits 01: invert all bits 10: invert MSB + 11: invert all bits except MSB*/ +#define SENS_DAC_INV1 0x00000003 +#define SENS_DAC_INV1_M ((SENS_DAC_INV1_V)<<(SENS_DAC_INV1_S)) +#define SENS_DAC_INV1_V 0x3 +#define SENS_DAC_INV1_S 20 +/* SENS_DAC_SCALE2 : R/W ;bitpos:[19:18] ;default: 2'b0 ; */ +/*description: 00: no scale 01: scale to 1/2 10: scale to 1/4 scale to 1/8*/ +#define SENS_DAC_SCALE2 0x00000003 +#define SENS_DAC_SCALE2_M ((SENS_DAC_SCALE2_V)<<(SENS_DAC_SCALE2_S)) +#define SENS_DAC_SCALE2_V 0x3 +#define SENS_DAC_SCALE2_S 18 +/* SENS_DAC_SCALE1 : R/W ;bitpos:[17:16] ;default: 2'b0 ; */ +/*description: 00: no scale 01: scale to 1/2 10: scale to 1/4 scale to 1/8*/ +#define SENS_DAC_SCALE1 0x00000003 +#define SENS_DAC_SCALE1_M ((SENS_DAC_SCALE1_V)<<(SENS_DAC_SCALE1_S)) +#define SENS_DAC_SCALE1_V 0x3 +#define SENS_DAC_SCALE1_S 16 +/* SENS_DAC_DC2 : R/W ;bitpos:[15:8] ;default: 8'b0 ; */ +/*description: DC offset for DAC2 CW generator*/ +#define SENS_DAC_DC2 0x000000FF +#define SENS_DAC_DC2_M ((SENS_DAC_DC2_V)<<(SENS_DAC_DC2_S)) +#define SENS_DAC_DC2_V 0xFF +#define SENS_DAC_DC2_S 8 +/* SENS_DAC_DC1 : R/W ;bitpos:[7:0] ;default: 8'b0 ; */ +/*description: DC offset for DAC1 CW generator*/ +#define SENS_DAC_DC1 0x000000FF +#define SENS_DAC_DC1_M ((SENS_DAC_DC1_V)<<(SENS_DAC_DC1_S)) +#define SENS_DAC_DC1_V 0xFF +#define SENS_DAC_DC1_S 0 + +#define SENS_SAR_MEAS_CTRL2_REG (DR_REG_SENS_BASE + 0x0a0) +/* SENS_AMP_SHORT_REF_GND_FORCE : R/W ;bitpos:[18:17] ;default: 2'b0 ; */ +/*description: */ +#define SENS_AMP_SHORT_REF_GND_FORCE 0x00000003 +#define SENS_AMP_SHORT_REF_GND_FORCE_M ((SENS_AMP_SHORT_REF_GND_FORCE_V)<<(SENS_AMP_SHORT_REF_GND_FORCE_S)) +#define SENS_AMP_SHORT_REF_GND_FORCE_V 0x3 +#define SENS_AMP_SHORT_REF_GND_FORCE_S 17 +/* SENS_AMP_SHORT_REF_FORCE : R/W ;bitpos:[16:15] ;default: 2'b0 ; */ +/*description: */ +#define SENS_AMP_SHORT_REF_FORCE 0x00000003 +#define SENS_AMP_SHORT_REF_FORCE_M ((SENS_AMP_SHORT_REF_FORCE_V)<<(SENS_AMP_SHORT_REF_FORCE_S)) +#define SENS_AMP_SHORT_REF_FORCE_V 0x3 +#define SENS_AMP_SHORT_REF_FORCE_S 15 +/* SENS_AMP_RST_FB_FORCE : R/W ;bitpos:[14:13] ;default: 2'b0 ; */ +/*description: */ +#define SENS_AMP_RST_FB_FORCE 0x00000003 +#define SENS_AMP_RST_FB_FORCE_M ((SENS_AMP_RST_FB_FORCE_V)<<(SENS_AMP_RST_FB_FORCE_S)) +#define SENS_AMP_RST_FB_FORCE_V 0x3 +#define SENS_AMP_RST_FB_FORCE_S 13 +/* SENS_SAR2_RSTB_FORCE : R/W ;bitpos:[12:11] ;default: 2'b0 ; */ +/*description: */ +#define SENS_SAR2_RSTB_FORCE 0x00000003 +#define SENS_SAR2_RSTB_FORCE_M ((SENS_SAR2_RSTB_FORCE_V)<<(SENS_SAR2_RSTB_FORCE_S)) +#define SENS_SAR2_RSTB_FORCE_V 0x3 +#define SENS_SAR2_RSTB_FORCE_S 11 +/* SENS_SAR_RSTB_FSM_IDLE : R/W ;bitpos:[10] ;default: 1'b0 ; */ +/*description: */ +#define SENS_SAR_RSTB_FSM_IDLE (BIT(10)) +#define SENS_SAR_RSTB_FSM_IDLE_M (BIT(10)) +#define SENS_SAR_RSTB_FSM_IDLE_V 0x1 +#define SENS_SAR_RSTB_FSM_IDLE_S 10 +/* SENS_XPD_SAR_FSM_IDLE : R/W ;bitpos:[9] ;default: 1'b0 ; */ +/*description: */ +#define SENS_XPD_SAR_FSM_IDLE (BIT(9)) +#define SENS_XPD_SAR_FSM_IDLE_M (BIT(9)) +#define SENS_XPD_SAR_FSM_IDLE_V 0x1 +#define SENS_XPD_SAR_FSM_IDLE_S 9 +/* SENS_AMP_SHORT_REF_GND_FSM_IDLE : R/W ;bitpos:[8] ;default: 1'b0 ; */ +/*description: */ +#define SENS_AMP_SHORT_REF_GND_FSM_IDLE (BIT(8)) +#define SENS_AMP_SHORT_REF_GND_FSM_IDLE_M (BIT(8)) +#define SENS_AMP_SHORT_REF_GND_FSM_IDLE_V 0x1 +#define SENS_AMP_SHORT_REF_GND_FSM_IDLE_S 8 +/* SENS_AMP_SHORT_REF_FSM_IDLE : R/W ;bitpos:[7] ;default: 1'b0 ; */ +/*description: */ +#define SENS_AMP_SHORT_REF_FSM_IDLE (BIT(7)) +#define SENS_AMP_SHORT_REF_FSM_IDLE_M (BIT(7)) +#define SENS_AMP_SHORT_REF_FSM_IDLE_V 0x1 +#define SENS_AMP_SHORT_REF_FSM_IDLE_S 7 +/* SENS_AMP_RST_FB_FSM_IDLE : R/W ;bitpos:[6] ;default: 1'b0 ; */ +/*description: */ +#define SENS_AMP_RST_FB_FSM_IDLE (BIT(6)) +#define SENS_AMP_RST_FB_FSM_IDLE_M (BIT(6)) +#define SENS_AMP_RST_FB_FSM_IDLE_V 0x1 +#define SENS_AMP_RST_FB_FSM_IDLE_S 6 +/* SENS_XPD_SAR_AMP_FSM_IDLE : R/W ;bitpos:[5] ;default: 1'b0 ; */ +/*description: */ +#define SENS_XPD_SAR_AMP_FSM_IDLE (BIT(5)) +#define SENS_XPD_SAR_AMP_FSM_IDLE_M (BIT(5)) +#define SENS_XPD_SAR_AMP_FSM_IDLE_V 0x1 +#define SENS_XPD_SAR_AMP_FSM_IDLE_S 5 +/* SENS_SAR1_DAC_XPD_FSM_IDLE : R/W ;bitpos:[4] ;default: 1'b0 ; */ +/*description: */ +#define SENS_SAR1_DAC_XPD_FSM_IDLE (BIT(4)) +#define SENS_SAR1_DAC_XPD_FSM_IDLE_M (BIT(4)) +#define SENS_SAR1_DAC_XPD_FSM_IDLE_V 0x1 +#define SENS_SAR1_DAC_XPD_FSM_IDLE_S 4 +/* SENS_SAR1_DAC_XPD_FSM : R/W ;bitpos:[3:0] ;default: 4'b0011 ; */ +/*description: */ +#define SENS_SAR1_DAC_XPD_FSM 0x0000000F +#define SENS_SAR1_DAC_XPD_FSM_M ((SENS_SAR1_DAC_XPD_FSM_V)<<(SENS_SAR1_DAC_XPD_FSM_S)) +#define SENS_SAR1_DAC_XPD_FSM_V 0xF +#define SENS_SAR1_DAC_XPD_FSM_S 0 + +#define SENS_SAR_NOUSE_REG (DR_REG_SENS_BASE + 0x00F8) +/* SENS_SAR_NOUSE : R/W ;bitpos:[31:0] ;default: 32'h0 ; */ +/*description: */ +#define SENS_SAR_NOUSE 0xFFFFFFFF +#define SENS_SAR_NOUSE_M ((SENS_SAR_NOUSE_V)<<(SENS_SAR_NOUSE_S)) +#define SENS_SAR_NOUSE_V 0xFFFFFFFF +#define SENS_SAR_NOUSE_S 0 + +#define SENS_SARDATE_REG (DR_REG_SENS_BASE + 0x00FC) +/* SENS_SAR_DATE : R/W ;bitpos:[27:0] ;default: 28'h1605180 ; */ +/*description: */ +#define SENS_SAR_DATE 0x0FFFFFFF +#define SENS_SAR_DATE_M ((SENS_SAR_DATE_V)<<(SENS_SAR_DATE_S)) +#define SENS_SAR_DATE_V 0xFFFFFFF +#define SENS_SAR_DATE_S 0 + + + + +#endif /*_SOC_SENS_REG_H_ */ + + diff --git a/tools/sdk/include/esp32/soc/soc.h b/tools/sdk/include/esp32/soc/soc.h index c80b5182..3991152f 100755 --- a/tools/sdk/include/esp32/soc/soc.h +++ b/tools/sdk/include/esp32/soc/soc.h @@ -153,7 +153,7 @@ #define DR_REG_FRC_TIMER_BASE 0x3ff47000 #define DR_REG_RTCCNTL_BASE 0x3ff48000 #define DR_REG_RTCIO_BASE 0x3ff48400 -#define DR_REG_SARADC_BASE 0x3ff48800 +#define DR_REG_SENS_BASE 0x3ff48800 #define DR_REG_IO_MUX_BASE 0x3ff49000 #define DR_REG_RTCMEM0_BASE 0x3ff61000 #define DR_REG_RTCMEM1_BASE 0x3ff62000 @@ -213,10 +213,10 @@ #define ETS_TG1_LACT_LEVEL_INTR_SOURCE 21/**< interrupt of TIMER_GROUP1, LACT, level*/ #define ETS_GPIO_INTR_SOURCE 22/**< interrupt of GPIO, level*/ #define ETS_GPIO_NMI_SOURCE 23/**< interrupt of GPIO, NMI*/ -#define ETS_FROM_CPU_INTR0_SOURCE 24/**< interrupt0 generated from a CPU, level*/ -#define ETS_FROM_CPU_INTR1_SOURCE 25/**< interrupt1 generated from a CPU, level*/ -#define ETS_FROM_CPU_INTR2_SOURCE 26/**< interrupt2 generated from a CPU, level*/ -#define ETS_FROM_CPU_INTR3_SOURCE 27/**< interrupt3 generated from a CPU, level*/ +#define ETS_FROM_CPU_INTR0_SOURCE 24/**< interrupt0 generated from a CPU, level*/ /* Used for FreeRTOS */ +#define ETS_FROM_CPU_INTR1_SOURCE 25/**< interrupt1 generated from a CPU, level*/ /* Used for FreeRTOS */ +#define ETS_FROM_CPU_INTR2_SOURCE 26/**< interrupt2 generated from a CPU, level*/ /* Used for VHCI */ +#define ETS_FROM_CPU_INTR3_SOURCE 27/**< interrupt3 generated from a CPU, level*/ /* Reserved */ #define ETS_SPI0_INTR_SOURCE 28/**< interrupt of SPI0, level, SPI0 is for Cache Access, do not use this*/ #define ETS_SPI1_INTR_SOURCE 29/**< interrupt of SPI1, level, SPI1 is for flash read/write, do not use this*/ #define ETS_SPI2_INTR_SOURCE 30/**< interrupt of SPI2, level*/ diff --git a/tools/sdk/ld/esp32.rom.ld b/tools/sdk/ld/esp32.rom.ld index 5266a679..af952297 100644 --- a/tools/sdk/ld/esp32.rom.ld +++ b/tools/sdk/ld/esp32.rom.ld @@ -1841,3 +1841,22 @@ PROVIDE ( _xtos_syscall_handler = 0x40000790 ); PROVIDE ( _xtos_unhandled_exception = 0x4000c024 ); PROVIDE ( _xtos_unhandled_interrupt = 0x4000c01c ); PROVIDE ( _xtos_vpri_enabled = 0x3ffe0654 ); +/* Following are static data, but can be used, not generated by script <<<<< btdm data */ +PROVIDE ( ld_acl_env = 0x3ffb8258 ); +PROVIDE ( ld_active_ch_map = 0x3ffb8334 ); +PROVIDE ( ld_bcst_acl_env = 0x3ffb8274 ); +PROVIDE ( ld_csb_rx_env = 0x3ffb8278 ); +PROVIDE ( ld_csb_tx_env = 0x3ffb827c ); +PROVIDE ( ld_env = 0x3ffb9510 ); +PROVIDE ( ld_fm_env = 0x3ffb8284 ); +PROVIDE ( ld_inq_env = 0x3ffb82e4 ); +PROVIDE ( ld_iscan_env = 0x3ffb82e8 ); +PROVIDE ( ld_page_env = 0x3ffb82f0 ); +PROVIDE ( ld_pca_env = 0x3ffb82f4 ); +PROVIDE ( ld_pscan_env = 0x3ffb8308 ); +PROVIDE ( ld_sched_env = 0x3ffb830c ); +PROVIDE ( ld_sched_params = 0x3ffb96c0 ); +PROVIDE ( ld_sco_env = 0x3ffb824c ); +PROVIDE ( ld_sscan_env = 0x3ffb832c ); +PROVIDE ( ld_strain_env = 0x3ffb8330 ); +/* Above are static data, but can be used, not generated by script >>>>> btdm data */ diff --git a/tools/sdk/lib/libapp_update.a b/tools/sdk/lib/libapp_update.a index 2cdd7992d555dc6ee7f2579de8f7e1d703081238..fcfe53fb098f62e007200fd5dfd95fe4b8e5dc4d 100644 GIT binary patch delta 31 hcmcaHhv~)~rU}yQhDOFlh8Ct1m5#!g8{cL10syCf3V;9r delta 31 hcmcaHhv~)~rU}yQ24)sU#%6{Sm5#!g8{cL10syER3Wxvz diff --git a/tools/sdk/lib/libbt.a b/tools/sdk/lib/libbt.a index e9d85c5ba8a0d250cd81372b3798b50762361b51..ea138fb8ed75cdcdd06a8dcf9c1170f650b41336 100644 GIT binary patch delta 2739 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 WC2Xjw%H-ivXegl?h7xL&n*RVy`>2lq diff --git a/tools/sdk/lib/libbtdm_app.a b/tools/sdk/lib/libbtdm_app.a old mode 100644 new mode 100755 index b8ec4f9871694654aa50b9108a23a6abf4b58ffb..af4f0dd96ed1bf56a6a9942fb2909b57057d12af GIT binary patch delta 17551 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 qcw>DS-bO{K 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 V7~7-%P3@45<@7re=CGUv{}*%85pw_l diff --git a/tools/sdk/lib/libcoexist.a b/tools/sdk/lib/libcoexist.a index e61f08c404a7699b072bc1cdb4fd40b213ebb3ba..3ddd19527b90e6d27eee01db1d60400bddb526a2 100644 GIT binary patch delta 40 kcmewr^ebqB44av`p{0r0M5QNC)@B|?Hbod)LMe$I00q_x?f?J) delta 40 kcmewr^ebqB44a9irKN@GM5QNC)@B|?Hbod)LMe$I00>|U4*&oF diff --git a/tools/sdk/lib/libcore.a b/tools/sdk/lib/libcore.a index 91ef07b27b188e29f478cfc72e9f586c0cc39aed..c417bf802399b02b158d360ce1c4d2849cb61b90 100644 GIT binary patch delta 81 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 x2@;I8LVk{{f8K{)GSl delta 30988 zcmc(o33wD$_V%l)J4rVQA)SPzA%Uzw2ng91h#F*9M35ap77;;E0)nDOItU2jh7?es zC@{k)?u-nA4x^}yHqWXgL#JG zZ4nRti=$=UX8hmSe8~rm2zR~#PyhegBL7jvF_%1Q{NLDOMWg!yW2Lh`Xr;xJmls!+Iq!{#>5y{l z_n3b^!zjbSFba&B#FKIlE30p>o7Fp&N z`%uaPa})NJ_Wh~n*}qFmH0L0fmwm5cocu+oaOt5Xp{2Jk3GB=^wg(Ce59NjmI~F8o zcgnUOYuQ$r-%Rtue`#L-O?Jnk>`qB=(lKDam>O0E=l|P!a%DY>|7|_FKUm|SZ0ImfuI#+Z*@Ssp5^K2#d&wyCNad&Re@_4>!ML67*b+vF?k z$WAIK$gMw}T~L%=s9Nnyu-csb`NH+zuYbH~{bMwX@({_*E~Mj*s`P(Vw=AfKrW<3v zy^16Gs&9L^{`BVUMVoi9+GiQ~cAq!8x!FsK8t#C?XWZ_y6I=IpMzyw@+s9MV?VDQ{ z)~3LCQ(*ZojAi#RxHW-TzhSttCw^LXA04g-VZJh1v${{Z zVZYyce4C8im$HiuqbPSh%$MXQ^en2Pv+7*-lRYtGSHfUp+X}1CASkzuv@gjV6Iqg* zKBd_cK6pA5FkUeY50{jzJ$-UPsM`|ER5W$z?W@_uO~EDMhNbj*d+@e^@$&}t-!yZ`E(&4FL;vRDT0Rz9_eyKRW?Q_ zHi-&03VvMhdcgxk*+GKq1kVkzL9BBVFH>=-WtlJ-VF06g&2tKym zPADPi0|`R>4wc0CIg5i|Leb10m)04X_(7;CE`1$D{y^A>57;$%MM+B7RtW1oVLKt* zk$1isu)p_I6+%^$ubrGLg!P`Vmk{oNa0xmr?jj{jN;2ZJ?e9IyA;PkzT~X2(=$yE* zLRjw!Ckf#WPdH5ozlZQWHg>KM*0k5ch!EC$!rO#!hbO#C2*3A)D}=D7Ls8@uMkDTi zCA8Wa@!w($;?}CH*~W;^$2i74ptAl}MtlXMdQfG3X-52Wm~nCIT;rBT{6xB1ud-H( z5&tsAF>Zs(#v~f?omlo4Dw~KgOz_98K_l%?J7i=Hpyei|Y6iE>X!(fBwlt0SWV>BK zQ5Qe!+N^}B2}b;bwE4AL#4_Ul4v%q9tE`D4_t^_j2$cD=v-CgB_#}|8}XyrqL*D81oj%obeEe&d+%dk{oc){8u2adfgOv@p>{*Z z^vDCOD}|~+XeK$8oDjN;t;pbXP6`=pLhf{MYUpzY)A4a|IJBJdqT}Gq&@R?k%(B^` zbowbF=ZC(;85&ngE(oos&u*PDQk_F#%6m*tMy4oKO+~-Q!DXS}*#(8Ukvr&mB#ZS5 z#nas=a=*|kEH;`vAe4lC+=S_cy6dQ3om^f zTp!v2%eZ@wgBwD(kXLtxyM@VhQ?E7RepLkzOH#UUD4uAE1{atqJ?x@Rt*kF&?29_p zL`JfP-Pd8CHUbq`rqu_Ynk58oeiX9gSyx_V1nL=#kz6;&2;4&SC)Z6f0`rIgtdD4N zAQFLfx<9adDWVTAM8*i;gS{EP4|^;8E9`yY&Di_Hzr{W#{5v!uHXL~qnYi!)>;vIr z*ayS87};jwF4)J1yJ4RY?t^{v@TJ%%hA+pyMfhs$lfu_y9}3@!eRBA2>{G%M;Iw7< z8tl`;H)5Y2UW9$C@V(f#4nKf>Mz|F5W{1zmJ|}!p1c%)42<-F1S74tXo`HS4@Xgq_ z4=={PgWOUy~-9Qp(~B>CiIvYUd4V3Z-T@Zegswc!#gklG2!7bj5T~u z;ShLfCH5%2>syxo4g8wnDHxQ96}|=i9UH!!lQEo2Cx)*LM1kFJxkX-Y9giaGQN#%E zg~Bv^H__!AF_6RMU%F8rhBG5P3>8EFEsO(u+d&92FLLEsLBXG!V1GLs~*U~ z9>E_+7X*&3RJOsa6STb-6&m5A(3@c!v0354Y-sq3V1(T@60ygiC{nQfizv|QAxNy( zIKg~a&5YJlCmGi3yaXE=&DaIM-bzMVjLlrT9yXb;DFx>rQ=2;MHbWkx{I+e2?DMS* zBdZtSkAQ4*T#PT@KHat3xGiWSFQqhZxet(R1nDwkDqTM0)wKW`b8V02UR@8dt|1Vr zx&}k8>%!fKTURaMkFD&JT`w57N!LL$RY!^uq^q0{*n_jZI<7?tbM2AFI%czuhagmS zeDSaAn4{~UnW`hv2+~zf9{Rw%$*bc!RmTEcW!yfyiFF+E>aZdI7wx!N*FiH?M++lJ zS2?d@*v$s7j%!sN`7OLU8dyhboTI88Wsv`iI_B#-Xr}5&GJljp|? zuS%LlH7mCkW}I$wp>wAk1lgwjL)Y@;yN$L3kyF!hwzA_?iQI$JfYUFhKTntyUMMy! z%(aU`UMMRVN()4*x|DLa?!0es2K9z9PBFuDilE5%vh9NKTaPk^(Kc$9Hil<^)3y4N zRfs`#Ip?>z&Wm9pb8FL*y%^RphWor2D35A?RxL`nr@-YK;8S(+4=7;n@O-|kd_L3Y za|eAMhDql4)a>98OvVIO&7|2suOjk1s!%h&FMOD9s1*anOH~ygG*;aXTQ`Ka6hn@D77id2f zXi7^j(61P1IjYX&;%!K8gad!)*U>+uzAz+!-dv zv>)bYr`xbIGgba(<`b!JW8Mz^eawHv*0fdm=VJRn@E`?QO0bUxr5wL(mH(FcGL$rP zRK7K;Z(E2wo03}t;7EMm(oU`}XrW}2w5&AE?q8iBX@kmnx#^1rWSgTcEHJqRkZpzR zG9h~jvVB-9W(e6H$lk;`zTk{3Yd>U5ar$Xr_|(QraRK|o9Mjl=*D$;GPw7U)==e5! zY>euTZotlyuVr>8ErxWSFzYJj{=(c)HLxh82lkw^PWtg?8Z>90^|Rp*{eb}7{wM;l zKW4zP@mg3F@ioI8R&H-7KZJ6DQjWIfpeKew_7!Anm28YP3&k!o`xv*eYNtGg0r;gyk3Y0l3iLlxQv6|PbSj(Ko zfF?4#_EI$1jc1OErxq2c`le$Sq2vHcH2z!7xS%*AmQ z8kIr%8tVEn%#hhGF(uxYn33qTDKf9v^2B-9nQhAqU!Yrj_xS!P7UoBXGucd@3-(R5 z8CJ&_r)&E_n+SA?FpY6d@hL`?WEO*cP8+j0C1fVYj*K4_W2P8J7wt-$ch#j)5&HN{ z=KNMQXlk((&|OIvES%2n_X!0d4qq;s$# z93E;L6(oK_f`W&JMg?h|tKflGJJ%KbA~`4D@x?|~f=puw4_**MR1j~v3Ld;5hO8qc zDVIZdsMRiqtRwYv6+EzN)-_}uNnK~vy)&E{#*Nr`&9jW6b*ThK=Qo;J<~lb{yS`7) zmMIXTNj$W|<}+rEU)Rds+vog1n$iqOvorcmYW|~Z#)DzmclOP0{*{spO0q+oqo-mi7c0mx1(86QJjtYou6E4M`YHJGh(frchIjD^mnC+Ymz0EY| zn^9-knT1Mh{?ydeT4dTU4$Ab(yN1@CjlyMvx;i^XD{pDR%3!f!`c2=3_VGbQ&WTTB zMKEpbZw9xs8wL+D-?0BOxWIZ_xJVjnv82xmrebdf+hSiI%)mY-Xel}OW-t%?xxqB- zgIexWa@x;U^5#wK>w>N9C6|_2Up3Zu@X``9)ea3w$G+o`j;7z)Fw)AjR$KPWA%pFG zLpl`4z@HV2SNnk4<8dn_Icm=+tl$}mFPLYS46U^bh9x-r`kO5h{g&^)y4~8+9yjd5z~njCUNP>vE2rCovr?RSTSO>>V_6k8vBybN45;O41a8#FlMN^<@vF%S@xRo zk2vwo{Yh$PPn=K?yS9LW6cETh35VQ`=*H>*gsAT2Rp)FF1Bl(7sr|z_PndY_Vbeyf?c%uy0gXqjdlK( z#4GojkyP#JE*zO~T{6h$Vq?Wzs+cGzd-6D(i98u84*;rgqggB+AL>;7Iw!LQd|dmk+zdPK{5dAy8`>==rk3NwWn0Xfd2hxP*ymppvt`h zSZpP2IW}{=&l$7GN^wGdsd%4bY{ZB^E|KcotS7Xar`eNhvI?sEmWTVu0Tjy<+ zFE>8c`H3oDX?*AABL+VfCmYqc2m+8wu_YVbjaE9(OHDGSIUj5@@sg8loNt`3^PIKG zMh}C3YGUHYjAWyyG1k)~pM-5{RGyDbF)z7u4VFh4@F^^ZdmB?HHe%P+-{MoCJGike8unnypB$d$;OecHNjk#6jO=_qtj<&6A5*H?O>`j$T*4abWyUuI9{I&KUZtiRjx5w9a zwe#x3?RfW$l!?t8snEzKk8+uNW!?8bw(M$u2fw4;^8eOvSNpnK{u}F0|10Y&=KVLm z-<_9l-@GuTkPD&L0bIbmj^PaR)3exGe_Imx1<;AAexq9HSX2J#OFUI6;ROGoDo;(EOo4ocIASwInr)`mnp7A zHV&rx9Oz!N%&T3w@;=RF?)C8e0p&;7hZdyUoo-2J_irK*8-Ih|JD(xvM1vgd-Zmbl{O8M9(wWmGkw$>4aD*I1rM3HRh-5LQ% zL2RkL6uMD@{m7~?z#IY9c5q`D;Kne(It(8i*_n%5cWI0Rx}R-1XJ1#x&-{JOUScft6g@!ePFCA(#QVIlDu|({z)OoMWNcI!@K$6gL5Rc zuiNyoni@+p3&B8W-B6Uobkm_9jtWUsfbp&Y?2#E}gm@5OPA=FK?%P4jUa*$CS36DobBvJxbI4k7z- zj11Ko9NeV`3ihs=-8onwz;m&&Kmv}xCqw==j)%yQbCmvv3^^YmekbJWFEWr9KwgH8 z_Ux7m$vJp{SO*v;6!n7nQH@Tw6vu}(^OH97lyd~05b~!rzl!5N z&8KlpMj6^?;~3#L1X)=T6y$hbF_Ch$yi9XE&laRY%5&Uj1+z4-#Bm21eyU(YjvuGY zja}M?&j)sEn;NLd@#EFZ!@SXoS}4fz6WqdIQJ#apx#9SY=DAQc$Ci4DYtvFQr$=k& zse8;k=b2SzC;~M{nyakWv4z?+j3e3W*z>iV=O#IR3U)}Wfz@Pdj-LuZQWr_cIh5r1 zt0^^%E3na?0~*Ur{4{&@%7N;S^r?f~HQ{#Jfc-cwQ*5WM%;WN(%^Wr_T6M}o&RX14 z7J$?bTPlR}apXpCtdZ=MU8UumLS(O{9K_VY*deJU56np1J4IxYkm-nxMhu3-PY&Ry zmOLh~;oyc)BtDTb%n#yP+vfN;_(>2e3 zvfh={BgYMr{jOvMa@-&Z-`6$L9g!d zEck%nL@dQ#**1a)3LYzXy5O77aKu=8CS$A-yh-pj!N&xDEjSjJIxnC~!Td&}Cm$ww zl45uM87qZiqu?!qUlRPKU@PuS1tG!Ng4K6nYSjoB6NLQ6h{!Awe6QdK1V18ptKb&} z|4HyWfCV0Q# zBObH;{I;_f#0kNt1b-{oXm-XvR&avgWWiyp(qlpzKEjdL5+}KAh@64 zfr5t$9xa$Z;MEO|7?aOrjOl`B37#u>p5TRo?-2Z;;EjSG6}(xoUId;IiXDPq68uNO z`vo5nd`$2O!KVa&Cpa+@-`EvKs^AR4T?Cg2?k;$s;L(C73!Wu-o@UklJA~pv!5alX zDtNQtZGv|T-Xr*Lg7*tP5|7X3-poHH6rTzHR&Yz)D|z-=WUR$ZdEgYyU4%^)xyH3Q zSIGO4J5!GK4`4L#}msCmE+N(=Kp|<~Jyh)GE30 z4l_E^gJdl~M(*U={DZ6uex9is zWF2Tk$ZscCxMlAq>#~mEjbz=UPq^%!f6oZT3xfYj)=p28YuyU0L@+j{SR7L{hbXUA zVk3jB1I-rlLUOrl(=`$GdycB8z{b>@tRo#L7{6I>l#dsDJy|%#8{K1$YsekS;|V6(*;n{=}F*$v#d{`aDS z57v?Tfm1XOp}ba!jj?1M=tLo(PUhnvq?u%0_9nrL$vV(wXEGdA$U7kJAId2 ztNa@ul2cv&7@VT{l(6}ctONC-*SxaL$y%PQKPq@9Sv!4;tb64EIn8arVQ`A(8LkUZG=2W$O|dgPK$+2H^F_$y5|N79u?yHuN4!8VlKJZ4d@PX zt;;LPeCUI;2AraKqp*3BtOMF2tFmbSYmFH^jwI`V4h#N7@Rx#vnCYI= zOmeMTL3?s*mkYrun#+aF`Q(U>w3ko}By0H)AsN=fB)=sAho=esZm@jy#U|VqH z5oWa09c0~tSIC)eWxK&Cn*SL^d&e&^N+$NkfO@E=U;PXYL&f_ z?kZF!Q^?zsySO&x!loNpSI|@NP_picv4STHo{@t3J)=cb=n9sTwbT0rKQ0Py75u#5 zKL|cR);>QWd%fZ@+aHUC!3&~=;IQB#a;@9?ZsaVN&jY7u?k{YHkoC}v6!M8eeigWJ z{hvw2Ij+-N$=c~1g4dFDm;OrdlY+Mi{u5dI+(*_v-#^0<<110%C&2+c|MDtpMb@p) zC+E0<7JySUmkOKn$h!4Cg?zZ+3CbqoI+`pLGnK-XUoYhIh5R-lzgNgt3Hb&ge@MuG zE#%KcgyKb^c!jK6_J-g?WIY5Q3;sgz55hhc%eUtzovh1dYj*lP=1+>039EjB#|W+y zyioA{WIZ+yk#pUydla0ad8@G5N!DX?$d$W;@Ch@8Zs9M4(!R3 zDA!KYg-y2LVzO?2H^DvAQNO1cAQThHI-okT4rrm^2L%64@LOcvD+kH>Zo`g%Q#Aj> zvtj#BGoxGZgQtKTZ*XXoHz#YS>Ew>C(+Gg((qF1Qa_xBe2rBf$|*F+nJ9AnOVi zk+svi1#b}cj|$!*co$g*{RX+c8}wV?6qh5$L1FYUS@*;VAwNwna0~xH){bKFaNOe* zvTkLj;C6z$2<}BL(2KxGW^|-e1TPSL4|%v7#3Mq!l|0&&zaZqh1s@gswcwNxF63Ut zC5r93m)kn~{%*~+f827i@DTiZpG-aw{Hfs26x-pg6%qcr*88l`R&YDP9R-&Pt`vNp z;0pu~CF4@gG*a+5m)+jHLMW~gJX7#o!Rjw1+NpX@k4pj5a@uHKBba~3_2dr=eoQ^r z*9D#yif07x6ue9DYl7bp%uVxfMoz&4?HUhqqTUlaU>;KO8nKm4I!zJtJ%pA`J9$87(PUIxsc z@_7YQ*i3vMeoS8!*+MS?2@cL!T$Ydi34MT9?W_UgS_@JzvT1V;of5WG~d`pc2- zl=YNna;))(Q^Ak9>`sHHgyLDjzZ1+it$2=J70e$;d$+d-1%D{`W5Hhv{@TZB;C)IE z3d?^+o*+0$aJt|O!R-X|{VbmUBEe-I+rNFzj_?QFp4CdhYXz?t{HWk31#cDntYE(A z$MgRO!RilfZHx*vIByEYe!+(Xs~JaCU}-$z6Hk%A|jZt(DLMW3BEUm(??gZ zS}4{E{*_?$vJ!32AIE!TUl9C?;N61v3Vz#T)NkM=O^uG;7tCM4d$-`<2J-J_S zqTpn~tpv9b+yNZ%9CZ?k62TRM`FnfMet_Vif=3D-C-@4%*OJ|Pp+ti}+V`AB?5Cd3 zi|}Xrp5#Hn4+(x$@N;J*m|t6=^N-wX6p!Cwge%8q+6 zFT!8sdzR^fvjpb}K1Xn|;97Efx4+dNrZrzANuyMAmn# zDO@1*o!hl!e9&Qff~+s)d^Z%X!0xQMh#7q;NMxsHxdqg>0`x3@oUPDP^e1w@Ycml6 zdtKQTL36cX>ZTb7qnBnBGcMAMhgZg6Ub0!BKQer67I`3;UtJ;d3y*w}7I`9gs^$gY zYcwwcH;{GD-Jux=W2I)Q)@o)a{X%nZwtth(TnK(r^Jp;Nt3{^_;yKNNCdr8aB;JgWp*DCkLZ;Ksn(4Ge zGo4mxo&m1WJQI8gSNAb z?*UKN9Jv>n8=2AP=t9j5;%?0hVx?vValhu?;0>BNNqKidKjXpM$@*M>Su=h9Ni%)o zE+nFi=yab}^adZ&%=PZ5<^ka2n#X{@&^#V|S~JgxA2lxm^Nxf;ECn~yd>@$ayQBO; zu0Lry^8ysDHNOZxhpazrlxk)R_@YJ1xtN@&+y{J-W}XqlG;=w>O!E{lzrIHQ*MP5z z!}v49)8iVgSO~sO^9t~dnjJ8|?ne8yV1C_=ycx{f8}eQ-zxqag2kdA*4(8Y3DCbWR zeyKSrf(*YCM+JWt!226Af2Y9j$B}!1pViElN4`$Zfk&h_HM58IYsSGisyQEgTyqVW zw=^u<1AH1BVTN7D_Xd-Bn)xxc$&I^#YGzO5YTgPi(EKWx@9d<{ zx4~ta4{-hOrZcCZ;B66&_`?alADG+{JV0|c_)^X6Exu}zHtem-HD3(oT@mH{J;l|U zXM^iB^Ctq=D~`B7sHoS9m!P;+^B=%VH17r9t(nixR%qt)GQJp=m7M~w*Ze(rqvjvM z+sOLn)<*TfhS}&j%0J%(G*(=5^p}$n610 zb2T%FTZ3Hxp@0l;Nq3DH1mCqvIfGcKnHQKfn#Y5g%pUF$4K~aRTuvhQbQ#wo!|dg9 zHkl5Q3b5f_Uq~4LB4+wBgH~cQ`zbVP$^BiX$h^?yL1cCb(nxG3PZ^}~*vyMb?hh(W zt~^L}*vv~5s$UP8bb!==&Gdf$K!Mkq1pB=`=@ImGW9%wK9XrorH+J`T4_@d)Dc7No zC+pCslXd8G$vX6fWF7i4vJRbthtTtIz$Jtk9s6&{I`*C9!COYYnPNJXC(R=J{S~Jy|^tsu+oxZo}hw=745)2hQUa_<5b92ZreYdcaBF(Q0ep~Pd zf=>$mUU0xqKlb{+c8_EtT%rC9 z-nOx)|82oAtnEybVo*$To#1-GO9ZbFyk79*itS#1UvO@Y>$xTto;Aw{Ch{T4cwsYL zv2(h8%n*CT+iRWs9}m`a&UbyuPvo0%vG6{B?GXH`{ld=l$RQ!&wa2sM^~U?8#!HOH zysUW4ONqz4e0a=DhR5o|bAcNbuMFNF_;@wIpE_|$Bk>a8eLs-PzW1d@uJqoY^SQcv zUu@ut?tO)XtGM@t81=D}w{%F`DKBw(7rE5sJ>)W%_Xi4);S!E?jEV}EPmwEK=7MKd z;XfYe;+*$2Ufk5}-TdHoEZ00&XV_Q0+c%gGR5|C3ugxs0-dOcL{(FEE? zL$lu1oVPzI_`RpGN9@nCcDahXp_qb2TRF2IhT@p3I0(hwM#a}qB$&?ncwd^`!f z_FDG`VKeN$2ePaht(gbS9%x)=&Vej*y1nf{hhPmpL%Fh#V7_FgHQjOseGS!4&ncS1lF!z(YyF&ewTOx(bTpmc98%&J;o zx-i+7mG5VngX|IScL*-SMc@M!;NthQtPcYACK%4f=Zj5B_;(ogv%iL6=1rbqhYzyw zzO23L2G`ERosvc4t3J%KI=66=Qqdm|ewY-jneW~q&ak&Zv$loP@W&vgJv6De z;(yRl5yl!oXByH8r^Pz_zA(|P zcpR*~ii@Kh?yy^YlHRTJS;cYd_N1O+C^d9*dFw0T7*voyjZ9^I2a#O8ja5A7QyaJSK~9)4t#Qi z9pk(jn-`}OM4SpJ zQwQ~MCqnh9Dfsb#Wlule?yUcoY|E3!JG3*GJAVtAe-Ccoj)|P^5AJfFNj5v0ySE)m zHb2WWdu`j()%>{HRBuo7Rk?3bv#P4xcdX&acdR)vSDP8m_|E>YQ*|}o!(6Pi&Jakg zGF`G%9j&SoXF_Lxx-*@2MT-5URYiPrTe?+Q?JCDdtk`X1rkS?}@LSu#BXCRWSZ2ua z&o;9oRne~jtE{eydI1;QHIX#2Y4Xyqs*)x)rO_|)!hhnnb+(yjRa80qW}CSd@*8pN zR2BVBF?3W^2-QUu#(>_vdOCwz#`W12nPawI;SI(%{2y_D3&q}A+c3Lo*0%Z#>u@4Q zKNS3A5kHD*s1Ge<(Wsft>|R+3!A;113j(Q=8$ctds>6K zTh--mZ&s<^^p#e+qh#TT7v{CHDz&~+Wu4s-s~m61Qv*<@iddzU&dGOUU|Hst(1TZ5 z>g3=}dsd}8i2l+_zM+i+hga}n9{4JY%D4IFTN?sZcvJ4#Z)<~T6G?Q3SC*DI2X42r z`bT$OWm)uV*DA}JR8ZE$U3sZ9VyRUYsccfZvOGGNswOs7O=_rWQbSP_Kh@>Npq>MV z8g*A(I~y8|_sa;=3p8@T!11Vtmq_xkhq14u?V1$Rji%h=;iP2_nI~`q zv5HG{9VOalvCd;@VW7oD)!Tk^j=y~<5_RU46-UoJNSfG`L=A0OaY+-K(k3=#QA-cP zuZ)~MkI=*>M&(g26J&oxm#T=G@nyx)a~6^&0aaETd1swvW%zFc1|iV`>P27>}cUR3JjymeJznyITP_fEfZ*Qvj(+&%9J#oOwf zz`+()agj6V;XuC&%cBPzwozjSH%%l>Y;Yks^>AQBq@u}WL!?o~D~g*)N}?9wvWk)> zHn^?f!rN=XuU6bLTzZ`ObIhnRCvZl2118 z6F0oIPi)PN?cAknmoA;V$}#hj+C;i^J*6hBw(0SfWzDgyRCr|<{!e$wQs|MR z&$9lL`*MY4!HJbWwRX*omiQko0^v6m%Gu{MTP^O6t(N_G-AQ-+C(Hg{oYSM(`j75J zN6YyS&NpX_<%{s=|Ktvguzde7oxgH~^}o7XLzW+|oIn2;ZvUHNjT4-`WWbDB3s)?g zF>B8LG5(i)x+}ZLeVxOZ`%jI3I@Xl5ak_V|ksq{4XqWXs5<1nftZwiutHR2+a;!Y- zhki17d{%m`WgQM!+bpX&Y;A03)oHl75Wk``1m%cOe+lgg`~i5MWMB0e-V$X5be|N~zU;GZ4BR z--jRbEJRk!Vf>1i3@d^RV=hI&iAkb)HWrk-Jb>R=l~tl}e25RE;>S)DOBf&b8I$J| zS$(ndHiYB%QdoEa1V`e3CYLiqC-?<^ISAEFoCpdC13St;cZ#1y7>K&AYBshq}^vQm!& z{e!5Q#?r-G>7T%htruz0{?8Q3>N{=Uj+gAL=*#I@c}`-lU~hkUb~q@~&;owT6%0cl zP9B-&WJlt=xw7D}v^?}_Fkf^|OA)Ct6N6`|G$Fs$S;Zt=zEM~yh((Qnf=HuDS3quO zZ5xnfS;<}mir>lVm#uOOmS^|LM!7o)Q^2HYe#_6Iq(?8zD9vX-n41}XD*9-~W?6li zh>0F<6N>g5*!|jK|D<%wnzeN0w7JXXoY!fVg$7wUW7!Is@`_zHaoLJlo#s=tbp9F_ z=B!vgZTXtz2%tgHg6h}F7mgk0Si)yJ--@^xfN+<#tX zj)-MG(-tq;e?``fLXO-~5D@9n{;y=prPc91S=k{!AhP8BZfO785ZgtUDk}~D}PX>~Oi~Fwf1>~lAA|$(=l9e2- zFG?2&qdSVqqvJo$l1J{debG0ILSjVp?E!q>b4TC-tvb5-m z;$;7B)>*Q7Z2KZ{bM&gxa{oRw>eA?grN#a*TIHPR2c>1L4vYRS z-MV(|673&fUUK0?)DK1Tj*IOr&X?|1cjVvwHrM~qFS@8~cCkY}E>jN9q@pgCM zn!lVdL^u$K;t>Tu|44Lu`NJLW68BhE-UwF~3WUCk;fPPZuJO9K@aJQy!&Z2~7%Ob$ zZn}Ts=h4QBobtAob(b9qK8|jAzF8;JCd($JBQ|_<_})e<`c=iTQa9TDZ8_qHvLU#p zP9OhKj33(7$;L!~R&;#(EKF=ilT*?}V{}9N%%X$BvKFB@?t#D7>XG7375EkFa6Ty( zM;~fmkuxY3$4uMLiNLuU(}dGz4A8dG&A+wJifn)ghx`4QWb8of*VH z=4(5cxQEipvxyHt>JOet6tM0OH4yjXCnmWWzqZfc4=T=B*p4Zu#LuZBcD7gmj`78u z_B;I8qsTKF?NC~N7b4>WF+;nfM!|e08b;$*u$nyTJs?gBevH1~AyZ6^9_x@_{VpN` zRrf;QN}RUP3RF|y7YtCWI1qfPg+sybqk}pQK4T0TB~asP)-bjwIS?#C9Rj_`ph~q*1vf)1K*2xCW#WN}2wKce}S`PqYDXmeoP zi)e?SD(!fp6?`W;u5zfjD*C6&_KC?zb|kP&%tS+^Pm2D%a%Ap!=D$IxjM8sFlLszR zfxPq&qP;t1Cmv_so5a82Risag&g@jy{VY~%tN0b7n)Ln*Y!d>O`=q}ByMb%OKGdT& zJ()2(L@Htir4Nce(y6Oh7(Lo4Ebfe^R@EnTWo7^R6@Dv%1ELL8L$f(9pzb zi)LDZe;h>(>Vj*cC#o{DbEto~7FC`YyqAUg7kh6?aC@|>x{H_*omqWL#ZM@ID9~1H zgN=062*rx6^j$1jiK>||eO9!xb6IXC+pw>AAG%h0nAZELKur3a=;F?&O!%Bh&JwE6 z(;WsT>GZ2v(8($$kp2}LaEj=RB899ZAJx--hUqbZ>EbmA(?4WBvs9y4>CZ)f?VO!- z4h_r|tU!8tOnkJs%aajxdYt<$<|mPxfCwk|Ar#D)I}&yB=N^J2CU-3C#pZ5iS#!H0 z-?-cbki_S9!*4M60MdqX)4&P2gTRTo_d_!&_W&#;TTU4Qag)2FG&#PwsVCs)_J)>~ zdmbW0pWF@z*tu(v+?Oj@soVq5NzUC4opA0z6rkD4{Rur%FLK{Te7&9f1U+Bwi0H1a z8KN}W)U`D7Fbg!Y1Sy?&ITX*~$a0RM!oh_Lh*3yGi+Dnu^#L-rh205BoHtnPZew6D z$Cp@m3yPe(8%C_$orn;*oCodPv+?WX@{HM+I~TD$IYo-ZvQ^N}?~9-4@^Fu_c`# zKLdxJ(jI^*fHHMXZj}#bf=2vU*OPW`z%i&IhZ#Ry%-Y4UfvtuT7_$~5T?w4E7C-HB z02`zIx@Y&ij`A`DZzFUD+)IW2fF}VT!djV_?00y6gnaGgh#bqv=(g_J;>qY=x)|Ch@R4;y65DbkUOmA&Lucy zt6~i}yVk;qsZGeV+6#8R3UT(f+Aez#R~T*Vksk$7k5+hnvGin(kEEMqu zM0}_sctzAM3nJ?NX6Qz!TvC9TyAjilCx-_CS*RNOth3dw6GSgS)ZwIvr;YDH)c2&Q z9-?m{I>QzD9UlD9p!~&QZ-Fbe1GBB3H&RyqJ$}V|jS+Zx2#cK(Dkb+JsQTt1Kq?Yi zz1TV8a_?9wb~fWOP__DBq0*O;TXsNH?FCy}{Z+*C>az;5U9U%1)FaSsFPio>#PEF5 z9vq79tI4%L644iG+D5*G7;2VXHx@}w`K#)RhrF(+dIj_gR4A~At)$8ydy85AA9|}K z4#O!QwJPCdbP1qc7N8^Gp+sEevc;>do@J0(6*qD(8#o)e`PEKQIlli;ON{4U()%(< z1IKM1mijbdhZe&*YxFq}KVpQ!I@k~+6&~e;FiK$obw?{~gQAKt+@Je!$v~X`(L{Iw z#tp`<5XUK1SbgrHH+Bppr*_9rUk7Co!}^_#oh-D?<}R8!o()p_KFXC`#9g(&)z=S^ zJ#N5bm~xVyxh`7RDym-9zWvm>ML_bQBVPswCBvm-Ux9@dbjfs}F2awFMbZsfrC z5E-}qCX|HxQYK@p+IA3T6mp+Jh3`P?wOPTv$&DTG0&3W16Za)8_#0Zlo`yYXlqczn zI%nR(ohXw>7OUSEX#31nf_sN68QP5cX5FQ#yNXSI_h9VdR%VQ-`zI17y_dP(lJ|V$ zoLsor|8wuHPNc5&asiScb9eH$IAN-74}K58*_hYpzW^sJUKyy3$J|43w$+c*p4vQ_ zu+H*C&453uMLeOQ#~q04W6X{I4{%0q?;-e=iawc}Co`;k^dHnb*-14y^iq)#;jxYz z4`tkVT=J&)M%dxxmlP785NP zk}tlF_8HPA?cYK##9)ynRV}roMI%Gn;9}+4A?0aKTu{l}m=thK^yMMN1sfxbz}n3` zuHhhQ0)7`@A`?zlTRk>H2ex>%NLgsoi}u}_-C|fXi4&}NL)Zg zxhp{rM86!`Kgc9%Nyzc-FRlB+m#9{KR;-@3{QLzgX3gK9IC6K4yn9SSKzt^D$+Qc_ zXRX(OqW1V|x$o2rpS~M6#_^e1K+Kw&AiyivdA5>q>f?ov3gWzJ#mx4W=O<<;_ z4!eX~pu+7M?iSSJYDOFQ)L~a~qYjxz8tCMx0iYuA!@)2bJ`+^P4@5vn1KeIyAL{B}lx1Z(~?O%6hgDsqB{-ko5C9{(46GCQv*}fnp z%#!F0^M=($UTG&5ipesmv8*s9f>>|ZreZPm8o9wqPs{g2MG)Qd2LlJ?-FFui?oXfm zp@`;8eKC4$N^$qr{ov*%uxR|-i4!L{Q;R}Z#?}>K{9p@36V4tNnF10#iej4$hf@f( z%_nzpc@ep*%S*}b3WLQHGSS_YUrfeK$88gw!10#b18}02WLZzadG-&HgK7rD*--T3 zvmcX}&L~U~HS+N6!c2JkW)v1j`Y@Sg?S>PlDzrGk37$t_+XpB5DYWh*SG#s}v0MoN@W)8nXb3k)248X?hsl(~K zI{Me?3nRNI!Cb;-W@*#WM65ceWy+_+=P9Mf?`xh7|6|Q;{;xF8htIQF>a+PnnwNrk znn(F+aGlE$>p}!3>4zJ=(v?2=-D*t*}neh#)!06_y6s~c-JwC70a`ya{B7z7#Shq6*HRdcPwGsy~Iam$A_7|@o54)W7P-fjW1L_+pd)yl)NCYp%81DT&D6Yp4uFuyi~-3L8r84DLpT4!0Vu&r7p24f$j(=j^b`kZ&TRbGcpX$yxsf zF969U7{7M-xMpOV$H(HEL>`(;`qVi z?gGsf;Bz&10@suE(7RMKF4-)uAX1KNIqMqDXd>%6%{kzkG>5^rYAyrc>2k#Ci~v`9 zX=osri;d**;DefHf}hYlAACsjV(^QaSAbvBd;$1v&D+2qYTgO{Tr(%XZ~fQ_m>G{K z|JD(E!M|$ep^}T3)OiRTtGOARp!sQVn&!WOb2amPqpjxm!R4Ai23KnSi8~>eV3`3= zIC^U4;j^D+E<+90%$2C&nz;mZx@Mk~oT-^7B~vv|0?*QX4tRlPo}VlMN0@Ov0&8>x z50w$kJW07!GY^@YHS<6tHS;9qCe1vA-m000&%bEqA@d&1oPZzFjFX;-)vN=YfS=aP z$@O{7uYq6H%){xMnt3((o@UOQA8Gyq{Do%DkKb$NocOb59)?dSE_aW^e(V8k2`)ed zHFFIrNppDrh6_Iwc1cZi?)vufhq<_&dh7aRyH8E@{`F<{2Bpz4fAG@muu3Mdjjf^xccf z6T)ZWWF1Ywsirh~UTLnsPZjT~Z7VHKc)1$)Vo{xTh%1oy%*xO6b;mv&-EeX1d$RkV zy0{_5yi1$4f8({&Q|<0u_J6c{j{{%s*_l8;gb9zVUEDQUBR#TWCgFeRBy zKd%s1oYq>j>oIXor51JN^HXj7T|3uw?IAx{U{^Gq@wEv1?5FLf^N)&Mj)*p8|69b` zVzq30OuP}fiI07RZWZFj{-|1DDV`d+iPMx7m|=+q%6tirqCrF>r9P4H6+~he0|Ak+ z0iL*-fsjaCK4Y0BZebuh=li;<_-obMB+?XzLVThBus}V{=z`DNEl45Jq&ac30oMri-8)Ecy6^N_LBR6 zJ6qyzaxJ)vCH9dAfxAwz#61kuiG*L6`d$V`h=hTx@_q)!h=lJLa~}iaMZyjS4lpoL zB+j+O{imZrrT}N5j7^m9L|{1r56H1Ui^{Ve{1_=xIK_+7I{b3O$hE}IZAh8Az!GH? zi?LQ3Co_SuiSeZr?u9}+dZdy71zQ9*V<*c9;74?oZ~iPw(|b~Vj#B3h)-0&^lqtW6 zq3MGelci$j>X^ZD(J!K4#7M^Q04H{SgqZYIGZta_*)2sbr+7Co5gK{xSl>}p!##|A zly)@r*1%=s=x*FQW?6Vtvp_;inpjIrozf)2xc_V%8wvx3}bg5Lu?)oMdBx-y=@GQ z{7fUSK-FzQoB-b@cmF2ZS3CioOxzI)jJLAcuZz&?|4_2YqQ=T*GK#*Izx*chBe4PO zX;(v*WQBLb6Ielp$IZtqckagtP}^DO&SngoF$u$_?V>r0Jm2NRZ=Xjx~ z7+UCs-ax4McKnDqWeF82N#PYn7r4Ko97Sl}p#1aiqNK;e2xf}Ob|7r!3_|n|D6v%v zXK`_ziphd)Uxhx-o&qsXI)0Smxac4XW#w@Z76av|<04y3mGh5_qKpfWjIFX9`n;lL z6I?ADj*F^D*<3bwRZG2}LbTYq2S>~z45MmMf$&7+Q+_sn@Z=`LH#7V%D!Sos5H4Ox zJ6!}*qHZi?S7kI4c~vZ3fic!iSA2X9ieoK8qMYt>lfnr-L(E1eHA9y9CMCAyFqnr*-*6n#8_v5xA;)0@^fYz2L3G zP6zhb&kA{mZKn)qi`&`(K7=_e&CWze;c-hNSgfDEWGv>ck{}+dOpW2Qk)=U#Mkb+5 zzGvH+h2@4O>{J+bkg%ORJF_85Jo*ovNEwIrcwd#DS&}@phSARiYQ?@obL3U2rb8$LNK0I}R)7TtpGV zd#19Z+!eCRMHl&O$j-&$<|iS$pLj}^CD>RFe$|ebGZXAe@ejE*!OjyO$-5Hl=fvf5 zb)wx#MCG69y)Iu*w4Wbv@}_{TR`%W1c)=Wzdz||9Caq{YqG0&&U zU2nH9mJdD<8*2JJ*N!H~aRy7rfvm3Ss*d*Xq{t+UL#|45I~$y)nGbmgoMmx~kUO}1 zv7vthIp3AvZpiO8_(_9bH~1Tuc}atl7B+{@ER7t75E~ztNee5qDk;~6IMv|c2A^f{ zJcAdJwf(hZZ8H);{>*^0<~Ae2wT4oI!F)VKK%d(|gP$g=a|B#-kaa=%Jdg-O8QU>~ zc@-?e5VHR0VM~Mo*f@^~9>TGO4S9Qm2N`^}!Sf7WYw#9>uQPZTI3mK#3YXYM#C>Gl zT#u29T%9MuX`0`lT-Wj)L;q7l{*@s=X2^d#DUYa?PtQ;VCQdIi^(c+btd}7lXz&Pw z=NP=$;Ee`fYw#oFDtG)@PccyH*76WIP4nNCk}H3YtZU2%WITO7XXJ5w@Fb@h+>2c9 z+UZButvkG$0nTOE#uyP($OByY3`2fN(}sR_Y(j+3EP88eu{;GxadrEWF+XyfOy*Jz zwlW^TFd=h0gPiR$p9T;-@x^vJreJR>;0lchLx_!6=3cK{$lbQolCdN09g&+*h*Tc* zu-%~B^4~gw zdcSJs4s=2@7b8=VN<9e!&eBXnMVhJKQ8OE?i{_5t9-7%>!^paIM>`lh3_xa$(-CZp zxn$k!i!@VbnP&8+wOTVXUay&R(8Zd0(r|@lR$!}U_S&_Y3pjRn>Oc|rX3ZVId}x}5 z=mg%Yxdwcn=KkP^G!FtdYvx7B)0!uMpVxdA_*Km_!F=30!VKmi@Scu12mF!dMc^+q zF9jdbyd3K|+0?@{bMTMU%wyklvfex9YNj2YTvCo%+*+m>?a#5WT1Rk%U#OW~u!XF5tsRNRJ<1&LQz&$lz1@5PLD|oQxD0rCWYr#|e=>JrGvNDqqU^ef3&D^yXYvwMrLNk+G zpqVpry=Ly~YP}i?eZf~~Ia`s>k)?(K*lyA6@YsEa4&Z=h-L08}>wsqVWwT~f)Ot>H z3HTMwy}@s2X2$Po9t8eWGYj#J<}u)($dNFXz7RN}BiJ2&40D!r6&R0(D83M!qWKbV zrsgZb`I_0(#hTf??KIyEuF||4++Fj1;7D&BcnE?1nt4H`)||tZ^(goZEq@$5P4jDD zwYChM*TGy{W})8%uhjfDc&+9Sz#BAw48F|ei1h^mSLui&;Hc&wz}IX31>B(766in8 zHu!!rr%r4KHFFF-qnW$qi<)_WeN8jR(?4U-|4ht2KCB~3!F&LZat+{e3eAhbeAbzXIX?K* zHksq2mu61AwVF4AhiJYGJVNtkFrNfx+9-G;IKseA1bE#*z7;%M^Bv%GH1ooHspe+z z3e8V|FC(+ruwA8@T@cmGF1TKEI=De|ISvKZZ92fF+ozek(0xs%6YPGmqEXJ7YLCX6 z-vM~`XFX-i+4d;=hn{i*e7yX2+u8Q{qL0j<2BkWAF1_9I5qj6jgz4~-<<#l+Gon_O z&Om6kTuE<}{42dZGGivZYB^^ntW1~hGIXD;oQ158oGRDPvR8?E`ELZpt#a^e`+R>M zX6I)4_-uQ)ctmEKNy*BrY6*PtWk+8uvrb zzBAWOMrpr>6kf(WM81wmWh>Xr<&eP@$@XuP<=lC8nV2iDLabOS4^ZiN9$x$6l6`b_ThvpRZVqkmpje6aC?fcK#w=-nGC^HP^s1o8Dbu-`m#|wQ1V3 z+iplQMVWHsWxg>@4?bXD?Y(cTR?st><}};aoZ3p&?$$;2f3dJ#+H78aVdQj!hw+a` zMf=LO{bMs^Lrg+IHst0e%lhMXK-T|W9uOVn^~ddb(s#n15!2ra+4)DBww$mx2)Ss8 zgXha07x6MjIM>+U_?n&;&PBq0*(ZlP&JJEJWA*108?)$iOdz7)AqWP*Wm#=*rC@M> z1h}EGpm}YJ=3r{hg3C&ov230thW;JwY}*$}SvChN?8D?ej*~Ok2O)Ox3jBystxfSn z*UfYkO{~hN(oFTF}~5Dk|@mY5`4s3a3piY;EdX*AypS znCi_6E^BS-ycSc-Xes~|ZE8hpQ>$E4C9Wwxi6hpwHuZ9gskJo4WpZt5U29VjWlD5x zdMd_wMuhxO7S>pLvGVkQ$dJ`>&NLYg;2pnKlrOi$IVB=i?um2y$?xNwEX_=64Qd(_ z@8sLD4p+0{e6rKCqK#aT;1r4%<@5xnLaw_~#L4*yP8ho>1>$qp`_A=#r5A3xBf;6= z$ojY1`{aceI04x=#hEUfFK|Ng{uF1m+?SeNB1cauN|)bGOi2F!N`2Fu$@1Pb=liBR z)16hqeTTSjD6>lfFV48}FlEbo=J?vmr7!uzGJG`HD97*x)bHX4uB_sD;_iHKI&Dm+gEg%9{4(IH!rGygcWi zFH*x1?ha9F06E@GI|R(fcetHy=u9TNdxxcN?`WN^l(T-=q@lly%xg((w}H9bz>OE* z$d@MvxWr>X8-2$}@GV&z{n1UJ^f`fg?;88SX*~R5<4p>$GTCHplP`05`lHC&<{7*= z_7Y5EM1pH*7C22a?`?QGydd_B-eBn8Mb<`n?ds`2O4g(532>U`7d#!-pEpQ6qdyx7 zLfEA}qiJN_P5I;`x1epoX_`A4Iz7m`_PmMV=`SSfg7WfktY?&$gx-oC@4KhDlc{wj zF4P`N7hDP@ip}=c7Ab&b!30(!EuJsr|ZeOztoL0-OMjjuAAp)vaVH; z+)(a(8!3S(71u9lAB)E|KH0$SRLztR)J%)RG~>*}8mYMqJe{n^Aa4MXnRbz8rd_6) zX;-<7H+B%XoB>^S-Y_OJ@ea*Q{3p#!+@P6hc~nZ(b$viH(>|)1QBP@RTD95)A=AEX zW1M(POdn7Q4aLNtYG&fEH8U~a4y6tga|cP)jTx_*X_GZGZ5z!@o1>X&E6E%Q6>wd3 z0G`!TGZXjI%)|p_&-TvwcstyGp3J-{c05kyHg<4|<(v;ii5wR3h2%dv;M8Tqb2xki zWt)k1l}M2Bd;Pt=xtGt*SOq)EbdNxuC|ED_>sb&yqXwp{tQ-1pg}8Klk%*Llm`k5%H`pE{66(k zRSe>|)yfT{Gc$Xh{fEMYa0TF*0k)V~qYL9DU!;=DoUi=J?W&D51xA{!e@Jtko2GGc zflt0OCLC%v-bffW67qpB{8?URPq_&v9!KY{HqsOsX&#o_M(3re2I+M_60`obaNKqp zX;?Y0ZC?IEK6$omytExY=5Vh+xqY*di2I?J=+i$Ws?&)&JyV!m`H_)``>U78#$>=6 zdD{wvEqQcAPTHxz|Dmt}+$NiiXm(_KIL}1-A5CC{eHY#JNLoIhE~8d09JfV@3eSHJ3qiBCij7js1i9pU|jBbfT{Cy?UPWhXOtql+~;7g^jt} z6O-G0R*snh6=zOd+4K_e5W)7XhU1nhzwYj2rf&Fy_{9`n#-?5Yu|8HR?W9!qigv_H z`2l@Q!(0BT?w3904y;J7`~f|&2)fL-7o3+b?`4?%x&=#mK6MEmvm-G%VR{Dyp~7T+ z)Z=JToDkeAH~elF$JKEO8g;3aM-vMQ{dJfzuau{E$GmgyDNd_v;Wqy6ox60a;b%h9 ztb=Zd>=Y2m32vMQz*=A^{t;Z!pl&fGkmJrEu#^fw@8QNH52x(AxA~nzyYTdH@P5~~BwKg8Au5W7B(^)8D!_}*;Ue&8*w3pLAw{&^0(%IpP(&g$F=ttL_R4dY_DWF0pcgG$ zO<(kKHuy%oelHdZtlFYv^&1WaKd`J_s)$Fi9E<_ce6pm#XOnUt{^H6f0@j2n$KSO> zH(_OKW8*rg-W9A&lAjK8^0Vxxk!rxRXF~hB;MT1xWz7%3VM#J?u+w!+=teh5TPFG4 zemZ1T@9ZusGye5#H50_QB=|fDx&P~rW9lW?R3TiTl-%>)t5V<{J`BY z-=Am>TNS==cx8E4mSRC5_lyflXWG_;3CCGcHKlMa;)Q%VTo|q+9G`(11UCkbkLR2| zA3rPL>ftuST?fZ?nSF3P13Co9hlCHq@oN7kIPS}}aAV+jwptIj6Yf5^*W{d9XM6<3 zZHwCg@s|#=2DHt3ZbkCY#y5Qf60CPFe!2?9YDOEzvkg^WKj`GnWs}65GZK&MOb8wi z#l-lPPMoXLU!`~u-;-!Rgc===4``cRdw$~snW5ODs+GS^x>TL9?|Y|vX!{!_k<3?L z;P`MmN@em^B5dNG+zT9Nb^eyj-%4tJI3@S|+b?@66#I&@^#QtoGh6HQ4<_cG|IeY! zee&_#=VQ=~q0_N;J;EOH%!yFU<7i4Xk}wF7u!EVynqcnS=Z4@KXTq7s$F|KHe#Y1t zS$Qi!XWsho&26*gs#>SU7jxo-)l@dXd06Cc;}Ye)Td!$bJ-T!4_01#WwqDLvFxut!6E}nFIK2 zV(!C39DLH|6;JB}EJmswbj0s(rg}SQXSKIELlWc{gPgsxvEJd$Q(kj!hT9Ie2ksyo z?{~fi_Zb{-S^fr>j5eU-ZO96^TDb9Wyd%h)f1BVKzf=33{(T4^f;+6`Kfw2)(^Pyh z0{nJa9$X1rN4Rcqec%Scjez5455>CZt|v0NF1cFRQY85^#SN5*2i5NZ`TG#33hT&~ zL!IKtO*lt{U2HzlM&KZJ9fmN6wzuKyN0|uX3y3d5vfjzzSr0y-Gy}%*-J@-YfQbr3`F()SZn7)nOGBM@b^HX26<>vhbFWhE zc;0;S#k2Z>c;1#tj_;5B!tuQ!X}02zLBC$aFG7lXJH8*1*Zbm2Vr6ZelU@-6eGz{V zDr3iED8SC+$UP8$K0C$=E{&PD1PMaV$qVbS1oOC@KFrBXNQdE=$ZV)j4E2&14|Dp2 zvMJhD1UtUB<@3Xw9wXKuU7*c&+QhYYB5zs+)W-mPcz`1Da^{kyVsSl}SdHX?Y**Q~ z5|=QT;|7J5xJ-^Z&8a?v4^RXOLMWLPIzn@WN+a|Ma|)9KAsZzKv?Yf^b(9y8lS4C* zDo{*L4}DKAA!mj9$-kfG^o^{dxsDY1oJ1>;>(GHpHyE@MRaH8vAllrmN|hUovl9EW zSk)?smp>CZ!UCP$px;V7g~2Xv5EbphU{^PY#}M&cYM|S8OKu(R)QC6av%{THcF$Ou zJ;K2UA7kW@5l&xmsk~%_(=W1swV9++VqGKgYF2cz8_cv41?^68gKezDZx}n(4QA*H zob3j^zL@3)y}p>Pf-QY9!;SU&V&--^aHKO-Oq5rSbS5XC!S-3}s^nRTKgu6lq?Z`d z8KXSiEr#^@7U}hd^pw#~b@EH>nfsJ9&u1kLk>`(gUXFBRZi6VD9ctjn7|mPf^Fv#x zJz*etQD_P~aBduamxczC&mD%}6`|9qvzTdDhj^q5EFoVQI*m4$lIufJ+B}bZafs*h zfo0@PA>IcKEZ>f)%-S4!fJ!SEu{D&8-@r=p_7I<02}JIL>UE(9*$I~y!t~A%XRbi> z3UFiSG3wvQ?`_>0+RO}YV%psyE)xbC$a_M9b{fh1LJ8zuJNZy3z(V|){Cuc{yqo-Ti0|hF?jXMw!a0f+xRd;5 zXb<@>ZSL;fLD zDt%*}nh0OT64egZRQbGq^;$$)nV-R!=;4I5w8usWvsYW9hR1y?XC4ySf1@3zH&n70 z%(m?3RaEX_)KeUv0I9>DtmSxq`8YK(#oByQDU$~mG0M4&u`?n-Cd^)p_aer))J2n( zHx)YE*1?IL{4P`e0xc@w)fg{d3N8fP2`Ky$C%T1{P<#A~5Qq7cnj0|?z_kQ1;Y&p1 zGh!w7#)#FH$z~!3iw>5USfn0on~diI{)T9Ak*XD9(CjEe$?a%Cu@`KmDM2rksdOnC zPPIJVizpjK`McEEtu)HUvMs-(V3-n=pATDtRl>boj3Tk~W*8}CTcc$xG_55f*FjX_ z1q=ARTolE@jTo*qO=3kdgJ?|A&v_1-S$ILFpK3hxQGW#}(g0QV_N!QAPQdH}W;Yur zSshqrTd2M0c1Sz0pAd%9y9jpVc;F))9pOZ*7>c#0q6EnBfHAg)3NNmp4TQ&$LNz0= z0&&T2iC%8YBR%U@3(*LQ1EL9r^7lfPkJ4Avvi^)IP@lhosGu2fqXCudmH~+3ChB%F z9lM4%1FTMr91dV>h#@NCPDbdGZw7RL!z%(mBVm{&ukeJb$d5pqMUGh8pqEG8mNHkd z%uNuf{)!hxEUy?>;fYjXxxTCl%h^H|_CchmrlGnzG_WeuDQqoO*e3wITGfR;O*JF* zBNN#>vk+t5!04TSPQtnaPm#o|3t(A{?b6Inn??Clr0U9Z(?<|+pNB7GN6}a%Q_uMd zIqQB3K+vFu5TjJ3`OKZ_C&syTj(8oV46*nXaAIyHa&Vi?lPL?F-IN7NTeq4rFcISR zG%$}JcybMRGG$<&X8?N`hYI%pmUhPx*RmF3Y~P5q-NjV5hTX*!J21aHzsoio@!iEF zzr&Wa+Ofela94=&or>RdPF-x7jD>)FEA}pM51!VF5SkEA1Hg%$-z8(kpHHGddWntk z_aroG@ajpT8vT5duZBB^8|3s{!+paI@{u{UZ*V$LBP>Zwg+blsdmwG#LntavRd@qZ zs20N*`a_HLoX+~+hU7I%nMJxPKqC_L;;h;q3F_fQhS(0B{Na!>((1hlKiuunDE10) zFAjo5fa~Byq4)sms_pwwa4L6EafTX(OAy{iC9lyVR&P$Cp0(xR9{jYFC{s;#fMajx zO_=N4CM!deS=QfBioSf6R#XVaeT8rhW}bHH0pA29uUX@Tc!uAPpT!aF#jVhFwjEio zS}+G$b>{w$*IRB(X=%cP5I0n~k$Tvk1{10Y3lZ0PdQmkW4)Gy4y!7=p47oL@Ky|rG z!@v{Ro3|@v#Nu13?U>ha#A5enand*9=RPQ?-9OW+?uxM3f*-Ja5}s?f6?b zh{f1i3}MVa+c<;~x`X;rYT@m|{@0-JVkd1zKx%R;MxXVpa>|6!8kQJ!ZAP{9kTOVTm^D!i~d%=0C1o!=xtC+gkWbTYqcm7f=-@_Wk5ZyJFYahRpiI%t2~G;oiekLBW)mF`xq z@-|d>QL2u-dRN_=hy>~!vt=ew%{&BRH9Ve}4mcIT|cEBrag(p)5=6g`8wRryCdLQP?uI~Od5^>zE+J%ry79i4_ zdyTn+_28qzf^FvB!WBCU(Dno8;#J-8f_tDCtL&-0lhZiOwAwp6L0|2i0lJa5QGK%F)0 zFj54Eo|cbM#qtbMKUa|!%EzA+MKZj}7k};9&M!IoJxsh=X<0d)@Zum|zeFG$6f)r! zUuKt1`u}OvX2}8SJIKvY*1XIYP-}GS=$Bu6dhfLMGK!@N-rKW_eTz!iyHx8S%f8J2hLr&b@^xEABZw8FmbY(_c+g4Ze(Hae3~v3=QC4z@`&#T!c_h!D zetI2JS;PMLuT4&C{WdLBxOIoabBgp%h4We8i?I!)Gu;S!>txjoCnK9jRbfr0HxtgW z){bc)tdmn`IO9&?(XJE@9~-4di}@Ir$EuFC4e{RKv9<+)@Uga~$11v%Ewe_Kk?fT?g z>uQtZXtEv-1BTuXh2!bD*2jU=#x&eHSvvZI;Dj3B0Jq?7DQU9Ox>7}tqqh~#v6d&d z^fbcmqLekZBk+K{a;6iG@H(}1gLH+Yh6f+(j3w}RWVNkrW0;)V6gaA&tEt6H9i!KC z5KHSUFMVpm5PsFR6u+0i32Oq|X`8x=wI--I{A`DN91hW*h;5jz@@VN&ip+r*qoU9B zQgGnC28W%A-sf9J~6 zY?wwj)=MxQ!IerhnRn@~Ax2J4g**%7d6?0{6wwIB6#dUtG)I=&Zb9%4B|3}VBXFuB zgl1Px?`1f5CM5kG?&M6^LmBe4P!(-j*`*yr#N5>avNc&=5ifAVRX#l5sfxJk#O`7w zlXH}EV^4GAXyV4RMsB#wXxRpUhQqCZySPQ_%2*a}hWDaq`w2L20tKQAu~Eof!$raMR1&dINNxe89&_WJNC1Bd1{4OPT^H;TCiM<`2d--;y;Qp|d zUVObFr;I&H-Fpl<_i9i6XG6{w;POp(I8H-WHy!yf{72!uowr3n$1{#C^cvjf^2>Qn z?+CAiro-{-0(U7}HlE3Q@~|PNj3bzzx#I$jw^67kL@wg^z4Bu90h1}XP3cKW)n`m5$wwACSydO| z^XGByizwKKTE3*R7h<8r$)@;S>09JX6yM3Ii=1xBzgzqQ`b+AoEcowr_sU(1oV0?C z_&&Evs(<&dj|-{1S*A5|#<@;rBoN2Xo~&2Je98U#$s=y)TwQb)H^KtI3KOPaO{2Bl zMLL!rXwOieR5{0xWU3t2D9K92t{o+j|5)s#wJJnNwaI_aoW(UO)jD&2$>qOgen>EP z)WK-o51~IkWYlhrd}T2naxj}^jl6Nm{}4S6(J7`@70Vrm(~gr}x4EVL?_3|}Q{{GB zo>{c2^qbxXZCL&bRWtk5@42dIX==>4oDtW?!arMdKf(iZG5DrEQ|)ql&24A*D>)x~ zAIovuj9RJ*oOQ5wrZVEJRoOJGS2l$DF1}f-PgTKMx7qEemZM4(tNtb8W$X2j{x8F7 zjq%~07*!v)ke9fh-1&7~T)HY5hmV&xhnSbnm9zA26*s8w4LO&)WnQW(;0;g?)08-T zdFJFGVdYy75_}`*zYdcBF+%lV^Zq-4SxDCRcem$$TgSbE-Qrw~{eLoIE^^D~bqGrq z(Ywwcjr^vJc%6!x#yIY75K?>7m+UWA=wt&A^BM{we*Eg>pxc7^LcPz1$%Ow3!B(l< zk>EDCjI=Vx!PvnthlymnDi7*1L22%2oq+Sk|J@GKO6yzs@e-$S;)5ukPmO|KT8$gM z54y9BJ5>MJOqaQB?d|>S*dN_Sz97z)4NIJio<=<|erTZen0CjNJDD*nZ#*Wbe;hMPTX56@wSAShhy~>3nCVf5yxu_@}SGo$vGr zEuFD=!K^VWR}7p#V_8$@)y}U%hA(RGzL_lFT$!0H`&{7E$>4){spraT@n1CggZIq0 zU4ToAEcw`trJ3qeb3B|6gDZq9g5%Y4hU~a9yV!l7vkC^HeaC0X`nAp?^$jqIZ-9jo zcqfJWW8rLhys9{}6e~zd#M3;U(FEY!B?z8!xF@phQ*$EsT-l? zbs*1Py~?VW#pY?a-NEpxN`Zoh|^bY?Uq|5 zJJvfZPVOe#>hTDbvClOaEh>O7tZwqWqruaY)@fm* z5_Xr59}QN?#t#x}W%#>btxSF^CYdikhvinj_q^}H*s!dvY&S+8xeyVDzYpSHF;k`b zUx}&WB6-hy_%F?iLwIGoS)>QzZh+AujKarcu1GAL_Oi~47gwpc@%fGpA3zyXv8?m0 z4%179`%#BElv8oT)zLl6OWagE(UYUYywpv_Kg~IIsWU6bo8~NYE-X=V{+ii^6Evs8 z=LAk2P8XMG&V#>Qa~M8nuXOIo*m$>-%sOx1$La>q5|8tQiJ}JnJ zFwgW3?oi6q%=D_p|IsVk5Cv{4|y|oUR3mBBMap!2B3jac` z*f3%R0xUUsJp9`<-w6LcgP+&@G5mjOeii-^&7Z+%0cq!1_~O8M5%S^ z2n}(paf~qmBhXzfJV9U2-;2^$iwi-`ac9k)DbKl zdlQ?7H6n9E3o2%9)WF6B#v!bB9OzJ26%Ndr4TVdG4p-FF4h5bLRxPA?5p|%?3NKO2 zqGMYL#|UP&nv4V-j8|znTSX00$jDILs)E7Z*T zmTG1PRFF|A&cwsDoI0m#rp|cHY;@L#`dnyVsF};ns`!v!23bVy_6Xd8Km(Of2pW3W z;72txvnR>W$F-;WS4iaFAmc3tre$aF%!y2WuAqB1xe`wOGWgXlN7ULRmms|awVI)) zZk>4YAzIGD4RaG))8KE?a<(AX8a@4OnyJ5?41;&VzgIJT{(DoEAPl8MIPYItu@*E` zLZ9*=ez0|eqoI!Q2O7LUGxy-tnz<8hHh8Dz?eO<{%pv}w4tx&(9nG)7|3ULt@Y&qV znDbViW}XLkFqo^n)aeVKpYS11f&Lkqc^*95;1%Eqm3ZRJC0W+E0tv|8KLe}Ra@Lp} zOaNeOq#S9vM0>Zve#E77ufwJWFE|9IUCKEokd0z=jr$L1_i9=F_0^;V{kh=9a7@cesY-%bu}#dM36c@Gl1gB1s{gd1n-Hd)h1sPU zp7m$V%OSsW}mmy%Ek?jfGwbf4=7F z@YQhva`G)&&I|5)G~WUL5c{8rn-O5Mk{jV4)%-bpUUE}Tjv=EE_){E=17OS2I=m|9 zLw3|B^W8G)cY_Yu`&Wvp3pzvC7EX16-d|}i9qrH2u6D)FO?!7Z$AsKA!e65P*PwiB z1U}&6zs@O<86!cTzadKG>7;d(T}673^epMwIk~}WuXnPgf0Tc`JokFY*NyULW#bHl z+dFV+nm# z9YCT?3EXE>G}jvPp$3mKm}lBv+UW+*GniAJr*po+JZeE6fu|p8(HZY{Bb0ov!S@;b zkipFcKW*^y2J>j<72+*}4_h*IjK59f8$)*7VAZ9%T=8sK&B+Fb)#mUka+q@ z81WwG8eHzO+X(7ID>^aXRQ3`KH~370XBoWI;I#&CH~1EV?=|>w8~J;gy=+9hZ}2w; z|88(6?6Y3lUIydM`4;(DgU>ej9FJN5RbBwR(cr5MzQy2s4Sw9$}e`e$sLv**n{AWX6Iz9^S@!t)8-{3C|R{tfV4C4!%gX4>r zHp$>zm)#aAHzK+k+|S_Q2A^s0EQ6OAtp0n3F2rSqJZf-5oUup##fWG!nEx@utHDbK zzisfR27hnx34?<;wfF2~dd&J4djW8j!MzP0YVbINry0D^;PVZ>$lxso{|Vf(NB-G} z*l+MV27hI+jZ=89Hf;^=WAIr9pKb7FGIkDZ5o;>~X>P!3U__CMuyz}KkHHU-wf>`E zrY%I0zZ>#5w0t1spHQxC9x-%&P&#P;nNafK!osUfA{l!SH?Cr*Y3BVpPp6QKzU5X- z9nHNBo&IEG!fh~hG>7q}Csqfb+_vTSY^D0ArftF*!wJtH_mmBhH zDAz4ZuL!a&UwpAEV{9kWZ&vr=4TyEHHGI89HlQ81=u{NU(`q0*lyW zixMsa4V~KzoqdMRK|`k*%!+M>9re$ob<6$3kiSR$h%WV~Mq>VFX(r}1srlce?L=4J z1bGVBYw8R`UO>6FS#EH(p|Ae2w60`iprJI|CQQ1Ep223S2(cULDq)u0@El*^`n&QLG+ZNbI8zng>s$2KMkGtv<{9@ z)=@+LZ~jkiX27c}-aGa(#y{q2k@NGQp3z)Gr_j*pV#s@F`9#=M|Iu1k<}^b-j`}Pp z_rEDd;^|t6%hc*$UF*d4)X^=pg{)iRI)iT_YyBt5x|^OO>r1W|!QSQ9Ti}-YU;PVg z-E`kEfo73>l9LVQe^~U4=7VXJ6J-_Ux^UeMot}oy0Loqa5o@@iG+HZRPO;9WTo1ry zClgp}4gH9rv&GQaVd&gx@LogzF~w^Bv#gg4rN0|W|1#v?lXa8+Le`h5$HCquD;~gX z(Mc!kR?If!C5F69#0br*F!&>bzcctZvM#hAvmcDA4NrS2o5cv_P_AnqHgrn(#yT^mQY9m_p&o`(FEDi~ zpfl2tpRVPjAfIB$ryKGGlxv$S44u_lXAmQNx3$3o1t@u)|m#K zgND3W%Qr#(vLS!XkiQF#ct$@ll)f;OemCU&M|5n7eK48=_L@4wkQY#{3tDdIbkI8c zk+#=KdBhsSfF49sPDWUB3|?&T`37G{)&uG$vR=Tu8SE|Q-DT+T|D${QFOiGb{@C7R zKqr0&%)~sU|C(~$HQyUL#|$05HR9D64^6k&NdVIh&Nr;EAurMLA&_^CFhVz1jiJ=X zP#SFLj52h_YMnY5nq$Zpko6S4#^8-)o!6CGU)6t$p>(s3fKBUmFl)dYBKI5ehYb0X zlxw5U8#*s*on1)#p&|cN%b$V#yEdHvb+i9yM4Vs(Z8RQZ!_!Fwvp_E(aX#f*r^wJL zGjys9of?Dtx9Fq(gLQ&0V02PT1WrJ-oOf%^rCeurzM->L>+sIarH0NmhR(HQ-5s|Z zd_Os&YyXfD@d8=PUoqq#82klU7wCIK|Cpf@kGbEolL%(Z@x85l%5~aEk)c#(C{-Cs zH3s)L^aqo5&Bhx#XB#>*4V`lhoi(nGyZ^02fTepArMt?FKxg0z$dKPaxi0lBhR&b0 z4(~(VZ^$1r_>jS`82qpQr?4}DkD^HXfA>sJGBcS>CI=ZvLJ~+g5<*B2P$WW75Ks_M zR75n1hC5sm0Tr2m0l^cDQi?2xBEouriVLoY;OdIvf#`azuBhyazUrc)i-P+8e%((& zE&tE|^EOoGThCK>cUM`uL63n34>9;cgD)}oj|M+(@Y4oA zV=&*)=(su@Ff4qBsTFL%XvSVMzm>-Awk_#}arISwQl!mbL(8{h+U0esUwUdh(QJrX z$mnnIPzG-xqhZ5?lPEOvWt!%v4SwF>zZm?g!Ebo%ohM!|I-pMtKBOx5;{6Ib zhP>HeE=8vkcfb3lLYKawc-&wvI;TDCHrRc$A%5R6@-_uUrWz1w#YcbB4j(vqQ@Z4K6mA>)B~H?j|@ACYQ5IXvGDFBd%DdJJ?+7Rr5rH zxdN`1bA>w1?yDBGrFh(8$lcd2BIkN^;=ZG`?xe-yI&(Uptp@)^b=`_<^$m*f$mFr# zV6OhA<%bMDZ153-j~V>C!AZ`^aKZ+sd#tu?^_L9kW++ZG_)LTQ8qCG#bmB%Dj8*4f z_s8q5HbfH)o@OxCuRamP0)rPBe7nKR4PL9#HmAhfJYtA88~mr1u2bR(E)A#qk6e*d z^ScIrXfT(K({2tM%-vbF{FuR9Tu#f=4Q}nRR|#-+Y3+#X&uOkOmTkUxRt^sjUrBJA*qI%!QY=w+e%~ zK$(^gG))G3k~Mt$y$Dg!Cah7%hwsa(cni7=2~QM z-^(r1=M4o{64L?gH~0gCKUV)fvqL;_*bs4*G40Kdacj+CgQEsl8r;+1Dub&H9%Aq? zkH@=d=R##VvUvvIWbn-fbNw>yex<>i41Ubut!iC3FP?DUDN843uc785V>-Bh82m4T zzcQF>k!kn88tkC^uH`|4(>>;(4JMKsiadi04K6jf++ePArXv`r&PvIP=Z`i-6AYf> zvbvx)5LZLC`FF9?&tnvf9*iFi*0si1%B5zhrCe_Lddh_-QZD7!K)LV?%B2_6NVzcZ zL}N#N_*H&!DI?IW96HimXmGL1YX9YSks4UxWL6F~ltT?3VKB3$1FOYEv5dINyUQ18 z**GDR>LyRJ->7DOV8>IN>0CrhRR6p1`A_pR{&54O0A8b7c%Q-V82rA$9~pc|)jb%9 zR~|M*M-1kqG99!#14*I@s*elMtm3>et#&6IiQ1hvCR}W|;Z!m0-kmBYZrrJ2!kj9m z-MGCZk-J|H3XkyIcu)UPhKJDxk2QFr!3_q_Fu2j+CbC>FZeL7zi6Os@6BV_idkw`Z zgV!3o-ry|;Z#8(k!8;7zWAJO5ng4y-0)EHf0|p;7_>jS08+_E@;|5#oR!Ht0gJa-? zR%96pPP^3dJcHeJ4ke&6L+*C}MDBL~gxxM5njSm`(7iCXlaR>=>W2Ef)XEVQp#I=7 z%HYvtnNcv-;98Y7HX5&-NRf1_8w{R7mVQp7!E@Da_IlmUq1=mZ=TP65bSjtUZ3ZtR zOO155!S|9StE&uNOO_gGy}|Y5fb@EwpaqXV9(%}=eRrCiWSRR@>3I`V$&%M)WXa!K zY-wkC;ncF3Cz%<Lc`O-H=F?}hoqJt}-Y_%~sm4hL5_-SZ-1$DDjAn7b2^$AGhiuK;7e z6Iag0Lwn(w;LgH{Mp(+V1>8fp8O)A61HBnsEqoi8dwWpMb39adIhZ>|P_DqEh5rD) zQg|b{UidNaWUTz=de{uh3{h+Y&lY|LJWu#}Fm^a|-M;`{BK#uw4&hh8cMG!>u~PU= z@LJ*h;0?kbv;KKhEdPY!N#R3a&N^joegN+jJ_>$G_!#&VVGB=~kI1}eaC|0=GiPxx z63SVfd@CFTbM|TmKfjH_@{1^3|8PkU1&}8R7lR|h9l@-G=!O*z#}3H6(DH?=z{SFY zz@@@$!EqRY?%5(v^b!lFpKy;MD(b*z3-iJmEX+!YV+wRL7d%S%dhlrBh2SYvvM5+wuM3|CeqXp2{E0AYLoNbLzmvh7_)Bg8e=j^8{Il@2;NOLB z00&U%(0vo)w^GEi1k6phsJI=>t!>CH;P%4zfVqPg<-E1Zg*SqG2=mtJBg{LipD^#N z3(4{%91Tv;f?umf6gaikIAJ~*rwH>AK2w+%<{aS;;2VX@z#Pb6n5To63bWYn6lSsC zBaF%|Vcjp5kx;A?9tGYgd?|Rd@K`WMI2geU@Uy}!(%r&M;FpD2alI~lH~4MgHQ*0i zM)^Ms%K=er0(0bp5j+9@Mwk`R55muae-_>e{#|%CIDku=epwOm<00~E;B?`)z;WSs zz-<#^`2?0C;V;1@!e4{C3I7M&Q}{TzkMQqcj-43EWqhwd6qIa>Q@(I|l~Z z3p`S|H<*JgLew^;q;>LcGmx|isd;d-WGly{E_g> z;Ln6#2Okpt0{pG;SKuSU$H2b`v)1Fc*32X)btDNFf+H@Y{5!*vAqv)RZG`zfZlN$g z2JI+35?m%c3fx_o-{zhnTnp|iJOw;JnBz0&3A5rF!Tl4MI)12oiEtD63gMf;^}?*V zCJS>`#|&Y9%R5{69`HP2R%i=_SAv%auLa*BoM26Nw^%lSR|;!biY|gntJA zTbN%P|0L}9p@%CR1M`y=hQkj7gTjU2G~xEXZWu2W3m2X3Nal@;qfD4}05`CsJVm`U zIdDVL2#D-Tb>@`7P561^6@QJI^b^*7>;0;~wVkZye{OeE3&<&I<*WW8EMl~iKWXZ- zSN&7!_)x&%AU-{C!Nh9LGuRzu68G+4l5n-*W~jmL7*U4W*~=+XZ|(Kh>T%~obb}@% zk0S=NC#>b%0abHrgWVVC;+H*o?WW4$!3K{qIJMTWG_;&GIo_B3bRC2{b|XQrqCD;; zk$rQ`?2hZPn_Yf2KP4+W@xCE*UwQM{isP^$ceiO2dC)l-MwY>a2A3IphQR|29^o-7 zZOi~Q6cY_@G`Pv&+YG+f;PnP?F?ff;dklVuYX<2OIbbNhHuxwRPd^?GIv$#12D`7B z#Z6~J?tVTg@@hjqR5PbAvA?GSt#?@+*ql<7io1=+-4x}h*p`$*>blxAE0gBuK?*8%CI8it2c z=M4ifEvWNOcxQvh^uE>gu15XG7fT%tKNZl^PeeVo-Ojb&SHHJl#m1w3+s4`~fqJf} z*{sniN>vMfb28NhzvXACKfP8OE8!<}4dRgPUG0$1QZw!zYWE~Nu10@h$4VREr&;{4 z8qP}SFcoLma|$;%w#;mwsU}~M5-SN_?QPY-xOnC3wB08$Xm3Z<6Z`$~3_cw3 z|HK(OZmVTgDcKn>pCXU>RCPy8k$b7OZCdKRh(niITlI(8fn0mL8u_+AuJ+9i#8RF5 zlc%OY9jl4v`W(NiK0PH{mDfgNsXd@)b;cyNQ;93WxvdJ3!;5gE>4T}Z)$ZlFnZCxL zIzX?rU)oM@%B#iEPz2M6WHOjy80sQ0eSH6&rMYNAtz-eU=>?4$!me?aRmc$3r#tL; zSQkxJSRELWoUK|vhjV>kJnBb@rLz%>`vE=d2+}?Fg;ngwcG+s@o`P6v)x?uYD^&}6 z`ZG_QuAzATKCQkRnvHpow+8TJT_QrmFbBkF$Iyn!PA>23e)jz6<0A z8WD6;OFP_*zto0fU2j{32D6j_`#w5Sj_T`#GUy}lwxwl3bEevUeISYxuYQJ!9`Ab z#*?QguN>a8x;Q)IS%{N8=kDJ%!_~4!lCxXAF3z>;z2SJWs&=Dtve>#ZQ**}FleH%z zJdv6YPYI#h2o#?Bbb>Fl?cYubVh4g4fK)I;Lt18b$PLW86n$p3yq{B)I{I?UDnx|C zpzPI>{#Bk+gJM$Y>(a8?OuVjU(zHp9<LL7d{^aq= zh9vGg<23c%OTiLfUbVWg+8GncvySx3vwrNCci^Xf>d|Vahx)qO`5~j}fBa3iJ7)zW zS?$+ag%1=qtykalcP1nr*!=qf+y+7GF`xW8-fuh0+Er)`_Eit=dC7p^|8Lt8U*3`G z!G-WM#20bgAJ5ahzR29BrBp2Sx#B@Btvtk9H3J9JF1@i9bF&sR|;0e>%(Ho#?ZJTmr-A3-Aqy&zJlNDg!?! zwmNNa7Vu&xfMu#Je=)>P4yrfH=OoX7#TN{)SLzEUuZGZ{NJ4ahR%PT&gcK;_>Gbm@ zL!j%G#KX7;l3Fh%;?}d0-}M3u%w{M~^5uvUKX)-`JIFbR0p~rqOL`T50?vH=#ZKp` z2rua^dUt{ax$qfeOVA1~VRd5%_ru}~ayqR)SO~2XfmVa^c_<#<-x3U5brpkuOjay;9{RoZqtok0f!n5jo;7ZS`?|~Z6s_%hX z*NS@}!JEJe)p=@t4_xJ0*HN^7jNLf3h=d@F5EeWMk+-m|u~ z!h=}IH+a@OoMFZ_&$VJ`g>lWEh!7);&`axlDw);=f7VeY7JB|AuA4lYj;qbMqp zRvp)3*D7%}z0J57p%>Q@DjCn^iQMu2tf?dlTbggkD^$ zsAODEaoTTqC(prF&x2!yIX^%2v}*# zdK?k`fbwecsOUf4`lmlFqodzZaW;8ul$$7r&LP)EUuBjCkn5wR2re|7wavsR=V^p4 z;mzL=-NFdQ^FE#tWqLzXc{4Od=P=A^^gB1&Lif|j^P(JL2+bfTnxZQh!Ax43qwF?? zt|2dp_QK!LEb?tpwt_>A>E>GU-O&YG`Ygl$ z1FwwrQOBnr{)w1yHK=<7hJ(4onlT6Z-RAGu;Y$A3YZ>=FiIUzB$_ z5^k5emQj3(VDkIp&$$s81X^HUZucs{-tgF})hfIgnkmra zHvqV<&+V?0n!qe8_k}-B=fp4beYecK!8mPF+kJT=U60^_a z4Py01!Pu)_K_936El}Abh;7~PXhsq*gs^BaiYE=g=88Sy8^m6$tsPcCmyAH*Y#neN zfWtxd)MWVX_&7wO*{n6wxcPP`Y7(9wzRq#|Oz*8V?%Okq>kt((ruBgQ&VWY&li>(u zliG-_XJ=UzB^XG`&b0EEL;W1o^F6gM^t+XRA7pPpc9+Od1o=!MWgAiuKf+D7#zx^mGk?^;3Yi4Wo(3(F$(ujH>+Y8f=wCJ^&-f_J9rIOz5q$2$tgeP zT!4gL#)2!m6bh?63yz{SETJ+ty7Gr0NSn{n5f@(}($pH}*b{W!!*KU9+^!|tR*i7l z+XdbR)PYWIumN=@ZmyI2G2`Ycw_3hiorzF#RMXFCx#-rTZ=iC0zP1&zZM83slcM)x zW&j1o9?ykPSn1ednxk9XIeKXOlN%`GYBM&Mb|WuNvAKJ-Wp&UyU3cW(*LgU1od|fZ zr=!9NQq|3Nn~c(vA$nUfcX2mfzOc;OhPkV`_41I+Dl`Pk|KB~E`I)p;VLGM5$`b+< zPgNV$=OX9gM0>dG1e1hS_;FLOA+Lu?$94n8Wlj~vpTGp&tDh3ul5h@UR%PSKTY?%& zgD_cEW#mQcaKEGzHw?8r)p@SJ3s3b(asL0;BjR%pj_xz1*om1xj0roSGT3}u^;vAU zQ#GTU82ZFBMmeW@KSgTqDCZ-+r(uK}9Ihw|j8V%Tcg|6VfAkl%>^gg@`evSQxPR94 ztJTy?oxCIJIvGZoJr#+op9}Ko`_%?>t;=X6u0-)Gp+@|@!ZC7(`MDx)XkuCD(bGD zI1Y&GcHH=DXSt}(9ql}liM_dTys=`4nt#LxYTOsa1frv{F3 z`fYo0jML3l-LviUw?)P}ANrDAchjbC`{$KToxcMw7o^_3npn&7N_!GU^Dgj3s(e}~ zZg)_Z|Er)#t*Hn^w%u`+v)HHJ{JXDi#rHW;RlBZJ?TXXGg=+1aff3xlCZ?MBXD$Ei zTU3ahcs@z0Q2WQbLm*QpI1}o=M8G`wh{?deqn_2RIWurYdQS~ch_N%PHQe!FwV8o+ zGrEbLGU^AMqQ6oNoah` zs`a+Y;4OpWG#JWJiCSz7lKFV;E1ZSj{=&@s5MkCROa$Gt6+cM<8!z`lZ~piyU`>E3Z-`8=QEe8rBd@ z3Nws@R~fyru*oS>Xt#=dFn-A?Qur+*=Sd)^$ceaL=7lZO}b)22FcyK>v&sZMqfrHLaHjCwId6h9 z4f#0+^PQ1S+!TYkKU_j9S`5X*2D@vH>YPz7CGj^h&Ml7*zW6Tf(+A$rK*#|++S@S6r7 zF!(!zkE^HWI(rj$B84Z4(cn!6KW6aD2JbcaQ-l9$Fdrp4{1k&TJT8D!eCuE++8W%> z-uCTv&hvWZH zJ(v?eD4z^w2a7xl%t;{Rh2ZPm&m3S`0!x!9mV=iHvqy86@H#MOhtM-iX|?djV2)Q% zeh~ae;h(^qH9|S7#y<(O>gNm+%Ck6^<^{2EF#NB=<=Zyh=+xWl_AdTg)u5k}JF5fZ z?JTt=;S~GIO4Yjw=Yl|EDOydcq{%to{#sqzDg@{|U?fCU_RNW^EjKw4dyje!;-s|@C#R~fZgScOs=A>hRC=>h6nGd< z)2G}wfwfcf9W|oai3G;rhN@6?R2TNfiBd~}zFV>|51=$#z1Zx;d`r$$?>0LfefzUi z#T%tLs`Vl#;w$c>Ixd1R+)7=5-@w*B7y?n(En+z6zE!AoK;MXVe6OcIT7+Phw{u_S zsjOqZnC}%>#&^zERkSqsRecvDjPKgv3TjC&%2e|fJF&nnTwP<;^2G>pSP?qZYQe9* zqCjH@G-=eQly2>e^&MUJc{e+m|MhNd+pwFRe}`YZbUvSRiYPho;A~SAzd1BN z0Fwlh3=@P2!GvK_U?MQ7Fj1H^m>5htOa@FQOcqQlm~0q^)f%P^Ob$#gOdd>In0%N5 sm_nF#FzsQAV2WWnz;uM^1k)L&1g3ObXnvRGrvFOnwnu*J@@(?|0zR;?J^%m! delta 53074 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 delta 46 ocmdmUk!81A24)sU#+C*fl`@%N?9G#yZd$@QMK)e<096+bRR910 diff --git a/tools/sdk/lib/libexpat.a b/tools/sdk/lib/libexpat.a index ee94d7a3ee64181265e05f3a4d97f9c2e3a981d4..fe38f7c01b2910f79d48203908906fc09d6b62fe 100644 GIT binary patch delta 226 zcmX@I!RN>Zp9#|JhDOFlMuuh^l{~qiY}4s>H5_8i9bD}lT#P`>1jNih%mT!$+dH_} zqL;u`#^ni#w==G1+s?S2-RvyPuy&vUK+FlmTtLhX#5_RE3&eat%n!r@+wE!uO_#xR xfUVpUDt$Z3hZPy1{w-wg|N)0|0-ELbCt> delta 226 zcmX@I!RN>Zp9#|J24)sU#+F7Kl{~qiY{ThxH5_8i9bD}lT#P`>1jNih%mT!$+dH_} zqL;u`#^ni#w==G1+s?S2-RvyPuy&vUK+FlmTtLhX#5_RE3&eat%n!r@+wE!uO_#xR xfUVpUDt$Z3hZPy1{w-wg|N)0|2kJLnr_M diff --git a/tools/sdk/lib/libfreertos.a b/tools/sdk/lib/libfreertos.a index 42f6b39d74793dad646233bf6d47533b5838687f..a9cad789d9380157442511e7ec5afbe25b4ed367 100644 GIT binary patch delta 3426 zcmb7{3vg7`8OP7LcQ;?xot9ck6c`?AgY{W41WPTQIxWTizq@B~Ywb*X zX3jmo?|;7UobNpD=H}90LMN|h^W^1V%*#exeY3V|sQ0J}bWb}h?P-UN6Lm4U`^G1R zed7~zlNnQ-B)faAo2V|k=em3P>6=~0MpeN6a3o<)Ure%*?v>=2<;0q^XH`WGT2qYD z5VfsW^*NziR)yAfgzkOtVNm`AA!gQ#A!GQmIXvQ`gX`51D*cH{q7XkecB#p-)PA~4 zZ85@rA%yIC%@87WW#@fDwso?wFzp^FZeRkN_aB30#Y|rZEFsc;cm!QS_~lZg6VGqD zP1c17+zSU;m*lt!(Ev&I%t2>H2juCF4~#Y#VRmAN%(ZJ)3E9BrdYD-}zZc-lKhKI` zHqX5+Izpfet?ZOgxZH^w{|wwbZ}Li#Hseu1&0`5Z>R7A%^yznGD^+e* zch3mQ3M*BnB`o$X@k$Hl zG6Gn8wJ_t%toT8N$mWsQEeCEBKZ^=V*=X^cx%r~envO%t(+=)Nt2XoYOd&#_MMQ=C zGFhAH3^Ku6oY`oxQ-R&IMQxDMPp^JYCY}cOfxYlB%u|9zxDME3-Rg%XrTjuowtK#>_8B{$RZWrofm|wUH=F2{ zbt;8^zEzgf(Md8TvZ215j1UYP8Rd26lqkQ;tfKq@*wXxW){~;T!mR>_ z9m^jz9L{6b0fk@==0!}6)63%Y8rJoowahw+MrKcRvahqh<`r@N516?4vEXoA@Z)h# zKZ@giW=m;ul;fQK%9Prb)DRW$k4(-nuX1erI_n5O;|2x+Vgj+!$x>b+|K=) zS4z!?Ou=&?fX6O+LEOucpMl9qh6_sy!oS@#jj0QCS`tuu5bLy?s>Gs*TT>0+ouN zQ)g%8W1&~gsdv;}wL&3*ea5qH%q*Wf{MCYYf>-g8kuNHsj+wU>gsxiO>Z^kfbi3wx z_1C1xK!%G-f2+=hk+mp5J%h@{gUfXmE#FV%E5=Z{us)9V7F5<#u~aVDT8DWIu2nG| z{?*_{Xzbqw#!V9i&^LlZQGJf+gTaL-U`FEvyd2YEGxH!k!HGCNNzLgVpMCm-dcmE_ zqjE{ZJcOynssEI^ZS|W#UJw`Vy2e@P!at**e$M7U_nbHv_UEstSYiLF&)Hvw-DfwS zR_9DQvt9b=Yv#y1bAh4xRHtI_fXvOWvUpES(3gO_Qp18>nh z7yMJra1#TX=Yx;ZlNZ#!@QXm-5MJnPSTFc_$Bxi{qqg=8{@4YZ5YST$oTJ7i7_4||EOB%PD#KYa{9CKAFzLLMIFeBIXGYB_F|7`d&R#1PPRXN delta 3444 zcmb7{4@_0p9mmhP_dU*2{`A3n@E#y=;W4C!A|OMoQXXhF=!g?)?4Q(vo5KT9jdOMF}I>=8{$smd)0P#%)bzF}BZQ7q_`~-`{=b&4=rn z?j+}(&+mJFzu)e z_Wvk|@(c}s825Cnl4ef%`Cp=m7FnsysXBfuE9zw;uBI_+Sq|MrXSi8(Mtj#EmAgN? zr~q4GL!6w}+GzX1)!y%RsYlS85MBq|R{HA*Lq(vM1`kWYYp0xL4vPHVEOGu9%M zf1g5%cytQeC|@;9YYJ(Iv8K@FjiNP$COA-+?J0O?Rsr8emU$ZiIV`IfjTq2|A&Eoy z$;7gjv+<}$fMst+JTDrhKFaW6w5ytBpGPonxdJ8UO?Wx3(@GL{5OGRh=AaM zl2gp9(<52tr`Nm4$uN)Y5na5Bjt`aENMk)bg;w)r{g0Y0KNPDpo6hIxa;#gl<;^gz z+ve!_)#lhOj%VDa>6aLZHm(nv-`XpFtjlggbIZ^#gwy=jkHm2;_^T&!wyrSB&XAY@+Pr8!l#Ix5k5;SB0LIqDV`*qE)UA}7``3DeE>m-Y1zlI}nUC8ayFhn&;^ z-7$JkOz;4)8sJh4Psi}57R$M7d4)OkQ*lNMw8ZSkFtHkCHJA=Fm1h(qm~A9h`?py! z>Dv`k_#VZyudgXi2EU;gSAhK_!U2{EiC{ovmat4Y73 zm?ku#n7Xbgrh)&gn6~w%hUZPe^I&|WI=uI zSmfJB5b&hzYZgAfSMnobK6eC@Z+N8t2*U5C%BCZtz}|xQrjU24xJ&jxx1Yv_<;!D7 zgwMVKck+a6Y(>`%bn#?)2T8Q|(`81lDB#;B~}?s_PFE$GH=54TILu`-XJIY zkd)piMr1zDe&I~qghyy#`t-znvb2?F+6`Qci{#=<4AW7>Go6pdD|brrk+2Aq%)GwO6v;Ow$l@*JFCtZ*7eRAhHQ7uE~gwq!O{GXo(`@C-X z!8tLstdy}lA1ev##`0JEVV7aBRLsv{{%O5r#n?CVu4jeuv5?Dhu~f~N)*sI^!mfrm zIAw*+OC#db1i9}Mu}s?D5eEW3%sLPCGAb2(oU!-O;?EN;ihYbqg>M`2K*0f^C90T-e=Y+_161B}P;1P}6q zE?y@m=JExyWkw{*gd5`9a%@KAnO!$TnN8MBh!2u!Kq@Ji0)1J8W!0ou8n{XmQU%YG zeGHq{PK8|UbemM6e&<8B4>qll3i%g5)W6~(dkyU9a^Y|ObyB>mJDXqL+Pt;xyBnL= zw{2_d?ARg)|0sSY8!n3%Q;Lw7KWpV@B^Jwp%VK)nRj|8`S=x-^avq9CpCZhi`qGwpoeI#O7d|vUmx#Ws?kJ}UQvJcCP zx9|?xi_i(Vc`4o@tFGcI-{SeA*)~BgZx2 fnso!s%4_0a^goXB$UVJtTMT5(_8M_GdP@Hdv`l~%);8?U?z1OTHN3UUAd delta 31 hcmX@Kl=09~#tG8w24)sU#+D`%l~%);8?U?z1OTLi3XA{% diff --git a/tools/sdk/lib/liblwip.a b/tools/sdk/lib/liblwip.a index 4b97784331ef13f66343ae1e03f21d6b388208a6..2138c083a50ddfcdb5296a350a70c67286de9171 100644 GIT binary patch delta 1015 zcmY+CT}YE*6vx@teCPH$_hEZK3>!suVXp1n)S{~)BS=I_LJCQVWTq)X&1h6e6tl!! zXgwDr$(y3kuw)+UCMkkG1Z`pAMKZi7SdgJt6$bY z$#Nzj1tm!eJ=sz3Rqug)Bzxb*&s_Ds{i>7Xs?n3^Vhqs57+;;yF%9IP;hb^St)cy- z@12bY@1XJYaYR6qBZp9tfou^68+%N(ClG;u$n=FlMY6w~0#uKh=JH6+N!U^*dbZGG z23xAAH-Z^JpTjX!#Q%)tA$ycD#8o8uiPHY&0t1^1mTv|fQ(pnh8Os~Z2_tjM7RW6Z z@4bML;BB@Zt}jw&MPAg1JdE72K7EAmvL^>^VVm_jBA|mXx1u77)$L05KP!r&@ZQJv zGgx?JT@awXmR<5`c>#4=%^mEgW<)@}uCb`dT#d-V$Jgu)Y$iZxvpihvE1A$HBxz+1 z%$8(2^+cuRs_pj6HxVVKr|d92RoZwLi84448yx2a4M{3`e9EzNLr2P&uC+K**7YRF`Vs82kiKLVX~$An&x?m7qcpT!?_g{Y~tys7RVaL7QR delta 1016 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 delta 323985 zcmeFa33wD$+BSTuy3%W%BRNc>V zp7WgNthIFd*>4UiO^+T_HnvJubgk)JUC})ruZZ*GKE~sf-K%RX&a|KqYLgJdUl*eJ zz%SD$?+WoRCS}&sLP_%Qucoi(3&l=qp9=Axq~w2+`Jc(FP1-L0ZhB==QfRL%`iCjy z`cdN7lDAWh_|H@FzhUHGv~g{@@H#2!fPeGs+Z7i~fxrX*TDoJM2p}bS_)k-C=N9q5 zrO+wgiC;;{UoxLqCqn;3(&v_o|2!rCeIt?3Z6f{r5C498f4hk8Df`DM35ATizWkR` zW=~!Gw^Fjj(A!Hz=KqqiMsE>+FJQu4oP?BB4J{IAyLUw0t+ z-wWk03U7a4lxRtRo+ZlD=lmiie~tO~cpak0#4pmt2SkUTrH>|C}={AyY_S#VGcn+!uVi#O(cQK_~OEc}3}F+OU{!XSnl^c|L1zTWM~8JJZ?B-nb zn?5R%r};O1v>B}&i8R=(ovhuktc5iyH`{1_@)d3Ovn?!H$W7O$JiF0mb(WqtU((6@ z>O6;qaXo-sNjvyvu)ny~8!*UuWku>%qYKYaCW{#Y;KoD9stS z2JX-to;3O99f9UI?+AY3cXOLR+8G>thr_YF8961i&y(Y5b6EW5hNJ2G0TTh)v>r*E(|s!bX7sXa4;n;lm3 zqL(srohno}Z+y*7!ME0Dd99w+5J4aKXmr+(54L1Is%LjUp0y$)+hqtISH5~YYfkgl zPqWW+DpcK!#=7rX#}M7hZT{;OMz0OWa~RDdVmW`f$I)TsT0(7C$*-p-jkgnwy3dEa>!8R{8k_2P+&Fi&JYV&FMWe+h!N{ z6+(D~sK!Z%GEpwtid83?_w4fZHgDZl5KES+&yCqz1X=$?VvA>;dePNqZpl~|z3A#Q z))nnesK4Jb|IU;hyY(vV6zx@?JKhezoI}_ zk?b@0U8jp7>IsUTvLfZVncfu9YTTXP=k9&F*s{0b^c7nF;>7r+KYUj=Br&*6_5>yS zuYvw;5+|rAYIb7uX^HxjL0+Nf?P%IyWl7ctv-AA>y4|j#*c(qv+^Id{+1<3<65d!` zxa~~~j^48zChC?a>Q*G`Rwn9_iMmyZy48ugHHo_4BaXWL z5VcLrD%^Grcsmm6?u26TK$b-lv*Iu~OEJvL?<&YQo9`+J>xny6J6EF6eCe)&6U^}o zN^;DP{*oJPxb4fZIrQ#=9P`nIYA`o0(gH$ghzO2K&?|&8FGYwm74v^4ROKXbLqT{H z|1mVYM@rrfWb81h7Xx_##yHd-(|ES^iScv?{czr6!j#|8dZIp2*W)gjr%rtg~yRI=FSqn zEizZ+?CJA`?`mS*vTzMma`ZnYY3^D&n-6o}&>U^}u9I*YX#c~^rd>l1_x550cR|7b z+$Z3MH=#S__+NMgZ2eto>~Djkh%7i`p^df3tm)_4*sq@fSN$(hM~^I+3!S7S(jrS{ z&$I=ZLZemxD|28p?P0{bMhR3WaE>gVevSxq9SlCgIb(?kbR*VvFNA^aw3?&84Cewp z$j{feffMLST&5ROr$Sd{sz^D(9RzHaU26D5bxLFz6cB@eoJ3W{;*SU{7~l%#xT2INl#<`acry{CAwtpX(DhE3&~f~Z()rl zd;&?ClKwjyn8=Y(uB3m;Jd>6{QUQYHOlB;r6*TwLs=!S!hBz<0Xm7S zb5N6DsyY&^Y~tm?0yPCTj1tI$MXL1J*ol&Y#gfpBi6q*n?A!hv^uS<=%%K~t;YhGl zt%9v`<9%wiQ?pV~|H;M1`*KW`Z6Y8O1 zbAa`MkcH}R1{8V4biDCo9?c?ma!dNG538g=^7y3kqS&;Yj9 zaybA)1F3?WU|x;oSA79{;3*#OCUDVePLE2O-f@+IXWJ`wWU zA-~DW=?T^-5Gj>Ok(dq9lMp31$_^6HsV@OUtIjwmm(X#3-a}Fv_xPOJUc%Zc2#8hN zOA1i~r?!_e(*nq>+FrrhZUAXjwtJQI0Su!9(b+;n>}+-?mX8>lTyBd`Uc z-9B^{J)3M+yS)iu9p(Uu@?LOG=9J3Nlt^C>f~n#cLFy=4|Sp zgLpt7C_sm?Go&y>v03?}o*QqIVi`$+O=y>Z^rHxpD55mQtUM>Tb;vP}x;3Pqnwf%i z>4XfkBFD%!w?Ee*pr(|XThGaDi!$Vg)lkG}p6)bn*r{eEIYL!Yxs_)*FNo1V@`Ji_ zOV^SCP!nG$qqj<_EsR(SJk?1!b{$S!_Z2agCu*Ze9OZ`w*&9_+u@&cWVl@cJnTxYG z;H5ZSZow;Xy3&GMaI(yfz5(zii+c-BzqKGYbF2j{n5Pt$8rg$DSPm0SvqaO(H``)6 z9Nv~6*59;PJiRBQ(f2SQqrtPBH;y~bX!Jyad7l0^<4L!1=>Ifw7>FW{gc$ME2FW9q zu9M?X4m&Zn8ax)Fh;d_ZIw0ZL*Kx8O8w(^qw3UX$i1HjqQiO35&oqoOc(QVxWNxY| z&1qdJ`QwhqWgHE^WpT|#o)p8}`dGnyrI-2AOg+PlJzn4suy^qDp1J7pf>v3CTy^;Q zsmM1+qc`OZ(@#I&+}^%mxVe8>=zMeI=b@42yxj$zf=iapn!9jm$2meXAK49Y-O}ZmIz=DklA3{x^U?^Ts4M`jdgdtUkg{mo@)1)k49KBA`v!ZK4H@81uP;AbBx3kXu1+Flx5xd-spP4$KHHTyhQUZw+wSq(yj?aMk zQcYrjd2YO{%$(Ms<(Or;L0u^@`}jNtE<`J)ry6ZIj+l2EQa>BtfOBUXzk;)3uA9;! zmcl-%neSd!ZkYPb={bsK9<9$SG9Ujus5jT`FStzMO+?-N=!*^^v-dq!0dvtgWttg# zx!}dk2QuU4@Ri>E=KjpAg!yQxCv3iZwU%a1`)wf2T=m;Pd~?@T|7tv zACB&*$PoL@sRwcWedob~C9FkX>M8bk(#( z78psculUGpwwNv|a(7~9vvsH^CmWnGSX<1oAsy4{z?o4T@ZlVj>9r_zQ}?Uji*WLLk!)?tt0R7)K?NgT2(FqC}QVb2*uoPmoH zdQT!`*LX4oP`U-@sl+hE=n#kOz%I1;j1+MwjsreRk(igO%DKeI%fJ(d?C4%YK6Gd^ z73GUe#EEn501AMo;XKKObBJjLA7ZD*^q2Z&I5R&n9U|@6DYx+;oH>1ye*ouU#IUKM zd`UR9mtlbtN6~mH0iS~NX~f9DXc0RhT|_=~7}CYW&|%Gpof_XvK6Ku~`3_>}&{5)~ zQ}9j-p!6=zj}k)(e-b-|aTdsg2Xun7NhbDOr8tL)<=SH55W|5Fwmg#0en9Lv#8#v} z>~s?(9085dDE{OpBWQIZdP_`)n3SNoYMG}~Dp-s#lM>v#Ly??1P)tzTxFsZ6>{Co& z?Xy`+K{A2mzdF=zI(mdq7&&}+QaF{#B6KF&>k0l)`j=G z@T)G&4&~%M?7|B1{qc)i3{{}Wfa z1UI3ZQ*}16p6c_7s7e2>@H@fh3E_{c1 z#sr^HyT`?P$%PNO@Lyc`mFaO#wlsa?drq+fs*-YY;T#5eA`!;tzE3hj}?MfWglw3T%A33t#NQH@oniE_}ZWKTd2r_bf41H-26K&am+t zj!rcMe;EeO>&)#7O)Mci~fAIO)P$ zUHCQ^e%QiR%RNQHuIxTyuF?4H2hOnZA6z*6z?VlTfbz!^49Bj2{)irCKE z-fzD3K}9gx)5YscZ08&6!l$_KLSozAr7nDj3-58^S6%q8F6>1)u+uQz>|&n&U~bO1 z4yd%#dn#SHuM5|?Fn3~({zw;|?!vRp%Rk3feUXcGjtigf!fRZ3tqWh}!dJWS4K93( z3vYAb?H2Bj6J80n2#Ftd;oUC0*M*;V;g=d>w;IY@4WX-hnqSrAR+z!fmAZM^o8`LF z#yn$sE5qzTM!W8cZhmkxF1+rV-pX$dDlX4aPBLGl{2IzHhCKCLu6XD;{H!p~=&BmZ zM)R?YTN~y>d#d!*TU_GX%^yeOLULsrl=GC^7R-V5L@a3A0PpSpKCtm^%}Vsx>)O7 zc%wPBOf@R6b+NX(Fz=^2V~5Ww9Q>dec{JCk<$YAAYwvgA*If7yF3j7kj{axnZ)^3Q z1-#Shu<~3OlZ;S8=FwM`l?~qiX>I=QNWsZTKJj#B_LGUJg-<3k+VSvlX~B@-hmXD- z;{%`{#l+3e2{uMHG1A5yecXCbCmVP+v2A~zg_F3!h3Ch%fVR%DG0R?IV{Vr(vN3nW zn`}&@rj21e!|A}z`wWgRN&`r zJRA5G8=npQhK)H@zGLGHfd6dcwZNa+n3soN+4wqU_|7IcQdNY54&4ImxAE=3x{Y}! zGe>4ey%}<0RVKn4(G>bCT?4;}CGIjXAjv08TP9FDy>51ySIUHjV>Nv~dD>s*M>& z?#P(840xW6+W~WTMn11n&ap9ofq%5|Vc=*I!zpSHEj~#mhFs*^ zm?A!djM}SR7aLQjr;Ss9``MUkgKf-FQ*Yx;;4wDl=->vGHb=89XWB$5@M$(?Tk@l@ zL*PS4_^5&(_7{Z~@yS6_c-d-yl&CrCN5e?9#l>JNS?1)n<((RScguTb`>yIy^P(|I zh51@$hi(nc^=0OxY1x_PWq&OwGY=JZ$ZYubPieWY!>b|4NhdHk7(? zKi`!f?}q&(kl*9Y)QP#-=B=M7X&nzB(=s~~@76hmzVWk69WaXKYYkhDBt{R%444T$ zmJ@endEd@b0UkeBV{zjHZs!BB^yBEy^m?^!=-Zqf{RV7IFfE@It<7m)DcQ*oLdvYp z=RS=7xI^IV$h^>VhhthTUh;sPZgP%rYL@dedk0~U4~LzPV=u$9mo56*l8rD(MH(z^ zc<1g`DRbkvvDNV7-9@Pz66nN`wTCRPq0{zO-Xq1BScSRhyMi|M`-NT2ib=US&G&v+ zFfi$`@LFoFr?RG^p`yMdV^0zm&>yO0fn}meTxX739vj+x)ACrE(){9z*yn1$n$LIK zT>Q|^H3@M=S(PzYyP{~>k-(NYw=LVPUr zePZv?d{1drT3PX1YT1{Gm;H%EV#99SBGJ9*Sh{yDoYlRM9!|8+ZM-7UKCiKVnN|ZA zo_n}lf7c_%Pbw;VuiQH~G2z6{PnFIXSfZuTE~bNi_!3G=e4B>~gCBzAwBXM2uL z6y(nuoE5K0lw_!DkBFMit*W|rE>jbU4x6v&(d|Zc?MLR~4Y7&Ag97)3N{ZFJ2h4*T zVzZQ8W{*o_oh$AUry836d(=Z8eBN0@&sqHYvU9TY_ueVM_v(B0vLEPmLkITXQ!+SP z_1a^1$>)Mt7_M9#1 zpq1tsm&LNvmKC%*XUpN+0>9nzr|~5Pb92qBE{nBS_L@&z78|OxGxf_+vAyHPo$8J! zwU)xNA4=If`scj!w7nz18@AJ_z^+Mahhg{R;%w{T9r6=KW4pa|KeIFb^t4f9AMgLv zcc)j4e(G;uby4@4H(wr`9$s4tMXNUB&kLBz^Apu(x2brU^u-&!S!UXgc&ga+QLbj{ z>tcShX--GYjE7p`(c<)ylnC!~TW{WSs0nl1##pyRhbt2KHwJ|MXY-oUEzwq2Umab8 zfjcMel%lI<;h=oOoOVNn&n(&$>zr$357BOH+I7cmJDO}yc3oU^cukREF5DCwpVwpE z=j+P$uS;h?t1NvWAPW^N(LA&%_E_SMikc|;VU)xEcwH{;bOn0roQrbRLA%Vyu81Xk zRUOvMXt(xG^TR7*LzIWi%7$32a+P^TLoCtiQsjF?aYn=VXA|oNtaK zvA(TN&$-iM1*vmkpKf{T+9_g?PuvQHQ%v8LvChgMv&WUO>lKgr#+9*CyBgW=u|`cd zui8=A$I6$TrwuuLW3jQjY1gxN>?rK}>=SQ$K2*N9JJPmi*9L@Hc}hvCjCSyNjm*2Q zimk$asMF>c9=$dX-W}pUA9F*=zc)iH*x1gsC*YULUyoiDF%=`FulF z=b|(BRW&cZ2Dv<_ow?!K*bC+d8xlF@;>OrMbJFeJ9JBXzvDeLSZ_;zjLD$EYDJvSz z_|h<6y*`#>7Mz71;N2R_QDnBgc}+vC z#Rf-Z0TyDV6w}?=NHu2D-33|6W!OvLHQ;U7yy6|>iX!NZ#)ij}JsiUwuNxPZfpa#t zE}pz8MNu#@B+U`LGas3V3e?Zyxu=+NE^`)?THmeDio0CPL)FV#U)Ws9SFy zd$nz3DM|l@*r<3lZUlW~`MEkij}%ys10=8D7}QRO?UcfPz}gulfE~sVj)1!<-RBeL z2cdl7JAfhGdqt^&d0~n0%9q82zEF6tT1hQ^k??M&&=1Rh1t+Nu!bZcpg$sA8=IhFB zRJaGsiZEZlRl-$RIn{9cIGhc4fT|XL4LBuy0pjKj^H!oSoPx6b;bT}f0^t&P7YzT9 z3qQgqVb7rp?M)c+)o~XX(tV>|!8wwOW!pCzg<-=NnH2*u<^amnB0Y)65_=;TVHx+0 z+X;;K7;ne~G5#7FDfUh0>yCH});E(6Q-nTI_+}C5`Xu3-O_U?FEO_fX?GSS;_pRo0 z2c2&n|Ati*`Y7SM0E&3WRPQHz7cx(p-e36E66NcIh3_I3Ql^g(zIEgck6cLK)-#S1 zBI%I%E+(F=&k?>$rT|TgJc7XaHtbe4A)+ncWA#4)6v6T8ia+HC91(59SESgWX5ysaNA&1Fa_xzJ@d$ zL)(0f9XzP&Y4~EJ@A_}R5;_8~mDZN)CkkIv3U64f6WYCKK;MlTlv6c-DX*==tI+Nu ztYQ6D!o6@*!+gEm6JCTi)xy^x6e;0Tq2mqTfiCU~UxHfz{_qFr;CSy{v;xt&26nVs zj23@w17I3qNcZ>WrE=uY2!p@wsU)z7_%QnXgIO6ZvWA9+60?u;O4_#$2kjPI8v2KA z0Zi2bL-}QZaHdWlvoSQ3a5el=!<|sDCp;1bY2hDG&6IFH;)-|a8Joc9KhRJn`d;8% z-grvOY=`=X{DGB2K}GJM&MHC?xe6USuv&TqFGhjq%f&(C_CK(uEudFpV|lgtlvPQ{ z$1$>j_$)?_-#`-t0V=}l;Hbwi62k9coQUu`j1VRKZ4$GH8h#8;dcu5TUkmdlUP|~G zgvT4+2_;|nWpsUi_$a*#$56FkxC|3nC_D{V5A)r})bQUh?84y^R4o!-hXT^Vb!ejW z@UysfiH2vRFJ^@IB3zl_CsDJk@cts)Lkq7jLH&*JRD?VyJUoGSeZwPRC@&laZWZ>z zP=1(?F5TN$qk0Ka<<>BdQv<~5QQ0f@o5Wo$Ju#QQvLTGj9 zO~Ew`CW3cC0DgqSsEG*QD5s{0Xm~Yz8EWDQpN$@@g|9>nQ^GI70dIH`viZU)qJY`s zUX&WV>{(=kr7fLk=`%z)8BR_{a7Fk_92BAb8PKlCZ1el5}N3epg6AG)$KhT~QsiuiT zteHPD3tmUcp4f4+0OtsS_R1WjWezQ zh~RrX{EkcT%V%IURSSL02Rq>hWQ%-)Zmop3qerP>vw%%J2wAl7&FGma;lH6Ddc)_S zKEALQ9mgO30;L4PAJANQ5LX|eosa$z`u29%%zOm}gtC=%7|kLs3&oWt5ZOsA3894b zl9Is%Csd@c;WT3rjECANY-xY?g6T6ws6^q+s2d8^N)H$TH`k*F z=t+JPN8ci|>HH>+ezo+&GI0%caw4~30O&1W#F1awq7D5z37(%eoWo-~!j%gm2T^c% zJTvc!>_Z<6Paxi}^Q$%CiNtS3W@UgsiJkJpNHPw5GMB|8kqhX=NC;XWd$Q$X&W686^z)iV+AADcbH^MBR!~-FDo07aV(RS zjntA~9r-;f9_dZoS5`dImlYo#IU55f(vNt4Xe;D~Qj*)sc#IXpU+(+aWV!q1@ zW28pxuQ26J#ej{RI0Z_Yl2?$V+8Ac{D|!C5AjWZ6<|wTg=*USdBwxv6q$3j;=`tmc zp^i*ssLPc+#yT=-J@Qm2c^r3<$&97^4wHeXYYV9`g)o#BnfEYck;7P^A`9L@9+8Y3 z!V{>-LK0f!C^~H93}SzzoE2L{j4gC71&h}pvsYtmLd(;x8irX!&Jk(mN@#IQo3@2} zI}N+nw5y5Iut!e2h6p=az-tN1^uZHFS|ee#o*X99t|RQLk4FCM35VQ zKUJhPkvmIY1PeD1;y)Ad+gfQi?Sn(9T6*z3xDx&Xp~AQBuqnYxx*1(Ly>vYI`PE8# z`Fr%0`_S}`&OS7~6HO(#5lye)26ml(BIK2X+w}89dS}Yf*hR2Z#YTOLex+Aa;oVm7 zE4>S$rnH(mOQd(DHok_UtuBLp&DkhWt~Ngc$knEkMWDm$J(8%s#E zMBT?F!I+CK(v$E#PVku#nh{i*5()= zV@8ZtO1=5Uych`Qt8|Moj-$?3=^7BrsPk32%w>pvG^`$m*D>N6CHk5A8Rj8FJ`(#v zeGdC3Y;`e$qsQ#811?8ZlhJP_YMv>O zZs52Ds1N)5vut;Z-Iy#SD+t61D?Ymij7jXo9^KxQD&S>wRBHc43KhT4EI0L zsH7^4PMBq)8Iq_rK445TB~fGWMXG4F=R=t5Wo%$w^F5z{=xaR1wreekI^$>@M1drR z7&p+^vEp527?&Aq=ubC~ z+lgByKa7uxkyI{%kXz!U_~k4wuw+<7?{GOX6O`z}SzDki-K< zlubEO61$9A4y;jDmAf|w@r z959x~(Ep>SdTxd2b)yr_&GYO8@s@ErU05s&de``x4Yov@d(Q}R`Z!No_|Q1SaIcV( zBgQ=p)=CebHyw?i2{Tb#UW33Js+s3w8jVKO?@>k;@&0I?+AkZ|U&gW$NQSG2(FVfc z7p$Wr)qM2MG{a!e7^SX!+THUX^1EXGvqFB;T0CmN-f6g*N5NwqR#CL4K*dWr1#+t`#-)%6_z6~_0B&@A;nh^mcK*fnO$Of|;GUJ$3tOudW) zv@lOf`Wp3gZjt&P^3)lZaJ(*2Q_+Wq7#}iPXGyi;##|1T^VFV@j53a~$ycaTL5wxd zXB?9&rQQVNb#~R?sFy-C+1SF^T_`2fj6R%b)~gMW%rZ`4#V=N`2QkMe;ds47PH*## zcI@68)SDq$WJKAN8`aO@@KR$m^IWOk0m(9>gr06uxmqnZJ}Y4RUoEM1*^8FU6VdC` zCKP_9u?F>uUN5J_Ek-tNZV2?%v%wc^qQ8?f=WWI`cC@=B zvCSCGkZhO4cH=SD?mjuw-J3K<(8B%d!?5sx5i11ousQ`Aj~gS{5RXY>kGz_R?v~$a zep+75M4yzzGx7>3xH7-h3iE+Yr|m23#vuOLrX%|bZ^MEbJz~@0eIm0B zs~A=5F$HE3A5+6hIy#n7h@5JMaxVfejBnA4)hvZ!)r>I0s%9%ILHLa%|Dgh2MI)sf z&!7?197&`ZeK0Q7TuEda`{N*5DZEC{F$!oQUlL`;%P38aE03X|8iQ|LtA&ynZWLf{ zP>U7bv6yBIKr^dtBr)Ic!Be$V!Ik)Qbjf>RR4pTg7wt1MxB_ITtzkBoxXG{H)Cc`I z5~XvuVMGJ-J!bWGVlC1SF;RcVsoo#?Eo*%jcY7D)wZ$B$K3HHDZY;@2vOBAfu$GT2 zc^pLQ;~YbKl)N4EayLyqt>o=t&7P!WpOW_s1F(mihy6-k3Yt=Vilgg*lGlmVd}a#r zysqS3O!uE9@s^S|9|KR_*978SC2tspyZS;Eh~#@p-Uf^t^(BfvRPr870rAQ^AdV<` z_mzS;K)s_%UJ*K}dax71`K6L)pu?!Ik~pU1T|slNv7qmiJie5#zQHvZ|A=G&CRz0l z9739!_cr749-lSnYF-vA^!}fcpk}Fg|ARGD{qq7ue~+4XKdh=pGH|T%^7Z zPfx$))_0bc_XRp%j`}?#yw0D;yAtXTBsTc-j%1lrAH=i14;g8XygRYQALl4iy^?D5 zW9H{fl%)L}BE0Yvayh)CDph_iGfyFH=RAlc<#0H?_Y$?o96;2srOg<51wH}*?6vOBSa z10u?8KGmfgXeiRmV!I_9DuWv+$v_<5hC+7b^~mDYilOM$+TrNqMXXojjFry$HSmkU z+XdWo&bF4Q31*OC6uF#sk8|ZXhUipq<*30#9CZ!X0Q-30RP*Sgv8>ZqL&>W>grkq& zOOWoq2ugaJArjwnd3;JP@1BprFIuu>J{iQw_ysd^T1nL4puR1qW6$Uq6sMDX9$G~+ zBr?x>7Nu#*GQ2$3EYI6{+s~(oKsVEtr0l&5^KxPjQrTjlZTb2N!AU-1W@t#s5 z5ACd8Bj8Ef~Q^r;-!as+RvKt_)n7we8Q0innqO@Ax1%p(%6EKN?6bFXV z_-b5;jCEV>Q;T|a&1Wl`i9kK*Inil2PAco3|g!08PrLkL~ zQ^1R|0G8fiMv}GI|C18-yGnRjN?w4fRl+N>ge>fOMEPU}^ix?v570{EmX;Del_iux z&8ouDpA>M^Re<^O6S3$Zc9f0M=r#-*h0nBw{BAn_iA#&obd{0k>+hD)sM^G0?YKnM zX=c0Ku~xGCh0v8mB_CHQ*U8HZkk)^fXq=gF!f>6m$8Yad$bbE_Rcf9|8m-qPtzQGG zGjfPgI8-Tk-W6ILt~JXF&+6ZMwuy}`Q8nVsN872yE~Sd z>{aAcY^luphnB2o{UqzzGV5TBN>TYTyWzSPA1c998ZT@yv`!jY0#(cR^*=Fmu{89K zH1u34I*x#gOGvWwBGY?a~mR z1Y3sgu?=;YEaS36T2jV#c?erV3)33d{QUV*QoT zR_$w>D79G}&Qt4pNlWb5kr^QqJ|1S*pvOoG@;wEs#RwSkIq*AA^ z+{9STff*}WH#bpkN9z_VT1j@6-%_w1dRDk@W4Jy7+2dly`gVrvdrB8z!MTIiBn{}E zJ$BIbZOpn0WX}@-TG7+#HV|c(V)LUM11TDiltzC4#p=b!=-FGymb6^^rilu+Yu_Gk z$nVJKUc&P1dwMnn`|w`(V2xIOkhxCkF(12U269D9@|BCG#fe+8(IZVASn>1ieZ*MO~ta+B)#K_I)FH{6}a> zQ9A)lcKr+(z!IeTe(nj{`<9BesiCbW3s`m;9DZj5{V+!(fR~h9B~i)BPHz41^fKl|41nc zrOY_0gTBB@N`FvX@+ajLLyNnz(w}MlM2Y{ulN+ny|451dP=K4GGyjp&B>opjZg4jL zBdz%`#rf~yf26b$N?at~{YOf>ptQ0-Zv99l*$~N^Jz#DG(~h~QRuBFxz#iNkbRT}3N0}Pz%j*iv)AAcTN{`@9jLLrRf;R_BLQ1az2qG!9 z!IvEAjg+EZP=@c_;$x^Yy31viq4M8W)`EWIUB(S!xObD$R}$t|&*nWbTVw#H}EfK1~eb=V2`A zU6j@g#Nk%ErIr9!z5-X3uUob?E5K74`IT#Hh5A}~cPn3zmK%;^*vX*$ zx=e&8$;S9rZf&-ZJ~z-pzYUr*)891ShyNR>+Ab)`3r}iLmfde^IJfMQ-c6R{9RH1n*h(?;p(%8rP?_UVh0;-*=a@fAt27_RWt}u%4p8T)O7la(k=7}a)~PJ5F9pB~G%tzc9}u;kYiuAY zzm21$VSGtYesbmbyQ>pIAvZw7bgrG(Bfk}jda1b(_i?(bT=+)l?;zg>(tPl&jMUlZ z?;y>`(#j~k3G~yTD;6v{4eQT|I#<;Xz>wXuEu~1ebVdO(Isps|QHvQ`_lTal9|Zzgp|nW)^PDY3q0FCF6q#+%AA%c%|;ZI#^l^;Croo>m?on# zR>wMBs?Njk;vUDMa?o0w*5{?LQ%wYAZEEIA`T|PjBCsH(3GxR>&t8WAfNRl5sQ(ug zQlb~AVj z!I07|0J0nIPC4L6?F7wWqqIN9j~I)-(tTqw#20v{faZJ7-Cu=iWv!&E(FC=RBLJMF&q4mGB=#b_ z^g%Ogc1zX14h7y(Fsbk>@*|M*UO@BTkqZxQEkgd<-;wkG4DrJLYshi^_e%%(U*37a zZlF59Chr0{FT=b2y1Zrx=x&hw0$S0kH#s zBkL9^#7ViLVg?c}pj&Lt^rJ>eaRf%JD$SOvXST=9 zlXo~~PW4l{mg~ohu-gEFQ)XvT+Y79tVBINMla)&FJ)6dQMa>XM7&ONTueJv|KHdhd zyt5ES2ei}?bEQxwHdc3aDmg&jqPZO9^A^nj+@gWPm=4x`R$mj<$6B5al183^W(~ue zRmTD+%MB0bYn1grx#m5u#xfS%*JAy0Y5gPQ=?Lo^rS)1263hOkpV)7Z_NPEvn+a<@ zVE<+q`bilzaY)=%tz2qWzJ_~tJ-Rs+YQqQ%{MwzYP>J8FP)AvzQhyWjYnX>Rofk#T z%KXfyjO&z@jZ<5HUsB_HqLsx|6yLKWz*zt_jQu6D!g8467WWDS*Q@c3(aLYq#9*PU zZ)x)>5aHsXr{mFj=}~W#Y6bEVso4V~-`f3e@N=5K9P}VF^g5p1`q4^*<%Phr0sbE} zIYlpp3u#Eo^ZwW2rtIvMY|bJ4MTjquicwA;HGgHXN|G2V$^ zs$^HDlBj(f+(*ED+F>48A!8hu-g@TF3Ua^VO26EDfR ziD*&Cgo41OMi(k1Ij%NvlCoULhcFw$p)xm^bfE*7rC`psP1>bV)ZG@X{k77l!2g8P zA9-((3K%?TvMh>5LzJ8V+5Jvos9FuKnZ;Z%9W^mz7C6)3b7K$mnwd-Szt}Gh@M*h@ zBrl%NgZj6Q4Os5U_eeH@S-TqGR)E&XieM-ej@4Q|ICyFxrl-zQWY_ctaNmS}y`}HO zmEPWIix%3VpTw044?*D@>&%Es-6S3 zwZKkhyQ6%$ujN8eW95xvF=t~} z6_YJ>6qQG?(kQRDOy7rKPHAj_E7k(}x}0ARcgBC`c{3NHH+(ChaWz(U>n8OZKI^vP z3D;v&ro1VoPeE!;L~lvEUxMy_8V$cK)?%PtKD3ONX|wRSa!_#(Pz z)6L25w{tOiAk+kT5vIECaxHr>#I@`?(sJ#4C^Q9f6%#_=Ww;cp2Vo#7FNTWyV6j>c zUQY=6E$UjyZOMx1Tv2!NAAB>4gDqXSfysgAsSBLTjB2 zlOV2h1Tw?2;~Bn!at<>T=*`HGltpZ24o4z$+@%hRD7jHFKFJoWyp^JAJcsU9(>nr@Yv{2=PCawthnG|Fju^OFBy-(p~ zp44+4njjbTMmp}HRm+!Wc{koNHsU%AW%VV6{YKtl7xk0*ctD*i-;LpFYqR%Zj!{pQ zTwan|+~IY|Zpfd1;q64LMzUJ0im1=fkZHQi#A|9R)5yK(mpPMovq{E53?I-6jFT7> zUT_EG{3Ca`VnmSsH7m8`A3q>2)+<7|0wAvM2JfOb$vW|llq@KKWmU+77{UKisLoV) z^=UaV;v!64>dOi*xoytYB5=-9Fi?}W0Zxme{wCIZmaGIXG%fA=daRe~g_6tFHoz-Y zt10T6QJsJyMITWl58ThgTfQJP+=~`Wzn+dqu!aZZfftTb4)8fzO#I^>-L<6F(*( zn#!HK)U_?VgTax}pIdj^i7n^}nZ3C=w@og?O5tC02^l=V`~Ca}3d0);!Jo_jtH8aw zygn1dA4XsBZ*2oLY}2g_0jgM|Y4|`y!v7k@+^<{qh9A?xe4k8i#3j?^_waS-E&k6b z=3ZQileY6uqqF$W;da_GRlm12#&9>;WZXN;hgPD#9G(VR$rj@-FTnSOrN76EIgUjA zw{0Q*ja26*#!_cLkwcC}BmUgAS~S0$VvW=KiFpW5H~D(q1I)<-;`Jy_K7RRP_>bt0 zX&@#9p=*HJJj4HS=uOF1d^OREEkTKKKyC);`F;{j+;7b)JQjF z9+}0ZJr+GG{dsD0kM+N3*T06zQ9W121k0>5{`qZmQGY4=vAROe!rN$y;T837!hT?) z%)y27SA#AclP(^2to~NyR!^51xtiM32_K%TuSjnC5UhVTyI%^}^Cg?Boy|RnCQ%ni zF4r-eyAa(#T_m|&$!zX-Mc^)xTrOKS_hke|JwtN2aM|1#jfsNR-hL;oC7eVm`-!Y;72 zQkjviM7}vVhF8DauvCbd* z${Av*)6fa7U;8qem5*chdCcWTUdTKUFDf#Vqe>$Qj0N%2Uy;IGCI8EwA|_#DBYK#j z@uj(^qJvvMBOy*kTgv}~sfi^w`?nT@!rdtt!Ap8uiK>tkaWYTbC|d%e-j;x;{+0mw zi7Y3O-@M^RUyj-ES*&yO7e`}Bt$Es4u?`nJZRn_*d6TyeMlLvZ9z3TM5oZg1K|eO{=wB^BpCgQ%W|Q zY^+pRBo)T;L|y#gm%5c;g;}7+yGs7qQe^^9mdY|^E3o`v2#RS)h=3yplp-8DAe|_s z^5?>)S#WdLQvB$-8b41pcg(>k8=VqgXLf(hTV%HGUFtVeyzve(`H1Lluyq!6> zxU@Fe1}w`dBL0LZ^6*sNA|T?w{e^(1$`%1pwI$%GYm0!W#uD(a$oe4? zF^SIxbC8gYPXYPAV*&ZVuZIPP;55vFe1^pi0fj6SoGX2p#Mn;IFoA+SUHWr_9&bIe zBZ^YRrcpePm&KkGfRv3&HqUG>MV#dH{;vT>NX>CPjYjf_vnFh1kE%3NQ{%0T8M5@T z$8geQ=CQPSirEjsE~8}LG3?~*&zM%|tX0Surw}U1A8Zw4C^^M!NR1aIC(5kjX)F!N zC#?6<+K{jew2WYw6jbL7&GWqyZyLojgU(+<h88OR|Vpg|2O*oXQID7BcAos=)V(==ltL3|GyReqP@$FDfA&B8&90ke`2ltkz(umif?Oo4EyzW3umzpTU6Eg>kkvR7Rz^taIG!dWdBoYv)MZp4etwA=DKn=h_W+MC-SEztCQ7{r`D5vN(^Jx09L%)2eWj0&Ba zJLSZ^iuv4Gp|BYrnjJFhhGu6s&&rKIt|V1i`e>dsChV(6Zzb|s0-gdb0wUcK@RZgf zAj+@=JY}^Ah!`1!o2UF10a46@-4rA-;KCLO5w{u;@Kn+wAS$y2Jn`wjAOmaWuy=v%CDj){}WGS?vA|JT9Bvrbg^-yK=ziL12C<`wby zk11IR)JYYcxAM$KXxvz~H#e2U7i5#Ah{=vb6L?kzS!QW`NTwwl=g6#Fi%R1?WG<49 z2)81Nx3+J7yfluVT$W5zX&cY&;mBRP*RK$0vQafB_mgdgse`B`jEZy)c3|EayHeSARnSPUj!p>Q`p z8Qp*r`6(K%sxq?8jqT!P|8WuR{rd_TSFgvs;mgY3|Mcg*dz*dz{#3J1x1tntQm1%N zvv-G9Ipzc1iqg&3I>j$GCojutleu{A!qf26-?$}-p8=mgcLuR}Ls50D8Gl3dHvg$2 z{=5>pE``65&EM1xm=$Ysvsx3T;kh<{d0WTP6Nut?I@Ux5Kkc0Ub!9>Gy`AHasLhAE z#HV_cRI_*Yc$?Pz!EKK;lY;*ROOyDiZCt$LKWYTL=Bn=Td5W+3NcZ?*kB`5>9S-=L z57x$?QIv?ewNJb_W|hY>(gXbM?^IcKSmIE?+kCiB{CQPsST;QA2rG)yE6X zb4M5H=I;9V59SXM@WLbGY38FN;{N7CI4I3WM#lfDm^tUfb+hB_xVK?ZZ-28oI{vyR za@y>LvlmZaI(zEk=?iC_v7q_Waq;1r`QogiSo7RT@$a+D#PXspX49hh3+9&Qc)B0| zNNMUE{Pw%4d|aAoW~?YOn{yV&E0yL`mc&o+ncMk`<_7Jf)oF@Xf=5=Av+>o%c_T{+`KOh9T9lQa5MHmW&4sM3?NPewUc! zMT_OkjP1muiSGff-dMWq&ab9Nqj9k$f}TqJWw?~Z55ml1d0utm+Rsn(vXc|zbP^s*;*Zy$oEWDq9*iFwX82d9NN|Q^ z|7swZfmdSqRK<^%hdHq#I*jw`h!f*<80RGqKe}O^BVl|l;hP^r=H>S;m@(T=1m@^t zao(9VY4uWYdh)Z^GX%5l4R983ea`sw)_fx7+w?XR`Ql&SvpbQl8G@ zwVfTE$}bZ7Rot?oO!MlW6RW1fD)=&h6XSFk=O?h4yyR!2X>pmo4#mo~bi#V}4Y$%b|VGVv?rY!P3S_&xUK&WR@bcWU5U zdz_d}XZHHnN>B8b70sF8t$Hb6E{s(X?c(kEwP;nZQr+~Z_fCOw30{eXl?r(m=0^8= z4bEez$s#RFBzdbIDp<&yH>_ZScO(Vpk=tS^spWF*?C@N4OI%90G+v>FtDhIhj(5I$ zxw&5VX6d;auu)u{yiVi9*3tYthjCs$b7GukdG?ks5FGF10=)MZR?Qa#oLH0&<1JuT z#W*ic!+3j%^Q8gfEY}6*#PW1lo-YPCF-}`N-suzX#Wl@Qc;}{t(cYPJhX)R?dGhZ} zem+_|&U;7_&iKfb?cso){rY3MYzNE1K5;cfYi zo%=0P)6Wk}2f_GKPE%*H72wBXnUK~g9$!aT>E(SjS|asLi?{HLwbW90UEJC^>~%!3 zxL>>xc*vA1&YSmYv^ZWFZ)UW)_Zc4sc)##rrkD3MJiO?o^I?zI5fARyT&b8Iz+Wb( zm+$buc;`OnH_Ly~&%ZCs@*m@!zD^cyS4=DMmkDW|;&IbC-lK%m0{mq{TBmsDe%Il< z&YXCP&y=y+f>^vW$a&E6`PalufxV@aj((L+?~90&tp*Ee(Q2n^|l;Kj(S@jtX|do^%$|t`*(9R)#c|};lzuMyKhU6xh*~Cw)Cdk z(noGf|9D$Ej;AS`uspBF%5wR<2`h1K-?Jr};5PXG*-p3H(qnH+&$}(X?Y8uh+tQbA zOXIWaj0w#tnK5E6qg)>q{(k|diPvjYxf1SUw}ltpmfn0@`owMNi?^l!x-FfH*Q7SF z8F=NAF(Hkg75x7IN3_bAI0NrG8%|6Qzb)D#d3jo0zVBTe{V4>3+ARIUZFwasKCSOTYI2)770%{(r#v?zZ&r zmc9qaSAORyr-1j_ec4M4XpC>{g%g+4_qOz;+tL^`En{N&cWz6czb*Z54liMQ^b_yL zH=;@2509pm@NRC8{^Bhj5l!5gup?RzUlo{~mgp558_l;^OM@$#Ijs zbH~#7(5M9XGZ^g{Oek&$=lWWB%w|+VZ`Hi=te&emEKbv*RpY55Td=w9Hvjh9_X>7s%Q|{U)l4; z3%qmhMUzt&2BGYDh+7ocU&3N9VP7;kw=L9PktMvE`=aUIl^XH6TrVi#o}LwEcaw~BO}-uR1K?K4=j zF9sgS_)CHPHM=ITzh>749?3E>BT%_>Z#@E5n)C%-+Pu|rj&TLUfiknC;# zAet*~hqwC!ymz_NyZS*it--FKl;1GBiuN0ZuQYRNgul4AD16v~zqq%3`ol-Z?Owb* zbDB5e!|2M3M9>gn6R#vs1iEA4k(t zaJ+JEze1RE`$da+gOS}8hcGvx-vl@cb5ke5>>SfccHxd?J4q#in7;(n)dexWCzE8x zY_NCk<7l!w5ys@tmWCI~aAEu7@~3sk>RqW@n8_h;yf+G562| z(T7WOk(k(G|5rwM?1jH1#90L$dBXb#wdNiKW5PypBCc2GV6+}XEY&OsO+FYcbI%lb z9R89j<0ou*WEVqkG4I3U*Ji%;$Co24GZc^eGrx8%g;usXh)xras>u3{Sf9{EYMj5`^ghCh~j8IOFT3C&|S^m6kF)V0sd zWAdPx%|B{BgU3H;EHB9%ZsI7rh&T@|INpgo=@mK@o$4aSP4^M5|1unIq->uyfPmJdx3nia|V=zxskBf{xg=UU7?8MKPC&NRD6z{;rLU`o8Hf0+DZz{>PPI*jvR3+H9gF#fQ_M@oFO#IfwQ88fh9tf(Iz z{gWBY3jH$<%t~-Z@XOqd$8;J6*he}t$(wuxmj(#2Du4HX%3E^;2jxRZW15D)q=&q# zN1}Zh;*30kBh$U^pW|poh%@r=L}=mX(R!_iz?lBUUlPnYGIMpB`AyZ({7x&)DzaL6 z9)>j5b)lotr7p60)U9JE3;x5j4S$@CM+Y65f&Vb=#~Jha zQHDng9UfW!3A1)EFL#zCZVOBmR^vY=*pECk3Khg-lt!Fwrz5kx-p8W#@b-v*CTYRY z)A$dQzZ)RVe$Ziix#O`4_Ja=FJC<=QhKqijMj7^r4%<7|;_L?Mw&Je{T z9hr^)F!4z|X{c8dUuTaS>UBSkvlrj&ZXbv6ojCCDc-_oze)3%?#`$qYH#0xaTwvzs z4!rR#%kXXf_4Lr7ogYj5Yct=j{>99j|yn+1^g;#l8Xd4J-=ER7K(~Xi}|TRScabzgywtep}8m0+$HG9H2jCj-)pf( z`SA$%T&`VSk9iYLM3Y>uf=U+UD)3JcD8c=uy2ZIVc>d#@Bk|bW+zpRyXe>2qj$p^- z@yGJhGZ>vAJKYP&u+(i1cm z!RIeJ@+5%i87sq$H_yt{L7a{}>lblWSQ&mGxJtZ6yg|H`HxXj{IKvLf*h`}k^-(V! zc`8@{pW#`aH|gLFE?K4#vgokS|5>~l;&fzAFfYH=&3XBK>j;f`Tk$YpBJ3r<^UFfq zD^tvs@EA3h!DE`4duv@Y_tvIno-|sRx#x~HkH_PqX70sIC%IUd3rw^Oet^g{8?hLV ze0P-Q+ubwF&*JfEGe3xAnq_!)nrG%&iEm{y&JQ=2nqS7_Dl3E^YGM$h`NBEqA=}RladM;R*E{M~S0$l%?u1cYs zR;WATbR^j?!uPiQ-moHmrH%{hjVwBn5|qg=Wr|ywe#oLDMS?PX`^9wNp%=|2Pn0c8C zJYorcFg#ZLxOp`mna7G|<8iY1Y4gi?WFE_Gz~fx=Ry-~+@4zFUKv-rE9^b~F%LKnP zxtAH}CI0!2O!qtKd}K55gUTuhCDjXlw{;&qEGRS3j3WLgCXCbmRSnAXoE)(-{<)dy zY4{Ikz{97bm0ecgzY;-VUV8bbRd_hu5r3>OmpOb&FU>d$U}B{-7wRt{*sX$-e}mvE zkh>AfFrSX_!U0nWG-CWW(L5<5f;{fPNie6b_)8k$t@ zigradYb}Jo$iiT@C?1mV)OR-?%h4#qRY^w{;Xh1O@y9Z()?Xhe!*%AbkHuc6v(dsS z{7Cr;mTMV23;It{a7SxoF|iHIeOi5k+_z<9Bfy zfQipq>|Pyj^EtdR$whav&=@@8`rFTL?43OqtSU-Je-G?iF-o z34rOO#cP@)&--ELoW<)PNk?7?;`~UN%j0ULBTIw$EsHlo62|R_EhCTZKh2OqN0tRM z6ts9NBBvh#{Bes9Mv{)WYl4g?nSn}Y;?ciK zz=DS&i;k=f%J^3Uh>t{)j=UVi*KuCNxtr2qoEHR)KZZCRSr?SwZSjdnx=ch~2{QO4 zEjEIO;|VJ?8Ci6A_B?H6c$i+dGCYFl$g4p;{>1?5;aQ^~LP=;D59jyHEOjU_#&rii z_Y+?92fRE-*#soh@fVrw_5LB6Rt=#fB>OTn5C35rgukTL!JLa}lqrNqI`W#g<%ej! zxUt?<%#DYH3wRfEY*4TNg0U^`?1T2UV*3&2)Lz`h%%s3Q2iV(MV zWE1|w#JRc5Mwsm&jWVV1NJln%tu98#ZfdK6_bZ7_2K)s%5byMk*Pr$UKu2f^Tu3>ev&jU2sL6+b9?Vf_EIIhN3KQ-{+A;+pwstr}mGK{@$MJ_{RQ(ChN62OqX5ufxK4V&pKV?o2i;V;5N2h$e(A$y)>b5GcVzsOGfhv^giA$u>fTch%-NPdaG2-Xg#3;1JaxI561 zUHA{v@AzZ9jyb}oJx+e-z39*QToBof5b;<1Tg=0~g>2n$XYg(kmJP2Slm*~cZR|;oy9%GeZ_;s4~s{M z#|3u%B~Ox!sp45;zP1h<@sfD6_-*mW;^X41IA+3nx@E%h!^8l|;G4-|e43cAD8u+N z@is9}(_xt^I8}${l~!o~w_RN8>_5Np7iM%8^U5WR_Z1HkKP(<49w&Z6JWIR~_J;o* z&F-$2=tl9I;?Kq3i!Y0R75^drN1O>~pRiZi0|z@nUdbpd=GzJ34AsSa?=Xz>Tc)9( z7q1kr6|Wa><&X2jnRiOYJL31n2gIL=c@vkg9u9C7`djfu@lT=I|KGy|{FnHaI7^mT zrF;iGTmVNx4V^45CQcKV7pKE+IP)En!7;AGcw;dK=L+NP#ht}H#C^qs#1F^pI-_C< zXPkJFc&d1oc&>Pnc&T``c%68o?_mFPUY87xd>i(1ulShwl=!Up2k{m0HSwR~fB9YE zaACY#SLmGLV&XJ$d2v;7J#hPj-toM1ug~ipx4a6(O+r+!Xd&D1P82vw(k-&#U;uGT2;`8E5;-AIW#ea)=v$(Ls z{9;_3YtO$GC8Lh`9&umsQ1N*2bnyc5YVi?q*RLhPZ^DJG%bFwReBwLA{EA#yzKgi8 z_ikKjx;tA!Tf|?8&xvn{{kwnIx=FyRfp9TJ#p&X@;y!_cLwks1JSv_do+Exi{IYnP zc#rsm_`LY%oLGL?>YI|0I}(c*5;qXH7Izi*7Y`GU7e5u6{eLb@z{|zk#e2nv#9xZP z7yl~$M~olRWpub8obl9>CK(*XC0r|Q#P^B^iXRg{Blg5EiT&H62m6id?3Rpnxnm3N zD;^{sDt<%!gSar>VhlSF6_*iL@*V7dPIbwsBfd-AOx#A?N!(4`TRcEKSUlVxkI4?9 zF_JMsJXt(l{H%DJc#rs!I0s%whHIsO+3$ahSC3q840`*Chj4AKs;JJS^TW{1@SuZcJX_3 z_|)>LWPB~YB>tZ`Q@&U)^NNd#%ZqD?n~Gfy;1;efe{e+G8HY%GoOqh}Iq?eddhsst zhvK7wgX8b4WLy>hCC-XB62gWiilgGn;=1CN;x6L;`LX=4(&3WvxOk>`k(dL|h4XF} z?-m~rpAdf+n*IMROu+w%`Ke^MfI{NZ;_Bjt;&$R5Vh&Fi);Su^IR8(UjAz9!h}Vg? zi{BG}D*jr0N<UE&YL zN5yBwSH*vcvlfVTGEp3LB~e*iSKLzEMciLJO3WKmhimjX@oMo_v)}*sB;#}Ox8iH! zxPq|-$h;-=z`;$Gshba?)sA{leV%fzpWcZlB?9}#~ezAXMz>}D<$>t#N1adAa) z9dUEtINq2lr4>4AgeZ-Hd25^og0CH`1^T>P#0XYt?S?D!x&JUR-bVEJJpO){#9 z8;RSAdx%GipASE zKaPn161ON3E7Ms#Uc6ZRQVBOU!(PcaEIvl#%_L4I;Y9Og#=8XZKgF4&v3LQxdr+n* zjdv_KMWd*PcJbE?iLj#9w9U{@;v>b6N|{MCUfpwgGKxyg9vs&B8f|sHC-Ki=H!O5g z3Z0?x`jgZ7C@MAIfWz|qx_ek@N!r##b#Waj(~!oiJx)#G#K5l8LuME%Gfb8E0`c=w zW)+Q>5uDb*iRQPY{9!5oy~MBk?&r_z+>}CDN}^I+!*a?2Cz?wzZoNzwHxM_Wt^D1- zy@`pbwcPczZGs&%o|rkk1@qE^(-Fq4{-4FyX`A;Jjb{Q*@oAXXoC1gQ))qIQyZd_? zK0;;!=P*v~;6(EPnPIYcI&BMnjxG|+y9iD+ub1)%#GlbN?^kKq%fsL8o#D(ltT|nm z848q&%}|LB_a})rpmC&eY78fu@0IdTik}OO{43Oj$UwEZ09K4p$Z~ ztdq>}pv1?CCrX(a68FT*Xj|A?@h0)RgP5?^eMpxN8gu|oG@oJI*2J$;J_{-j<4NKa zI_$9@_jc7RRorbPWt!7ge+O}Q+UD&;R}9)S08TWIW8B&^OUkd1_(t)zpiHo;-<25- zNTE+9eoEqJB>tnsf2OTLe~RPE#X69St{ikAp&XWBDV{6lFu#5o_WwmDtfGx!2IAW!{*J`=N&K+HkJ8qe3*wvNBy8TWOj+0s6ZIsc zqj-dPq4-Vl8F74t*aFIl+lwEG*>${F!r3kUR{TG4R&3vJZRMlWgKb#=PBd3!+%{!B zaa(Z@-*%|?VZt`SLsDqC#K%kg35m~=_#BD9KwE=Wz-$~Bw@J$Ha;4C2E5xt)9g;#v z>25(UzoxCB7o^NDv@Ps+mH+REgE{RZtvp;ReUQ3|D7p>rrxPs+5A zGHtBPHI(ToWd=%_!B!?qoZ~zuWu{cZ3JF^@-3sw5EQ_VkGTK_bk+$CNqN`!4n0CX7 z=A(>TkI##L6aPv3^nt<$77r2+rL7TT#V&2D{b~A+V71SI6U}QF zw>7<8{ALv_Kb-jk$v8k;rNzBB0Lc{uUTVE=P& zFvD7!9mjU)g5px*^0ZZ2Q{v6UUBo@4{6L96M+ArX;UfGO5&X*-kr7uJSJWu-X;E0d?Uly{)KQ-2`j22?kavrJV`uV z{IZyX0f%*-6?0JFFrK|8%%8h)D#?VozPOXPhj<8WYilfBFQ{icoM@iQc$Xl)Qv3>S zW!w!&a0a|IbaqRjeNyOz_#$l!{*7)BEZ`3~(VPosws67uXe(b-;;D24|NMvVFb4_0 zrg}0%3%X&jfHrWVxgXJeOl?1}B<(GH&$@4vpnI)58S(3~e*474M*J0q@bxSv>|UgcHqQ zGj0p`Q~VEY^X9~9H*_J`4J%4zhE-HS+)`$^hi(}xxEq{k9?G~ac%t}8+7>)p;;+T* zI-8}?4%#YxSNuNAg^j_ok1=iwJ0)elu`;!BlDWXRE%=(0|3l(&byyGAKc=iq*bD{5 zrNuSH4QXpcGl_SUcz4=5(;H?7_-*{5Qsxm?3O#Ct4xx}A?;bR6F3Xr#(pKqq@d5D} z@n7P?IKPDR)-wD3Zz~xOh-Zjj6z>!t5Fduw%Ym7&2_*ivICI@tBZ}AM`QLg|Lozyu zM~I&hFBcyapAr8i&W4j*xUA9{M*r{3NZ`^+JX}0iypir6Y?@s(FNHC2py)*NQO0fm zI4R}NOZ*}o*L`vM)a3A0Ktlc4Yz1grOjP1k#5HJJWJ~dV;*sKowAHziZW}b+eF=#~ zOT5VpYx@E5N%4=gRdikAf6-P?Zaf==P8GKi4+xliiTEAy=i(p4@pr`*mMpF( zZbw_A@1@%Zz3+8b1iiP!C@*iTQfcmU%(s=WM&{cr@$C}-K>V4MIWFUOnetMmvXvQydKyTXCQ_z_lwSj*dSKhZD`y7`L^xQ2ab?Wj4m_ zI`732&KKez#s7-)HI7wOT70Lty|}-4taz4h*YT(2lCf3%q4<>eGHq)jTa%cJimQuT zi60WX-osT=Bkpq&S|@%-d|LdQI35>KVN;5Un~4XC9~I9G9IS+ulJSQ4i1?bgV6)hQ z>xuh`9~I9QuM_WShUJGn_(C!+h>!>f_QV^-7sUUF^S6rCSx$Uc%w;hGQmoJr z@nrGhRy#-DT`GT^SLM+hRd+sJJ+*6QH(zl0@ZJ^S$Ey>?ykA8apCNum{DOFec&+$V zF>h)V*6Hq)#Czfo#fQX4#9xWeh<_0ODE?jiXJGHtu;e>>mduP6B?fDvjJUFxw|xoA z)Dt%p^EOan8Qume4!41XsS+(Sp`4aMf0%qCEy}rzTU9#U2@9|#R z5}%ga|GidnP~lmx#H1X_ahJUjccyms>aI=7l~ObdmS@>z#1*{0Ym<^2_`jR7Z2$LB z=C)Gw9x-oc9ah)R>-a&nWbdB3sjXa(@sywy{?C`pYbE}wc#C+uc#n9W_<;DZ*#GrX zid}hpCmEN;KZ|dO{}D&Bq60;O4&)UV6c-kk5|_*B9U4IWCEDJR z?0zDlZ^YkAc!&$Xv-LiOniFfeM-j$j>tcQf| z6F(pxA|5RsC!Q>xCVoad*Bj9=HO<{2p|`{b=+eQeI4nLc{!;v{_y_UN;@`x72M#W# zZb?S=9I*xG5*HAsh)asgh||S2#P!9Ea`0lxdf8es+Kc^Pu34Gx5`RcMOgvFMSv*7h zOlbChewct4i`UU*gH5nryiL4AykC4sd`x^&%-`0z;R3#wjGx5U#JufBSl<5uo;5B} z;>qF?;xuuEm|dqzEaBWCzEj*r+(Fz`+(SH=E+4G9q2kfvalV87&zU6|&x#j{mxx!3 z*NQiZ{a*xHBi@$yyW;(>Bo2wc5T6oX7XK{%SIjRxhP}@r_J3Ju4Jv4HzyF1$P^!4J zxQe*C_)f9^6GdAD}F#cL_AtNPW*&;ig*Bw~x5RmJ+j80e{9yu45o27;jK)=>D|1i5jbp^M z#r4E(#2v(4#XaDRFM9QpjDg~Z#UsQ|h^L637S9nc5#U9?oVDWZ;$7l*#qWzh z5q~B=A^u8y-gmJ7ITs}3C-F7$P4R!?EO}y^CWknmxPZ8rIMx3VZslORmXi$sC&Cu5 zDRKW7!WM5R@uuRo;*Mhf7s57gPmBBg_kSX684t(|!^ES+Pl}%s`@agddY+T`67e$e zhCDp~+YDPIW2g9S@%!SB#h;3giqDHLh=0j2`u}@I0yk0>|0m9tH@1y==lQVF$>Jj7 zvf_&3>f&0oYrStM8BN7)#2v)ebPH`S_vbc!2l(?KY zU0fqH`(HOqz;}t;h&zY}i2YxO+dec*;-kb9#7~Il!WrlP1(LB;yi&Yb{JQup@gDI< z;)CL^V!q2c6H7Qh(doh2@S6CB_#bh+*Kv5MO(ufVimVBHOJlA^*qdwgirZ z70%XJ?Efy^%5;%SKV0Ht19$NIGhQ-gi|2`#h?j|960h?{jKBwxZ%Js6 z_^|kM@hR~);_t-YR}u{I2*T@j>xv z@j3BD*bVpFE0S?j?EjeG8kZgKwuj|&iHnO%iYtk$ikrmjIxS)er<1sg*#E`9HDZXw z$A}*jKP{dkULs!RJJ|o6O_H%qyj#3ie3Y){@2}1Y@i*dc#lMUH6#wT+!oQ1vRT@c( zEx^B{fW-?+ys$V;Tvl8~TwUDE?DxNwWONjF7WWqS6Z^L&u*MCS_*n6H@f7j&Bwn`J z%u6I=nfN8~I`J0qcJVvn_r&|fhcb-*f0L1LoNvXK#Qr@Itf7BP{Fd0iKZ2FXi4TUt zj-}8wf_L%_f?k^rB9w&ZWJViWRJXgFR zFwPU0mP^KJ?=!Tk!3GKK5WgjUU;MH7l-F?_o{PVi&?WJ2p3CfiCFI}B!B%9%+l*|t zc){38FDWiBt}L!8t|M+KZY#b=+)X?vaBy0ANHRu>$B3U0`?ra(ek_#u67fp$OX6+f z9R(MUFIBSi=Mwrt?B6-U7W1vwcYLX|{(npMEpZ-v$QbUs{{16tHV%jv#*2w7iK~ih zd%ujwR%s)l4&rX&p5p%ELE^hrb z3Fi&*o8tZAL*irNli~~F%i?R||M?E~KPNLjaSzvoectTW>zKFjR)-@l!R6zzbxJ;-YR}u z?BABe>iEpaWipSaYu1~x>N1oOgD%L^HA|f@dWV`;-|#3ypx%$)^oQ@XqWh1@%!RK;v?d- z;_t*)#J`CD2pk+$Hzgwnz8w%ZH@gL%U#c@SrYcUeD>*S3koPy%Q;!@&r;&gEhaRYH#52XS#S2_Xc;eOKwc-upE#kMtd&D1#4~UPM{r;bnj5Ff%;;Z6c#ea(Z zTQ%8{k_BIK3iquX;sh}UNyb^-W+*NhCB@~%{tce2d~J!>6E_jJ5O)%H$uRogD!nhl$6C9}`azPZ#@lkg`TUC-J3p_!GaClJTPcj zJuQg~;>+S|;{SN@mTRR@l5et@dEJ+;uV2iY)6c%BN?xXcZqk4-xq%@{#1Nad`kR{ z_-Y9^wgrBb4FA4vwxa%)c+P07d>(NTaS3r5aRqVh&{)1xFHFE~#2v)l#686W#1Dvv ziyskB5I+HD?94lPl2KLc-&fJf)RTB~acglWaTjqP zv487D*2(@qBpJiRX6JHenEdEXWkC?a32%C~EaIkAcB*VW~q;)n$;!$xaaTRfO@ttD--jY^lONqBF zh2@7Wx<@j)iTjBMiXRq_5RVs65>FG)49)(}4-@cWv40~=Yc+3V88&pic(d5Q!KIad zOX44h{Tp9ena>ch5S2WTA^mm|g$Im0_X6 zu?(lUxSY6>xQ4j4xUsmoxShC@?_mFPdP+tg@gVU-;?d%9;wQvY#Iwco#GWe&|DK+< zO4myKRq+<_cJUtZKJfwZVev_G7VLA**WTF`I2Bxw{9nb_#ea)$iF1^RZR*_OByk~e z1#y+Y!KS!FGVT;N6}J?35Z@#2E$%1wZ%1k?`C*BVEhDFb@scrFJWV`DJYW30c)56; zc)fUAX!d_cn1J_+KM;Q+{!DyI{Ehf~@g?zZ;y>VwQ^CKI!QZunM`uKwS6onBSX@e6 zPMj{T5wq(wh$WoH;#T5z;%?%e;{M`6;t}G};t9U(RPcmk%oNWSFA#g;)#A0{4dN~0 zx5Rr~Nqi{wZ}Dn->@kU-6rT~F7he_sD)w*pYIXi?alijr%Eh*K4sn7wNnBi9Qe0kK zSzKFOPu!%Oyh>;x8J)yk#J$9Q#s2+dt!HB;K2bbbJR`&C|1%j0d=EstTKtN5gZOpv zPVoV;fB#u)+;NG2Nr$fz&Pv92;>+Tn#s3rkCFX4u!$UW-I3ms~b_+_PusBs*T3l0H zN8C`{RNPM7NqleM;P~q$8AIuMe1^hUDv`gySp`uN1!|-YDKG-X->L zq}(9b|C~=HzLv4I1=whSC53Wh5}9u-LyZw9SyMQf%ft;{4*G;;6W+*uQnO z)!Be?*Ak7TP%CjeaUbyj@lf$du}e1(dOTJ9wAh^^i6vtHp3*k+OA=ov-YR}W%zI6T z3*IX}DE>6CzyCR3NX9AgcjAlUpT+)7tF57#@#~Lp!P&)m#k`k&Sf*HIEI&-7N=7+x zCGlN!%V3o@5w{k%7vC%HB_0r({eK`#z$3+D#E*;lJE^b{v&7Ge7mAmNUlhL#yJ1Be zC1b1jZSlL}kHiPX$HiZY&x(1cZCkGE{1i(#*Tgr(|A@0z$(Y&6Db6P@ATA+J6IbvZ z?0-%b$?$K@ZQHoM#G8s+itiS875jJTwtD(We293se`{_l@nNxlvvX_oml8iK{!V;Z{ImFffrI1kFUiPWHMZ?@ zi4(=i;^N|x;%eeM#P!9Es$%)!j@CvpI*7Z9dx-BBKPVn9_V3CbZeoc~4$c102ovx# z;zi=;#jC_?#GAz1#BYk<5q}J4oc}+OjHBWc;&bBf#aG0?i2oA*E6$9cnAlo(9sgeP zwu9@lMY`3CEcrep39D zc&>PX_yzF_@hjpD;@9c${J&E&-V=W)J|sROK2NvC$pg~`@lWDw;=jf2ElFg>PfEgy za*C70{!jq6uo4na6IT{j6Z=C4*u3?FcyRo+kV0+5cZ>b825jcO62D(OL_A#ln0TUi zY7Hzu?C}iAcwW3*yhi+rc$;{K*dOG;8ht?GM?$mz$HN4CMtolEkBVRw-H`Y#aeU2K zXL5@3hzp2QU^nc2ImxIbt|6{1ZXs?XzFXW?Jdke7UDR;~$Lu;IVhLxoc#`-@@l5e- z@nZ1{;??4{;?2H;{m*$_GTsvJ5$_it5+4(v6n`uJL3~yGt1F3{;{U{1@Kca*)#VU# z)SNJ$EG{lCDXt{0YWDkITQdByC2Tu2mw0P&Cvg{XAMpV3L*ilLad+_g-xl_`WK0oH z7ta&>16J6)OC`Qi{Hl1PczcG?|6Lgg$Jr(s= zTCwd~K=Dk( z{{JT#nedyYut7P*xy4Ch4p0)7kBUo)D~i*_wP81$xt?S+75jsmST8$DytBBcxQ}?a z_!05=m|bU5EaA)$KO>$mUMyZEUL#&F-Ynijx93w34t3wb{^uN!jKkuS;;+T$#r{Yt zR_U)2zb^h;d`q0eAH>9F&Rr+gx+HNSaY=C*ab`=K}if3KO&we zo-Cdrenz}pyjuLKcw^w;_A6755e2FCHQuE`Cfr5zZLJW2$7#5I-kg zBwi+7CEh09A$~{vUd*m@B$jZFi@z4175^yyNqk*=L!1epe21Gjt2npsVE=RSNk$QI z32_;51#x|GBXLV{TX9cuA6F8C#1Dxd6HgRR70(ba7QY~VRqT(@gmaJI|J{t@5O(JZ;Er&=lQ=QpN$Kk7n(z`rn_ z9Jo$aI2=*oNhXQ}8G85s5@<|#OaGp9YEb4)IxTS3>~QJ88|bouA4cQDyDB%z30Dl_ z1<;Z3W`|kxU@r)73bqA332%GUIswKTES!qwgYhDbQ=9xSuHraF(8KTxS0m7?@cT6W zolNX2EA6#|F_Y0F}{vJH?*sV z$D*+9NyV`F@?#ZqDrd%nQ{9Y}PA2T_`RypkZbr6~ z$IJ#Lnc1KcX72nP;)U~KOFNa!*osbd*Ai(+)G=eVICq&V!cENhnAGV?vvy3q%xpw| zGaK=+nZ?GM*@(x@Y{Yak@225AYYF_E*;!y_gE&eI7sdvyG*^b#n*GgW=E1U?w)4S0 zGaI+xJDaI;vU}P>Y|D8w+wzl{O}TDnQ*N5s6bHL0t7cQOn%R_GW;P|k%%-H#IB+?Y z59~T@OAX7w8Nq2_#)0fKHFFnyEIoVrh{hI|G7EBQ_V?B zaADt=li=^n?D0i&6uwFGh{BW^Cuy3M<}vedNHVid4qd}C+zFy)ZiOGj@)g>pbQg>mQHKDa+sj&YHP^AI#kLSIper z*UW6|pXMmcCu%MXKbv#1nc0Zk=CW|28DE-ml3h!%_Z8?80H&&DwzQU+tFgYB`&1J% z57Aa;_P&ET3g2T+g9p*}Wc{$&;s%V9-Pc#*j@ywuE- z_i8gcw$5A|-e_(BZ_S47&x+b3@c}c~OiTyOY#ay8VVsRSVa@}eHnVXT&0G^do4Lua zo7uRVW;V{r9@OdIEjFtq?m#@3nJ18BGfyDJ&COvBro#rcg3FmZ!F6da2~#68JJ7<+ z4zx3K?cPK4w?{mga7Z1_%pGc=na@QWQit&}@JKTc%SX+8`k83v8E}f3jh<<40nahF zg%_GT!0ro{=z_#5^S$sI^8k1!T^7Lfj+s4s-^`wIARd-s&rX`TGoCk>hkrD)1J?t) z4xc1A;tpr70mq>>x*nX(+z8HXZVo4#Tf(X4yWxuF``|mwgW*Qz5pYZMD7ZZb+2O(- zMWVB1JP!9TPlNlKXT$fKJ@`?&Jb;M<>(E>)Q_Og9W}10knPbiiFEkhC`Tqq=@X%jl z=3%9IrB`IW9G1)d2mhhVz`d^dAKdjoq*^6yDh<0cdwbN>pnAgsQb-4 z13qNtbJ7Si*W6e$PrZ}PTyrzbTyyiyT=w(6vHrQbR$4|Kn1kl9bzF6u%?;r<&CTHV z&28YrX0FmN&HdrC=KJ9v%-k8Tn1{gETuX4Z|7jirbI=?%Vj>)m)j>~#IcN_3G|WMB z=x5<5&7A;K8FLo6k~tS#-JAf|F}nqkxXTheUO6}pE8=QwW9E*=!EqR`2zN8{EZN&! zA0A-lVL8~`9e%{z8=h$9K8G=IaQ;W74v z^BnjsGk385=2cj}bI1}eBjbd56MW9R9lmVd17A1qg>Rbo!4B3jJM$r!)qI#? z^Km%8`3zi$=9hXZ9pPo>yWtnj-QZWuz2QxPU1tCi zZ(7C>c&~XV{E_)l_>g%5eAGM%{?a@JK4YEvf_km}d zhr;vCBjF|HC*T$4DexNeH25|1)9@Davzc)G?Xbi=Wb8ICf%lo0!~4x^;ZM!$;p67l z;jhiR;cw0R;fvb6PKJXwj zPpc1``JBSBaacc}Qzn=vz?01`R)90z5`0pbYvw6)k$FD6!ptk5HRc!K*UUVvzHWXI ze$%`L-e=wf?>D~=V{9Cp|IxY~NSw5c-S9axPq!D$`{AqRPvHNVkHCMMkHVSr20cCv z=QN*#6U^ViDdtN&|ChAHWn`2yUxTZdufw&?f5DB+f5R=zS#Y?vGiQgpnsdV(1Bac= z3lB7>z(Z&k8AXs7X&F3Mk2jZsT{F+y)6JFP+2-o-d^1nmOUw=66=t5Q*O=SD9QTF| zY6rV-Gf@p)!StS)mtr5A@dW2^d>fX*T6T_^3&W?(QTVKxN5PL~9BIz)X71pBnVZ44 z0%NoWB(fv~3uq1JHMfIP%y+{j%sdK8n|X0j(cBNNX67|SZSzRDfteSvjm_iXE(tvU z^Hm3?p3H!Gd=E79_#STNE8j8ZLNLd!VfiBPRC6(SmboN6*IWu-Wajx`g_$3CI%_O( z7yO#J5zKLHxB#xMH_co_@0vTn`^`KDd}_WQK5iZab4(l7GYtO0%=5uj*k#5zB!07u ziSP~cH26RBEI4z%prUzjPV+)I!Mp@cGV|O}mgdW9OqI>tw`!QN3*d$Wmf#N6#>~?v zhq~d+TwUGFHDL~K!}y)>AagyK!`m>oxOmc#C-gyu&;Re%Cw&{?N=d`ic1&_;c41i;y^JUJ7#{9QI}f{GE9t z{G)jn{EPWr_SA?H8^F*}LToqnx<`*8F^_HlE3=WFJg>i@4Y35=1j+r~o z`{ujh1Lkh!oQmr!GD>T!?(<<;rPU$ zp=;oRG!F+%Ma^8J95{z@uF-O4uF)#y6xgk4iBu#Sn(>B+KZp)zPKVoB9Gl;{$6Ocg zZf*kiG4q0DpqXohgX^#!u9cBy9zo*+yAD?o$E;zY(eP8|Ct!}W!#EEcjw{ zhg+Bn!|lu^;U4C4a9`Nvf~z7i$TIjkkfZJ}&I^h$=DP4CGhYWzHMfFincKqi&G*0@ zfQR*TfmfLO!fVX^<8b`FW{FYA;0QdNfv@*=n8(Ar&C}t1<~i_T^J4f*^D6kfnJ?uy z=nm`TOSzxTFT>Y;WBtE|#7)cC3_Asa8MeY4frm41hjW>C!2C>y@i*Z@=8xdw=KU~7 z<6#-T_N!n%0arEibzm*m66cVpZ~h)`V!i>lGXDd2FlWnz)oRWM_c15IgUvOg?2hF44Bj)k&3G;UNwE2Dby!jA($$SR>+58)P-JBJt#+&9s@&54_ z^te1Svf^2W4XO+0GPi~Eo9~8;nLER!%=|#Uin%Y$0e@J}K=>~6Fu1jOB;1MS4QIw8 z!4ZEr!((uN^CWn%c``iQJO$=}KP>+=%=hqUeu6*UJQse}{2a`|e^`be=D%QG2D_^) zu^NeW=9l43<_++6^A7ke^DcO=c@O-t`2c*_{3(3Qd>lSy<|qDV1G~;SBz~|Ae&T<{ zd=0*4z5)Mf&YT(Vj+%48@yS8Y65t%>0&re)3S7Wk8ZKhyC;q7%K!>ZP8WLqKqZVA* zTo0BP-)+7JzSrCxzR!FgziM#5CHQrL2hI1x6KGzE zV47^kig2czv%|B^IDa|w%|+p*=2UpKxfHz4TnXL+yIepuB;K-&8t@0^TJS-0eVAhp zv3z6rgqiR4o;J6K&zrl#m&`rjpUwBd9D0cL48-!Co0j0E^nYev6L5^7{0#t1$!7Mx zm^lxeW=??1o7v-Zb7{DSxg6YrZU|s%=NsFfmEL0+e6`!%TmIyTjnAezV!mpXR-)%8- zzu7_a2dABp*liiZ;1A6_3O+H9fj>7-gugORfzO$z!57Rk;j89n;or>b;2Y-GVD~>u zY(#?N4Y4=7;hg3ZaDw?qxS*LArA5trU02dv3@&G`1XnRvfoqzp!F2<>PHiMO_7E3b zA8u`K2y?t4#+$%h&3p%|kC_*l1I@h19AfSUk2Lp!A2s)bCz>CFr||PvE?_niGc992 zyuiF1e!*uxM9y31|_`v)H-~T^oiErQ|<_qu% zGp_+po3muXDb~zuy-Q|Z>-}u53|}|j3EwpH(v9y{u|fC1Sz(t6zR#b_GWx^(3J&7~ zVUB7<^F9CK=BaQg^GvvcnQ!4&HLr$inK#1q&2Pa?%=`HMe=AFTfQ$}izE|JXd=~Cy zz6JL;XU5rwqaCqvIpE>u1bB?O06f856rOBOg{S+*_Ai6PY|E$sFECeyIoc5yP!nEh zt^=<%*M~XU5z91&x0+kQJIx*8cg$U2j&{WIJ>dPWC3pe(HQgH92-6Q{gq>f^JgxrE z%;)>R%_U%tWW;$>;cR9;-{&^p0VkTVY$wI+@>#2dC3yNQZ5|9)H1niX%{&6GZRSad zqZ)C+-JBcdNJgB2&jowUcyK;4 zmxK?Q%fLs?RpBqqHDC^8#Co_nzNh(vQ$DL+wv1LVM>1j|K1uvx<}=2 zG}+BF;XLMNV2ots*E0t$Y@P>4%?n_+j3pK!QOV5BQQf>5u4CQ`-(`LsZe~6Pw=sVS zb5tXC;2PY`d>!s@z6lQw>^hlnb{lRP{OE)u8F6NQbTYwQ2%cMc%jCk@v!po>Tn=`bQ2>c5mQfh4X)X!ZHS>ey#^xGuOLHB#y}3Tz+1v=`s79>6 z8Qj;*&zc9B@jij;JZuTRIWWq6A3V;?C!tB^!SGb`FnE@k?-R^5kA)YRC%_!xh>hTf z(<{xB;caw#o}MsqB%}Q8gVzFk%sdBtV9o^}H1itph`Abk!dw$RZLSTUH`j+bcoFMw z0$(%pQ2*1l1oE7J&E4RvC4w1x!MV(Mx#WL8lodSy7qR$IIMqA~=D<{Lm@D+1O_?np?&)zVXf#agVg3H6%%oX9>=9+Lp^PO-}nm;(@)on@3 zXbG1yw}z{j?}uxehr@Nv=OosdPujpXQkP%(=)MftQ*S;I(F)znsnH((oIBUH{h|Z(9bRESHtDa>)~|sCio8XF1Vg~Hg zZ#Q$#f6LrF4lhUEvjq3{kIj6Z{v>ths;^U@h}-#e>C!*MdF$Uws_I4Ft5(RnwIo|1 zuinr*s(M#`tWni_y=8&=UgTWrJg@90+3R~}+ai|j+tj^Y*$Sl#c{7$~E9J$XPaW!g zR-tq$uimn3xx8ByO4s)~A1_!cE_LyDsp)ZPUR6Gn_WFI7+BdGOx0es)z3BINsJL_T z_o*+%c}q_gJmmdyA@$3+bZ`H~)K9Wk!wSSS(wlp@K(e>(QtF3sHFiGsV`^et+#TNR z%c+W)cl=J8P#>$>o&)tydvy3-vxLx&_lXLSex z0trKyhY$%eN=TSN2AKsF83f!&BcdXrGHnYrN<^GdQP7|`prWFpf+H#-;)HHgMBUqQ z^F2?kwVGwlKHoX_-u>O*`Qux^bn2~ls<*1%n%9tjw&*Djf1iJa=q)Fm%C8Z9<$}NG?+^p(i~f;6MHhqW*Zh+2(#4SawZG*L(tTFj+ZB~* zLz=I+d+a~+h40C7!MhK&+vJqf`Dgp~C89e{=f`CDgvgNHdb!h5-v%L@eE0?AcjvUt zlj(!oM!MdM@^%APjvucR;445#z94?2QU4p@!=L8CkJlU-Iw2xWUTGknhWVGBOq%Ro zmX|BLZSrNy3(NA-Qi~kKunf&L8~;h%ZI?eX{|nk(C?N|)FD*WKxnIwd;TV}y75rMnY*KB zohcl{AJsUtgLRgHIVoA6I!h$&%IV#{*4Cm$8{O)kdf8ol?L)#A#eL}NBK~tJ6CtR z59ztJrZ+@78#b3XN^#n(E7xC><`GO&RVA4+A@v@i1Usstb5az=3Nfj%yy zX!HR5Y<-Iw=<_181~QQ}qH&}6yar0Vn0eSa$2u{gWOD;0#Zb})bo;W6y19YAF3@Ki zh1q>V-^-@HUWuX^4~5n=Lg};>?rorOxkKSl=|7#Bo3s|9g|hYO%vgM%!~9{6iQn?^nPD56tI`M@*HZ-hh1oCZqxnCeJ* z$8k8+Xo%Q-%qWM*h6W;YJaX>2fvj%VH%M|LfcR$6?aQvuzc)zf5cF{|L9d;NANklf zwM2)9rk3yzKJT{yQ*@xr%T~xI5S^txbMP63lfh~$9N$2p+lL)U-PUIEF*d4!zMr9w zJJmFBiYDt)jU3NsSlFF|5i!*;;)Ahw_9QGNeHwmtdUrQSuVX3}8KB#jZU2@A>3MOE zlVRzb0cKm@3k~$`gg#V+{AH*+zg1q1&^`k*jo=#37W$@vP*qUY-B_9xKi(iw-j%e# zN_4hEJ`;rmbfOmKgmBb@xP94~NCO|?a*MEF#F{L0V5v5ZX@AnfHq=K6(%zH+0&568ipCKYB$2 zeRC(Owi8nd=Q|W`Z=f(QQ8tB{86eo^c)Z3S>@OT4-+b_U0-s*X-bSTV0??Z7rlNnJp(T(%HG1OI#AFn6p zo++`b5w{H*V96^c{2L#|S?<56Qa=6Y)VC3LCGtsSX7C#PY<=TQeZ7D(uis-hS?F)a zOk)}2qmoXAt1cDV-Y%xXYh~{#&2!^*b8r$y9_zA;>Cy%^|27x5adU)hz_+kL5`(c# zcYL;)#P#5{ZC>3#-=PO^YoXBOJN~Rj@hclB>DWxycz+l(&aui?a$5r>(TA`HVp|M8 z8@#E3z5_T*;QLvqZ@oj`!=}D7W8B*9*j>*DhjrNsw>40Bs8H8-V&+bT8}YLZe9AJg z)RLd{CN|hwSrG)($KSp`@j?3b-#3)kXN3;}kMTNj9s6BQ`n$-Ae`@jDgq%OH`)fxK z+IAiRA8jeOXlrnmVGlDm0cYEJvVp$vKXKX+wS*AZ`u=9>%StHJaOWf$nekgTeEd+Z z=UqHB^oxJ}b|dvbE1?~Lz-G{vZYbHFn^f0HXgRW3#3)QI?bM}x$I?!6`$riOy|m+o zHbYwKo6eSNBgQD#4X01b2WK>o$;@oy@`8Z(n)W^RT~pEIBo;?~w5|jYMz=&S$1#>y zdqB?{Bp=H*X7rxvUgcW8a!=kbS3lloRr}mcH?`m7T7J*MEdw-!bqEFH3$_fLB;Bl2;9j$7IS%%-XPMO{54qI9SFb6HlO5nxs$$;lX8umIPahExas1_ zUbnjim%_dWn5OR*P=xP3{MUVtQ=N}TmTn(!UP$tFrkrmp<$P1{-|OoDyiapqi-@~D z=7E}f44lW^liRx~1pNVbMHDImQR4d&)Z&3#$$9on{tv9+|ABCPF44sRAS{ixS)EjZe(G2XQ`7@F_-T|aaDydUz zOrjCt*<4bW#RLOuVO&x-!fBd&B?;x1fGI2h>K_Rv=kfwhpUmhQMAOexkbE}JXyS+e zY8e%p{)y-$zsfW6MWysN!5p*_B3xO(4&H{`nAYXA03@!aN?w=XCu#?y7;{$;yqe&0 zK)JjVMy#T0o(AR3)xU_==M=EJ$Cj?o8#>J>8p{g1*6dd2M3Ih^d_xQJV|} zroefoKr^N^1KM~muWdX_iuDb%MPGTcsnI0&I0Pfg#0w~h)qvK7YQ=?pWKlDtC~Xoj z$YXQrLkV6fCp9y2+bxFXO%R1ODmfnvnU7KEfUSHBW3`9mwy4oKPRHVHM!6x_EDo~pXELhX?oCoz3AxJg-XxWK znN3q^?c0aoS+G8P-ZUiq4%L@HNdbKMU7D${8=tL;^gS9l4Wt%hffk2o;@6C3@$l1( zbAP1hL8#?cSyQt8a4*!id<&>5&|1C>U@n1Y0IUbVH*PA<*1T(NJ20)kv`DSLx0qY= z=7SGFLV2{oKRzN56%&<UKY$UPQFF+!{e;+Vwc@|y zpSz91vRNo>h-GBZx^m?;jV?PsON2XoW_9Ogv&!wN5 zDYd0jxfjvBOhidE>>t%rR+}sT&SX zjmfl>vR3u|Vn$zGp8H-(vV1L?n<9taAGx|dRA|f-^7+G_O!;7w)Nb?}$X^x%FaK+034{HksTja&d-I>iNDa;54HtPt7 z+7U{v6!|SOo71y}Hj;tOI?};9(qvtCTPSl{C-CT6>1Kx0mDq5KFkPY0V z|34_6IJ557SZt;~+`JEfiNa*NYyjF+t|V6|Y7GN2`nAjA8-@3D&H^oeGetOe6Iu-e zs{a!madokQK^QkkX@fW4hzL0eD=Pk345*iN`dxEvW`)#a%pR$y~vUewKkebZ|i89{D(h1O@72Utn+ZuQKJa|8maJhUQ zxva#9iLl&KV$8@(1}^SP(}Y{NZdm3^Le%5a6{9XMU(+HYdz2c--cMdUnxayFkr;TE*=R2GHTg57d?g)bs6$S>+Ei<{usxoUDzQhh~NW4kUdJCWY3 zKCOq*N=Hd{?`7Q3h%O(-q4{|9GrYFc|E-rXMab+$(V*PZ+eq?EnK^CBY)#HCH#W(M z-7}Nr2N|A#^xW#suJ6~!cvAEn53!6~C9O@iU>X-Dj14x@^DLP3YQo^B!PRoqSw^$w zBLUJ|GRVh}zo3bWSn&1oma~kKc5IMjCz&3^oms+k9kxosY!PfKgm05C9Vy)^bAL=K zsQ<99aas(h1w~}xA1*cl8@|T@Kj?sWI^ZW9@E+Oh7JrF&U)G#$#3ujlpm zT$!y|zGaaAO=2h;1hY_~& ztt+SEf_U)>wR8)9(Bv_f?@u}e zo+GTf6x@SL0Si7NoAqiOiF2pHwk1rM6GvQGfYU9wHSt!tmpb@+I^f|Bo*9HKS-z;% zhHrAfkC?EUbZBon2wxGlD)R@zXlT6t0XW@)bvTF3!#Akf#_>(5HlD|vHayzFGtB{? z&zG9o32bl(+)5a2jMwde(=C`UEVY$BM%XHq-46T<4m@9EYV*JCz`t+fnSZ{#)K+xd zCIElRf&YgCAM%{xZ{>hX2wNrB)q(Hj!1s6HhXFp<&gBS1m`jddQyokfIN(bh@Lvd9 zr4k2h%dT?ptdpl}f|2+g4isNQYKwhE*s}Mu16FU%w(#B1lx&_+4tS;mUgCgx)MfMY z{h5I4E59o3DeBucYwH#DN6s-8yW)K2z_x-jW*b%w)5_E+2c9bpn`e##p6`GcIpE73 zuv*_)I#ojsYMoHV*ei4}-RywXo69YMJ019Y<;0O?k;czBP;Ae(U9ZUWpCUzFEWuA5 z6t0A9u3sE5H`r{vTi#NGjiG@zGzqk8;=psEWb<@zz}+2iZ}}T!+ws9on{}iE=7P$` z&vL-HA53o-8L`ZPTH%1Nalm}Rv#mlp;9DH<76*KnJUv20;yWFv-46H}2mG=Fe$4^D z?SKzCV6F#kQ@(Y;yt%{1|6;;sU(5xgO;CN6RYM%$Y&eI^ZWA@E!;Jk^_F#0dom!>p9|p zzcAru%JIK;5WaW7KPAasKa~!uKRwbIB;wrKuqOm738OXh;*!}O82MP2Js7qoY>jRG z30nh@+Do*?jbDkk%AfN>`)%_$JW?-D|-(!O|YG;6lJWEuw4@;N2F?4X$S`n7zYG+;AXM1tPCmguZ~e%|JYNt=_j_ z-U9Hk1#{B)xdl%G{FMbS0Q@^)YkHxhBnZ=J?(z_3f$_ly!hGA4hJy_)Y|SrX7EFOo zgsr0HgA9a;=bVf%71a>7s({Zc5GD`jWQ17@(=6Bk%y$_OUjUfTD8w1zcGMz^&>rw* z7Tg0c=W66B2YihMvxIK2;QoL&Snxo=cM-PyV4DTgphqk?6YwqzhM&f@r>#hH5cXPd z8^Etva2enO7Tgo?yB1sl_^<`jh+`H!7VvQk9uN3i3!V&^Z(X2qQvoNzsxUw7z{{^9 zX3;gWU^E#mV!?DqPBX(O&m6!p3oZf7w=@t>=PI#aIv1bHBfcx(UKXsDtrpD84CLFc z$;2Y%ut<0~V9r+w)6w|)2EyY2PqSdInP*$@6u=i-@GQU_BFR4o@MRV}5AYQh%)O^; zEI7{1w~bchFMzqTM`0Gs?G}6`;JYpO8o)d~AkX!HcUbUxz>iz-jet3Rl7~yF7c7{& z3ol!69bjDbkB&Fqap~Dba?K>;9DR6^Jj`%Xku08!aB-1bI@xF?gF~BV$R{QnX-W5> zJqP3)lQD{pebt>Ue;tsSmb6nLo1F*b&0Y0uIrcmwO@0kX_Xv5ot6nJY14du2N#2?l z_M?Tmk$5>Rz_q7Hes-QwsMl(867KqK!ea?1{Sefj1RrY{HwdrH&DAq-*XN7bSz+87 z{3q6ZE#=B7P*p7C^4HsCg|7!4e~E*3+#*}&ZyJ$*n_{G4Y5hBS2jjL-+_)&aO*I;c zR&wxE;5LB|_XNq+z_~HP^_QEc8nGk|4!lLaMDQ@MwemZF`c_>|T8#6jW#4s3(-*gv zJ*F9jo&_lAmy_kpX@-$B6%A^oykQ!|dZOdFUDgBi96?KPd*o4Yq#nm<1z(8FEEdR% zZiwXS$I@lmU2U?$>{gtm5$z?1Plt)!GUW1Zd0Al|tvKl?ddaPzw^@;ar_f-8eX$sL zEpNcTtvBv7kpGx CEl^OyewhADN3ABrW_#UO|c7!*+*hL45v zYS8Ty$_;6|B1v7#I(6*0p>#;0zV}%D&ohl@MEx`88_BwBZa|moHU=`}M{`iAP2{(8 zj25D)%(}psjo69{j4PVX-QPc;w{$l-8St$?OABPLI7_TQOJ8x8tLT`a&#jMLXgus{ z{C@I^qKvG?$*WGSIOGj9UO%%iYpZ9KF>tYs z%M9DsExqU1Q{pw3Y(LK^LQ&L@ooAe{r`|m4O`~!9RPF3^{l%^F-~uD3sb{n3qPLHA zh)n6x#rS>xBSv<6zc%vI>FxbunL==L4U z&BR82AQynEk>_G@o?9!-(yy8eK#a_i2NoJl^cQEz?-t@*>^#}%5~FpK%8}LnFbE?=~y|rNMebxEy zM_$lhbDJrjmt@QuHe;vmDG}8#7L3}Vd)kWr$7U7WbL`do0{&vFQ2HNxb?eMNkGvRr zu0S{CX6hA%$V~OBVHNvgoB9k~@?5g^O5g4a7VXgcH52m+!`oh3Wi&mpYD;1I*vH>A zx*RjQ9!=KPJTdxI^*bVvbzbFXFS_KCMaHafwpA|P6-Kb4POF$H>VI5h^m2tk4A1k(r$*+b)NlKX z(a05Qx~64O_5KReRqpZ1{mYEA;+g$VRlF@K+@G!4YU^r~(&S{9DOsQ9wl_-esn}IL z=q)piRr;ox_bi^hBQO|mTOTo@IS8Vz}D+Y(fS`N4!m5@Umrbn*RgvRyt?~nl2+TQAACs*>>Uucb29Rk zwCd+u^gmYN_Ewx#*#FoANw4nQS77F*|FM|`=Z}b1xJ5-J)K$2(ib~PFa^|t~Jnr)< z^_dmZJ0+cGB*`Jmjn`$}%(kBTCYKvIcs@mTxx%5GKzR%QQ{3B{0?zLP*gX`p1y7qAg8N{gr|TSo{4hZBl^+B2 z2a?yfK%N8hwd9Tb+6KT2wdB7pBU@mumV6_ryglM4VpcVS;3f`#scvs4u84v=p;ilC zhY6|(J_7}M@XmbL8oUUs?%*&3liT3qC@D{HAl5L+!O=+D8+2pp?F)KfT}rT9F6;>6 z^-OWBBHWyvc>8vNYJb36#kEhUQ87@}Oic?t8wFhRHb8f16XD^6J)!3?WO_&J0PNM= z4?w$j*7BkGBb1^vvNJ*IiUb1R^A&}yK@7> zHSgMQfL#!(#^~!^M}>!Bv|3cUIsQHj-4guLbAy!9XFngYN(o z!BjVWfX`L9f_#ORJLt}*51c}FJ;5tbyUD>en2URZ`_o~W=H_cLeC@eFiMuDGf%tlE z0Gvk9AMjOhz8?An#o+5pPzyEj0Y00Vafb?^$TyHMUG!DZlUL!Ndsk!N2WUIs} z*Uo~wP{dkra8ugISBmMubCIwsI3MY_gM49NQapG%4MuA2_YiYce@IQ)@IBX(0%%Ah z==Zvo4MZe#4_THI)I#sVv0axdi(o|+aLGK-a&x8cTG0}q$IZ&}xaW}8L4k_^stV#A zK&t)v;&q_-$O*Gks`z!RAn#Guf}dcWCxYLi-_V16>8>ld2)fA~|cA%1@+q` z*b>Gy4NgKOGz)>mso8lnfQ_?1w4;5{L`+QjB1|Nd+m1=Gu(ob2z!bI7v z^udlGzk8tt_n{a?kncIrgDh}Y@M(CkJIL<}Bn7{MD|muD?MM#B`=S`oef$Hdrd-c` ze5l&QE%u-eYvVz_I#LV%fqw!wJiwt+YWawUyA6y=d6VPDG2%>ieGI--D5_7k5S zN=9v`yg~hW@TkWTCU>LO3qege$Y+K8pQkE%Z6__a!&iGeUnwNvC|h48jG0S(j)j-w<77ntPJyE}=K^ zKjnvO@V^Jl8VY*y(@3BZHT&v-R*r3Yx5qskSmpgp%O=MGPC`vU{vx3H?rn`0rE@(W z(%h5b87V)$46Uhd|2O<%Rgka6#McaAo(MjTI?{vhqbGL-I|1zux=`jx!9sYTCzy+T zCI|0<3UBZf67dCBQC)BmsD91;R8v&2|JQq=G-DgfFiSL|?-MTaM@1bXSr`%ghPr1( zi*Ug4#{?_R9pTBazqw#dd$TT>JVo;t3igbFNDs2L5HvO|@)pY7-%=^ah+I{ONGlb| zj$GOTk$7tr%ZnUEL-!Y}NHjt}@V6B#i~=pYD_V0PaLF4mC$M1h3@xyjRjLK%OuJAE zEMZk}*bZD;2MDgL*q74y?6&Zmw7{Cvlss?YbS-c_m1v<_6kFg1qT>OS{09Ks7ME_5UL2=s=&{X zSn6&{xsPE2l=@-~gxr(Ckosy;oCSa62srqa~6l>P%qyFA!|A7u*6o4iO1mQ6rXS_rR^ zjcdWqj08e=z=?ugX+w4>3eO03C%#l=G}x1}bn=gZb5mciH^FS4$Nn6w^!RPnXDii# z1?SDzg8fa+Uq-<`kmhEGE`=Kg2N9na`Xrql%n(M3LbLHdICK{NcML6}z%ZIJJoG+I zsU|!pG!x|<9M11atqk3Tgo7g~yEnuW#NcSc2LkhF&Cr5l2p@`UN9$ za2$ul6QL0_V*E8Q=w#f?-vnmhN93<7l)IU!;3R^Ld7oDo5$bp`dInW?p-$8dM??lg zR?#top{`~IQKnj`8+r0nW<#nNi&SPqJ&EradH@*@^&(szR~ZkLGvk9p563|0LwHW8 z621~Tiy2=NdYt&agtrFf&elTxn1d%ni{J+#Rmgioz0qBU22kgL&|KOxknrJ97V;e$ zv;gq&P-o;QG=z5k92(>Sd`@%pKicm(Cm9(^f+lhXwnSvu1i)^Q(~^`LihD&)V|a3C z1pPc)tt9pTrW z+$`eI1i+d32%U)PBhn=M2n{pZv`w7axiNc9yNOU*AU;}4yO|)Sv;c1*SQI#WjFwhQ zuw!75mUb(l@<27@ZzDK3Fmjfbre=ww10$zvX?4U-4a|jt+X>Fq+?go1v^)5PqEvUI zg4r-7*axMr1)s&}kCF6!xN@TwBU9r@xua-Q{27hqJhV|;dmh@Tgt|BnZB(k}p@Cr_ zwc)8y`q$_%IKQSfCFUK(zy zzl%uZFv>I>(^bQXOvEr1E>ID7WCBVg++3&Qc{zrL3-$ddl0f8f6h^p({vAraI5L3s zA8w@|25Efc4(JIN>r8)AMq1oQo?ig;lTBEP9fAX0=n3u`WBJS}oI>OCw}BqMSmwYgpFKC&ZsvvQJM??QE6 zo~Oah%91W^IYE|QXaXDd1#^{eIw_ilMFXik^Yetv^3sK z#Rf;_`4B5mCR9aSQA7$|KSIOs$g5~X;TEo65g8r%95od#cGbbs@sV{bg*GZODY6_b zBwVT@QzLEQ+TnI8GBcuH?c82P=0w!zJ3FYz+{nkO{yVDJg2)>zpiZhB7e}6^J)K>2 zprw&Lbeb+IvOH2)gh)5n+n}tBOf5vDyP~X$yiRxQ?fM!NJi|k0C|8k95x%A{e3oLX zi(E?ItW@c2jYqzthJGq`Pvp_2hzwHpY>TYM2oxTyBHJSmFh@gFWM{;WwjVx6MRrA+ zvMPtF$di$_Y*|92_eL^FsZl2Ei|nCe3`Ye1zdw>mryJ`khTR7uh3I3# zla$cgk%Li0rn~L}d zqMV5IECgkli#Ic#jGhZM;W*a+h~XZ;jGqb+59xm(kxaq|!hQ8VNF*|vsk^sgZD zXba>&JXY})MRu^3C+OEAD2}M(^NEU58sRZcc&h#=C>{7iuNL3N_Rg=r~iHHo3 zsJBcnQ+%T%>QiA?=+}WVKC%)y4qvG#lOmV0qq#=sOH!vszGB8#>$f2?GZJ8Xy;k*Z zb0SeT>oxjTQ07M7V^yxzPc=sV7etOwXrq1~NQ)y^(7H{!8v7z07`aJBR%OkdKU)jm zs@Ea$jgf<34&SD_#7zQX82?d+HRWF4Bw6xmAA@+*>1`vas$~J?A}DUG$^U^B&)A>; zgZkRlM;0P|fBu8a-%%?b-k(3627PM98|}|mBg_|8JZ*n|e-`3bRy?#ne*(L(6IML9 zU&|QB4kfG)K|{(U{IebujWCu(+Cx%L7a9A3#6XIg(K7|h)g9>|FS;9#!u$gbQ_mL5 zfJ=)sLnG81t4KydY+0DMRYV$Ju2RV(k_wfbwu)2WN>7n7m)&S z04-@!WGL!XZ>}P9B0a&Zw-8))FOG!CR>a6~ZI_mD7Q6d&y$LLCOt{Xg-@(_9hxpQ3 z{T>u2U>>#W_Y!u8KE;$nzn@c2Z|HVr@j=e)R_46y2mCl55L#Q99;ff>PcdVAL=Ibw zzK0EFugLk5$v;O``$P^7aWwsTQud3SdszT`IZ-$ua*m@~^cUEa-WEB0EtUTA1jrl` zIjm3k@el5||;e4K>HTOT8GLgduJ z=k&M9cM>yxCiD*9?D?a}xthiPE+apSoLs7Vj|u%Qa;9P6(ckBQtLZs>6|4Rs+lyPz z*#L*oKjRyC1A0z3R@LXH`EK5+dd@@^$yZl`d#|3u*Cy>0?giSI)KQBlVN#A(H0K z$)<7NFGeK8o%0J5I<*0jY|5OwFQVKM%)5a|@SbJo++ zUpdX4>dtuwjuzMdUpaQOL!YJrNQBql6XwZNarjsl*B^H7!d^=O=3CtN2j-C z=M`$f6iW$eASEf_;%6~V1+W12f1K}Nw^Q2moKT7HL6nUm4_j5!&_M4RShv|*Zg zYCk!nEtQTpO*suvCGFPS)o9BZrH=uV>W*hdo1+B>1^O~AH~>X0g0G?6kTf5L&n!p* z)jv102pAX1rY~ zP^s>$==}(TeNh$oP_Q!NC$@ae&CSuQg0-Of4`sFd4WTk4t2IHhLb8heXy|FGLbBTA z0J(6GBkJn1(Wf?1mg=PV*x+Ps9&!} z0TB5JFiu2j?AOw}{Q zbb0V$qt(<7`8LZU#lrW%nk1Yb*;E9%2r&P$OK!JsJ%3y=31p@O+w8Yq%`pn zBeVUB=x)T8gj}(bdp04rMajLGkh=qNcRgaXnixS9w1KOMK|056v|FtmCvsx2-U-f` zk9hkj^DfcEIVvt{N_cE9hU)Cx#Tc!_K6D16FPb_WOC>rJ8r!N8@0)z3EZJdXbw5sp z{gOEViQz2M{>gRVT?*w|hi{RL;CT_m@DsIf;CEkj%J~CSeXu~ zJCp*mxKd)a1$RKfK`8Jl3+_ywB){8XWcFyu!urgS*VYC@&M2mC&MnO40av&zt$W)lC z_WjLhA4FTBHqT>2IvMvE$2i z?|h&|dzL4%r*)Y@*V_OYbzO}AqLvF-vphF2OQ)gSEYFS8<4R6GhIGaZ$#pspr;qlv(}%4r?Q&&vYJ0Yq(aro3yg|U-KHlYc#-q* zpFulo6Z#zSSue=-Vaxa)wrE}WXruVfHsMB~MD2SC3%;WT{#4t7lT<8gb{QGs?{elY zydjPV?k0EJfl?7aaV*y{E$pT`s-M_TWg=SE33`+J;npc=W<7PZ>Z#9I5b{CLiXUqU z1&=4XNz;^e3i+~&nfXhFYMdQr zzzxJeFPOFS@DsIF7#_?l4^(}0JyI}x`9a<~a#+3mAg?)6^?@s^)H_cCVD_h|gk<

Gbn;@t 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 diff --git a/tools/sdk/lib/libnet80211.a b/tools/sdk/lib/libnet80211.a index a79f0a0655245acef952eba5ea91b285d968271f..f756d9a0333cda0a5c15efa2e8040bfa4ca407e9 100644 GIT binary patch delta 10637 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 delta 10476 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 E2{uyWb^rhX diff --git a/tools/sdk/lib/libnewlib.a b/tools/sdk/lib/libnewlib.a index c3b8676add3da51a40b56d86458ccd453e672733..cfbbb9353042a147b4bb00d368a35deb0db9fa7d 100644 GIT binary patch delta 85 zcmezKk>$@vmI>1AhDOFlM#jb)m2#P2?9J1dYCYf_Dep=}IA>N)rUjhCwKUNV&MA7_ G6$$`TI~hIz delta 85 zcmezKk>$@vmI>1A24)sUCWZzZm2#ONYy->9)0k>K;2bIMN=2Be&9ibcE#MrkrHOWM JPSNA8Pyk!U8EgOm diff --git a/tools/sdk/lib/libnghttp.a b/tools/sdk/lib/libnghttp.a index 2247eca2ddbc802bdddb866b5074e7e35edce189..7e18c5dd096324959e7d42371f813bb0e49e7cec 100644 GIT binary patch delta 461 zcmdn?Fm~I+*a_0?hDOFlM#g3vmDG)(Y~#%VMy%UmoM|Un#Wxqfe3c3nFq!^9icP$| z+MjWIwLcTnL{#C~5186#KVaTI`vFVb3z*clldLxbVVvzi?TxN5-sAuyvF&vUY|2xR zMcVg$VcWj%3%j!|n;C7wsT2YenGQ5SeEaMUP9rI}5XiUNUoYZZWq~TR`8MYyGnf#_ z8|_I#TtLhX#5_RE3&eat%n!r@+mnO@Xa9w&HUq1c5)j%hB_RAb6IHZIc)L`UNU|f6 dD9}Z_MIH&lM8H02pL13Oh()*0IV&c$7yvYbjIjU! delta 461 zcmdn?Fm~I+*a_0?24)sUCWgivmDG)(Y=g}KMy%UmoM|Un#Wxqfe3c3lnEpVDO}xF@ zpK*J&KNHhLRN>hVnA&GQVBS9a0ZZHqnAEnDtTzLp9K-EE?TxN5-sAuyvF&vUY|2xR zMcVg$VcWj%3%j!TWsE`rJ z8|_I#TtLhX#5_RE3&eat%n!r@+mnO@Xa7Y}EhQkdT}nXsaVDy0mGE|{Dv@MIBvGJ? bc8fd`go+r0ebPSXtOyW`Zl7~jOlmOzpJ9y} diff --git a/tools/sdk/lib/libnvs_flash.a b/tools/sdk/lib/libnvs_flash.a index d481d19852ef27d65ff767c74506fbfcba2a0a8e..befa46ec371d4f810ef92a74549f69a2bda213be 100644 GIT binary patch delta 131 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 nucoZ>I^HpdjeO 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 delta 30258 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 PxCHCPq9=Y*h_(L#w*Dq{ diff --git a/tools/sdk/lib/libulp.a b/tools/sdk/lib/libulp.a new file mode 100644 index 0000000000000000000000000000000000000000..a98ffbf238e823dd3388ba3c0788070339e32ee5 GIT binary patch literal 24528 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 QHa2aKj{E^+E;xJt10HYK(*OVf literal 0 HcmV?d00001 diff --git a/tools/sdk/lib/libvfs.a b/tools/sdk/lib/libvfs.a index 7a7761d9cba3dd68f307d6618007a272034b6af9..1780b828837f4fc8e94392080d69a52e1d49e2f0 100644 GIT binary patch delta 46 ocmex2iRIrUmI>1AhDOFlMka1A24)sUCWhu4mE;*=?9CpGtjpn?kQG{q07Ci=0ssI2 diff --git a/tools/sdk/lib/libwpa.a b/tools/sdk/lib/libwpa.a index 1d49a0a641695591245df48827d981827d44adfb..4de239784cfcbede353bb18747141700af3996f3 100644 GIT binary patch delta 464 zcmZ28m2=Hh&IvMXX66Ql=H?rf_&6jXOa%o41rUIch6V;^CYwDu-mBx04m20a;R@^@m<4&$0W}H<~4XtvM@6I~Xlz&6!dPOC$EuC58JPv~$e;bgC@z6V{;vp=wFVyfKwGA0 FUI5?DU>pDd delta 464 zcmZ28m2=Hh&IvMXre-E)=0+Qp_&6jXOa%o)0|Nsj(#&kLC&znrJko&%#$tG+=eo^j zQ^aYwiGqTerI~`l-uSphWW+o7mru;dhh})#?m2!-?@yX{p zFy4Gj#;Og2B1Fc!ljt*f8Ur-)Ox ziGqTOsj;QmWXDhHo1fTvY*fIf)XdUMVY0&~jm;(R*D&F+)ACceC~oQPE7=+QE%3+( zIxt4B#On}4OEVLYL$-f;$+&3IS^`IAiivUr2f$k@`mle$Qcv8yt#)-`H`SF--f xjlgbk`Nra7hR3XxI;^J^@yPf3v0k^wBVXIcnvTyef6uXY>)_G9@Hgx2MgVD8-_`&C delta 1013 zcmezKOY+Yz$q6!Sre-E)=0+QpmPtrLmNZhO zFflc@G@I=BNqzGZTaS$j_>`Jinkh_n_@uG9XqFE1Gvu;Vdm?MKGzWq9Q0W-vWZz$br_iC-3P@EI9fni@?P3}V*U z{`DDCb1WXiCb}@k^Wu@`3}U`5fJgps67ywz;rgnF-SDhDOFlMkdA^l|FJn*@lz->cuu2aDG;W2~6c<6W{Ep&lUg^*z8yD z=?Le{J8)1B#+iPPhf#cU?fWQMn8nCgXN1O{T^lFkzsT;@fX3 zGI!ZRMU1BNS+I(4Z;WS7Qh*D|Rk28JXKr9#Vg?i1zHS?{st=3@a_9DsOf2hSU?L!| zY~K^l5-kN2*$ynF-SD24)sUCPoGul|FJn*oNkl{p!Uw8*qMBg$YdMV-w%(sLvJv6WHum z@97BTSZtnm;GiCiGyNV9qxk09_ffJik?lYcTNxN{`nf7LiFPYZ#_d*`OpQNa!ays< zx8GD`?y`l6Oy{#;72n<%&zz(H7m}-Dk=)MQz`Vo^CbWIsHfB{H7!Tym?H`#~*2Ta? zKwjCtC!Qr*3Myi`9cV}^Our>iUSj*94J=pf;qvo7uw=T!c|cc8Rf6%rrX7f4{ojQm za_1?lHr)KJd~6?sQKV%;*jB5-M79I{|I+}$Tg|3x1>qSPOrCc@V!PBcwx7B%5pZa3 KHxyxiEdv0j`+i*j diff --git a/tools/sdk/lib/libwps.a b/tools/sdk/lib/libwps.a index a783fa64f27badf1f8caa70bc2a94d01f3467903..47824e2de6bd4d9aa06abd27d1149348102c227b 100644 GIT binary patch delta 430 zcmdmWN@Uk5kqI(vX66Ql=H?rfLIflsOa%o41rUIch6V;^CY$>O!bR~&|5rWCjYs;n zVZDO_PQy(U6f7+*jVAA#sj+!c(H}KD25q1DS`v@+?#+?G(xwc0MfoX-C5d|R@ou4h z&LN)ue(~`t76yhE+x6KQgO}hoVEgRVjK!{aVnd`c-!`mw zP{3)piGqTqrKQp2eKR#SFDm+@hR2}oGha*Mk>0&IGFaM}L9Zx3C9xz?FFxKa)XzD@ z)88*XUd6(|&}_RtJ7e$?+y-o)y_&Ju6_337N5*gqJo3{unfeQH%eULlX4-B)n>m_O b5pQT%m>8K%-ak{l{m~NU?T?nQL^J>Zw@+zY diff --git a/tools/sdk/lib/libxtensa-debug-module.a b/tools/sdk/lib/libxtensa-debug-module.a index 93d0ca83faa4f9ec9aca629f4317551c366beba9..972e1f0c8932c66357aac97048e36588966f91e9 100644 GIT binary patch delta 46 pcmcZ>do6Z?G`pdZv5}F9@kFKhFy>?h0kMtutodR5%?bkBdo6Z?G`oSBg^`Jo!9=C`Fy>?h0kMtutodR5%?bkB