From: Rajendra Nayak <rnayak@ti.com>
To: Benoit Cousson <b-cousson@ti.com>
Cc: tony@atomide.com, grant.likely@secretlab.ca, paul@pwsan.com,
khilman@ti.com, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH 07/11] OMAP2+: board-generic: Add DT support to generic board
Date: Mon, 26 Sep 2011 12:02:02 +0530 [thread overview]
Message-ID: <4E801C62.5020700@ti.com> (raw)
In-Reply-To: <1316809399-19579-8-git-send-email-b-cousson@ti.com>
Hi Benoit,
On Saturday 24 September 2011 01:53 AM, Benoit Cousson wrote:
> Re-cycle the original board-generic file to support Device Tree
> for every OMAP2+ variants.
> Note: Since it is a completely new content in the existing file
> I removed the original copyright.
>
> The current approach is an intermediate step before having only
> one machine descriptor that will use some generic DT aware
> functions.
What config does this work with currently? If I use omap2plus_defconfig
should I explicitly disable everything other than say CONFIG_ARCH_OMAP4
if I want it working on OMAP4?
regards,
Rajendra
>
> Signed-off-by: Benoit Cousson<b-cousson@ti.com>
> Cc: Tony Lindgren<tony@atomide.com>
> ---
> arch/arm/mach-omap2/Kconfig | 8 ++-
> arch/arm/mach-omap2/board-generic.c | 129 ++++++++++++++++++++++------------
> 2 files changed, 89 insertions(+), 48 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 7edf802..5934a27 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -106,9 +106,13 @@ comment "OMAP Board Type"
> depends on ARCH_OMAP2PLUS
>
> config MACH_OMAP_GENERIC
> - bool "Generic OMAP board"
> - depends on ARCH_OMAP2
> + bool "Generic OMAP2+ board"
> + depends on ARCH_OMAP2PLUS
> + select USE_OF
> default y
> + help
> + Support for generic TI OMAP2+ boards using Flattened Device Tree.
> + More information at Documentation/devicetree
>
> config MACH_OMAP2_TUSB6010
> bool
> diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
> index e8d45d3..dcbd64c 100644
> --- a/arch/arm/mach-omap2/board-generic.c
> +++ b/arch/arm/mach-omap2/board-generic.c
> @@ -1,76 +1,113 @@
> /*
> - * linux/arch/arm/mach-omap2/board-generic.c
> + * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
> *
> - * Copyright (C) 2005 Nokia Corporation
> - * Author: Paul Mundt<paul.mundt@nokia.com>
> - *
> - * Modified from mach-omap/omap1/board-generic.c
> - *
> - * Code for generic OMAP2 board. Should work on many OMAP2 systems where
> - * the bootloader passes the board-specific data to the kernel.
> - * Do not put any board specific code to this file; create a new machine
> - * type if you need custom low-level initializations.
> + * Support for generic OMAP2+ device tree boards.
> *
> * 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/kernel.h>
> -#include<linux/init.h>
> -#include<linux/device.h>
> +#include<linux/io.h>
> +#include<linux/of_platform.h>
> +#include<linux/irqdomain.h>
>
> #include<mach/hardware.h>
> -#include<asm/mach-types.h>
> #include<asm/mach/arch.h>
> -#include<asm/mach/map.h>
>
> -#include<mach/gpio.h>
> -#include<plat/usb.h>
> #include<plat/board.h>
> #include<plat/common.h>
> +#include<mach/omap4-common.h>
>
> -static struct omap_board_config_kernel generic_config[] = {
> +
> +static struct of_device_id omap_dt_match_table[] __initdata = {
> + { .compatible = "simple-bus", },
> + { .compatible = "ti,omap-infra", },
> + { }
> };
>
> -static void __init omap_generic_init_early(void)
> -{
> - omap2_init_common_infrastructure();
> -}
> +static struct of_device_id intc_match[] __initdata = {
> + { .compatible = "ti,omap3-intc", },
> + { .compatible = "arm,cortex-a9-gic", },
> + { }
> +};
>
> static void __init omap_generic_init(void)
> {
> + struct device_node *node = of_find_matching_node(NULL, intc_match);
> + if (node)
> + irq_domain_add_simple(node, 0);
> +
> omap_serial_init();
> omap_sdrc_init(NULL, NULL);
> - omap_board_config = generic_config;
> - omap_board_config_size = ARRAY_SIZE(generic_config);
> -}
>
> -static void __init omap_generic_map_io(void)
> -{
> - if (cpu_is_omap242x()) {
> - omap2_set_globals_242x();
> - omap242x_map_common_io();
> - } else if (cpu_is_omap243x()) {
> - omap2_set_globals_243x();
> - omap243x_map_common_io();
> - } else if (cpu_is_omap34xx()) {
> - omap2_set_globals_3xxx();
> - omap34xx_map_common_io();
> - } else if (cpu_is_omap44xx()) {
> - omap2_set_globals_443x();
> - omap44xx_map_common_io();
> - }
> + of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
> }
>
> -/* XXX This machine entry name should be updated */
> -MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
> - /* Maintainer: Paul Mundt<paul.mundt@nokia.com> */
> - .atag_offset = 0x100,
> +#if defined(CONFIG_SOC_OMAP2420)
> +static const char *omap242x_boards_compat[] __initdata = {
> + "ti,omap2420",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
> .reserve = omap_reserve,
> - .map_io = omap_generic_map_io,
> - .init_early = omap_generic_init_early,
> + .map_io = omap242x_map_io,
> + .init_early = omap2420_init_early,
> .init_irq = omap2_init_irq,
> .init_machine = omap_generic_init,
> .timer =&omap2_timer,
> + .dt_compat = omap242x_boards_compat,
> +MACHINE_END
> +#endif
> +
> +#if defined(CONFIG_SOC_OMAP2430)
> +static const char *omap243x_boards_compat[] __initdata = {
> + "ti,omap2430",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
> + .reserve = omap_reserve,
> + .map_io = omap243x_map_io,
> + .init_early = omap2430_init_early,
> + .init_irq = omap2_init_irq,
> + .init_machine = omap_generic_init,
> + .timer =&omap2_timer,
> + .dt_compat = omap243x_boards_compat,
> +MACHINE_END
> +#endif
> +
> +#if defined(CONFIG_ARCH_OMAP3)
> +static const char *omap3_boards_compat[] __initdata = {
> + "ti,omap3",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
> + .reserve = omap_reserve,
> + .map_io = omap3_map_io,
> + .init_early = omap3430_init_early,
> + .init_irq = omap3_init_irq,
> + .init_machine = omap_generic_init,
> + .timer =&omap3_timer,
> + .dt_compat = omap3_boards_compat,
> +MACHINE_END
> +#endif
> +
> +#if defined(CONFIG_ARCH_OMAP4)
> +static const char *omap4_boards_compat[] __initdata = {
> + "ti,omap4",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
> + .reserve = omap_reserve,
> + .map_io = omap4_map_io,
> + .init_early = omap4430_init_early,
> + .init_irq = gic_init_irq,
> + .init_machine = omap_generic_init,
> + .timer =&omap4_timer,
> + .dt_compat = omap4_boards_compat,
> MACHINE_END
> +#endif
WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 07/11] OMAP2+: board-generic: Add DT support to generic board
Date: Mon, 26 Sep 2011 12:02:02 +0530 [thread overview]
Message-ID: <4E801C62.5020700@ti.com> (raw)
In-Reply-To: <1316809399-19579-8-git-send-email-b-cousson@ti.com>
Hi Benoit,
On Saturday 24 September 2011 01:53 AM, Benoit Cousson wrote:
> Re-cycle the original board-generic file to support Device Tree
> for every OMAP2+ variants.
> Note: Since it is a completely new content in the existing file
> I removed the original copyright.
>
> The current approach is an intermediate step before having only
> one machine descriptor that will use some generic DT aware
> functions.
What config does this work with currently? If I use omap2plus_defconfig
should I explicitly disable everything other than say CONFIG_ARCH_OMAP4
if I want it working on OMAP4?
regards,
Rajendra
>
> Signed-off-by: Benoit Cousson<b-cousson@ti.com>
> Cc: Tony Lindgren<tony@atomide.com>
> ---
> arch/arm/mach-omap2/Kconfig | 8 ++-
> arch/arm/mach-omap2/board-generic.c | 129 ++++++++++++++++++++++------------
> 2 files changed, 89 insertions(+), 48 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 7edf802..5934a27 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -106,9 +106,13 @@ comment "OMAP Board Type"
> depends on ARCH_OMAP2PLUS
>
> config MACH_OMAP_GENERIC
> - bool "Generic OMAP board"
> - depends on ARCH_OMAP2
> + bool "Generic OMAP2+ board"
> + depends on ARCH_OMAP2PLUS
> + select USE_OF
> default y
> + help
> + Support for generic TI OMAP2+ boards using Flattened Device Tree.
> + More information at Documentation/devicetree
>
> config MACH_OMAP2_TUSB6010
> bool
> diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
> index e8d45d3..dcbd64c 100644
> --- a/arch/arm/mach-omap2/board-generic.c
> +++ b/arch/arm/mach-omap2/board-generic.c
> @@ -1,76 +1,113 @@
> /*
> - * linux/arch/arm/mach-omap2/board-generic.c
> + * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
> *
> - * Copyright (C) 2005 Nokia Corporation
> - * Author: Paul Mundt<paul.mundt@nokia.com>
> - *
> - * Modified from mach-omap/omap1/board-generic.c
> - *
> - * Code for generic OMAP2 board. Should work on many OMAP2 systems where
> - * the bootloader passes the board-specific data to the kernel.
> - * Do not put any board specific code to this file; create a new machine
> - * type if you need custom low-level initializations.
> + * Support for generic OMAP2+ device tree boards.
> *
> * 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/kernel.h>
> -#include<linux/init.h>
> -#include<linux/device.h>
> +#include<linux/io.h>
> +#include<linux/of_platform.h>
> +#include<linux/irqdomain.h>
>
> #include<mach/hardware.h>
> -#include<asm/mach-types.h>
> #include<asm/mach/arch.h>
> -#include<asm/mach/map.h>
>
> -#include<mach/gpio.h>
> -#include<plat/usb.h>
> #include<plat/board.h>
> #include<plat/common.h>
> +#include<mach/omap4-common.h>
>
> -static struct omap_board_config_kernel generic_config[] = {
> +
> +static struct of_device_id omap_dt_match_table[] __initdata = {
> + { .compatible = "simple-bus", },
> + { .compatible = "ti,omap-infra", },
> + { }
> };
>
> -static void __init omap_generic_init_early(void)
> -{
> - omap2_init_common_infrastructure();
> -}
> +static struct of_device_id intc_match[] __initdata = {
> + { .compatible = "ti,omap3-intc", },
> + { .compatible = "arm,cortex-a9-gic", },
> + { }
> +};
>
> static void __init omap_generic_init(void)
> {
> + struct device_node *node = of_find_matching_node(NULL, intc_match);
> + if (node)
> + irq_domain_add_simple(node, 0);
> +
> omap_serial_init();
> omap_sdrc_init(NULL, NULL);
> - omap_board_config = generic_config;
> - omap_board_config_size = ARRAY_SIZE(generic_config);
> -}
>
> -static void __init omap_generic_map_io(void)
> -{
> - if (cpu_is_omap242x()) {
> - omap2_set_globals_242x();
> - omap242x_map_common_io();
> - } else if (cpu_is_omap243x()) {
> - omap2_set_globals_243x();
> - omap243x_map_common_io();
> - } else if (cpu_is_omap34xx()) {
> - omap2_set_globals_3xxx();
> - omap34xx_map_common_io();
> - } else if (cpu_is_omap44xx()) {
> - omap2_set_globals_443x();
> - omap44xx_map_common_io();
> - }
> + of_platform_populate(NULL, omap_dt_match_table, NULL, NULL);
> }
>
> -/* XXX This machine entry name should be updated */
> -MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
> - /* Maintainer: Paul Mundt<paul.mundt@nokia.com> */
> - .atag_offset = 0x100,
> +#if defined(CONFIG_SOC_OMAP2420)
> +static const char *omap242x_boards_compat[] __initdata = {
> + "ti,omap2420",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
> .reserve = omap_reserve,
> - .map_io = omap_generic_map_io,
> - .init_early = omap_generic_init_early,
> + .map_io = omap242x_map_io,
> + .init_early = omap2420_init_early,
> .init_irq = omap2_init_irq,
> .init_machine = omap_generic_init,
> .timer =&omap2_timer,
> + .dt_compat = omap242x_boards_compat,
> +MACHINE_END
> +#endif
> +
> +#if defined(CONFIG_SOC_OMAP2430)
> +static const char *omap243x_boards_compat[] __initdata = {
> + "ti,omap2430",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
> + .reserve = omap_reserve,
> + .map_io = omap243x_map_io,
> + .init_early = omap2430_init_early,
> + .init_irq = omap2_init_irq,
> + .init_machine = omap_generic_init,
> + .timer =&omap2_timer,
> + .dt_compat = omap243x_boards_compat,
> +MACHINE_END
> +#endif
> +
> +#if defined(CONFIG_ARCH_OMAP3)
> +static const char *omap3_boards_compat[] __initdata = {
> + "ti,omap3",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
> + .reserve = omap_reserve,
> + .map_io = omap3_map_io,
> + .init_early = omap3430_init_early,
> + .init_irq = omap3_init_irq,
> + .init_machine = omap_generic_init,
> + .timer =&omap3_timer,
> + .dt_compat = omap3_boards_compat,
> +MACHINE_END
> +#endif
> +
> +#if defined(CONFIG_ARCH_OMAP4)
> +static const char *omap4_boards_compat[] __initdata = {
> + "ti,omap4",
> + NULL,
> +};
> +
> +DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
> + .reserve = omap_reserve,
> + .map_io = omap4_map_io,
> + .init_early = omap4430_init_early,
> + .init_irq = gic_init_irq,
> + .init_machine = omap_generic_init,
> + .timer =&omap4_timer,
> + .dt_compat = omap4_boards_compat,
> MACHINE_END
> +#endif
next prev parent reply other threads:[~2011-09-26 6:32 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-23 20:23 [PATCH 00/11] OMAP: Add initial support for DT on OMAP3 & OMAP4 Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 20:23 ` [PATCH 01/11] OMAP2+: Add SoC specific map_io functions Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 23:00 ` Tony Lindgren
2011-09-23 23:00 ` Tony Lindgren
2011-09-26 23:15 ` Tony Lindgren
2011-09-26 23:15 ` Tony Lindgren
2011-09-26 23:16 ` [PATCH] ARM: OMAP2+: Use SoC specifc map_io Tony Lindgren
2011-09-26 23:16 ` Tony Lindgren
2011-09-26 23:18 ` [PATCH] ARM: OMAP2+: Remove custom init_irq for remaining boards Tony Lindgren
2011-09-26 23:18 ` Tony Lindgren
2012-05-04 15:59 ` [PATCH 01/11] OMAP2+: Add SoC specific map_io functions Thomas Petazzoni
2012-05-04 15:59 ` Thomas Petazzoni
2012-05-14 15:06 ` Cousson, Benoit
2012-05-14 15:06 ` Cousson, Benoit
2012-05-14 19:55 ` Nicolas Pitre
2012-05-14 19:55 ` Nicolas Pitre
2011-09-23 20:23 ` [PATCH 02/11] arm/dts: Add initial device tree support for OMAP4 SoC Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 20:23 ` [PATCH 03/11] arm/dts: Add support for OMAP4 PandaBoard Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 23:21 ` Grant Likely
2011-09-23 23:21 ` Grant Likely
2011-09-26 12:38 ` Cousson, Benoit
2011-09-26 12:38 ` Cousson, Benoit
2011-09-23 20:23 ` [PATCH 04/11] arm/dts: Add support for OMAP4 SDP board Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 20:23 ` [PATCH 05/11] arm/dts: Add initial device tree support for OMAP3 SoC Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 20:23 ` [PATCH 06/11] arm/dts: Add support for OMAP3 Beagle board Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 20:23 ` [PATCH 07/11] OMAP2+: board-generic: Add DT support to generic board Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 23:08 ` Tony Lindgren
2011-09-23 23:08 ` Tony Lindgren
2011-09-26 12:35 ` Cousson, Benoit
2011-09-26 12:35 ` Cousson, Benoit
2011-09-26 21:37 ` Tony Lindgren
2011-09-26 21:37 ` Tony Lindgren
2011-09-26 6:32 ` Rajendra Nayak [this message]
2011-09-26 6:32 ` Rajendra Nayak
[not found] ` <4E801C62.5020700-l0cyMroinI0@public.gmane.org>
2011-09-26 9:00 ` Cousson, Benoit
2011-09-26 9:00 ` Cousson, Benoit
2011-09-23 20:23 ` [PATCH 08/11] OMAP2+: board-generic: Add i2c static init Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 23:12 ` Tony Lindgren
2011-09-23 23:12 ` Tony Lindgren
2011-09-23 23:47 ` Grant Likely
2011-09-23 23:47 ` Grant Likely
2011-09-26 16:45 ` Tony Lindgren
2011-09-26 16:45 ` Tony Lindgren
2011-09-23 20:23 ` [PATCH 09/11] OMAP2+: l3-noc: Add support for device-tree Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 20:23 ` [PATCH 10/11] arm/dts: OMAP4: Add a main ocp entry bound to l3-noc driver Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 22:58 ` Tony Lindgren
2011-09-23 22:58 ` Tony Lindgren
2011-09-26 12:13 ` Cousson, Benoit
2011-09-26 12:13 ` Cousson, Benoit
2011-09-26 21:44 ` Tony Lindgren
2011-09-26 21:44 ` Tony Lindgren
2011-09-23 20:23 ` [PATCH 11/11] arm/dts: OMAP3+: Add mpu, dsp and iva nodes Benoit Cousson
2011-09-23 20:23 ` Benoit Cousson
2011-09-23 23:26 ` Grant Likely
2011-09-23 23:26 ` Grant Likely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E801C62.5020700@ti.com \
--to=rnayak@ti.com \
--cc=b-cousson@ti.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=khilman@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.