]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00139247-2 MX6Q: add GPMI device
authorHuang Shijie <b32955@freescale.com>
Thu, 21 Jul 2011 09:25:45 +0000 (17:25 +0800)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:09:26 +0000 (14:09 +0200)
add gpmi device for sabreauto platform.

Signed-off-by: Huang Shijie <b32955@freescale.com>
arch/arm/mach-mx6/Kconfig
arch/arm/mach-mx6/board-mx6q_sabreauto.c

index 2fe652ffcb79c2219689c742e7d0fcc2d3782379..ddd8f6b650d536884bca1aaadca119e1b1ba9a9f 100644 (file)
@@ -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
index efae0aa5643926044758f4013796b9c15d05deeb..444f21c8de2672b4983b1f86ac70b3057ded7d2e 100644 (file)
@@ -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;