summaryrefslogtreecommitdiff
path: root/multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch
diff options
context:
space:
mode:
authorMike Fiore <mfiore@multitech.com>2014-02-18 08:43:10 -0600
committerMike Fiore <mfiore@multitech.com>2014-02-19 12:41:48 -0600
commit99fd68134f69b4e2c534998ed91235c92a14b031 (patch)
treedf67452bf878d6dcc94400a234cd58fb0cf65c03 /multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch
parentddc9a5ae0cd3592b32f59b9b9f1460f8ea6b520c (diff)
file renames and code changes for MTOCGD3 -> MTOCGD2 rename
Diffstat (limited to 'multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch')
-rw-r--r--multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch474
1 files changed, 0 insertions, 474 deletions
diff --git a/multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch b/multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch
deleted file mode 100644
index dbc292f..0000000
--- a/multitech/recipes/linux/linux-2.6.39-at91/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch
+++ /dev/null
@@ -1,474 +0,0 @@
-Index: git/arch/arm/mach-at91/board-sam9x5cm.c
-===================================================================
---- git.orig/arch/arm/mach-at91/board-sam9x5cm.c 2013-12-27 14:27:13.000000000 -0600
-+++ git/arch/arm/mach-at91/board-sam9x5cm.c 2014-02-06 16:31:32.817405456 -0600
-@@ -18,6 +18,9 @@
- #include <linux/platform_device.h>
- #include <linux/spi/flash.h>
- #include <linux/spi/spi.h>
-+#include <linux/spi/eeprom.h>
-+#include <linux/i2c/at24.h>
-+#include <linux/delay.h>
- #include <linux/fb.h>
- #include <linux/gpio_keys.h>
- #include <linux/input.h>
-@@ -103,6 +106,31 @@
- .irq = -1,
- },
- #endif
-+ { /* SPI1_NCS1 to ethernet switch */
-+ .modalias = "spidev",
-+ .chip_select = 0,
-+ .bus_num = 1,
-+ },
-+ { /* SPI1_NCS2 to temp sensor */
-+ .modalias = "mts-io-board-temp",
-+ .chip_select = 1,
-+ .bus_num = 1,
-+ },
-+ { /* SPI1_NCS3 to daughter card analog inputs */
-+ .modalias = "mts-io-dc-adc",
-+ .chip_select = 2,
-+ .bus_num = 1,
-+ },
-+ { /* SPI1_NCS4 to daughter card digital inputs */
-+ .modalias = "mts-io-dc-din",
-+ .chip_select = 3,
-+ .bus_num = 1,
-+ },
-+ { /* SPI1_NCS5 to daughter card digital outputs */
-+ .modalias = "mts-io-dc-dout",
-+ .chip_select = 4,
-+ .bus_num = 1,
-+ },
- #endif
- };
-
-@@ -111,13 +139,48 @@
- */
- static struct mtd_partition __initdata cm_nand_partition[] = {
- {
-- .name = "Partition 1",
-+ .name = "NANDFlash",
-+ .offset = 0,
-+ .size = 256*1024*1024,
-+ },
-+ {
-+ .name = "AT91Bootstrap",
- .offset = 0,
-- .size = SZ_64M,
-+ .size = 256*1024,
-+ },
-+ {
-+ .name = "UBoot",
-+ .offset = 256*1024,
-+ .size = 512*1024,
-+ },
-+ {
-+ .name = "UBoot Config",
-+ .offset = 768*1024,
-+ .size = 640*1024,
-+ },
-+ {
-+ .name = "UBoot Redundant Config",
-+ .offset = 1408*1024,
-+ .size = 640*1024,
-+ },
-+ {
-+ .name = "uImage",
-+ .offset = 2*1024*1024,
-+ .size = 6*1024*1024,
-+ },
-+ {
-+ .name = "Config",
-+ .offset = 8*1024*1024,
-+ .size = 8*1024*1024,
-+ },
-+ {
-+ .name = "Oem Config",
-+ .offset = 16*1024*1024,
-+ .size = 8*1024*1024,
- },
- {
-- .name = "Partition 2",
-- .offset = MTDPART_OFS_NXTBLK,
-+ .name = "Rootfs",
-+ .offset = 24*1024*1024,
- .size = MTDPART_SIZ_FULL,
- },
- };
-@@ -135,7 +198,8 @@
- .enable_pin = AT91_PIN_PD4,
- .ecc_mode = NAND_ECC_HW,
- .has_pmecc = 1,
-- .pmecc_corr_cap = 2,
-+// MTOCGD3: 4-bit PMECC
-+ .pmecc_corr_cap = 4,
- .pmecc_sector_size = 512,
- .pmecc_lookup_table_offset = 0x8000,
- .partition_info = nand_partitions,
-@@ -170,7 +234,13 @@
- else
- cm_nand_smc_config.mode |= AT91_SMC_DBW_8;
-
-+ // MTOCGD3 Rev B
-+ cm_nand_data.bus_on_d0 = 0;
-+ cm_nand_data.rdy_pin = AT91_PIN_PC31;
-+
-+ // MTOCGD3: disable
- /* revision of board modify NAND wiring */
-+ /*
- if (cm_is_revA()) {
- cm_nand_data.bus_on_d0 = 1;
- cm_nand_data.rdy_pin = AT91_PIN_PD6;
-@@ -178,6 +248,7 @@
- cm_nand_data.bus_on_d0 = 0;
- cm_nand_data.rdy_pin = AT91_PIN_PD5;
- }
-+ */
-
- /* configure chip-select 3 (NAND) */
- sam9_smc_configure(3, &cm_nand_smc_config);
-@@ -189,17 +260,90 @@
- * LEDs
- */
- static struct gpio_led cm_leds[] = {
-- { /* "left" led, blue, userled1 */
-- .name = "d1",
-- .gpio = AT91_PIN_PB18,
-+ { /* default status LED */
-+ .name = "led-a",
-+ .gpio = AT91_PIN_PA24,
-+ .active_low = 1,
- .default_trigger = "heartbeat",
- },
-- { /* "right" led, red, userled2 */
-- .name = "d2",
-- .gpio = AT91_PIN_PD21,
-- .active_low = 1,
-- .default_trigger = "mmc0",
-+ {
-+ .name = "led-b",
-+ .gpio = AT91_PIN_PA29,
-+ .active_low = 1
-+ },
-+ {
-+ .name = "led-c",
-+ .gpio = AT91_PIN_PA25,
-+ .active_low = 1
-+ },
-+ {
-+ .name = "led-d",
-+ .gpio = AT91_PIN_PA26,
-+ .active_low = 1
-+ },
-+ {
-+ .name = "led-e",
-+ .gpio = AT91_PIN_PA27,
-+ .active_low = 1
- },
-+ {
-+ .name = "led-f",
-+ .gpio = AT91_PIN_PA28,
-+ .active_low = 1
-+ },
-+};
-+
-+
-+uint8_t mts_id_eeprom[512];
-+uint8_t mts_dc_eeprom[512];
-+
-+EXPORT_SYMBOL(mts_id_eeprom);
-+EXPORT_SYMBOL(mts_dc_eeprom);
-+
-+/*
-+ * On-board 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 "sam9x5: id eeprom read failed: %d\n", tmp);
-+ } else {
-+ printk(KERN_INFO "sam9x5: 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,
-+};
-+
-+/*
-+ * Daughter card EEPROM
-+ */
-+static void mts_dc_eeprom_load(struct memory_accessor *macc, void *context)
-+{
-+ int tmp;
-+
-+ memset(mts_dc_eeprom, 0, sizeof(mts_id_eeprom));
-+
-+ tmp = macc->read(macc, mts_dc_eeprom, 0, sizeof(mts_dc_eeprom));
-+ if (tmp != sizeof(mts_dc_eeprom)) {
-+ printk(KERN_INFO "sam9x5: dc eeprom read failed: %d\n", tmp);
-+ } else {
-+ printk(KERN_INFO "sam9x5: read %d bytes from dc eeprom\n", tmp);
-+ }
-+}
-+
-+static struct at24_platform_data dc_data = {
-+ .byte_len = SZ_4K / 8,
-+ .page_size = 16,
-+ .setup = mts_dc_eeprom_load,
- };
-
- /*
-@@ -207,7 +351,12 @@
- */
- static struct i2c_board_info __initdata cm_i2c_devices[] = {
- {
-- I2C_BOARD_INFO("24c512", 0x50)
-+ I2C_BOARD_INFO("24c04", 0x56),
-+ .platform_data = &at24c04_data,
-+ },
-+ {
-+ I2C_BOARD_INFO("24c04", 0x50),
-+ .platform_data = &dc_data,
- },
- };
-
-@@ -234,8 +383,12 @@
- /* LEDs */
- at91_gpio_leds(cm_leds, ARRAY_SIZE(cm_leds));
-
-+ printk(KERN_CRIT "AT91: MTOCGD3 board\n");
-+
-+ /* MTOCGD3: disable
- if (cm_is_revA())
- printk(KERN_CRIT "AT91: CM rev A\n");
- else
- printk(KERN_CRIT "AT91: CM rev B and higher\n");
-+ */
- }
-Index: git/arch/arm/mach-at91/board-sam9x5ek.c
-===================================================================
---- git.orig/arch/arm/mach-at91/board-sam9x5ek.c 2013-12-27 14:27:13.000000000 -0600
-+++ git/arch/arm/mach-at91/board-sam9x5ek.c 2014-02-06 15:18:45.409321681 -0600
-@@ -23,6 +23,7 @@
- #include <linux/leds.h>
- #include <linux/clk.h>
- #include <linux/delay.h>
-+#include <linux/wl12xx.h>
- #include <mach/cpu.h>
-
- #include <video/atmel_lcdfb.h>
-@@ -53,12 +54,10 @@
- /* Initialize processor and DBGU */
- cm_map_io();
-
-- /* USART0 on ttyS1. (Rx, Tx) */
-- at91_register_uart(AT91SAM9X5_ID_USART0, 1, 0);
-- /* USART1 on ttyS2. (Rx, Tx) */
-- at91_register_uart(AT91SAM9X5_ID_USART1, 2, 0);
-- /* USART2 on ttyS3. (Rx, Tx) */
-- at91_register_uart(AT91SAM9X5_ID_USART2, 3, 0);
-+ // MTOCGD3: GPS on UART0 as ttyS1 with Rx/Tx only
-+ at91_register_uart(AT91SAM9X5_ID_UART0, 1, 0);
-+ // MTOCGD3 Rev A: Daughter card serial on USART1 as ttyS2 with RTS/CTS
-+ at91_register_uart(AT91SAM9X5_ID_USART1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
- }
-
- /*
-@@ -89,34 +88,65 @@
- * MACB Ethernet devices
- */
- static struct at91_eth_data __initdata ek_macb0_data = {
-- .is_rmii = 1,
-+ .is_rmii = 0,
-+ .phy_irq_pin = 0,
- };
-
-+/* MTOCGD3: no macb1
- static struct at91_eth_data __initdata ek_macb1_data = {
- .phy_irq_pin = AT91_PIN_PC26,
- .is_rmii = 1,
- };
-+*/
-
-
- /*
- * MCI (SD/MMC)
- */
--/* mci0 detect_pin is revision dependent */
-+// MTOCGD3: MCI0 is BT/Wifi
- static struct mci_platform_data __initdata mci0_data = {
- .slot[0] = {
- .bus_width = 4,
-+ .detect_pin = -1,
- .wp_pin = -1,
- },
- };
-
-+// MTOCGD3: MCI1 is SD card slot
- static struct mci_platform_data __initdata mci1_data = {
- .slot[0] = {
- .bus_width = 4,
-- .detect_pin = AT91_PIN_PD14,
-- .wp_pin = -1,
-+ .detect_pin = AT91_PIN_PA1,
-+ .wp_pin = AT91_PIN_PA0,
- },
- };
-
-+// MTR: Wi-fi
-+static void wl12xx_enable(int poweron)
-+{
-+ if (poweron) {
-+ at91_set_gpio_output_with_pullup(AT91_PIN_PC1, 0, 0);
-+ msleep(10);
-+ at91_set_gpio_output_with_pullup(AT91_PIN_PC1, 1, 0);
-+ msleep(100);
-+ printk(KERN_INFO "sam9x5: WLAN Enabled\n");
-+ }
-+ else {
-+ at91_set_gpio_output_with_pullup(AT91_PIN_PC1, 0, 0);
-+ msleep(10);
-+ printk(KERN_INFO "sam9x5: WLAN Disabled\n");
-+ }
-+};
-+
-+// MTR: Wi-fi
-+struct wl12xx_platform_data mtr_wlan_data __initdata = {
-+ .irq = AT91_PIN_PC2,
-+ /* ref clock is 38.4 MHz */
-+ .board_ref_clock = WL12XX_REFCLOCK_38,
-+ /* toggles the WLAN_ENABLE pin */
-+ .set_power = wl12xx_enable,
-+};
-+
- /*
- * ISI
- */
-@@ -330,9 +360,11 @@
- * I2C Devices
- */
- static struct i2c_board_info __initdata ek_i2c_devices[] = {
-+#if 0
- {
- I2C_BOARD_INFO("wm8731", 0x1a)
- },
-+#endif
- #if defined(CONFIG_KEYBOARD_QT1070)
- {
- I2C_BOARD_INFO("qt1070", 0x1b),
-@@ -388,18 +420,24 @@
- bool config_isi_enabled = false;
-
- cm_board_init(&cm_config);
-- ek_board_configure_pins();
-+ // MTOCGD3: disable
-+ //ek_board_configure_pins();
- /* Serial */
- at91_add_device_serial();
- /* USB HS Host */
- at91_add_device_usbh_ohci(&ek_usbh_fs_data);
- at91_add_device_usbh_ehci(&ek_usbh_hs_data);
- /* USB HS Device */
-+ // MTOCGD3: set usb device vcc pin
-+ ek_usba_udc_data.vbus_pin = AT91_PIN_PC7;
- at91_add_device_usba(&ek_usba_udc_data);
- /* Ethernet */
- at91_add_device_eth(0, &ek_macb0_data);
-+ /* MTOCGD3: no macb1
- at91_add_device_eth(1, &ek_macb1_data);
-+ */
- /* MMC0 */
-+ // MTOCGD3: MCI0 for BT/Wifi
- at91_add_device_mci(0, &mci0_data);
- /* I2C */
- if (cm_config & CM_CONFIG_I2C0_ENABLE)
-@@ -409,6 +447,15 @@
- at91_add_device_i2c(0,
- ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
-
-+ // MTOCGD3: Wi-fi
-+ at91_set_gpio_input(mtr_wlan_data.irq, 0);
-+ at91_set_deglitch(mtr_wlan_data.irq, 1);
-+
-+ if (wl12xx_set_platform_data(&mtr_wlan_data))
-+ pr_err("error setting wl12xx data\n");
-+
-+/* MTOCGD3: no LCD */
-+#if 0
- if (cpu_is_at91sam9g25()) {
- /* ISI */
- /* NOTE: PCK0 provides ISI_MCK to the ISI module.
-@@ -434,13 +481,10 @@
- /* Touch Screen */
- at91_add_device_tsadcc(&ek_tsadcc_data);
- }
-+#endif
-
-- /* MMC1 */
-- /* Conflict between SPI0, MCI1 and ISI pins.
-- * add MCI1 only if SPI0 and ISI are both disabled.
-- */
-- if (!(cm_config & CM_CONFIG_SPI0_ENABLE) && !config_isi_enabled)
-- at91_add_device_mci(1, &mci1_data);
-+ // MTOCGD3: MCI1 to SD Card
-+ at91_add_device_mci(1, &mci1_data);
-
- #if 0
- if (cpu_is_at91sam9x25() || cpu_is_at91sam9x35())
-@@ -452,6 +496,8 @@
- at91_add_device_can(0, NULL);
- #endif
-
-+/* MTOCGD3: disable things we don't have */
-+#if 0
- if (cpu_is_at91sam9x25() || cpu_is_at91sam9x35())
- /* this conflicts with usart.1 */
- at91_add_device_can(1, NULL);
-@@ -478,6 +524,9 @@
- else if (config_isi_enabled)
- printk(KERN_CRIT
- "AT91: ISI conficts with MCI1, disable MCI1\n");
-+#endif
-+
-+ printk(KERN_CRIT "AT91: MTOCGD3 board EK init\n");
- }
-
- MACHINE_START(AT91SAM9X5EK, "Atmel AT91SAM9X5-EK")
-Index: git/arch/arm/mach-at91/at91sam9x5_devices.c
-===================================================================
---- git.orig/arch/arm/mach-at91/at91sam9x5_devices.c 2013-12-27 14:27:13.000000000 -0600
-+++ git/arch/arm/mach-at91/at91sam9x5_devices.c 2014-02-06 15:18:45.409321681 -0600
-@@ -543,11 +543,11 @@
- #endif
-
- /* input/irq */
-- if (data->slot[0].detect_pin) {
-+ if (data->slot[0].detect_pin > 0) {
- at91_set_gpio_input(data->slot[0].detect_pin, 1);
- at91_set_deglitch(data->slot[0].detect_pin, 1);
- }
-- if (data->slot[0].wp_pin)
-+ if (data->slot[0].wp_pin > 0)
- at91_set_gpio_input(data->slot[0].wp_pin, 1);
-
- if (mmc_id == 0) { /* MCI0 */
-@@ -849,7 +849,8 @@
- .num_resources = ARRAY_SIZE(spi1_resources),
- };
-
--static const unsigned spi1_standard_cs[4] = { AT91_PIN_PA8, AT91_PIN_PA0, AT91_PIN_PA31, AT91_PIN_PA30 };
-+// MTOCGD3: SPI1 chip selects on pins SPI1_NCS1 to SPI1_NCS5
-+static const unsigned spi1_standard_cs[5] = { AT91_PIN_PC15, AT91_PIN_PC16, AT91_PIN_PC17, AT91_PIN_PC18, AT91_PIN_PC19 };
-
- void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
- {