Merged in hardlulz/modem-3.0-nuttx/fix-stmpe811-gpio (pull request #523)

Fix GPIO operation of STMPE811 driver.

Fixed issues:
1. STMPE811_GPIO_DIR was defined for register name
   and later was redefined to be the pin direction mask
   for `stmpe811_gpioconfig`

   I decided to change register name to be STMPE811_GPIO_DIR_REG,
   and keep pin direction mask STMPE811_GPIO_DIR, so that any
   external code that already use this driver will be unchanged.

2. The STMPE811 register GPIO_DIR uses bit value 1 for output
   and 0 for input, but `stmpe811_gpioconfig` set the opposite.

3. The call to `stmpe811_gpiowrite` from inside of `stmpe811_gpioconfig`
   leaded to deadlock.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
This commit is contained in:
Dmitriy Linikov
2017-10-31 16:54:28 +00:00
committed by Gregory Nutt
parent 09d4874509
commit 61372551e9
2 changed files with 17 additions and 10 deletions
+1 -1
View File
@@ -190,7 +190,7 @@
#define STMPE811_GPIO_SETPIN 0x10 /* GPIO set pin register */
#define STMPE811_GPIO_CLRPIN 0x11 /* GPIO clear pin register */
#define STMPE811_GPIO_MPSTA 0x12 /* GPIO monitor pin state register */
#define STMPE811_GPIO_DIR 0x13 /* GPIO direction register */
#define STMPE811_GPIO_DIR_REG 0x13 /* GPIO direction register */
#define STMPE811_GPIO_ED 0x14 /* GPIO edge detect register */
#define STMPE811_GPIO_RE 0x15 /* GPIO rising edge register */
#define STMPE811_GPIO_FE 0x16 /* GPIO falling edge register */