All pastes #630901 Raw Edit

Diff

public text v1 · immutable
#630901 ·published 2007-07-23 15:54 UTC
rendered paste body
Index: arch/arm/mach-pxa/magician/magician.c===================================================================RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/magician/magician.c,vretrieving revision 1.42diff -u -r1.42 magician.c--- arch/arm/mach-pxa/magician/magician.c	22 Jul 2007 21:16:10 -0000	1.42+++ arch/arm/mach-pxa/magician/magician.c	23 Jul 2007 15:54:22 -0000@@ -207,6 +207,7 @@ struct htc_egpio_platform_data egpio_data = { 	.bus_shift   = 1,			/* 32bit alignment instead of 16bit */ 	.irq_base    = IRQ_BOARD_START,		/* 16 IRQs, we only have 4 though */+	.gpio_base   = GPIO_BASE_INCREMENT, 	.nrRegs      = 7, 	.ackRegister = 3, 	.pins        = egpio_pins,Index: arch/arm/mach-pxa/htcapache/htcapache.c===================================================================RCS file: /cvs/linux/kernel26/arch/arm/mach-pxa/htcapache/htcapache.c,vretrieving revision 1.24diff -u -r1.24 htcapache.c--- arch/arm/mach-pxa/htcapache/htcapache.c	17 Jul 2007 17:29:26 -0000	1.24+++ arch/arm/mach-pxa/htcapache/htcapache.c	23 Jul 2007 15:54:22 -0000@@ -81,6 +81,7 @@ struct htc_egpio_platform_data egpio_data = { 	.invertAcks = 1, 	.irq_base = IRQ_BOARD_START,+	.gpio_base = GPIO_BASE_INCREMENT, 	.nrRegs = 3, 	.pins = pins, 	.nr_pins = ARRAY_SIZE(pins),Index: include/linux/mfd/htc-egpio.h===================================================================RCS file: /cvs/linux/kernel26/include/linux/mfd/htc-egpio.h,vretrieving revision 1.4diff -u -r1.4 htc-egpio.h--- include/linux/mfd/htc-egpio.h	1 Jul 2007 23:42:53 -0000	1.4+++ include/linux/mfd/htc-egpio.h	23 Jul 2007 15:54:22 -0000@@ -42,12 +42,14 @@ struct htc_egpio_platform_data { 	/* This is 'gpiodev' capable */ 	struct gpiodev_ops ops;+	/* Beginning of available irqs (eg, IRQ_BOARD_START) */+	int irq_base;+	/* Beginning of available gpios (eg, GPIO_BASE_INCREMENT) */+	int gpio_base; 	/* Shift register number by this value (bus_shift=1 for 32bit register alignment) */ 	int bus_shift; 	/* Set if chip requires writing '0' to ack an irq */ 	int invertAcks;-	/* Beginning of available irqs (eg, IRQ_BOARD_START) */-	int irq_base; 	/* Number of registers (optional if all output pins specified 	 * below) */ 	int nrRegs;Index: drivers/mfd/htc-egpio.c===================================================================RCS file: /cvs/linux/kernel26/drivers/mfd/htc-egpio.c,vretrieving revision 1.4diff -u -r1.4 htc-egpio.c--- drivers/mfd/htc-egpio.c	1 Jul 2007 23:42:53 -0000	1.4+++ drivers/mfd/htc-egpio.c	23 Jul 2007 15:54:23 -0000@@ -12,6 +12,7 @@ #include <linux/interrupt.h> /* enable_irq_wake */ #include <linux/spinlock.h> /* spinlock_t */ #include <linux/module.h>+#include <linux/gpiodev2.h> #include <linux/mfd/htc-egpio.h>  #include <asm/irq.h> /* IRQT_RISING */@@ -249,6 +250,14 @@ 	pdata->ops.to_irq = egpio_to_irq; 	platform_set_drvdata(pdev, ei); +	{+	struct gpio_ops ops;+	ops.get_value = egpio_get;+	ops.set_value = egpio_set;+	ops.to_irq = egpio_to_irq;+	gpiodev_register(pdata->gpio_base, &pdev->dev, &ops);+	}+ 	/* Go through list of pins. */ 	ei->irqStart = pdata->irq_base; 	ei->maxRegs = pdata->nrRegs - 1;