Example #1
0
	&hdmi_lcdc_device,
	&meram_device,
};

/* Keypad Initialization */
#define KEYPAD_BUTTON(ev_type, ev_code, act_low) \
{								\
	.type		= ev_type,				\
	.code		= ev_code,				\
	.active_low	= act_low,				\
}

#define KEYPAD_BUTTON_LOW(event_code) KEYPAD_BUTTON(EV_KEY, event_code, 1)

static struct tca6416_button mackerel_gpio_keys[] = {
	KEYPAD_BUTTON_LOW(KEY_HOME),
	KEYPAD_BUTTON_LOW(KEY_MENU),
	KEYPAD_BUTTON_LOW(KEY_BACK),
	KEYPAD_BUTTON_LOW(KEY_POWER),
};

static struct tca6416_keys_platform_data mackerel_tca6416_keys_info = {
	.buttons	= mackerel_gpio_keys,
	.nbuttons	= ARRAY_SIZE(mackerel_gpio_keys),
	.rep		= 1,
	.use_polling	= 0,
	.pinmask	= 0x000F,
};

/* I2C */
#define IRQ7 evt2irq(0x02e0)
	if (ret < 0) {
		printk(KERN_WARNING "failed to request GPIO#%d: %d\n",
				KEYPAD_IRQ, ret);
		return ret;
	}
	if (gpio_direction_input(KEYPAD_IRQ)) {
		printk(KERN_WARNING "GPIO#%d cannot be configured as "
				"input\n", KEYPAD_IRQ);
		return -ENXIO;
	}

	return ret;
}

static struct tca6416_button am3517_gpio_keys[] = {
	KEYPAD_BUTTON_LOW(KEY_DOWN),
	KEYPAD_BUTTON_LOW(KEY_UP),
	KEYPAD_BUTTON_LOW(KEY_MENU),
	KEYPAD_BUTTON_LOW(KEY_MODE),
	KEYPAD_BUTTON_LOW(KEY_LEFTSHIFT),
	KEYPAD_BUTTON_LOW(KEY_REWIND),
	KEYPAD_BUTTON_LOW(KEY_FORWARD),
	KEYPAD_BUTTON_LOW(KEY_STOP),
	KEYPAD_BUTTON_LOW(KEY_PLAY),
	KEYPAD_BUTTON_LOW(KEY_RECORD),
};

static struct tca6416_keys_platform_data am3517evm_tca6416_keys_info = {
	.buttons	= am3517_gpio_keys,
	.nbuttons	= ARRAY_SIZE(am3517_gpio_keys),
	.rep		= 0,