gpio: gpio-ich: Share ownership of GPIO groups
authorJean Delvare <khali@linux-fr.org>
Mon, 23 Jul 2012 15:34:15 +0000 (17:34 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 14 Sep 2012 07:52:13 +0000 (09:52 +0200)
commit4f600ada70beeb1dfe08e11e871bf31015aa0a3d
tree7ab75ca987a49e661c6e33c052e59d56bc83a219
parentcdabc1c88a12e9fc2a49f2a54ce9be470398d8a9
gpio: gpio-ich: Share ownership of GPIO groups

The ICH chips have their GPIO pins organized in 2 or 3 independent
groups of 32 GPIO pins. It can happen that the ACPI BIOS wants to make
use of pins in one group, preventing the OS to access these. This does
not prevent the OS from accessing the other group(s).

This is the case for example on my Asus Z8NA-D6 board. The ACPI BIOS
wants to control GPIO 18 (group 1), while I (the OS) need to control
GPIO 52 and 53 (group 2) for SMBus multiplexing.

So instead of checking for ACPI resource conflict on the whole I/O
range, check on a per-group basis, and consider it a success if at
least one of the groups is available for the OS to use.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Peter Tyser <ptyser@xes-inc.com>
Cc: Aaron Sierra <asierra@xes-inc.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/gpio/gpio-ich.c
drivers/mfd/lpc_ich.c
include/linux/mfd/lpc_ich.h