/*------------------------------------------------------------------------------ -- This file is a part of the libuc, microcontroler library -- Copyright (C) 2013, Alexis Jeandet -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -- -- This program 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 General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- -- Author : Alexis Jeandet -- Mail : alexis.jeandet@member.fsf.org -------------------------------------------------------------------------------*/ #ifndef STMPE811_H #define STMPE811_H #include #include #include #include #include #include typedef struct STMPE811_t { i2c_t i2cdev; uint8_t devAddress; }STMPE811_t; extern int stmpe811init(STMPE811_t *dev, i2c_t i2cdev, uint8_t A0); extern int stmpe811getID(STMPE811_t *dev); #define STMPE811_REGISTER_CHIP_ID ((uint32_t) 0x0000 ) #define STMPE811_REGISTER_ID_VER ((uint32_t) 0x0002 ) #define STMPE811_REGISTER_SYS_CTRL1 ((uint32_t) 0x0003 ) #define STMPE811_REGISTER_SYS_CTRL2 ((uint32_t) 0x0004 ) #define STMPE811_REGISTER_SPI_CFG ((uint32_t) 0x0008 ) #define STMPE811_REGISTER_INT_CTRL ((uint32_t) 0x0009 ) #define STMPE811_REGISTER_INT_EN ((uint32_t) 0x000A ) #define STMPE811_REGISTER_INT_STA ((uint32_t) 0x000B ) #define STMPE811_REGISTER_GPIO_EN ((uint32_t) 0x000C ) #define STMPE811_REGISTER_GPIO_INT_STA ((uint32_t) 0x000D ) #define STMPE811_REGISTER_ADC_INT_EN ((uint32_t) 0x000E ) #define STMPE811_REGISTER_ADC_INT_STA ((uint32_t) 0x000F ) #define STMPE811_REGISTER_GPIO_SET_PIN ((uint32_t) 0x0010 ) #define STMPE811_REGISTER_GPIO_CLR_PIN ((uint32_t) 0x0011 ) #define STMPE811_REGISTER_GPIO_MP_STA ((uint32_t) 0x0012 ) #define STMPE811_REGISTER_GPIO_DIR ((uint32_t) 0x0013 ) #define STMPE811_REGISTER_GPIO_ED ((uint32_t) 0x0014 ) #define STMPE811_REGISTER_GPIO_RE ((uint32_t) 0x0015 ) #define STMPE811_REGISTER_GPIO_FE ((uint32_t) 0x0016 ) #define STMPE811_REGISTER_GPIO_AF ((uint32_t) 0x0017 ) #define STMPE811_REGISTER_ADC_CTRL1 ((uint32_t) 0x0020 ) #define STMPE811_REGISTER_ADC_CTRL2 ((uint32_t) 0x0021 ) #define STMPE811_REGISTER_ADC_CAPT ((uint32_t) 0x0022 ) #define STMPE811_REGISTER_ADC_DATA_CH0 ((uint32_t) 0x0030 ) #define STMPE811_REGISTER_ADC_DATA_CH1 ((uint32_t) 0x0032 ) #define STMPE811_REGISTER_ADC_DATA_CH2 ((uint32_t) 0x0034 ) #define STMPE811_REGISTER_ADC_DATA_CH3 ((uint32_t) 0x0036 ) #define STMPE811_REGISTER_ADC_DATA_CH4 ((uint32_t) 0x0038 ) #define STMPE811_REGISTER_ADC_DATA_CH5 ((uint32_t) 0x003A ) #define STMPE811_REGISTER_ADC_DATA_CH6 ((uint32_t) 0x003C ) #define STMPE811_REGISTER_ADC_DATA_CH7 ((uint32_t) 0x003E ) #define STMPE811_REGISTER_TSC_CTRL ((uint32_t) 0x0040 ) #define STMPE811_REGISTER_TSC_CFG ((uint32_t) 0x0041 ) #define STMPE811_REGISTER_WDW_TR_X ((uint32_t) 0x0042 ) #define STMPE811_REGISTER_WDW_TR_Y ((uint32_t) 0x0044 ) #define STMPE811_REGISTER_WDW_BL_X ((uint32_t) 0x0046 ) #define STMPE811_REGISTER_WDW_BL_Y ((uint32_t) 0x0048 ) #define STMPE811_REGISTER_FIFO_TH ((uint32_t) 0x004A ) #define STMPE811_REGISTER_FIFO_STA ((uint32_t) 0x004B ) #define STMPE811_REGISTER_FIFO_SIZE ((uint32_t) 0x004C ) #define STMPE811_REGISTER_TSC_DATA_X ((uint32_t) 0x004D ) #define STMPE811_REGISTER_TSC_DATA_Y ((uint32_t) 0x004F ) #define STMPE811_REGISTER_TSC_DATA_Z ((uint32_t) 0x0051 ) #define STMPE811_REGISTER_TSC_DATA_XYZ ((uint32_t) 0x0052 ) #define STMPE811_REGISTER_TSC_FRACTION_Z ((uint32_t) 0x0056 ) #define STMPE811_REGISTER_TSC_DATA ((uint32_t) 0x0057 ) #define STMPE811_REGISTER_TSC_I_DRIVE ((uint32_t) 0x0058 ) #define STMPE811_REGISTER_TSC_SHIELD ((uint32_t) 0x0059 ) #define STMPE811_REGISTER_TEMP_CTRL ((uint32_t) 0x0060 ) #define STMPE811_REGISTER_TEMP_DATA ((uint32_t) 0x0061 ) #define STMPE811_REGISTER_TEMP_TH ((uint32_t) 0x0062 ) #endif