Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 689e331f authored by Sekhar Nori's avatar Sekhar Nori
Browse files

ARM: davinci: da850: add DT boot support



Add support for booting DA850 using flattened device
tree to describe the hardware. At this time only the
very basic bootup using a serial console is supported.

Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent 8e0d72d2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
Texas Instruments DaVinci Platforms Device Tree Bindings
--------------------------------------------------------

Generic DaVinci Boards
----------------------

DA850/OMAP-L138/AM18x generic board
Required root node properties:
    - compatible = "ti,da850";
+1 −0
Original line number Diff line number Diff line
@@ -924,6 +924,7 @@ config ARCH_DAVINCI
	select GENERIC_IRQ_CHIP
	select HAVE_IDE
	select NEED_MACH_GPIO_H
	select USE_OF
	select ZONE_DMA
	help
	  Support for TI's DaVinci platform.
+8 −0
Original line number Diff line number Diff line
@@ -58,6 +58,14 @@ config ARCH_DAVINCI_TNETV107X

comment "DaVinci Board Type"

config MACH_DA8XX_DT
	bool "Support DA8XX platforms using device tree"
	default y
	depends on ARCH_DAVINCI_DA8XX
	help
	  Say y here to include support for TI DaVinci DA850 based using
	  Flattened Device Tree. More information at Documentation/devicetree

config MACH_DAVINCI_EVM
	bool "TI DM644x EVM"
	default ARCH_DAVINCI_DM644x
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ obj-$(CONFIG_AINTC) += irq.o
obj-$(CONFIG_CP_INTC)			+= cp_intc.o

# Board specific
obj-$(CONFIG_MACH_DA8XX_DT)		+= da8xx-dt.o
obj-$(CONFIG_MACH_DAVINCI_EVM)  	+= board-dm644x-evm.o
obj-$(CONFIG_MACH_SFFSDR)		+= board-sffsdr.o
obj-$(CONFIG_MACH_NEUROS_OSD2)		+= board-neuros-osd2.o
+64 −0
Original line number Diff line number Diff line
/*
 * 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>

#include <asm/mach/arch.h>

#include <mach/common.h>
#include <mach/cp_intc.h>
#include <mach/da8xx.h>

#define DA8XX_NUM_UARTS	3

void __init da8xx_uart_clk_enable(void)
{
	int i;
	for (i = 0; i < DA8XX_NUM_UARTS; i++)
		davinci_serial_setup_clk(i, NULL);
}

static struct of_device_id da8xx_irq_match[] __initdata = {
	{ .compatible = "ti,cp-intc", .data = cp_intc_of_init, },
	{ }
};

static void __init da8xx_init_irq(void)
{
	of_irq_init(da8xx_irq_match);
}

#ifdef CONFIG_ARCH_DAVINCI_DA850

static void __init da850_init_machine(void)
{
	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);

	da8xx_uart_clk_enable();
}

static const char *da850_boards_compat[] __initdata = {
	"ti,da850",
	NULL,
};

DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x")
	.map_io		= da850_init,
	.init_irq	= da8xx_init_irq,
	.timer		= &davinci_timer,
	.init_machine	= da850_init_machine,
	.dt_compat	= da850_boards_compat,
	.init_late	= davinci_init_late,
	.restart	= da8xx_restart,
MACHINE_END

#endif