diff options
author | Huang Shijie <b32955@freescale.com> | 2011-07-21 17:25:45 +0800 |
---|---|---|
committer | Huang Shijie <b32955@freescale.com> | 2011-08-09 11:05:28 +0800 |
commit | e939aeafbf346ae9f01bf71c7b86a1234c5e8508 (patch) | |
tree | f9c89c66fa754578b5daa161db496b4474d055da /arch/arm | |
parent | c3ed6610664d93b7f1e4e6a874e7dd0c7dc01d2e (diff) |
ENGR00139247-2 MX6Q: add GPMI device
add gpmi device for sabreauto platform.
Signed-off-by: Huang Shijie <b32955@freescale.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-mx6/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-mx6/board-mx6q_sabreauto.c | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/Kconfig b/arch/arm/mach-mx6/Kconfig index 2fe652ffcb7..ddd8f6b650d 100644 --- a/arch/arm/mach-mx6/Kconfig +++ b/arch/arm/mach-mx6/Kconfig @@ -25,6 +25,7 @@ config MACH_MX6Q_SABREAUTO select SOC_IMX6Q select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_FEC + select IMX_HAVE_PLATFORM_GPMI_NFC select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX select IMX_HAVE_PLATFORM_SPI_IMX select IMX_HAVE_PLATFORM_IMX_I2C diff --git a/arch/arm/mach-mx6/board-mx6q_sabreauto.c b/arch/arm/mach-mx6/board-mx6q_sabreauto.c index efae0aa5643..444f21c8de2 100644 --- a/arch/arm/mach-mx6/board-mx6q_sabreauto.c +++ b/arch/arm/mach-mx6/board-mx6q_sabreauto.c @@ -248,6 +248,43 @@ static const struct esdhc_platform_data mx6q_sabreauto_sd4_data __initconst = { .always_present = 1, }; +/* The GPMI is conflicted with SD3, so init this in the driver. */ +static iomux_v3_cfg_t mx6q_gpmi_nand[] __initdata = { + MX6Q_PAD_NANDF_CLE__RAWNAND_CLE, + MX6Q_PAD_NANDF_ALE__RAWNAND_ALE, + MX6Q_PAD_NANDF_CS0__RAWNAND_CE0N, + MX6Q_PAD_NANDF_CS1__RAWNAND_CE1N, + MX6Q_PAD_NANDF_CS2__RAWNAND_CE2N, + MX6Q_PAD_NANDF_CS3__RAWNAND_CE3N, + MX6Q_PAD_NANDF_RB0__RAWNAND_READY0, + MX6Q_PAD_SD4_DAT0__RAWNAND_DQS, + MX6Q_PAD_NANDF_D0__RAWNAND_D0, + MX6Q_PAD_NANDF_D1__RAWNAND_D1, + MX6Q_PAD_NANDF_D2__RAWNAND_D2, + MX6Q_PAD_NANDF_D3__RAWNAND_D3, + MX6Q_PAD_NANDF_D4__RAWNAND_D4, + MX6Q_PAD_NANDF_D5__RAWNAND_D5, + MX6Q_PAD_NANDF_D6__RAWNAND_D6, + MX6Q_PAD_NANDF_D7__RAWNAND_D7, + MX6Q_PAD_SD4_CMD__RAWNAND_RDN, + MX6Q_PAD_SD4_CLK__RAWNAND_WRN, + MX6Q_PAD_NANDF_WP_B__RAWNAND_RESETN, +}; + +static int gpmi_nfc_platform_init(void) +{ + return mxc_iomux_v3_setup_multiple_pads(mx6q_gpmi_nand, + ARRAY_SIZE(mx6q_gpmi_nand)); +} + +static const struct gpmi_nfc_platform_data +mx6q_gpmi_nfc_platform_data __initconst = { + .platform_init = gpmi_nfc_platform_init, + .min_prop_delay_in_ns = 5, + .max_prop_delay_in_ns = 9, + .max_chip_count = 1, +}; + static const struct anatop_thermal_platform_data mx6q_sabreauto_anatop_thermal_data __initconst = { .name = "anatop_thermal", }; @@ -703,6 +740,7 @@ static void __init mx6_board_init(void) gpio_direction_output(MX6Q_SABREAUTO_LDB_BACKLIGHT, 1); imx6q_add_otp(); imx6q_add_imx2_wdt(0, NULL); + imx6q_add_gpmi(&mx6q_gpmi_nfc_platform_data); } extern void __iomem *twd_base; |