diff mbox

Add FDT support to Pandaboard initialization

Message ID 1351363800-28744-1-git-send-email-const@MakeLinux.com (mailing list archive)
State New, archived
Headers show

Commit Message

Constantine Shulyupin Oct. 27, 2012, 6:50 p.m. UTC
From: Constantine Shulyupin <const@MakeLinux.com>

Problem:
- FDT is supported only by generic OMAP board initialization in arch/arm/mach-omap2/board-generic.c and lacks some configurations, which are not yet configured in FDT (USB for example).
Solution:
- arch/arm/mach-omap2/board-omap4panda.c supports initialization with FDT and without it.

Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
---
 arch/arm/mach-omap2/board-omap4panda.c |   33 ++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

Comments

Felipe Balbi Oct. 29, 2012, 6:14 a.m. UTC | #1
On Sat, Oct 27, 2012 at 08:50:00PM +0200, Constantine Shulyupin wrote:
> From: Constantine Shulyupin <const@MakeLinux.com>
> 
> Problem:
> - FDT is supported only by generic OMAP board initialization in arch/arm/mach-omap2/board-generic.c and lacks some configurations, which are not yet configured in FDT (USB for example).
> Solution:
> - arch/arm/mach-omap2/board-omap4panda.c supports initialization with FDT and without it.
> 
> Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>

NAK, the whole idea of DT is to drop board-*.c. It would be best to see
the "missing initialization" being added to board-generic/dts files.
Tony Lindgren Oct. 29, 2012, 4:01 p.m. UTC | #2
* Felipe Balbi <balbi@ti.com> [121028 23:22]:
> On Sat, Oct 27, 2012 at 08:50:00PM +0200, Constantine Shulyupin wrote:
> > From: Constantine Shulyupin <const@MakeLinux.com>
> > 
> > Problem:
> > - FDT is supported only by generic OMAP board initialization in arch/arm/mach-omap2/board-generic.c and lacks some configurations, which are not yet configured in FDT (USB for example).
> > Solution:
> > - arch/arm/mach-omap2/board-omap4panda.c supports initialization with FDT and without it.
> > 
> > Signed-off-by: Constantine Shulyupin <const@MakeLinux.com>
> 
> NAK, the whole idea of DT is to drop board-*.c. It would be best to see
> the "missing initialization" being added to board-generic/dts files.

Yes I agree, let's rather get board-generic.c to work with panda.

The other board-*.c files will be dropped as soon as we have
things usable with devicetree. And we're only two board-*.c files
away from making omap4 device tree only ;)

I think we are only missing DSS, USB and WLAN bindings to
have blaze and panda usable with device tree to the point
where everything else can be added later on.

Regards,

Tony
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index bfcd397..fea7a83 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -31,6 +31,7 @@ 
 #include <linux/ti_wilink_st.h>
 #include <linux/wl12xx.h>
 #include <linux/platform_data/omap-abe-twl6040.h>
+#include <linux/of_platform.h>
 
 #include <asm/hardware/gic.h>
 #include <asm/mach-types.h>
@@ -526,3 +527,35 @@  MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
 	.timer		= &omap4_timer,
 	.restart	= omap_prcm_restart,
 MACHINE_END
+
+static struct of_device_id omap_dt_match_table[] __initdata = {
+	{ .compatible = "simple-bus", },
+	{ .compatible = "ti,omap-infra", },
+	{ }
+};
+
+static void __init panda_dt_init(void)
+{
+	of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
+	omap4_panda_init();
+}
+
+static const char *omap4_panda_compat[] __initdata = {
+	"ti,omap4-panda",
+	"ti,omap4",
+	NULL,
+};
+
+DT_MACHINE_START(OMAP4_PANDA_DT, "OMAP4 Pandaboard with FDT support")
+	.dt_compat	= omap4_panda_compat,
+	.reserve	= omap_reserve,
+	.smp		= smp_ops(omap4_smp_ops),
+	.map_io		= omap4_map_io,
+	.init_early	= omap4430_init_early,
+	.init_irq	= omap_gic_of_init,
+	.handle_irq	= gic_handle_irq,
+	.init_machine	= panda_dt_init,
+	.init_late	= omap4430_init_late,
+	.timer		= &omap4_timer,
+	.restart	= omap_prcm_restart,
+MACHINE_END