mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 20:34:20 +08:00
ARM: mx3: dynamically allocate imx-keypad devices
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
parent
742269e2d9
commit
d690b4c477
@ -91,6 +91,7 @@ config MACH_MX31_3DS
|
|||||||
select SOC_IMX31
|
select SOC_IMX31
|
||||||
select MXC_DEBUG_BOARD
|
select MXC_DEBUG_BOARD
|
||||||
select IMX_HAVE_PLATFORM_FSL_USB2_UDC
|
select IMX_HAVE_PLATFORM_FSL_USB2_UDC
|
||||||
|
select IMX_HAVE_PLATFORM_IMX_KEYPAD
|
||||||
select IMX_HAVE_PLATFORM_IMX_UART
|
select IMX_HAVE_PLATFORM_IMX_UART
|
||||||
select IMX_HAVE_PLATFORM_MXC_NAND
|
select IMX_HAVE_PLATFORM_MXC_NAND
|
||||||
select IMX_HAVE_PLATFORM_SPI_IMX
|
select IMX_HAVE_PLATFORM_SPI_IMX
|
||||||
|
@ -24,6 +24,10 @@ extern const struct imx_imx_i2c_data imx31_imx_i2c_data[] __initconst;
|
|||||||
#define imx31_add_imx_i2c1(pdata) imx31_add_imx_i2c(1, pdata)
|
#define imx31_add_imx_i2c1(pdata) imx31_add_imx_i2c(1, pdata)
|
||||||
#define imx31_add_imx_i2c2(pdata) imx31_add_imx_i2c(2, pdata)
|
#define imx31_add_imx_i2c2(pdata) imx31_add_imx_i2c(2, pdata)
|
||||||
|
|
||||||
|
extern const struct imx_imx_keypad_data imx31_imx_keypad_data __initconst;
|
||||||
|
#define imx31_add_imx_keypad(pdata) \
|
||||||
|
imx_add_imx_keypad(&imx31_imx_keypad_data, pdata)
|
||||||
|
|
||||||
extern const struct imx_imx_ssi_data imx31_imx_ssi_data[] __initconst;
|
extern const struct imx_imx_ssi_data imx31_imx_ssi_data[] __initconst;
|
||||||
#define imx31_add_imx_ssi(id, pdata) \
|
#define imx31_add_imx_ssi(id, pdata) \
|
||||||
imx_add_imx_ssi(&imx31_imx_ssi_data[id], pdata)
|
imx_add_imx_ssi(&imx31_imx_ssi_data[id], pdata)
|
||||||
|
@ -34,6 +34,10 @@ extern const struct imx_imx_i2c_data imx35_imx_i2c_data[] __initconst;
|
|||||||
#define imx35_add_imx_i2c1(pdata) imx35_add_imx_i2c(1, pdata)
|
#define imx35_add_imx_i2c1(pdata) imx35_add_imx_i2c(1, pdata)
|
||||||
#define imx35_add_imx_i2c2(pdata) imx35_add_imx_i2c(2, pdata)
|
#define imx35_add_imx_i2c2(pdata) imx35_add_imx_i2c(2, pdata)
|
||||||
|
|
||||||
|
extern const struct imx_imx_keypad_data imx35_imx_keypad_data __initconst;
|
||||||
|
#define imx31_add_imx_keypad(pdata) \
|
||||||
|
imx_add_imx_keypad(&imx35_imx_keypad_data, pdata)
|
||||||
|
|
||||||
extern const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst;
|
extern const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst;
|
||||||
#define imx35_add_imx_ssi(id, pdata) \
|
#define imx35_add_imx_ssi(id, pdata) \
|
||||||
imx_add_imx_ssi(&imx35_imx_ssi_data[id], pdata)
|
imx_add_imx_ssi(&imx35_imx_ssi_data[id], pdata)
|
||||||
|
@ -113,22 +113,3 @@ struct platform_device imx_rtc_device0 = {
|
|||||||
.num_resources = ARRAY_SIZE(imx_rtc_resources),
|
.num_resources = ARRAY_SIZE(imx_rtc_resources),
|
||||||
.resource = imx_rtc_resources,
|
.resource = imx_rtc_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource imx_kpp_resources[] = {
|
|
||||||
{
|
|
||||||
.start = MX3x_KPP_BASE_ADDR,
|
|
||||||
.end = MX3x_KPP_BASE_ADDR + 0xf,
|
|
||||||
.flags = IORESOURCE_MEM
|
|
||||||
}, {
|
|
||||||
.start = MX3x_INT_KPP,
|
|
||||||
.end = MX3x_INT_KPP,
|
|
||||||
.flags = IORESOURCE_IRQ,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
struct platform_device imx_kpp_device = {
|
|
||||||
.name = "imx-keypad",
|
|
||||||
.id = -1,
|
|
||||||
.num_resources = ARRAY_SIZE(imx_kpp_resources),
|
|
||||||
.resource = imx_kpp_resources,
|
|
||||||
};
|
|
||||||
|
@ -2,4 +2,3 @@ extern struct platform_device mx3_ipu;
|
|||||||
extern struct platform_device mx3_fb;
|
extern struct platform_device mx3_fb;
|
||||||
extern struct platform_device mx3_camera;
|
extern struct platform_device mx3_camera;
|
||||||
extern struct platform_device imx_rtc_device0;
|
extern struct platform_device imx_rtc_device0;
|
||||||
extern struct platform_device imx_kpp_device;
|
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include <linux/mfd/mc13783.h>
|
#include <linux/mfd/mc13783.h>
|
||||||
#include <linux/spi/spi.h>
|
#include <linux/spi/spi.h>
|
||||||
#include <linux/regulator/machine.h>
|
#include <linux/regulator/machine.h>
|
||||||
#include <linux/input/matrix_keypad.h>
|
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
@ -101,7 +100,7 @@ static const uint32_t mx31_3ds_keymap[] = {
|
|||||||
KEY(2, 3, KEY_F10),
|
KEY(2, 3, KEY_F10),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct matrix_keymap_data mx31_3ds_keymap_data = {
|
static const struct matrix_keymap_data mx31_3ds_keymap_data __initconst = {
|
||||||
.keymap = mx31_3ds_keymap,
|
.keymap = mx31_3ds_keymap,
|
||||||
.keymap_size = ARRAY_SIZE(mx31_3ds_keymap),
|
.keymap_size = ARRAY_SIZE(mx31_3ds_keymap),
|
||||||
};
|
};
|
||||||
@ -245,7 +244,7 @@ static void __init mxc_board_init(void)
|
|||||||
spi_register_board_info(mx31_3ds_spi_devs,
|
spi_register_board_info(mx31_3ds_spi_devs,
|
||||||
ARRAY_SIZE(mx31_3ds_spi_devs));
|
ARRAY_SIZE(mx31_3ds_spi_devs));
|
||||||
|
|
||||||
mxc_register_device(&imx_kpp_device, &mx31_3ds_keymap_data);
|
imx31_add_imx_keypad(&mx31_3ds_keymap_data);
|
||||||
|
|
||||||
mx31_3ds_usbotg_init();
|
mx31_3ds_usbotg_init();
|
||||||
imx31_add_fsl_usb2_udc(&usbotg_pdata);
|
imx31_add_fsl_usb2_udc(&usbotg_pdata);
|
||||||
|
@ -31,6 +31,16 @@ const struct imx_imx_keypad_data imx27_imx_keypad_data __initconst =
|
|||||||
imx_imx_keypad_data_entry_single(MX27, SZ_16);
|
imx_imx_keypad_data_entry_single(MX27, SZ_16);
|
||||||
#endif /* ifdef CONFIG_SOC_IMX27 */
|
#endif /* ifdef CONFIG_SOC_IMX27 */
|
||||||
|
|
||||||
|
#ifdef CONFIG_SOC_IMX31
|
||||||
|
const struct imx_imx_keypad_data imx31_imx_keypad_data __initconst =
|
||||||
|
imx_imx_keypad_data_entry_single(MX31, SZ_16);
|
||||||
|
#endif /* ifdef CONFIG_SOC_IMX31 */
|
||||||
|
|
||||||
|
#ifdef CONFIG_SOC_IMX35
|
||||||
|
const struct imx_imx_keypad_data imx35_imx_keypad_data __initconst =
|
||||||
|
imx_imx_keypad_data_entry_single(MX35, SZ_16);
|
||||||
|
#endif /* ifdef CONFIG_SOC_IMX35 */
|
||||||
|
|
||||||
struct platform_device *__init imx_add_imx_keypad(
|
struct platform_device *__init imx_add_imx_keypad(
|
||||||
const struct imx_imx_keypad_data *data,
|
const struct imx_imx_keypad_data *data,
|
||||||
const struct matrix_keymap_data *pdata)
|
const struct matrix_keymap_data *pdata)
|
||||||
|
Loading…
Reference in New Issue
Block a user