2013-03-07 23:56:59 +00:00
|
|
|
/*
|
|
|
|
ChibiOS/GFX - Copyright (C) 2012, 2013
|
|
|
|
Joel Bodenmann aka Tectu <joel@unormal.org>
|
|
|
|
|
|
|
|
This file is part of ChibiOS/GFX.
|
|
|
|
|
|
|
|
ChibiOS/GFX 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.
|
|
|
|
|
|
|
|
ChibiOS/GFX 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, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2013-03-08 01:02:18 +00:00
|
|
|
* @file drivers/ginput/touch/STMPE811/ginput_lld_mouse_board_embest_dmstf4bb.h
|
|
|
|
* @brief GINPUT Touch low level driver source for the STMPE811 on the Embest DM-STF4BB board.
|
2013-03-07 23:56:59 +00:00
|
|
|
*
|
|
|
|
* @defgroup Mouse Mouse
|
|
|
|
* @ingroup GINPUT
|
|
|
|
* @{
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _GINPUT_LLD_MOUSE_BOARD_H
|
|
|
|
#define _GINPUT_LLD_MOUSE_BOARD_H
|
|
|
|
|
|
|
|
static const I2CConfig i2ccfg2 = {
|
|
|
|
OPMODE_I2C,
|
|
|
|
400000,
|
|
|
|
FAST_DUTY_CYCLE_2,
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Initialise the board for the touch.
|
|
|
|
*
|
|
|
|
* @notapi
|
|
|
|
*/
|
|
|
|
static inline void init_board(void) {
|
2013-03-08 08:20:51 +00:00
|
|
|
palSetPadMode(GPIOC, 13, PAL_MODE_INPUT); /* TP IRQ */
|
|
|
|
palSetPadMode(GPIOB, 10, PAL_MODE_ALTERNATE(4)); /* I2C2 SCL */
|
|
|
|
palSetPadMode(GPIOB, 11, PAL_MODE_ALTERNATE(4)); /* I2C2 SDA */
|
2013-03-07 23:56:59 +00:00
|
|
|
|
|
|
|
i2cStart(&I2CD2, &i2ccfg2);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Check whether the surface is currently touched
|
|
|
|
* @return TRUE if the surface is currently touched
|
|
|
|
*
|
|
|
|
* @notapi
|
|
|
|
*/
|
|
|
|
static inline bool_t getpin_pressed(void) {
|
|
|
|
return (!(palReadPad(GPIOC, 13)));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Aquire the bus ready for readings
|
|
|
|
*
|
|
|
|
* @notapi
|
|
|
|
*/
|
|
|
|
static inline void aquire_bus(void) {
|
|
|
|
i2cAcquireBus(&I2CD2);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Release the bus after readings
|
|
|
|
*
|
|
|
|
* @notapi
|
|
|
|
*/
|
|
|
|
static inline void release_bus(void) {
|
|
|
|
i2cReleaseBus(&I2CD2);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Read a value from touch controller
|
|
|
|
* @return The value read from the controller
|
|
|
|
*
|
|
|
|
* params[in] port The controller port to read.
|
|
|
|
*
|
|
|
|
* @notapi
|
|
|
|
*/
|
|
|
|
static inline uint16_t read_value(uint16_t port) {
|
|
|
|
#error "STMPE811: Implement this driver first!"
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* _GINPUT_LLD_MOUSE_BOARD_H */
|
|
|
|
/** @} */
|