ARM: iPAQ: convert H3100 IrDA to use generic gpio support

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c
index 2b545a4..c53ad65 100644
--- a/arch/arm/mach-sa1100/h3600.c
+++ b/arch/arm/mach-sa1100/h3600.c
@@ -347,14 +347,13 @@
  */
 static int h3100_irda_set_power(struct device *dev, unsigned int state)
 {
-	assign_h3100_egpio(IPAQ_EGPIO_IR_ON, state);
-
+	gpio_set_value(H3100_GPIO_IR_ON, state);
 	return 0;
 }
 
 static void h3100_irda_set_speed(struct device *dev, unsigned int speed)
 {
-	assign_h3100_egpio(IPAQ_EGPIO_IR_FSEL, !(speed < 4000000));
+	gpio_set_value(H3100_GPIO_IR_FSEL, !(speed < 4000000));
 }
 
 static struct irda_platform_data h3100_irda_data = {
@@ -362,8 +361,14 @@
 	.set_speed	= h3100_irda_set_speed,
 };
 
+static struct gpio_default_state h3100_default_gpio[] = {
+	{ H3100_GPIO_IR_ON,	GPIO_MODE_OUT0, "IrDA power" },
+	{ H3100_GPIO_IR_FSEL,	GPIO_MODE_OUT0, "IrDA fsel" },
+};
+
 static void h3100_mach_init(void)
 {
+	h3xxx_init_gpio(h3100_default_gpio, ARRAY_SIZE(h3100_default_gpio));
 	h3xxx_mach_init();
 	sa11x0_register_irda(&h3100_irda_data);
 }
diff --git a/arch/arm/mach-sa1100/include/mach/h3600_gpio.h b/arch/arm/mach-sa1100/include/mach/h3600_gpio.h
index a36ca76..d4d0b22 100644
--- a/arch/arm/mach-sa1100/include/mach/h3600_gpio.h
+++ b/arch/arm/mach-sa1100/include/mach/h3600_gpio.h
@@ -39,6 +39,15 @@
 #define GPIO_H3100_IR_ON		GPIO_GPIO (8)
 #define GPIO_H3100_IR_FSEL		GPIO_GPIO (9)
 
+/* gpiolib versions of the above */
+#define H3100_GPIO_BT_ON		2
+#define H3100_GPIO_QMUTE		4
+#define H3100_GPIO_LCD_3V_ON		5
+#define H3100_GPIO_AUD_ON		6
+#define H3100_GPIO_AUD_PWR_ON		7
+#define H3100_GPIO_IR_ON		8
+#define H3100_GPIO_IR_FSEL		9
+
 /* for H3600, audio sample rate clock generator */
 #define GPIO_H3600_CLK_SET0		GPIO_GPIO (12)
 #define GPIO_H3600_CLK_SET1		GPIO_GPIO (13)