gpio: driver for Xtensa GPIO32
authorBaruch Siach <baruch@tkos.co.il>
Thu, 12 Dec 2013 09:18:41 +0000 (11:18 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 12 Dec 2013 13:33:14 +0000 (14:33 +0100)
commit3b31d0eca5fd8d7d485c7cb7319a5cd6a3207726
treeb5e0c8075f4f2b0bca12b8d15e8d7048ce2b1168
parentbcc0562c776e4b09c7b9f24cddb8724fbe7a3fa5
gpio: driver for Xtensa GPIO32

GPIO32 is a standard optional extension to the Xtensa architecture
core that provides preconfigured output and input ports for intra
SoC signaling. The GPIO32 option is implemented as 32bit Tensilica
Instruction Extension (TIE) output state called EXPSTATE, and 32bit
input wire called IMPWIRE. This driver treats input and output
states as two distinct devices.

v3:
* Use BUG() in xtensa_impwire_set_value() to indicate that
  it should never be called (Linus Walleij)
v2:
* Address the comments of Linus Walleij:
  - Add a few comments
  - Expand commit log message
  - Use the BIT() macro for bit offsets
  - Rewrite CPENABLE handling as static inlines
  - Use device_initcall()
* Depend on !SMP for reason explained in the comments (Marc Gauthier)
* Use XCHAL_CP_ID_XTIOP to enable/disable GPIO32 only

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/gpio/gpio-xtensa.c [new file with mode: 0644]