2012-08-28 03:57:52 -06:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
|
|
|
|
*
|
|
|
|
* Modified from mach-omap/omap2/board-generic.c
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*/
|
|
|
|
#include <linux/io.h>
|
|
|
|
#include <linux/of_irq.h>
|
|
|
|
#include <linux/of_platform.h>
|
|
|
|
#include <linux/irqdomain.h>
|
2017-01-13 03:00:26 -07:00
|
|
|
#include <linux/platform_data/ti-aemif.h>
|
2012-08-28 03:57:52 -06:00
|
|
|
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
|
|
|
|
#include <mach/common.h>
|
2015-01-30 02:45:33 -07:00
|
|
|
#include "cp_intc.h"
|
2012-08-28 03:57:52 -06:00
|
|
|
#include <mach/da8xx.h>
|
|
|
|
|
2017-01-13 03:00:26 -07:00
|
|
|
static struct of_dev_auxdata da850_aemif_auxdata_lookup[] = {
|
|
|
|
OF_DEV_AUXDATA("ti,davinci-nand", 0x62000000, "davinci-nand.0", NULL),
|
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
|
|
|
static struct aemif_platform_data aemif_data = {
|
|
|
|
.dev_lookup = da850_aemif_auxdata_lookup,
|
|
|
|
};
|
|
|
|
|
2013-04-10 03:27:13 -06:00
|
|
|
static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
|
2013-02-06 02:36:22 -07:00
|
|
|
OF_DEV_AUXDATA("ti,davinci-i2c", 0x01c22000, "i2c_davinci.1", NULL),
|
2016-04-01 09:42:05 -06:00
|
|
|
OF_DEV_AUXDATA("ti,davinci-i2c", 0x01e28000, "i2c_davinci.2", NULL),
|
2013-11-27 06:31:53 -07:00
|
|
|
OF_DEV_AUXDATA("ti,davinci-wdt", 0x01c21000, "davinci-wdt", NULL),
|
2013-03-28 07:12:02 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-mmc", 0x01c40000, "da830-mmc.0", NULL),
|
2016-10-31 14:04:24 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f00000, "ehrpwm.0", NULL),
|
|
|
|
OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f02000, "ehrpwm.1", NULL),
|
|
|
|
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap.0", NULL),
|
|
|
|
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap.1", NULL),
|
|
|
|
OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap.2", NULL),
|
2016-04-16 11:00:18 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-spi", 0x01c41000, "spi_davinci.0", NULL),
|
2013-04-03 08:09:09 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-spi", 0x01f0e000, "spi_davinci.1", NULL),
|
2013-06-19 03:15:38 -06:00
|
|
|
OF_DEV_AUXDATA("ns16550a", 0x01c42000, "serial8250.0", NULL),
|
|
|
|
OF_DEV_AUXDATA("ns16550a", 0x01d0c000, "serial8250.1", NULL),
|
|
|
|
OF_DEV_AUXDATA("ns16550a", 0x01d0d000, "serial8250.2", NULL),
|
2013-08-15 00:01:35 -06:00
|
|
|
OF_DEV_AUXDATA("ti,davinci_mdio", 0x01e24000, "davinci_mdio.0", NULL),
|
2013-08-16 08:11:02 -06:00
|
|
|
OF_DEV_AUXDATA("ti,davinci-dm6467-emac", 0x01e20000, "davinci_emac.1",
|
|
|
|
NULL),
|
2014-08-01 00:13:25 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-mcasp-audio", 0x01d00000, "davinci-mcasp.0", NULL),
|
2017-01-13 03:00:26 -07:00
|
|
|
OF_DEV_AUXDATA("ti,da850-aemif", 0x68000000, "ti-aemif", &aemif_data),
|
2016-10-05 07:05:31 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da850-tilcdc", 0x01e13000, "da8xx_lcdc.0", NULL),
|
2016-11-03 10:03:06 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-ohci", 0x01e25000, "ohci-da8xx", NULL),
|
2016-10-26 18:18:16 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-musb", 0x01e00000, "musb-da8xx", NULL),
|
2016-10-31 14:47:19 -06:00
|
|
|
OF_DEV_AUXDATA("ti,da830-usb-phy", 0x01c1417c, "da8xx-usb-phy", NULL),
|
2017-01-30 03:02:00 -07:00
|
|
|
OF_DEV_AUXDATA("ti,da850-ahci", 0x01e18000, "ahci_da850", NULL),
|
2013-02-06 02:36:22 -07:00
|
|
|
{}
|
|
|
|
};
|
|
|
|
|
2012-08-28 03:57:52 -06:00
|
|
|
#ifdef CONFIG_ARCH_DAVINCI_DA850
|
|
|
|
|
|
|
|
static void __init da850_init_machine(void)
|
|
|
|
{
|
2017-01-30 03:02:03 -07:00
|
|
|
/* All existing boards use 100MHz SATA refclkpn */
|
|
|
|
static const unsigned long sata_refclkpn = 100 * 1000 * 1000;
|
|
|
|
|
2016-10-31 14:47:21 -06:00
|
|
|
int ret;
|
|
|
|
|
|
|
|
ret = da8xx_register_usb20_phy_clk(false);
|
|
|
|
if (ret)
|
|
|
|
pr_warn("%s: registering USB 2.0 PHY clock failed: %d",
|
|
|
|
__func__, ret);
|
|
|
|
ret = da8xx_register_usb11_phy_clk(false);
|
|
|
|
if (ret)
|
|
|
|
pr_warn("%s: registering USB 1.1 PHY clock failed: %d",
|
|
|
|
__func__, ret);
|
|
|
|
|
2017-01-30 03:02:03 -07:00
|
|
|
ret = da850_register_sata_refclk(sata_refclkpn);
|
|
|
|
if (ret)
|
|
|
|
pr_warn("%s: registering SATA REFCLK failed: %d",
|
|
|
|
__func__, ret);
|
|
|
|
|
2016-02-29 15:33:24 -07:00
|
|
|
of_platform_default_populate(NULL, da850_auxdata_lookup, NULL);
|
2016-11-15 12:54:21 -07:00
|
|
|
davinci_pm_init();
|
2017-01-09 13:55:29 -07:00
|
|
|
pdata_quirks_init();
|
2012-08-28 03:57:52 -06:00
|
|
|
}
|
|
|
|
|
2015-07-27 16:27:52 -06:00
|
|
|
static const char *const da850_boards_compat[] __initconst = {
|
2012-05-30 04:19:03 -06:00
|
|
|
"enbw,cmc",
|
ARM: dts: da850: Add basic DTS for the LCDK
The LCDK is the successor to the late Hawkboard.
Among the differences are the flash (16bits vs 8bits) and some pins
(MMC, LEDs, buttons, some external connectors), however the main
components remain the same (eth. phy, audio codec, video decoder and
DAC) except for the main PMIC, different and hard-wired on the LCDK (the
LDOs and DCDCs are always on).
A DT-only boot with this addition gives functional UART, reboot via
watchdog, RTC, ethernet and MMC (I added the CD GPIO for the MMC
although davinci_mmc doesn't call the OF facilities of mmc core).
Cc: Sekhar Nori <nsekhar@ti.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Karl Beldan <kbeldan@baylibre.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2016-08-05 14:29:49 -06:00
|
|
|
"ti,da850-lcdk",
|
2012-08-29 11:55:27 -06:00
|
|
|
"ti,da850-evm",
|
2012-08-28 03:57:52 -06:00
|
|
|
"ti,da850",
|
|
|
|
NULL,
|
|
|
|
};
|
|
|
|
|
|
|
|
DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x")
|
|
|
|
.map_io = da850_init,
|
2012-11-08 12:40:59 -07:00
|
|
|
.init_time = davinci_timer_init,
|
2012-08-28 03:57:52 -06:00
|
|
|
.init_machine = da850_init_machine,
|
|
|
|
.dt_compat = da850_boards_compat,
|
|
|
|
.init_late = davinci_init_late,
|
|
|
|
.restart = da8xx_restart,
|
|
|
|
MACHINE_END
|
|
|
|
|
|
|
|
#endif
|