ARM: mmp/dkb: enable max7312 gpio expander
Support max7312 gpio expander in TTC DKB. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
This commit is contained in:
parent
f16e05c750
commit
e04eb14fd2
|
@ -15,6 +15,8 @@
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <linux/mtd/onenand.h>
|
#include <linux/mtd/onenand.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/i2c/pca953x.h>
|
||||||
|
#include <linux/gpio.h>
|
||||||
|
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
@ -25,7 +27,17 @@
|
||||||
|
|
||||||
#include "common.h"
|
#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 = {
|
static unsigned long ttc_dkb_pin_config[] __initdata = {
|
||||||
/* UART2 */
|
/* UART2 */
|
||||||
|
@ -113,6 +125,22 @@ static struct platform_device *ttc_dkb_devices[] = {
|
||||||
&ttc_dkb_device_onenand,
|
&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)
|
static void __init ttc_dkb_init(void)
|
||||||
{
|
{
|
||||||
mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config));
|
mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config));
|
||||||
|
@ -121,6 +149,7 @@ static void __init ttc_dkb_init(void)
|
||||||
pxa910_add_uart(1);
|
pxa910_add_uart(1);
|
||||||
|
|
||||||
/* off-chip devices */
|
/* off-chip devices */
|
||||||
|
pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info));
|
||||||
platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
|
platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue