From: marek.vasut@gmail•com (Marek Vasut)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 2/3] ARM: pxa: Add DT testing machine
Date: Mon, 7 Nov 2011 23:24:25 +0100 [thread overview]
Message-ID: <201111072324.25796.marek.vasut@gmail.com> (raw)
In-Reply-To: <20111107221805.GD28491@ponder.secretlab.ca>
> On Tue, Nov 01, 2011 at 07:32:33PM +0100, Marek Vasut wrote:
> > I use the Voipac PXA270 board for PXA DT conversion. This board is a
> > helper for the conversion to go smoothly and the testing to be easy.
> >
> > Signed-off-by: Marek Vasut <marek.vasut@gmail•com>
> > Cc: Arnd Bergmann <arnd@arndb•de>
> > Cc: Grant Likely <grant.likely@secretlab•ca>
> > ---
> >
> > arch/arm/mach-pxa/Kconfig | 15 +++++++
> > arch/arm/mach-pxa/Makefile | 3 +
> > arch/arm/mach-pxa/vpac270-dt.c | 82
> > ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100
> > insertions(+), 0 deletions(-)
> > create mode 100644 arch/arm/mach-pxa/vpac270-dt.c
> >
> > diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
> > index cd19309..e152a9c 100644
> > --- a/arch/arm/mach-pxa/Kconfig
> > +++ b/arch/arm/mach-pxa/Kconfig
> > @@ -599,6 +599,21 @@ config MACH_ZIPIT2
> >
> > select PXA27x
> > select HAVE_PWM
> >
> > +config MACH_VPAC_DT
> > + bool "PXA (Voipac270) FDT Machine"
> > + select PXA27x
> > + select OF
> > + depends on !MACH_VPAC270 && EXPERIMENTAL
> > + help
> > + PXA Device Tree Machine.
> > + This is to be a generic machine which probes all of it's drivers
> > + using the Flattened Device Tree blob. This is work-in-progress
> > + so don't expect much yet. We selected the Voipac PXA270 device
> > + as a base device to test support along the way.
> > +
> > + NOTE: This platform is mutually exclusive with the original!
> > + NOTE: Use only if you know what you're doing!!
> > +
> >
> > endmenu
> >
> > config PXA25x
> >
> > diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
> > index cc39d17..5f69281 100644
> > --- a/arch/arm/mach-pxa/Makefile
> > +++ b/arch/arm/mach-pxa/Makefile
> > @@ -104,3 +104,6 @@ led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
> >
> > obj-$(CONFIG_LEDS) += $(led-y)
> >
> > obj-$(CONFIG_TOSA_BT) += tosa-bt.o
> >
> > +
> > +# PXA FDT board
> > +obj-$(CONFIG_MACH_VPAC_DT) += vpac270-dt.o
> > diff --git a/arch/arm/mach-pxa/vpac270-dt.c
> > b/arch/arm/mach-pxa/vpac270-dt.c new file mode 100644
> > index 0000000..dc9a6dd
> > --- /dev/null
> > +++ b/arch/arm/mach-pxa/vpac270-dt.c
> > @@ -0,0 +1,82 @@
> > +/*
> > + * Hardware definitions for Voipac PXA270 driven by FDT
> > + *
> > + * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail•com>
> > + *
> > + * NOTE: This is an ongoing effort of preparing generic FDT-based board
> > + * for PXA machines. This particular device allows us to test the
> > + * support for breakage.
> > + *
> > + * 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.
>
> Rather that starting with a file named for a specific machine, I'd
> recommend something like pxa270-dt.c that will start with Voipac
> support only, but will grow support for other boards over time.
Hi Grant, well ok, I have no problem with that. Can you apply the rest of the
patches (0001, 0003)?
>
> > + *
> > + */
> > +
> > +#include <linux/of_platform.h>
> > +#include <linux/irqdomain.h>
> > +#include "vpac270.c"
> > +
> > +/***********************************************************************
> > ******* + * Machine init
> > +
> > ************************************************************************
> > ******/ +static const struct of_device_id pxairq_of_match[] __initconst =
> > { + { .compatible = "marvell,pxa-irq", },
> > + {},
> > +};
> > +
> > +static void __init pxa_dt_init_irq(void)
> > +{
> > + irq_domain_generate_simple(pxairq_of_match, 0x40d00000, 0);
> > + pxa27x_init_irq();
> > +}
> > +
> > +static struct of_device_id pxa_dt_match_table[] __initdata = {
> > + { .compatible = "simple-bus", },
> > + {}
> > +};
>
> You can use the stock of_default_bus_match_table[] instead of adding
> another one.
Thanks for explaining!
>
> > +
> > +static const struct of_dev_auxdata pxa_dt_auxdata_table[] __initconst =
> > { + OF_DEV_AUXDATA("marvell,pxa2xx-uart", 0x40100000, "pxa2xx-uart.0",
> > NULL), + OF_DEV_AUXDATA("marvell,pxa2xx-uart", 0x40200000,
> > "pxa2xx-uart.1", NULL), + OF_DEV_AUXDATA("marvell,pxa2xx-uart",
> > 0x40700000, "pxa2xx-uart.2", NULL), +};
> > +
> > +static void __init vpac270_dt_init(void)
> > +{
> > + pxa2xx_mfp_config(ARRAY_AND_SIZE(vpac270_pin_config));
> > +
> > + of_platform_populate(NULL, pxa_dt_match_table,
> > + pxa_dt_auxdata_table, NULL);
> > +
> > + pxa_set_i2c_info(NULL);
> > + pxa27x_set_i2c_power_info(NULL);
> > +
> > + vpac270_pmic_init();
> > + vpac270_lcd_init();
> > + vpac270_mmc_init();
> > + vpac270_nor_init();
> > + vpac270_onenand_init();
> > + vpac270_leds_init();
> > + vpac270_keys_init();
> > + vpac270_uhc_init();
> > + vpac270_udc_init();
> > + vpac270_eth_init();
> > + vpac270_ts_init();
> > + vpac270_rtc_init();
> > + vpac270_ide_init();
>
> Ideally of course, all this stuff would be handled in device drivers
> based on platform_devices created by of_platform_populate().
Exactly
> In the
> short term, you could have one machine specific setup function for
> each supported machine and chose the one to execute based on the top
> level compatible property.
Yes, that's also true. This looks doable as a short-term solution (until DT for
PXA is more complete).
>
> Alternatively, you could make this new support file only support a
> subset of devices that can currently work with device tree, and then
> build it up as drivers gain DT support. It will be easier to pull in
> additional board support that way.
That's a problem actually. The thing won't even boot without some of the stuff
registered here :-/
The other option is for me to keep it out of tree and apply this one only when I
have this device working cleanly with DT.
>
> > +}
> > +
> > +static const char *vpac270_dt_board_compat[] __initdata = {
> > + "voipac,vpac270",
> > + NULL
> > +};
> > +
> > +DT_MACHINE_START(PXA_DT, "Marvell PXA2xx/PXA3xx (Flattened Device
> > Tree)") + .map_io = pxa27x_map_io,
> > + .init_irq = pxa_dt_init_irq,
> > + .handle_irq = pxa27x_handle_irq,
> > + .timer = &pxa_timer,
> > + .init_machine = vpac270_dt_init,
> > + .dt_compat = vpac270_dt_board_compat,
> > +MACHINE_END
next prev parent reply other threads:[~2011-11-07 22:24 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 18:32 [PATCH 0/3] Initial PXA DT bindings Marek Vasut
2011-11-01 18:32 ` [PATCH 1/3] ARM: pxa: Add DT support to pxa2xx-uart Marek Vasut
2011-11-01 20:00 ` Rob Herring
2011-11-01 20:15 ` Marek Vasut
2011-11-02 13:52 ` Rob Herring
2011-11-02 14:30 ` Marek Vasut
2011-11-07 22:24 ` Grant Likely
2011-11-07 22:25 ` Marek Vasut
2011-11-01 18:32 ` [PATCH 2/3] ARM: pxa: Add DT testing machine Marek Vasut
2011-11-07 22:18 ` Grant Likely
2011-11-07 22:24 ` Marek Vasut [this message]
2011-11-01 18:32 ` [PATCH 3/3] ARM: pxa: Add basic DTS files for PXA/Vpac270 " Marek Vasut
2011-11-07 21:31 ` [PATCH 0/3 V2] Initial PXA DT bindings Marek Vasut
2011-11-07 21:31 ` [PATCH 1/3 V2] ARM: pxa: Add DT support to pxa2xx-uart Marek Vasut
2011-11-07 21:37 ` Rob Herring
2011-11-07 21:53 ` Marek Vasut
2011-11-10 12:00 ` Russell King - ARM Linux
2011-11-10 16:59 ` Marek Vasut
2011-11-10 17:07 ` Rob Herring
2011-11-07 21:31 ` [PATCH 2/3 RESEND] ARM: pxa: Add DT testing machine Marek Vasut
2011-11-07 21:59 ` Rob Herring
2011-11-07 22:06 ` Marek Vasut
2011-11-07 22:30 ` Grant Likely
2011-11-07 22:31 ` Marek Vasut
2011-11-07 22:38 ` Rob Herring
2011-11-07 22:32 ` Rob Herring
2011-11-08 1:12 ` Grant Likely
2011-11-07 21:31 ` [PATCH 3/3 V2] ARM: pxa: Add basic DTS files for PXA/Vpac270 " Marek Vasut
2011-11-07 21:45 ` Rob Herring
2011-11-07 21:55 ` Marek Vasut
2011-11-07 22:03 ` Rob Herring
2012-07-17 13:30 ` [PATCH 0/3 V2] Initial PXA DT bindings Daniel Mack
2012-07-17 14:03 ` Arnd Bergmann
2012-07-17 14:47 ` Daniel Mack
2012-07-17 15:31 ` Arnd Bergmann
2012-07-17 18:04 ` Eric Miao
2012-07-17 19:57 ` Daniel Mack
2012-07-17 20:02 ` Eric Miao
2012-07-19 3:11 ` Haojian Zhuang
2012-07-17 19:14 ` Daniel Mack
2012-07-18 12:58 ` Marek Vasut
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=201111072324.25796.marek.vasut@gmail.com \
--to=marek.vasut@gmail$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox