[GIT PULL] initial omap DT support for v3.2 merge window (Re:[PATCH 26/30] ARM: omap: add board autoselection)

From: Tony Lindgren
Date: Tue Oct 04 2011 - 21:05:59 EST


* Arnd Bergmann <arnd@xxxxxxxx> [111004 11:55]:
> On Tuesday 04 October 2011 08:57:52 Tony Lindgren wrote:
> > * Arnd Bergmann <arnd@xxxxxxxx> [111004 00:10]:
> > > On Monday 03 October 2011, Tony Lindgren wrote:
> > >
> > > > Yes please leave out the list so we don't need to constantly update it.
> > > > Let's just always build in MACH_OMAP_GENERIC.
> > >
> > > That's what I had initially, but now that board file has become
> > > omap2-specific and no longer works on omap3-only or omap4-only
> > > configurations.
> >
> > Will send a pull request for basic DT bootstrap support from Benoit
> > that fixes that. So maybe let's sort that out first, then always
> > select it?
>
> Yes, sounds good. That is certainly the better solution in the long run.

Here you are. We had to rebase it earlier today because of the
SOB update in fixes branch for the musb related fix that's needed
here to avoid a merge conflict.

This series pretty much depends and conflicts with all the ealier
branches, so I created a new dt-base branch to deal with the merge
conflicts. If you prefer some other base, please let me know.

If you prefer to build some other merge base yourself, see the
attached patch that's needed to avoid two build warnings after
merging the various base branches together.

The dt-base I did is a merge of cleanup-part3, voltage, dmtimer
and l3 into fixes. You may not yet have l3 and fixes pulled in,
I sent pull requests for those yesterday. The others you have
already pulled I believe.

Despite using the merge base this will cause a minor merge conflict
in board-generic.c with Nicolas Pitre's earlier patch titled
"ARM: mach-omap2: convert boot_params to atag_offset". The
atag_offset can be just left out, as the default will work.

Regards,

Tony


The following changes since commit c541c15fb5ab48c47bc9b90121538fd30d152f23:
Tony Lindgren (1):
Merge branches 'cleanup-part3', 'voltage', 'dmtimer' and 'l3' into dt-base

are available in the git repository at:

git://github.com/tmlind/linux.git dt

Benoit Cousson (18):
ARM: OMAP3: beagle-board: Use the omap_hwmod_name_get_dev API
ARM: OMAP2+: pm: Use hwmod name instead of dev pointer
ARM: OMAP2+: pm: Remove static devices variable for mpu, dsp, iva and l3 PM
ARM: OMAP: omap_device: Create a default omap_device_pm_latency
ARM: OMAP2+: devices: Remove all omap_device_pm_latency structures
of: Add helpers to get one string in multiple strings property
ARM: OMAP: omap_device: Add omap_device_[alloc|delete] for DT integration
ARM: OMAP: omap_device: Add a method to build an omap_device from a DT node
arm/dts: Add initial device tree support for OMAP4 SoC
arm/dts: Add support for OMAP4 PandaBoard
arm/dts: Add support for OMAP4 SDP board
arm/dts: Add initial device tree support for OMAP3 SoC
arm/dts: Add support for OMAP3 Beagle board
ARM: OMAP2+: board-generic: Add DT support to generic board
ARM: OMAP2+: board-generic: Add i2c static init
ARM: OMAP2+: l3-noc: Add support for device-tree
arm/dts: OMAP4: Add a main ocp entry bound to l3-noc driver
arm/dts: OMAP3+: Add mpu, dsp and iva nodes

Nishanth Menon (1):
ARM: OMAP: omap_device: Add omap_device_get_by_hwmod_name

Tony Lindgren (1):
Merge branch 'for_3.2/3_omap_devicetree' of git://gitorious.org/omap-pm/linux into dt

Documentation/devicetree/bindings/arm/omap/dsp.txt | 14 +
Documentation/devicetree/bindings/arm/omap/iva.txt | 19 ++
.../devicetree/bindings/arm/omap/l3-noc.txt | 19 ++
Documentation/devicetree/bindings/arm/omap/mpu.txt | 27 ++
.../devicetree/bindings/arm/omap/omap.txt | 43 +++
arch/arm/boot/dts/omap3-beagle.dts | 29 ++
arch/arm/boot/dts/omap3.dtsi | 63 ++++
arch/arm/boot/dts/omap4-panda.dts | 29 ++
arch/arm/boot/dts/omap4-sdp.dts | 29 ++
arch/arm/boot/dts/omap4.dtsi | 103 +++++++
arch/arm/mach-omap2/Kconfig | 8 +-
arch/arm/mach-omap2/board-generic.c | 156 ++++++++---
arch/arm/mach-omap2/board-omap3beagle.c | 4 +-
arch/arm/mach-omap2/devices.c | 51 +---
arch/arm/mach-omap2/display.c | 11 +-
arch/arm/mach-omap2/dma.c | 11 +-
arch/arm/mach-omap2/gpio.c | 12 +-
arch/arm/mach-omap2/hsmmc.c | 18 +-
arch/arm/mach-omap2/hwspinlock.c | 12 +-
arch/arm/mach-omap2/mcbsp.c | 11 +-
arch/arm/mach-omap2/omap_l3_noc.c | 25 ++-
arch/arm/mach-omap2/pm.c | 72 ++---
arch/arm/mach-omap2/serial.c | 25 +--
arch/arm/mach-omap2/sr_device.c | 11 +-
arch/arm/mach-omap2/usb-musb.c | 11 +-
arch/arm/plat-omap/i2c.c | 10 +-
arch/arm/plat-omap/include/plat/omap_device.h | 1 +
arch/arm/plat-omap/omap_device.c | 313 +++++++++++++++++---
drivers/of/base.c | 84 ++++++
include/linux/of.h | 18 ++
30 files changed, 929 insertions(+), 310 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/omap/dsp.txt
create mode 100644 Documentation/devicetree/bindings/arm/omap/iva.txt
create mode 100644 Documentation/devicetree/bindings/arm/omap/l3-noc.txt
create mode 100644 Documentation/devicetree/bindings/arm/omap/mpu.txt
create mode 100644 Documentation/devicetree/bindings/arm/omap/omap.txt
create mode 100644 arch/arm/boot/dts/omap3-beagle.dts
create mode 100644 arch/arm/boot/dts/omap3.dtsi
create mode 100644 arch/arm/boot/dts/omap4-panda.dts
create mode 100644 arch/arm/boot/dts/omap4-sdp.dts
create mode 100644 arch/arm/boot/dts/omap4.dtsi
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -434,7 +434,7 @@ static int __init omap_timer_init(struct omap_hwmod *oh, void *unused)
int ret = 0;
char *name = "omap_timer";
struct dmtimer_platform_data *pdata;
- struct omap_device *od;
+ struct platform_device *pdev;
struct omap_timer_capability_dev_attr *timer_dev_attr;
struct powerdomain *pwrdm;

@@ -476,12 +476,12 @@ static int __init omap_timer_init(struct omap_hwmod *oh, void *unused)
#ifdef CONFIG_PM
pdata->get_context_loss_count = omap_pm_get_dev_context_loss_count;
#endif
- od = omap_device_build(name, id, oh, pdata, sizeof(*pdata),
+ pdev = omap_device_build(name, id, oh, pdata, sizeof(*pdata),
omap2_dmtimer_latency,
ARRAY_SIZE(omap2_dmtimer_latency),
0);

- if (IS_ERR(od)) {
+ if (IS_ERR(pdev)) {
pr_err("%s: Can't build omap_device for %s: %s.\n",
__func__, name, oh->name);
ret = -EINVAL;
--- a/arch/arm/mach-omap2/usb-musb.c
+++ b/arch/arm/mach-omap2/usb-musb.c
@@ -115,7 +115,6 @@ static struct omap_musb_board_data musb_default_board_data = {
void __init usb_musb_init(struct omap_musb_board_data *musb_board_data)
{
struct omap_hwmod *oh;
- struct omap_device *od;
struct platform_device *pdev;
struct device *dev;
int bus_id = -1;
@@ -145,22 +144,20 @@ void __init usb_musb_init(struct omap_musb_board_data *musb_board_data)
name = "musb-omap2430";
}

- oh = omap_hwmod_lookup(oh_name);
- if (!oh) {
- pr_err("Could not look up %s\n", oh_name);
- return;
- }
+ oh = omap_hwmod_lookup(oh_name);
+ if (WARN(!oh, "%s: could not find omap_hwmod for %s\n",
+ __func__, oh_name))
+ return;

- od = omap_device_build(name, bus_id, oh, &musb_plat,
+ pdev = omap_device_build(name, bus_id, oh, &musb_plat,
sizeof(musb_plat), omap_musb_latency,
ARRAY_SIZE(omap_musb_latency), false);
- if (IS_ERR(od)) {
+ if (IS_ERR(pdev)) {
pr_err("Could not build omap_device for %s %s\n",
name, oh_name);
return;
}

- pdev = &od->pdev;
dev = &pdev->dev;
get_device(dev);
dev->dma_mask = &musb_dmamask;