Skip to content

Commit

Permalink
ARM: davinci: da850: add DT boot support
Browse files Browse the repository at this point in the history
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: Sekhar Nori <nsekhar@ti.com>
  • Loading branch information
Sekhar Nori committed Oct 29, 2012
1 parent 8e0d72d commit 689e331
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Documentation/devicetree/bindings/arm/davinci.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Texas Instruments DaVinci Platforms Device Tree Bindings
--------------------------------------------------------

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

DA850/OMAP-L138/AM18x generic board
Required root node properties:
- compatible = "ti,da850";
1 change: 1 addition & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/mach-davinci/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-davinci/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
64 changes: 64 additions & 0 deletions arch/arm/mach-davinci/da8xx-dt.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* 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

0 comments on commit 689e331

Please sign in to comment.