2007-12-03 17:14:17

by Ben Gardner

[permalink] [raw]
Subject: [PATCH] gpio_cs5535: disable AUX on output

The AMD CS5535/CS5536 GPIO has two alternate output modes: AUX-1 and AUX-2.
When either AUX is enabled, the cs5535_gpio driver cannot control the output.

Some BIOS code for the Geode processor enables AUX-1 for GPIO-1, which
configures it as the PC BEEP output.

This patch will disable AUX-1 and AUX-2 when the user enables output.

Signed-of-by: Ben Gardner <[email protected]>

--- linux-2.6.23.1.orig/drivers/char/cs5535_gpio.c 2007-10-12
11:43:44.000000000 -0500
+++ linux-2.6.23.1/drivers/char/cs5535_gpio.c 2007-12-03
09:25:49.000000000 -0600
@@ -104,6 +104,11 @@
for (j = 0; j < ARRAY_SIZE(rm); j++) {
if (c == rm[j].on) {
outl(m1, base + rm[j].wr_offset);
+ /* If enabling output, turn off AUX 1 and AUX 2 */
+ if (c == 'O') {
+ outl(m0, base + 0x10);
+ outl(m0, base + 0x14);
+ }
break;
} else if (c == rm[j].off) {
outl(m0, base + rm[j].wr_offset);