Update to touchpad LLDs to use new structure.
This commit is contained in:
parent
58ddfd9210
commit
823db82c7f
2 changed files with 28 additions and 43 deletions
|
@ -52,19 +52,11 @@
|
|||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#if !defined(__DOXYGEN__)
|
||||
TOUCHPADDriver Touchpad;
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables. */
|
||||
/*===========================================================================*/
|
||||
static const SPIConfig spicfg = {
|
||||
NULL,
|
||||
TP_CS_PORT,
|
||||
TP_CS,
|
||||
SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0,
|
||||
};
|
||||
static TOUCHPADDriver* tpDriver;
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
|
@ -86,7 +78,7 @@ static const SPIConfig spicfg = {
|
|||
* @notapi
|
||||
*/
|
||||
void tp_lld_init(TOUCHPADDriver *tp) {
|
||||
spiStart(tp->spid, &spicfg);
|
||||
spiStart(tp->spip, tp->spicfg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -100,10 +92,10 @@ uint16_t tp_lld_read_x(void) {
|
|||
uint16_t y;
|
||||
|
||||
txbuf[0] = 0xd0;
|
||||
TP_CS_LOW;
|
||||
palClearPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
spiSend(&SPID1, 1, txbuf);
|
||||
spiReceive(&SPID1, 2, rxbuf);
|
||||
TP_CS_HIGH;
|
||||
palSetPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
|
||||
y = rxbuf[0] << 4;
|
||||
y |= rxbuf[1] >> 4;
|
||||
|
@ -122,10 +114,10 @@ uint16_t tp_lld_read_y(void) {
|
|||
uint16_t y;
|
||||
|
||||
txbuf[0] = 0x90;
|
||||
TP_CS_LOW;
|
||||
palClearPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
spiSend(&SPID1, 1, txbuf);
|
||||
spiReceive(&SPID1, 2, rxbuf);
|
||||
TP_CS_HIGH;
|
||||
palSetPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
|
||||
y = rxbuf[0] << 4;
|
||||
y |= rxbuf[1] >> 4;
|
||||
|
@ -142,9 +134,9 @@ uint16_t tp_lld_read_y(void) {
|
|||
*
|
||||
* @noapi
|
||||
*/
|
||||
uint8_t tp_lld_irq(void) {
|
||||
return (!palReadPad(TP_IRQ_PORT, TP_IRQ));
|
||||
}
|
||||
uint8_t tp_lld_irq(void) {
|
||||
return (!palReadPad(tpDriver->tpIRQPort, tpDriver->tpIRQPin));
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HAL_USE_TOUCHPAD */
|
||||
|
|
|
@ -36,9 +36,6 @@
|
|||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#define TP_CS_HIGH palSetPad(TP_CS_PORT, TP_CS)
|
||||
#define TP_CS_LOW palClearPad(TP_CS_PORT, TP_CS)
|
||||
|
||||
#ifdef UNUSED
|
||||
#elif defined(__GNUC__)
|
||||
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
|
||||
|
@ -52,32 +49,27 @@
|
|||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#if !defined(__DOXYGEN__)
|
||||
TOUCHPADDriver Touchpad;
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables. */
|
||||
/*===========================================================================*/
|
||||
static const SPIConfig spicfg = {
|
||||
NULL,
|
||||
TP_CS_PORT,
|
||||
TP_CS,
|
||||
SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0,
|
||||
};
|
||||
static TOUCHPADDriver* tpDriver;
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver interrupt handlers. */
|
||||
/*===========================================================================*/
|
||||
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
|
||||
/* ---- Required Routines ---- */
|
||||
|
||||
/**
|
||||
|
@ -86,7 +78,9 @@ static const SPIConfig spicfg = {
|
|||
* @notapi
|
||||
*/
|
||||
void tp_lld_init(TOUCHPADDriver *tp) {
|
||||
spiStart(tp->spid, &spicfg);
|
||||
tpDriver=tp;
|
||||
|
||||
spiStart(tp->spip, tp->spicfg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -100,11 +94,10 @@ uint16_t tp_lld_read_x(void) {
|
|||
uint16_t y;
|
||||
|
||||
txbuf[0] = 0xd0;
|
||||
TP_CS_LOW;
|
||||
palClearPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
spiSend(&SPID1, 1, txbuf);
|
||||
spiReceive(&SPID1, 2, rxbuf);
|
||||
TP_CS_HIGH;
|
||||
|
||||
palSetPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
y = rxbuf[0] << 4;
|
||||
y |= rxbuf[1] >> 4;
|
||||
|
||||
|
@ -122,10 +115,10 @@ uint16_t tp_lld_read_y(void) {
|
|||
uint16_t y;
|
||||
|
||||
txbuf[0] = 0x90;
|
||||
TP_CS_LOW;
|
||||
palClearPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
spiSend(&SPID1, 1, txbuf);
|
||||
spiReceive(&SPID1, 2, rxbuf);
|
||||
TP_CS_HIGH;
|
||||
palSetPad(tpDriver->spicfg->ssport, tpDriver->spicfg->sspad);
|
||||
|
||||
y = rxbuf[0] << 4;
|
||||
y |= rxbuf[1] >> 4;
|
||||
|
@ -135,15 +128,15 @@ uint16_t tp_lld_read_y(void) {
|
|||
|
||||
/* ---- Optional Routines ---- */
|
||||
#if TOUCHPAD_HAS_IRQ || defined(__DOXYGEN__)
|
||||
/*
|
||||
* @brief for checking if touchpad is pressed or not.
|
||||
*
|
||||
* @return 1 if pressed / 0 if not pressed
|
||||
*
|
||||
* @noapi
|
||||
*/
|
||||
/*
|
||||
* @brief for checking if touchpad is pressed or not.
|
||||
*
|
||||
* @return 1 if pressed / 0 if not pressed
|
||||
*
|
||||
* @noapi
|
||||
*/
|
||||
uint8_t tp_lld_irq(void) {
|
||||
return (!palReadPad(TP_IRQ_PORT, TP_IRQ));
|
||||
return (!palReadPad(tpDriver->tpIRQPort, tpDriver->tpIRQPin));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue