diff options
author | Jesse Gilles <jgilles@multitech.com> | 2011-03-11 10:21:19 -0600 |
---|---|---|
committer | Jesse Gilles <jgilles@multitech.com> | 2011-03-11 10:21:19 -0600 |
commit | 2677d64a6610dfe5de44d9c8e44aec31ce6bd5a5 (patch) | |
tree | 9302a60552adb3f400da4b2310856e4dedf49e67 /recipes/linux/linux-2.6.32/mtcdp-embedded/linux-2.6.32.3-mach-at91.patch | |
parent | 613b69583e8974b9f4cf96e549f36bdd9f761df6 (diff) |
linux-2.6.32: use board patch for mtcdp-embedded
Diffstat (limited to 'recipes/linux/linux-2.6.32/mtcdp-embedded/linux-2.6.32.3-mach-at91.patch')
-rw-r--r-- | recipes/linux/linux-2.6.32/mtcdp-embedded/linux-2.6.32.3-mach-at91.patch | 363 |
1 files changed, 0 insertions, 363 deletions
diff --git a/recipes/linux/linux-2.6.32/mtcdp-embedded/linux-2.6.32.3-mach-at91.patch b/recipes/linux/linux-2.6.32/mtcdp-embedded/linux-2.6.32.3-mach-at91.patch deleted file mode 100644 index a4bcac89ca..0000000000 --- a/recipes/linux/linux-2.6.32/mtcdp-embedded/linux-2.6.32.3-mach-at91.patch +++ /dev/null @@ -1,363 +0,0 @@ -diff -uprN -X linux-2.6.32.3/Documentation/dontdiff linux-2.6.32.3-vanilla/arch/arm/mach-at91/at91sam9260_devices.c linux-2.6.32.3/arch/arm/mach-at91/at91sam9260_devices.c ---- linux-2.6.32.3-vanilla/arch/arm/mach-at91/at91sam9260_devices.c 2010-01-06 17:07:45.000000000 -0600 -+++ linux-2.6.32.3/arch/arm/mach-at91/at91sam9260_devices.c 2010-10-11 10:15:08.000000000 -0500 -@@ -183,9 +183,9 @@ void __init at91_add_device_eth(struct a - at91_set_B_periph(AT91_PIN_PA25, 0); /* ERX2 */ - at91_set_B_periph(AT91_PIN_PA26, 0); /* ERX3 */ - at91_set_B_periph(AT91_PIN_PA27, 0); /* ERXCK */ -- at91_set_B_periph(AT91_PIN_PA23, 0); /* ETX2 */ -- at91_set_B_periph(AT91_PIN_PA24, 0); /* ETX3 */ -- at91_set_B_periph(AT91_PIN_PA22, 0); /* ETXER */ -+ at91_set_B_periph(AT91_PIN_PA10, 0); /* ETX2 */ -+ at91_set_B_periph(AT91_PIN_PA11, 0); /* ETX3 */ -+ /*at91_set_B_periph(AT91_PIN_PA22, 0);*/ /* ETXER */ - } - - eth_data = *data; -@@ -571,7 +571,15 @@ static struct platform_device at91sam926 - .num_resources = ARRAY_SIZE(spi1_resources), - }; - --static const unsigned spi1_standard_cs[4] = { AT91_PIN_PB3, AT91_PIN_PC5, AT91_PIN_PC4, AT91_PIN_PC3 }; -+static const unsigned spi1_standard_cs[7] = { -+ AT91_PIN_PB3, -+ AT91_PIN_PC5, -+ AT91_PIN_PC4, -+ AT91_PIN_PC6, -+ AT91_PIN_PB12, -+ AT91_PIN_PB13, -+ AT91_PIN_PB16 -+}; - - void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices) - { -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-14 16:16:52.000000000 -0500 -@@ -27,6 +27,11 @@ - #include <linux/gpio_keys.h> - #include <linux/input.h> - #include <linux/clk.h> -+#include <linux/i2c/at24.h> -+#include <linux/spi/eeprom.h> -+#include <linux/spi/flash.h> -+#include <linux/delay.h> -+#include <mach/at91_rtt.h> - - #include <mach/hardware.h> - #include <asm/setup.h> -@@ -44,9 +49,12 @@ - #include "sam9_smc.h" - #include "generic.h" - -+static int i2c_present; - - 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); - -+ /* -+ * Reset any initiated i2c data transfers? -+ */ -+ at91_set_gpio_input(AT91_PIN_PA23, 0); -+ at91_set_gpio_output(AT91_PIN_PA24, 0); -+ for (tmp = 0; tmp < 11; tmp++) { -+ at91_set_gpio_value(AT91_PIN_PA24, 0); -+ udelay(20); -+ at91_set_gpio_value(AT91_PIN_PA24, 1); -+ udelay(20); -+ } -+ at91_set_gpio_input(AT91_PIN_PA24, 0); -+ -+ /* -+ * PA24 and PA23 are used as ID pins on MTCBA/MTCDP-0.0 and I2C pins on MTCDP-1.0. -+ * -+ * MTCBA Rev. B: 0x01, C: 0x02, D: 0x03 -+ * MTCDP Rev. A reads as 0x00 with TWCK and TWD pulled high -+ * -+ */ -+ tmp = !at91_get_gpio_value(AT91_PIN_PA24) << 1 | !at91_get_gpio_value(AT91_PIN_PA23); -+ -+ i2c_present = !tmp; -+ -+ /* -+ * The GPS receiver is either at US2 on MTCBA/MTCDP-0.0 and US3 on MTCDP-1.0. -+ */ -+ if (i2c_present) { -+ at91_register_uart(AT91SAM9260_ID_US3, 3, ATMEL_UART_CTS | ATMEL_UART_RTS); -+ printk(KERN_INFO "sam9g20: i2c available\n"); -+ } else { -+ at91_register_uart(AT91SAM9260_ID_US2, 3, 0); -+ printk(KERN_INFO "sam9g20: i2c not available\n"); -+ } -+ - /* set serial console to ttyS0 (ie, DBGU) */ - at91_set_serial_console(0); - } - - 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 = { -- .vbus_pin = AT91_PIN_PC5, -- .pullup_pin = 0, /* pull-up driven by UDC */ -+ .vbus_pin = AT91_PIN_PC12, -+ .pullup_pin = 0, /* pull-up driven by UDC */ - }; - - -+#define MTS_EXT_AT25_TEST 0 -+#if MTS_EXT_AT25_TEST -+static struct spi_eeprom at25040b = { -+ .byte_len = SZ_4K / 8, -+ .name = "at25040b", -+ .page_size = 8, -+ .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 +185,54 @@ static struct spi_board_info ek_spi_devi - }, - #endif - #endif -+ { -+ .modalias = "mts-io-sout", -+ .chip_select = 0, -+ .bus_num = 1, -+ }, -+ { -+ .modalias = "mts-io-board-temp", -+ .chip_select = 2, -+ .bus_num = 1, -+ }, -+ { -+ .modalias = "mts-io-dout", -+ .chip_select = 1, -+ .bus_num = 1, -+ }, -+ { -+ .modalias = "mts-io-din", -+ .chip_select = 4, -+ .bus_num = 1, -+ }, -+#if MTS_EXT_AT25_TEST -+ { -+ .modalias = "at25", -+ .platform_data = &at25040b, -+ .max_speed_hz = 20 * 1000 * 1000, -+ .bus_num = 1, -+ .chip_select = 5, -+ .mode = SPI_MODE_0, -+ }, -+ { -+ .modalias = "at25", -+ .platform_data = &at25040b, -+ .max_speed_hz = 20 * 1000 * 1000, -+ .bus_num = 1, -+ .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 +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, -- .is_rmii = 1, -+ .is_rmii = 0, - }; - - -@@ -124,18 +250,48 @@ static struct at91_eth_data __initdata e - */ - static struct mtd_partition __initdata ek_nand_partition[] = { - { -- .name = "Bootstrap", -- .offset = 0, -- .size = 4 * SZ_1M, -+ .name = "MTNCG-NANDFlash", -+ .offset = 0, -+ .size = 256*1024*1024, -+ }, -+ { -+ .name = "AT91Bootstrap", -+ .offset = 0, -+ .size = 128*1024, - }, - { -- .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, -+ }, -+ { -+ .name = "UBoot Redundant Config", -+ .offset = 512*1024, -+ .size = 128*1024, -+ }, -+ { -+ .name = "uImage", -+ .offset = 640*1024, -+ .size = 59*128*1024, -+ }, -+ { -+ .name = "Config", -+ .offset = 64*128*1024, -+ .size = 64*128*1024, -+ }, -+ { -+ .name = "Oem Config", -+ .offset = 128*128*1024, -+ .size = 64*128*1024, -+ }, -+ { -+ .name = "Rootfs", -+ .offset = 192*128*1024, - .size = MTDPART_SIZ_FULL, - }, - }; -@@ -195,11 +351,13 @@ static void __init ek_add_device_nand(vo - - /* - * MCI (SD/MMC) -- * det_pin, wp_pin and vcc_pin are not connected -+ * vcc_pin is not connected - */ - static struct at91_mmc_data __initdata ek_mmc_data = { - .slot_b = 1, - .wire4 = 1, -+ .det_pin = AT91_PIN_PA6, -+ .wp_pin = AT91_PIN_PA9, - }; - - -@@ -207,15 +365,10 @@ static struct at91_mmc_data __initdata e - * LEDs - */ - static struct gpio_led ek_leds[] = { -- { /* "bottom" led, green, userled1 to be defined */ -- .name = "ds5", -- .gpio = AT91_PIN_PA6, -+ { /* "status" led, green */ -+ .name = "status", -+ .gpio = AT91_PIN_PA30, - .active_low = 1, -- .default_trigger = "none", -- }, -- { /* "power" led, yellow */ -- .name = "ds1", -- .gpio = AT91_PIN_PA9, - .default_trigger = "heartbeat", - } - }; -@@ -269,15 +422,37 @@ static void __init ek_add_device_buttons - static void __init ek_add_device_buttons(void) {} - #endif - -+uint8_t mts_id_eeprom[512]; -+ -+EXPORT_SYMBOL(mts_id_eeprom); -+ -+static void mts_id_eeprom_load(struct memory_accessor *macc, void *context) -+{ -+ int tmp; -+ -+ memset(mts_id_eeprom, 0, sizeof(mts_id_eeprom)); -+ -+ tmp = macc->read(macc, mts_id_eeprom, 0, sizeof(mts_id_eeprom)); -+ if (tmp != sizeof(mts_id_eeprom)) { -+ printk(KERN_ERR "sam9g20: id eeprom read failed: %d\n", tmp); -+ } else { -+ printk(KERN_INFO "sam9g20: read %d bytes from id eeprom\n", tmp); -+ } -+} -+ -+static struct at24_platform_data at24c04_data = { -+ .byte_len = SZ_4K / 8, -+ .page_size = 16, -+ .setup = mts_id_eeprom_load, -+}; - - static struct i2c_board_info __initdata ek_i2c_devices[] = { - { -- I2C_BOARD_INFO("24c512", 0x50), -- I2C_BOARD_INFO("wm8731", 0x1b), -+ I2C_BOARD_INFO("24c04", 0x56), -+ .platform_data = &at24c04_data, - }, - }; - -- - static void __init ek_board_init(void) - { - /* Serial */ -@@ -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); - /* SSC (for WM8731) */ -- 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") |