diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2011-09-15 15:08:05 +0200 | 
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2011-09-15 15:08:18 +0200 | 
| commit | e060c38434b2caa78efe7cedaff4191040b65a15 (patch) | |
| tree | 407361230bf6733f63d8e788e4b5e6566ee04818 /arch/arm/mach-mmp/ttc_dkb.c | |
| parent | 10e4ac572eeffe5317019bd7330b6058a400dfc2 (diff) | |
| parent | cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941 (diff) | |
| download | olio-linux-3.10-e060c38434b2caa78efe7cedaff4191040b65a15.tar.xz olio-linux-3.10-e060c38434b2caa78efe7cedaff4191040b65a15.zip  | |
Merge branch 'master' into for-next
Fast-forward merge with Linus to be able to merge patches
based on more recent version of the tree.
Diffstat (limited to 'arch/arm/mach-mmp/ttc_dkb.c')
| -rw-r--r-- | arch/arm/mach-mmp/ttc_dkb.c | 31 | 
1 files changed, 30 insertions, 1 deletions
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c index e411039ea59..6bd37a27e5f 100644 --- a/arch/arm/mach-mmp/ttc_dkb.c +++ b/arch/arm/mach-mmp/ttc_dkb.c @@ -15,6 +15,8 @@  #include <linux/mtd/partitions.h>  #include <linux/mtd/onenand.h>  #include <linux/interrupt.h> +#include <linux/i2c/pca953x.h> +#include <linux/gpio.h>  #include <asm/mach-types.h>  #include <asm/mach/arch.h> @@ -25,7 +27,17 @@  #include "common.h" -#define TTCDKB_NR_IRQS		(IRQ_BOARD_START + 24) +#define TTCDKB_GPIO_EXT0(x)	(NR_BUILTIN_GPIO + ((x < 0) ? 0 :	\ +				((x < 16) ? x : 15))) +#define TTCDKB_GPIO_EXT1(x)	(NR_BUILTIN_GPIO + 16 + ((x < 0) ? 0 :	\ +				((x < 16) ? x : 15))) + +/* + * 16 board interrupts -- MAX7312 GPIO expander + * 16 board interrupts -- PCA9575 GPIO expander + * 24 board interrupts -- 88PM860x PMIC + */ +#define TTCDKB_NR_IRQS		(IRQ_BOARD_START + 16 + 16 + 24)  static unsigned long ttc_dkb_pin_config[] __initdata = {  	/* UART2 */ @@ -113,6 +125,22 @@ static struct platform_device *ttc_dkb_devices[] = {  	&ttc_dkb_device_onenand,  }; +static struct pca953x_platform_data max7312_data[] = { +	{ +		.gpio_base	= TTCDKB_GPIO_EXT0(0), +		.irq_base	= IRQ_BOARD_START, +	}, +}; + +static struct i2c_board_info ttc_dkb_i2c_info[] = { +	{ +		.type		= "max7312", +		.addr		= 0x23, +		.irq		= IRQ_GPIO(80), +		.platform_data	= &max7312_data, +	}, +}; +  static void __init ttc_dkb_init(void)  {  	mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config)); @@ -121,6 +149,7 @@ static void __init ttc_dkb_init(void)  	pxa910_add_uart(1);  	/* off-chip devices */ +	pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info));  	platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));  }  |