|From:||Grant Likely <firstname.lastname@example.org>|
|To:||Nicolas Pitre <email@example.com>, Russell King <firstname.lastname@example.org>, Arnd Bergmann <email@example.com>, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org|
|Subject:||[RFC PATCH 00/11] Full device tree support for ARM Versatile|
|Date:||Wed, 15 Jun 2011 22:40:29 -0600|
This series of patches is all over the place, and touches both core infrastructure and board ports. The patches also vary quite a bit in terms of quality and readiness for merging. However, I wanted to get the whole lot out onto the list together so it can be seen exactly what needs to be done to convert an ARM platform over to registering devices directly out of the DT. This first 3 patches are an early implementation of irq_domains, plus some helpers to make creating a simple irq_domain easy. I've already posted the first patch before, and I haven't responded to any comments yet. These patches are needed so that DT irq connections can be correctly mapped into the Linux IRQ numberspace. Patches 4-7 modify the core DT infrastructure to create a new helper for registering devices (has slightly different semantics from the older of_platform_bus_probe()), working with AMBA devices, and allowing platform code to provide a lookup table of 'preferred' names and platform_data for DT described devices. The use of platform_data here is sure to raise an eyebrow or two, but I assure you it is both necessary and temporary. Necessary because it allows platforms to transition to DT without having to fix all name-based clock connections and platform_data usage in device drivers. Temporary because platform lookup tables will get removed after the drivers do get fixed. Patch 8 is a trivial powerpc patch to migrate a platform to the newer infrastructure, and patches 9 & 10 are also trivial infrastructure additions. Patch 11 is the main event. It creates a new versatile machine definition which matches against a versatile device tree, and all device registrations are generated from DT data. I've tested this one on the QEMU versatile model, but not real hardware. Most certainly not everything is working here yet. However, it is an example of how to migrate a platform over to using the DT. Cheers, g. --- Grant Likely (11): irq: add irq_domain translation infrastructure of/address: Add of_find_matching_node_by_address helper dt/irq: add irq_domain_add_simple() helper dt: add of_platform_populate() for creating device from the device tree dt: Add default match table for bus ids drivers/amba: create devices from device tree dt/platform: allow device name to be overridden powerpc/5200: convert mpc5200 to use of_platform_populate() arm/dt: Add dt machine definition arm/dt: Add skeleton dtsi file arm/versatile: Add device tree support .../devicetree/bindings/arm/primecell.txt | 21 ++ arch/arm/boot/dts/skeleton.dtsi | 13 + arch/arm/boot/dts/versatile-ab.dts | 185 +++++++++++++++++++ arch/arm/boot/dts/versatile-pb.dts | 48 +++++ arch/arm/include/asm/mach/arch.h | 9 + arch/arm/include/asm/prom.h | 5 - arch/arm/kernel/devtree.c | 14 - arch/arm/mach-versatile/Kconfig | 8 + arch/arm/mach-versatile/Makefile | 1 arch/arm/mach-versatile/core.c | 61 ++++++ arch/arm/mach-versatile/core.h | 5 + arch/arm/mach-versatile/versatile_dt.c | 66 +++++++ arch/microblaze/include/asm/irq.h | 10 - arch/microblaze/kernel/irq.c | 7 - arch/mips/include/asm/irq.h | 5 - arch/mips/kernel/prom.c | 14 - arch/powerpc/include/asm/irq.h | 1 arch/powerpc/platforms/52xx/mpc52xx_common.c | 10 - arch/x86/include/asm/irq_controller.h | 12 - arch/x86/include/asm/prom.h | 10 - arch/x86/kernel/devicetree.c | 101 +++------- drivers/of/address.c | 18 ++ drivers/of/platform.c | 196 +++++++++++++++++++- include/linux/irq.h | 92 +++++++++ include/linux/of_address.h | 4 include/linux/of_irq.h | 2 include/linux/of_platform.h | 40 ++++ kernel/irq/Makefile | 2 kernel/irq/irqdomain.c | 193 ++++++++++++++++++++ 29 files changed, 994 insertions(+), 159 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/primecell.txt create mode 100644 arch/arm/boot/dts/skeleton.dtsi create mode 100644 arch/arm/boot/dts/versatile-ab.dts create mode 100644 arch/arm/boot/dts/versatile-pb.dts create mode 100644 arch/arm/mach-versatile/versatile_dt.c delete mode 100644 arch/x86/include/asm/irq_controller.h create mode 100644 kernel/irq/irqdomain.c -- Signature -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to email@example.com More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds