From b1b26f2aa637a885d724544bb5056c8fdb9522d4 Mon Sep 17 00:00:00 2001 From: James Maki Date: Mon, 18 Oct 2010 08:43:09 -0500 Subject: new linux-2.6.32.3 patch set - m25p80: enable write during probe for sst25VF080B - disable rtt interrupts during interrupt init - add m25p80 test code --- .../linux-2.6.32/mtcdp/linux-2.6.32.3-m25p80.patch | 12 +++ .../mtcdp/linux-2.6.32.3-mach-at91.patch | 98 ++++++++++++++++------ recipes/linux/linux_2.6.32.bb | 1 + 3 files changed, 84 insertions(+), 27 deletions(-) create mode 100644 recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-m25p80.patch diff --git a/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-m25p80.patch b/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-m25p80.patch new file mode 100644 index 0000000000..71d3a920bb --- /dev/null +++ b/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-m25p80.patch @@ -0,0 +1,12 @@ +diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/drivers/mtd/devices/m25p80.c linux-2.6.32.3/drivers/mtd/devices/m25p80.c +--- linux-2.6.32.3-vanilla/drivers/mtd/devices/m25p80.c 2010-01-06 17:07:45.000000000 -0600 ++++ linux-2.6.32.3/drivers/mtd/devices/m25p80.c 2010-10-14 11:36:06.000000000 -0500 +@@ -780,7 +780,7 @@ static int __devinit m25p_probe(struct s + * with the software protection bits set + */ + +- if (info->jedec_id >> 16 == 0x1f) { ++ if (info->jedec_id >> 16 == 0x1f || info->jedec_id == 0xbf258e) { + write_enable(flash); + write_sr(flash, 0); + } diff --git a/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-mach-at91.patch b/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-mach-at91.patch index 2fa73ec9f7..a4bcac89ca 100644 --- a/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-mach-at91.patch +++ b/recipes/linux/linux-2.6.32/mtcdp/linux-2.6.32.3-mach-at91.patch @@ -33,18 +33,20 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ { diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/arm/mach-at91/board-sam9g20ek.c linux-2.6.32.3/arch/arm/mach-at91/board-sam9g20ek.c --- linux-2.6.32.3-vanilla/arch/arm/mach-at91/board-sam9g20ek.c 2010-01-06 17:07:45.000000000 -0600 -+++ linux-2.6.32.3/arch/arm/mach-at91/board-sam9g20ek.c 2010-10-11 10:19:56.000000000 -0500 -@@ -27,6 +27,9 @@ ++++ linux-2.6.32.3/arch/arm/mach-at91/board-sam9g20ek.c 2010-10-14 16:16:52.000000000 -0500 +@@ -27,6 +27,11 @@ #include #include #include +#include +#include ++#include +#include ++#include #include #include -@@ -44,6 +47,7 @@ +@@ -44,9 +49,12 @@ #include "sam9_smc.h" #include "generic.h" @@ -52,12 +54,15 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ static void __init ek_map_io(void) { -@@ -61,6 +65,43 @@ static void __init ek_map_io(void) ++ int tmp; ++ + /* Initialize processor: 18.432 MHz crystal */ + at91sam9260_initialize(18432000); + +@@ -61,12 +69,55 @@ static void __init ek_map_io(void) /* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */ at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS); -+ int tmp; -+ + /* + * Reset any initiated i2c data transfers? + */ @@ -96,7 +101,21 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ /* set serial console to ttyS0 (ie, DBGU) */ at91_set_serial_console(0); } -@@ -82,11 +123,21 @@ static struct at91_usbh_data __initdata + + static void __init ek_init_irq(void) + { ++ /* ++ * Ensure RTT interrupts are disabled ++ */ ++ u32 mr; ++ mr = __raw_readl(AT91_VA_BASE_SYS + AT91_RTT + AT91_RTT_MR); ++ __raw_writel(mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN), ++ AT91_VA_BASE_SYS + AT91_RTT + AT91_RTT_MR); ++ + at91sam9260_init_interrupts(NULL); + } + +@@ -82,11 +133,38 @@ static struct at91_usbh_data __initdata * USB Device port */ static struct at91_udc_data __initdata ek_udc_data = { @@ -116,11 +135,28 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ + .flags = EE_ADDR1, +}; +#endif ++ ++#define MTS_EXT_STT25_TEST 0 ++#if MTS_EXT_STT25_TEST ++static struct mtd_partition m25_partitions[] = { ++ { ++ .name = "flash", ++ .offset = 0x00000000, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct flash_platform_data m25_spi_flash_data = { ++ .type = "sst25vf080b", ++ .nr_parts = ARRAY_SIZE(m25_partitions), ++ .parts = m25_partitions, ++}; ++#endif + /* * SPI devices. */ -@@ -107,6 +158,44 @@ static struct spi_board_info ek_spi_devi +@@ -107,6 +185,54 @@ static struct spi_board_info ek_spi_devi }, #endif #endif @@ -161,11 +197,21 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ + .chip_select = 6, + .mode = SPI_MODE_0, + }, ++#endif ++#if MTS_EXT_STT25_TEST ++ { ++ .modalias = "m25p80", ++ .platform_data = &m25_spi_flash_data, ++ .irq = NO_IRQ, ++ .max_speed_hz = 33 * 1000 * 1000, ++ .bus_num = 1, ++ .chip_select = 5, ++ }, +#endif }; -@@ -115,7 +204,7 @@ static struct spi_board_info ek_spi_devi +@@ -115,7 +241,7 @@ static struct spi_board_info ek_spi_devi */ static struct at91_eth_data __initdata ek_macb_data = { .phy_irq_pin = AT91_PIN_PA7, @@ -174,7 +220,7 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ }; -@@ -124,18 +213,48 @@ static struct at91_eth_data __initdata e +@@ -124,18 +250,48 @@ static struct at91_eth_data __initdata e */ static struct mtd_partition __initdata ek_nand_partition[] = { { @@ -184,23 +230,23 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ + .name = "MTNCG-NANDFlash", + .offset = 0, + .size = 256*1024*1024, - }, - { -- .name = "Partition 1", -- .offset = MTDPART_OFS_NXTBLK, -- .size = 60 * SZ_1M, ++ }, ++ { + .name = "AT91Bootstrap", + .offset = 0, + .size = 128*1024, }, { -- .name = "Partition 2", +- .name = "Partition 1", - .offset = MTDPART_OFS_NXTBLK, +- .size = 60 * SZ_1M, + .name = "UBoot", + .offset = 128*1024, + .size = 256*1024, -+ }, -+ { + }, + { +- .name = "Partition 2", +- .offset = MTDPART_OFS_NXTBLK, + .name = "UBoot Config", + .offset = 384*1024, + .size = 128*1024, @@ -231,7 +277,7 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ .size = MTDPART_SIZ_FULL, }, }; -@@ -195,11 +314,13 @@ static void __init ek_add_device_nand(vo +@@ -195,11 +351,13 @@ static void __init ek_add_device_nand(vo /* * MCI (SD/MMC) @@ -246,7 +292,7 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ }; -@@ -207,15 +328,10 @@ static struct at91_mmc_data __initdata e +@@ -207,15 +365,10 @@ static struct at91_mmc_data __initdata e * LEDs */ static struct gpio_led ek_leds[] = { @@ -255,7 +301,7 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ - .gpio = AT91_PIN_PA6, + { /* "status" led, green */ + .name = "status", -+ .gpio = AT91_PIN_PA30, /* DJS -- was AT91_PIN_PA9, */ ++ .gpio = AT91_PIN_PA30, .active_low = 1, - .default_trigger = "none", - }, @@ -265,7 +311,7 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ .default_trigger = "heartbeat", } }; -@@ -269,15 +385,37 @@ static void __init ek_add_device_buttons +@@ -269,15 +422,37 @@ static void __init ek_add_device_buttons static void __init ek_add_device_buttons(void) {} #endif @@ -306,14 +352,12 @@ diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/ static void __init ek_board_init(void) { /* Serial */ -@@ -302,8 +440,10 @@ static void __init ek_board_init(void) - ek_add_device_buttons(); +@@ -303,7 +478,7 @@ static void __init ek_board_init(void) /* PCK0 provides MCLK to the WM8731 */ at91_set_B_periph(AT91_PIN_PC1, 0); -+#if 0 /* SSC (for WM8731) */ - at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX); -+#endif +- at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX); ++ /* at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX); */ } MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK") diff --git a/recipes/linux/linux_2.6.32.bb b/recipes/linux/linux_2.6.32.bb index f337561500..8729261bfa 100644 --- a/recipes/linux/linux_2.6.32.bb +++ b/recipes/linux/linux_2.6.32.bb @@ -35,6 +35,7 @@ SRC_URI_mtcdp = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2;n file://linux-2.6.32.3-sierra.patch;patch=1 \ file://linux-2.6.32.3-atmel_spi.patch;patch=1 \ file://linux-2.6.32.3-at91_mci.patch;patch=1 \ + file://linux-2.6.32.3-m25p80.patch;patch=1 \ " SRC_URI[build.md5sum] = "6bd3c5fea1e88bb4d0948ec3688bd8f6" SRC_URI[build.sha256sum] = "e7526a7ae7210bc7c4f4837e9d8a666f9b126d59bee16015c41c5850d29c841f" -- cgit v1.2.3