mirror of https://gitee.com/openkylin/linux.git
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/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));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue