[PATCH v2 3/3] mx28evk: add m25p80 flash via ssp2

Michael Grzeschik m.grzeschik at pengutronix.de
Tue Feb 5 06:46:57 EST 2013


Signed-off-by: Michael Grzeschik <m.grzeschik at pengutronix.de>
---
changes since v1:
 - fixed multiline comments and blank line fixes

 arch/arm/boards/freescale-mx28-evk/mx28-evk.c |   29 +++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/arch/arm/boards/freescale-mx28-evk/mx28-evk.c b/arch/arm/boards/freescale-mx28-evk/mx28-evk.c
index 4311473..2e866a3 100644
--- a/arch/arm/boards/freescale-mx28-evk/mx28-evk.c
+++ b/arch/arm/boards/freescale-mx28-evk/mx28-evk.c
@@ -30,6 +30,7 @@
 #include <mach/mci.h>
 #include <mach/fb.h>
 #include <mach/ocotp.h>
+#include <spi/spi.h>
 
 #include <asm/armlinux.h>
 #include <asm/mmu.h>
@@ -126,6 +127,12 @@ static const uint32_t mx28evk_pads[] = {
 	GPMI_ALE | VE_3_3V,
 	GPMI_CLE | VE_3_3V,
 	GPMI_RESETN,		/* act as WP, external PU */
+
+	/* SSP */
+	SSP2_D0 | VE_3_3V | PULLUP(1) | STRENGTH(S8MA), /* MISO DO */
+	SSP2_D3 | VE_3_3V | PULLUP(1) | STRENGTH(S8MA), /* SS0 !CS */
+	SSP2_CMD | VE_3_3V | PULLUP(1) | STRENGTH(S8MA), /* MOSI DIO */
+	SSP2_SCK | VE_3_3V | PULLUP(1) | STRENGTH(S8MA), /* CLK */
 };
 
 static struct mxs_mci_platform_data mci_pdata = {
@@ -225,6 +232,19 @@ static int mx28_evk_mem_init(void)
 }
 mem_initcall(mx28_evk_mem_init);
 
+static const struct spi_board_info mx28evk_spi_board_info[] = {
+	{
+		.name = "m25p80",
+		/*
+		 * we leave this with the lower frequency
+		 * as the ssp unit otherwise locks up
+		 */
+		.max_speed_hz = 32000000,
+		.bus_num = 2,
+		.chip_select = 0,
+	}
+};
+
 static int mx28_evk_devices_init(void)
 {
 	int i;
@@ -235,8 +255,11 @@ static int mx28_evk_devices_init(void)
 
 	/* enable IOCLK0 to run at the PLL frequency */
 	imx_set_ioclk(0, 480000000);
+	imx_set_ioclk(1, 320000000);
 	/* run the SSP unit clock at 100 MHz */
 	imx_set_sspclk(0, 100000000, 1);
+	/* run the SSP unit 2 clock at 160Mhz */
+	imx_set_sspclk(2, 160000000, 1);
 
 	armlinux_set_bootparams((void *)IMX_MEMORY_BASE + 0x100);
 	armlinux_set_architecture(MACH_TYPE_MX28EVK);
@@ -259,6 +282,12 @@ static int mx28_evk_devices_init(void)
 	add_generic_device("mxs_nand", 0, NULL, MXS_GPMI_BASE, 0x2000,
 			   IORESOURCE_MEM, NULL);
 
+	spi_register_board_info(mx28evk_spi_board_info,
+			ARRAY_SIZE(mx28evk_spi_board_info));
+
+	add_generic_device("mxs_spi", 2, NULL, IMX_SSP2_BASE, 0x2000,
+			   IORESOURCE_MEM, NULL);
+
 	return 0;
 }
 device_initcall(mx28_evk_devices_init);
-- 
1.7.10.4




More information about the barebox mailing list