|
@@ -0,0 +1,152 @@
|
|
|
+/*
|
|
|
+ * TI DA850/OMAP-L138 EVM board
|
|
|
+ *
|
|
|
+ * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
|
|
|
+ *
|
|
|
+ * Derived from: arch/arm/mach-davinci/board-da830-evm.c
|
|
|
+ * Original Copyrights follow:
|
|
|
+ *
|
|
|
+ * 2007, 2009 (c) MontaVista Software, Inc. This file is licensed under
|
|
|
+ * the terms of the GNU General Public License version 2. This program
|
|
|
+ * is licensed "as is" without any warranty of any kind, whether express
|
|
|
+ * or implied.
|
|
|
+ */
|
|
|
+#include <linux/console.h>
|
|
|
+#include <linux/delay.h>
|
|
|
+#include <linux/gpio.h>
|
|
|
+#include <linux/gpio_keys.h>
|
|
|
+#include <linux/init.h>
|
|
|
+#include <linux/kernel.h>
|
|
|
+#include <linux/i2c.h>
|
|
|
+#include <linux/i2c/at24.h>
|
|
|
+#include <linux/i2c/pca953x.h>
|
|
|
+#include <linux/input.h>
|
|
|
+#include <linux/input/tps6507x-ts.h>
|
|
|
+#include <linux/mfd/tps6507x.h>
|
|
|
+#include <linux/mtd/mtd.h>
|
|
|
+#include <linux/mtd/nand.h>
|
|
|
+#include <linux/mtd/partitions.h>
|
|
|
+#include <linux/mtd/physmap.h>
|
|
|
+#include <linux/platform_device.h>
|
|
|
+#include <linux/platform_data/mtd-davinci.h>
|
|
|
+#include <linux/platform_data/mtd-davinci-aemif.h>
|
|
|
+#include <linux/platform_data/spi-davinci.h>
|
|
|
+#include <linux/platform_data/uio_pruss.h>
|
|
|
+#include <linux/regulator/machine.h>
|
|
|
+#include <linux/regulator/tps6507x.h>
|
|
|
+#include <linux/spi/spi.h>
|
|
|
+#include <linux/spi/flash.h>
|
|
|
+#include <linux/wl12xx.h>
|
|
|
+
|
|
|
+#include <mach/cp_intc.h>
|
|
|
+#include <mach/da8xx.h>
|
|
|
+#include <mach/mux.h>
|
|
|
+#include <mach/sram.h>
|
|
|
+
|
|
|
+#include <asm/mach-types.h>
|
|
|
+#include <asm/mach/arch.h>
|
|
|
+#include <asm/system_info.h>
|
|
|
+
|
|
|
+#include <media/tvp514x.h>
|
|
|
+#include <media/adv7343.h>
|
|
|
+
|
|
|
+#define DA850_EVM_PHY_ID "davinci_mdio-0:00"
|
|
|
+#define DA850_LCD_PWR_PIN GPIO_TO_PIN(2, 8)
|
|
|
+#define DA850_LCD_BL_PIN GPIO_TO_PIN(2, 15)
|
|
|
+
|
|
|
+#define DA850_MMCSD_CD_PIN GPIO_TO_PIN(4, 0)
|
|
|
+#define DA850_MMCSD_WP_PIN GPIO_TO_PIN(4, 1)
|
|
|
+
|
|
|
+#define DA850_WLAN_EN GPIO_TO_PIN(6, 9)
|
|
|
+#define DA850_WLAN_IRQ GPIO_TO_PIN(6, 10)
|
|
|
+
|
|
|
+#define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6)
|
|
|
+
|
|
|
+static struct mtd_partition da850evm_spiflash_part[] = {
|
|
|
+ [0] = {
|
|
|
+ .name = "UBL",
|
|
|
+ .offset = 0,
|
|
|
+ .size = SZ_64K,
|
|
|
+ .mask_flags = MTD_WRITEABLE,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .name = "U-Boot",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = SZ_512K,
|
|
|
+ .mask_flags = MTD_WRITEABLE,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .name = "U-Boot-Env",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = SZ_64K,
|
|
|
+ .mask_flags = MTD_WRITEABLE,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .name = "Kernel",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = SZ_2M + SZ_512K,
|
|
|
+ .mask_flags = 0,
|
|
|
+ },
|
|
|
+ [4] = {
|
|
|
+ .name = "Filesystem",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = SZ_4M,
|
|
|
+ .mask_flags = 0,
|
|
|
+ },
|
|
|
+ [5] = {
|
|
|
+ .name = "MAC-Address",
|
|
|
+ .offset = SZ_8M - SZ_64K,
|
|
|
+ .size = SZ_64K,
|
|
|
+ .mask_flags = MTD_WRITEABLE,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct flash_platform_data da850evm_spiflash_data = {
|
|
|
+ .name = "m25p80",
|
|
|
+ .parts = da850evm_spiflash_part,
|
|
|
+ .nr_parts = ARRAY_SIZE(da850evm_spiflash_part),
|
|
|
+ .type = "m25p64",
|
|
|
+};
|
|
|
+
|
|
|
+static struct davinci_spi_config da850evm_spiflash_cfg = {
|
|
|
+ .io_type = SPI_IO_TYPE_DMA,
|
|
|
+ .c2tdelay = 8,
|
|
|
+ .t2cdelay = 8,
|
|
|
+};
|
|
|
+
|
|
|
+static struct spi_board_info da850evm_spi_info[] = {
|
|
|
+ {
|
|
|
+ .modalias = "m25p80",
|
|
|
+ .platform_data = &da850evm_spiflash_data,
|
|
|
+ .controller_data = &da850evm_spiflash_cfg,
|
|
|
+ .mode = SPI_MODE_0,
|
|
|
+ .max_speed_hz = 30000000,
|
|
|
+ .bus_num = 1,
|
|
|
+ .chip_select = 0,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_MTD
|
|
|
+static void da850_evm_m25p80_notify_add(struct mtd_info *mtd)
|
|
|
+{
|
|
|
+ char *mac_addr = davinci_soc_info.emac_pdata->mac_addr;
|
|
|
+ size_t retlen;
|
|
|
+
|
|
|
+ if (!strcmp(mtd->name, "MAC-Address")) {
|
|
|
+ mtd_read(mtd, 0, ETH_ALEN, &retlen, mac_addr);
|
|
|
+ if (retlen == ETH_ALEN)
|
|
|
+ pr_info("Read MAC addr from SPI Flash: %pM\n",
|
|
|
+ mac_addr);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+static struct mtd_notifier da850evm_spi_notifier = {
|
|
|
+ .add = da850_evm_m25p80_notify_add,
|
|
|
+};
|
|
|
+
|
|
|
+static void da850_evm_setup_mac_addr(void)
|
|
|
+{
|
|
|
+ register_mtd_user(&da850evm_spi_notifier);
|
|
|
+}
|
|
|
+#else
|
|
|
+static void da850_evm_setup_mac_addr(void) { }
|