Skip to contentSkip to conversation

*** ARM: Update arch-vt8500 to Devicetree ***

PATCH In review Tony Prisk 5 participants 24 messages Aug 8, 2012 – Aug 19, 2012

Subsystems (11)
lore
Share & tools
lore

Tony Prisk

author
#0 lore raw

cover *** ARM: Update arch-vt8500 to Devicetree ***

This patchset updates arch-vt8500 to devicetree and removes all the old-style code. Support for WM8650 has also been added.

Example dts/dtsi files are given for the three currently supported models.

Major changes:

GPIO code has been converted to a platform_device and rewritten as WM8505 support was broken. Add support for WM8650 gpio controller.

UHCI support was missing. Added this as a generic non-pci uhci controller as it doesn't require anything special. Should be usable by any system that doesn't have special requirements to get the UHCI controller working.

Framebuffer code patched to support WM8650. The bindings for this are of concern but there doesn't seem to be a formalized binding yet. This patch is based off Sascha Hauer's current patch on the dri-devel mailing list and should be easily patched out when its finalized.

Patchset based on Arnd's arm-soc/for-next branch.

Could I get this reviewed, hopefully for inclusion into v3.7.

Regards
Tony Prisk

Tony Prisk (8):
arm: vt8500: Add device tree files for VIA/Wondermedia SoC's
rtc: vt8500: Add devicetree support for vt8500-rtc
serial: vt8500: Add devicetree support for vt8500-serial
usb: vt8500: Add devicetree support for vt8500-ehci and -uhci.
video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb
arm: vt8500: Update arch-vt8500 to devicetree support.
arm: vt8500: doc: Add device tree bindings for arch-vt8500 devices
ARM: vt8500: gpio: Devicetree support for arch-vt8500

 Documentation/devicetree/bindings/arm/vt8500.txt   |   15 +
 .../bindings/arm/vt8500/via,vt8500-intc.txt        |   16 +
 .../bindings/arm/vt8500/via,vt8500-pmc.txt         |   13 +
 .../bindings/arm/vt8500/via,vt8500-timer.txt       |   15 +
 .../devicetree/bindings/gpio/gpio_vt8500.txt       |   24 ++
 .../devicetree/bindings/rtc/via,vt8500-rtc.txt     |   15 +
 .../bindings/tty/serial/via,vt8500-uart.txt        |   15 +
 .../devicetree/bindings/usb/platform-uhci.txt      |   15 +
 .../devicetree/bindings/usb/via,vt8500-ehci.txt    |   15 +
 .../devicetree/bindings/vendor-prefixes.txt        |    2 +
 .../devicetree/bindings/video/via,vt8500-fb.txt    |   46 +++
 .../devicetree/bindings/video/wm,prizm-ge-rops.txt |   13 +
 .../devicetree/bindings/video/wm,wm8505-fb.txt     |   20 ++
 arch/arm/Kconfig                                   |    2 +
 arch/arm/boot/dts/vt8500.dtsi                      |   99 ++++++
 arch/arm/boot/dts/vt8500_ref.dts                   |   31 ++
 arch/arm/boot/dts/wm8505.dtsi                      |  125 ++++++++
 arch/arm/boot/dts/wm8505_ref.dts                   |   31 ++
 arch/arm/boot/dts/wm8650.dtsi                      |   95 ++++++
 arch/arm/boot/dts/wm8650_ref.dts                   |   31 ++
 arch/arm/mach-vt8500/Kconfig                       |   72 +----
 arch/arm/mach-vt8500/Makefile                      |    9 +-
 arch/arm/mach-vt8500/bv07.c                        |   80 -----
 arch/arm/mach-vt8500/common.h                      |   25 ++
 arch/arm/mach-vt8500/devices-vt8500.c              |   91 ------
 arch/arm/mach-vt8500/devices-wm8505.c              |   99 ------
 arch/arm/mach-vt8500/devices.c                     |  270 -----------------
 arch/arm/mach-vt8500/devices.h                     |   88 ------
 arch/arm/mach-vt8500/gpio.c                        |  240 ---------------
 arch/arm/mach-vt8500/include/mach/restart.h        |    4 +-
 arch/arm/mach-vt8500/include/mach/vt8500_irqs.h    |   88 ------
 arch/arm/mach-vt8500/include/mach/vt8500_regs.h    |   79 -----
 arch/arm/mach-vt8500/include/mach/wm8505_irqs.h    |  115 -------
 arch/arm/mach-vt8500/include/mach/wm8505_regs.h    |   78 -----
 arch/arm/mach-vt8500/irq.c                         |  160 +++++-----
 arch/arm/mach-vt8500/restart.c                     |   54 ----
 arch/arm/mach-vt8500/timer.c                       |   56 +++-
 arch/arm/mach-vt8500/vt8500.c                      |  192 ++++++++++++
 arch/arm/mach-vt8500/wm8505_7in.c                  |   79 -----
 drivers/gpio/Kconfig                               |    6 +
 drivers/gpio/Makefile                              |    1 +
 drivers/gpio/gpio-vt8500.c                         |  318 ++++++++++++++++++++
 drivers/rtc/rtc-vt8500.c                           |    7 +
 drivers/tty/serial/vt8500_serial.c                 |    7 +
 drivers/usb/host/Kconfig                           |    4 +-
 drivers/usb/host/ehci-vt8500.c                     |   24 +-
 drivers/usb/host/uhci-hcd.c                        |    5 +
 drivers/usb/host/uhci-platform.c                   |  166 ++++++++++
 drivers/video/Kconfig                              |    6 +-
 drivers/video/vt8500lcdfb.c                        |   77 ++++-
 drivers/video/wm8505fb.c                           |   95 +++++-
 drivers/video/wmt_ge_rops.c                        |    7 +
 52 files changed, 1674 insertions(+), 1566 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500.txt
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500/via,vt8500-intc.txt
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500/via,vt8500-pmc.txt
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500/via,vt8500-timer.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio_vt8500.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/via,vt8500-rtc.txt
 create mode 100644 Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt
 create mode 100644 Documentation/devicetree/bindings/usb/platform-uhci.txt
 create mode 100644 Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
 create mode 100644 Documentation/devicetree/bindings/video/via,vt8500-fb.txt
 create mode 100644 Documentation/devicetree/bindings/video/wm,prizm-ge-rops.txt
 create mode 100644 Documentation/devicetree/bindings/video/wm,wm8505-fb.txt
 create mode 100644 arch/arm/boot/dts/vt8500.dtsi
 create mode 100644 arch/arm/boot/dts/vt8500_ref.dts
 create mode 100644 arch/arm/boot/dts/wm8505.dtsi
 create mode 100644 arch/arm/boot/dts/wm8505_ref.dts
 create mode 100644 arch/arm/boot/dts/wm8650.dtsi
 create mode 100644 arch/arm/boot/dts/wm8650_ref.dts
 delete mode 100644 arch/arm/mach-vt8500/bv07.c
 create mode 100644 arch/arm/mach-vt8500/common.h
 delete mode 100644 arch/arm/mach-vt8500/devices-vt8500.c
 delete mode 100644 arch/arm/mach-vt8500/devices-wm8505.c
 delete mode 100644 arch/arm/mach-vt8500/devices.c
 delete mode 100644 arch/arm/mach-vt8500/devices.h
 delete mode 100644 arch/arm/mach-vt8500/gpio.c
 delete mode 100644 arch/arm/mach-vt8500/include/mach/vt8500_irqs.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/vt8500_regs.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/wm8505_irqs.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/wm8505_regs.h
 delete mode 100644 arch/arm/mach-vt8500/restart.c
 create mode 100644 arch/arm/mach-vt8500/vt8500.c
 delete mode 100644 arch/arm/mach-vt8500/wm8505_7in.c
 create mode 100644 drivers/gpio/gpio-vt8500.c
 create mode 100644 drivers/usb/host/uhci-platform.c
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 1/8 arm: vt8500: Add device tree files for VIA/Wondermedia SoC's

Add device tree files for VT8500, WM8505 and WM8650 SoC's and reference boards.

---
 arch/arm/boot/dts/vt8500.dtsi    |   99 ++++++++++++++++++++++++++++++
 arch/arm/boot/dts/vt8500_ref.dts |   31 ++++++++++
 arch/arm/boot/dts/wm8505.dtsi    |  125 ++++++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/wm8505_ref.dts |   31 ++++++++++
 arch/arm/boot/dts/wm8650.dtsi    |   95 +++++++++++++++++++++++++++++
 arch/arm/boot/dts/wm8650_ref.dts |   31 ++++++++++
 6 files changed, 412 insertions(+)
 create mode 100644 arch/arm/boot/dts/vt8500.dtsi
 create mode 100644 arch/arm/boot/dts/vt8500_ref.dts
 create mode 100644 arch/arm/boot/dts/wm8505.dtsi
 create mode 100644 arch/arm/boot/dts/wm8505_ref.dts
 create mode 100644 arch/arm/boot/dts/wm8650.dtsi
 create mode 100644 arch/arm/boot/dts/wm8650_ref.dts
arch/arm/boot/dts/vt8500.dtsi new file +99 -0
new file mode 100644
index 0000000..7a2fe0e
@@ -0,0 +1,99 @@
+/*
+ * vt8500.dtsi - Device tree file for VIA VT8500 SoC
+ *
+ * Copyright (C) 2012 Tony Prisk <[email protected]>
+ *
+ * Licensed under GPLv2 or later
+ */
+
+/include/ "skeleton.dtsi"
+
+/ {
+	compatible = "via,vt8500";
+
+	soc {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+		interrupt-parent = <&intc>;
+
+		intc: interrupt-controller at d8140000 {
+			compatible = "via,vt8500-intc";
+			interrupt-controller;
+			reg = <0xd8140000 0x10000>;
+			#interrupt-cells = <1>;
+		};
+
+		gpio: gpio-controller at d8110000 {
+			compatible = "via,vt8500-gpio";
+			gpio-controller;
+			reg = <0xd8110000 0x10000>;
+			#gpio-cells = <3>;
+		};
+
+		pmc at d8130000 {
+			compatible = "via,vt8500-pmc";
+			reg = <0xd8130000 0x1000>;
+		};
+
+		timer at d8130100 {
+			compatible = "via,vt8500-timer";
+			reg = <0xd8130100 0x28>;
+			interrupts = <36>;
+		};
+
+		ehci at d8007900 {
+			compatible = "via,vt8500-ehci";
+			reg = <0xd8007900 0x200>;
+			interrupts = <43>;
+		};
+
+		uhci at d8007b00 {
+			compatible = "platform-uhci";
+			reg = <0xd8007b00 0x200>;
+			interrupts = <43>;
+		};
+
+		fb at d800e400 {
+			compatible = "via,vt8500-fb";
+			reg = <0xd800e400 0x400>;
+			interrupts = <12>;
+		};
+
+		ge_rops at d8050400 {
+			compatible = "wm,prizm-ge-rops";
+			reg = <0xd8050400 0x100>;
+		};
+
+		uart at d8200000 {
+			compatible = "via,vt8500-uart";
+			reg = <0xd8200000 0x1040>;
+			interrupts = <32>;
+		};
+
+		uart at d82b0000 {
+			compatible = "via,vt8500-uart";
+			reg = <0xd82b0000 0x1040>;
+			interrupts = <33>;
+		};
+
+		uart at d8210000 {
+			compatible = "via,vt8500-uart";
+			reg = <0xd8210000 0x1040>;
+			interrupts = <47>;
+		};
+
+		uart at d82c0000 {
+			compatible = "via,vt8500-uart";
+			reg = <0xd82c0000 0x1040>;
+			interrupts = <50>;
+		};
+
+		rtc at d8100000 {
+			compatible = "via,vt8500-rtc";
+			reg = <0xd8100000 0x10000>;
+			interrupts = <48>;
+		};
+	};
+};
arch/arm/boot/dts/vt8500_ref.dts new file +31 -0
new file mode 100644
index 0000000..ba5a6af
@@ -0,0 +1,31 @@
+/*
+ * vt8500_ref.dts - Device tree file for Benign BV07 Netbook
+ *
+ * Copyright (C) 2012 Tony Prisk <[email protected]>
+ *
+ * Licensed under GPLv2 or later
+ */
+
+/dts-v1/;
+/include/ "vt8500.dtsi"
+
+/ {
+	model = "Benign BV07 Netbook";
+
+	/*
+	 * Display node is based on Sascha Hauer's patch on dri-devel.
+	 * Added a bpp property to calculate the size of the framebuffer
+	 * until the binding is formalized.
+	 */
+	display {
+		xres = <800>;
+		yres = <480>;
+		left-margin = <88>;
+		right-margin = <40>;
+		hsync-len = <0>;
+		upper-margin = <32>;
+		lower-margin = <11>;
+		vsync-len = <1>;
+		bpp = <16>;
+	};
+};
arch/arm/boot/dts/wm8505.dtsi new file +125 -0

125 lines not on this page · raw message

arch/arm/boot/dts/wm8505_ref.dts new file +31 -0
new file mode 100644
index 0000000..3df6fbb
@@ -0,0 +1,31 @@
+/*
+ * wm8505_ref.dts - Device tree file for Wondermedia WM8505 reference board
+ *
+ * Copyright (C) 2012 Tony Prisk <[email protected]>
+ *
+ * Licensed under GPLv2 or later
+ */
+
+/dts-v1/;
+/include/ "wm8505.dtsi"
+
+/ {
+	model = "Wondermedia WM8505";
+
+	/*
+	 * Display node is based on Sascha Hauer's patch on dri-devel.
+	 * Added a bpp property to calculate the size of the framebuffer
+	 * until the binding is formalized.
+	 */
+	display {
+		xres = <800>;
+		yres = <480>;
+		left-margin = <88>;
+		right-margin = <40>;
+		hsync-len = <0>;
+		upper-margin = <32>;
+		lower-margin = <11>;
+		vsync-len = <1>;
+		bpp = <32>;
+	};
+};
arch/arm/boot/dts/wm8650.dtsi new file +95 -0

95 lines not on this page · raw message

arch/arm/boot/dts/wm8650_ref.dts new file +31 -0
new file mode 100644
index 0000000..3313006
@@ -0,0 +1,31 @@
+/*
+ * wm8650_ref.dts - Device tree file for Wondermedia WM8650 reference board
+ *
+ * Copyright (C) 2012 Tony Prisk <[email protected]>
+ *
+ * Licensed under GPLv2 or later
+ */
+
+/dts-v1/;
+/include/ "wm8650.dtsi"
+
+/ {
+	model = "Wondermedia WM8650";
+
+	/*
+	 * Display node is based on Sascha Hauer's patch on dri-devel.
+	 * Added a bpp property to calculate the size of the framebuffer
+	 * until the binding is formalized.
+	 */
+	display {
+		xres = <800>;
+		yres = <480>;
+		left-margin = <88>;
+		right-margin = <40>;
+		hsync-len = <0>;
+		upper-margin = <32>;
+		lower-margin = <11>;
+		vsync-len = <1>;
+		bpp = <16>;
+	};
+};
Signature · 1 line
1.7.9.5
#2 lore raw

Re: [PATCH 1/8] arm: vt8500: Add device tree files for VIA/Wondermedia SoC's

arch/arm/boot/dts/vt8500_ref.dts

Quoted 4 lines · Tony Prisk

Add device tree files for VT8500, WM8505 and WM8650 SoC's and reference boards.

arch/arm/boot/dts/vt8500_ref.dts +0 -0

It appears more typical to use "-" rather than "_" in the filename to join SoC and board names.

I guess "_ref" means "reference". Is that how the boards are commonly known? Are you sure there will never be another reference board for these SoCs? Given the "model" values in the file, something more like vt8500-bv07.dts might be more appropriate?

arch/arm/boot/dts/vt8500_ref.dts line 20

Quoted 6 lines
arch/arm/boot/dts/vt8500_ref.dts +6 -0
+	/*
+	 * Display node is based on Sascha Hauer's patch on dri-devel.
+	 * Added a bpp property to calculate the size of the framebuffer
+	 * until the binding is formalized.
+	 */
+	display {

Maybe it's better to just hold off on adding this node, to wait until the binding is complete so this file doesn't churn? Certainly it sounded like Sascha was going to change the binding a little in response to comments it received.

author
#3 lore raw

PATCH 1/8 arm: vt8500: Add device tree files for VIA/Wondermedia SoC's

Quoted 2 lines

It appears more typical to use "-" rather than "_" in the filename to join SoC and board names.

Fixed.

Quoted 4 lines

I guess "_ref" means "reference". Is that how the boards are commonly known? Are you sure there will never be another reference board for these SoCs? Given the "model" values in the file, something more like vt8500-bv07.dts might be more appropriate?

I'm fairly certain there will never be another reference board, as these SoC's seem to disappear after a few months and a new one comes out. Most of the models are chinese in origin with no real identifying names. Having said that, I have renamed the dts files to a less 'generic' name. vt8500-bv07.dts, wm8850-mid.dts.
wm8505-ref is the same as I can't find any other identification for it, and everyone else I've had contact with who has one has the same board design.

Quoted 11 lines

arch/arm/boot/dts/vt8500_ref.dts line 20

Quoted 6 lines
arch/arm/boot/dts/vt8500_ref.dts new file +6 -0
+     /*
+      * Display node is based on Sascha Hauer's patch on dri-devel.
+      * Added a bpp property to calculate the size of the framebuffer
+      * until the binding is formalized.
+      */
+     display {

Maybe it's better to just hold off on adding this node, to wait until the binding is complete so this file doesn't churn? Certainly it sounded like Sascha was going to change the binding a little in response to comments it received.

My understanding with Sascha's patch is that it won't include a pixel format property and therefore we won't be able to use his binding properly until its revisited. Without this node, we have no display output available other than uart - and that's only available if you modify the hardware.

This patchset will make arch-vt8500 nearly unusable without this node as we would have to leave the framebuffer code out as well.

Always open to suggestions,

Regards
Tony Prisk

author
#4 lore raw

PATCH 2/8 rtc: vt8500: Add devicetree support for vt8500-rtc

In reply to Tony Prisk
---
 drivers/rtc/rtc-vt8500.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/rtc/rtc-vt8500.c +7 -0
index 9e94fb1..7364564 100644
@@ -23,6 +23,7 @@
 #include <linux/bcd.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
+#include <linux/of.h>
 
 /*
  * Register definitions
@@ -302,12 +303,18 @@ static int __devexit vt8500_rtc_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id wmt_dt_ids[] = {
+	{ .compatible = "via,vt8500-rtc", },
+	{}
+};
+
 static struct platform_driver vt8500_rtc_driver = {
 	.probe		= vt8500_rtc_probe,
 	.remove		= __devexit_p(vt8500_rtc_remove),
 	.driver		= {
 		.name	= "vt8500-rtc",
 		.owner	= THIS_MODULE,
+		.of_match_table = of_match_ptr(wmt_dt_ids),
 	},
 };
 
Signature · 1 line
1.7.9.5
author
#5 lore raw

PATCH 3/8 serial: vt8500: Add devicetree support for vt8500-serial

In reply to Tony Prisk
---
 drivers/tty/serial/vt8500_serial.c |    7 +++++++
 1 file changed, 7 insertions(+)
drivers/tty/serial/vt8500_serial.c +7 -0
index 2be006f..a7f58c9 100644
@@ -34,6 +34,7 @@
 #include <linux/slab.h>
 #include <linux/clk.h>
 #include <linux/platform_device.h>
+#include <linux/of.h>
 
 /*
  * UART Register offsets
@@ -603,12 +604,18 @@ static int __devexit vt8500_serial_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id wmt_dt_ids[] = {
+	{ .compatible = "via,vt8500-uart", },
+	{}
+};
+
 static struct platform_driver vt8500_platform_driver = {
 	.probe  = vt8500_serial_probe,
 	.remove = __devexit_p(vt8500_serial_remove),
 	.driver = {
 		.name = "vt8500_serial",
 		.owner = THIS_MODULE,
+		.of_match_table = of_match_ptr(wmt_dt_ids),
 	},
 };
 
Signature · 1 line
1.7.9.5
author
#6 lore raw

PATCH 4/8 usb: vt8500: Add devicetree support for vt8500-ehci and -uhci.

In reply to Tony Prisk

Add devicetree support for vt8500-ehci.
Convert vt8500-uhci to a generic non-pci platform-uhci with device tree support.

---
 drivers/usb/host/Kconfig         |    4 +-
 drivers/usb/host/ehci-vt8500.c   |   24 ++++--
 drivers/usb/host/uhci-hcd.c      |    5 ++
 drivers/usb/host/uhci-platform.c |  166 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 191 insertions(+), 8 deletions(-)
 create mode 100644 drivers/usb/host/uhci-platform.c
drivers/usb/host/Kconfig +2 -2
index dcfaaa9..d7a6b10 100644
@@ -450,7 +450,7 @@ config USB_OHCI_LITTLE_ENDIAN
 
 config USB_UHCI_HCD
 	tristate "UHCI HCD (most Intel and VIA) support"
-	depends on USB && (PCI || SPARC_LEON)
+	depends on USB && (PCI || SPARC_LEON || ARCH_VT8500)
 	---help---
 	  The Universal Host Controller Interface is a standard by Intel for
 	  accessing the USB hardware in the PC (which is also called the USB
@@ -468,7 +468,7 @@ config USB_UHCI_HCD
 config USB_UHCI_SUPPORT_NON_PCI_HC
 	bool
 	depends on USB_UHCI_HCD
-	default y if SPARC_LEON
+	default y if (SPARC_LEON  || ARCH_VT8500)
 
 config USB_UHCI_BIG_ENDIAN_MMIO
 	bool
drivers/usb/host/ehci-vt8500.c +18 -6
index c1eda73..52e9f92 100644
@@ -16,6 +16,7 @@
  *
  */
 
+#include <linux/of.h>
 #include <linux/platform_device.h>
 
 static int ehci_update_device(struct usb_hcd *hcd, struct usb_device *udev)
@@ -84,20 +85,23 @@ static const struct hc_driver vt8500_ehci_hc_driver = {
 	.clear_tt_buffer_complete	= ehci_clear_tt_buffer_complete,
 };
 
+static u64 wmt_ehci_dma_mask = DMA_BIT_MASK(32);
+
 static int vt8500_ehci_drv_probe(struct platform_device *pdev)
 {
 	struct usb_hcd *hcd;
 	struct ehci_hcd *ehci;
 	struct resource *res;
+	int irq;
 	int ret;
 
 	if (usb_disabled())
 		return -ENODEV;
 
-	if (pdev->resource[1].flags != IORESOURCE_IRQ) {
-		pr_debug("resource[1] is not IORESOURCE_IRQ");
-		return -ENOMEM;
-	}
+	/* devicetree created devices don't specify a dma mask */
+	if (!pdev->dev.dma_mask)
+		pdev->dev.dma_mask = &wmt_ehci_dma_mask;
+
 	hcd = usb_create_hcd(&vt8500_ehci_hc_driver, &pdev->dev, "VT8500");
 	if (!hcd)
 		return -ENOMEM;
@@ -134,8 +138,9 @@ static int vt8500_ehci_drv_probe(struct platform_device *pdev)
 
 	ehci_reset(ehci);
 
-	ret = usb_add_hcd(hcd, pdev->resource[1].start,
-			  IRQF_SHARED);
+	irq = platform_get_irq(pdev, 0);
+
+	ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
 	if (ret == 0) {
 		platform_set_drvdata(pdev, hcd);
 		return ret;
@@ -162,6 +167,11 @@ static int vt8500_ehci_drv_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id vt8500_ehci_ids[] = {
+	{ .compatible = "via,vt8500-ehci", },
+	{}
+};
+
 static struct platform_driver vt8500_ehci_driver = {
 	.probe		= vt8500_ehci_drv_probe,
 	.remove		= vt8500_ehci_drv_remove,
@@ -169,7 +179,9 @@ static struct platform_driver vt8500_ehci_driver = {
 	.driver = {
 		.name	= "vt8500-ehci",
 		.owner	= THIS_MODULE,
+		.of_match_table = of_match_ptr(vt8500_ehci_ids),
 	}
 };
 
 MODULE_ALIAS("platform:vt8500-ehci");
+MODULE_DEVICE_TABLE(of, vt8500_ehci_ids);
drivers/usb/host/uhci-hcd.c +5 -0
index e4db350..5da5c99 100644
@@ -846,6 +846,11 @@ static const char hcd_name[] = "uhci_hcd";
 #define PLATFORM_DRIVER		uhci_grlib_driver
 #endif
 
+#ifdef CONFIG_ARCH_VT8500
+#include "uhci-platform.c"
+#define PLATFORM_DRIVER		uhci_platform_driver
+#endif
+
 #if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER)
 #error "missing bus glue for uhci-hcd"
 #endif
drivers/usb/host/uhci-platform.c new file +166 -0

166 lines not on this page · raw message

Signature · 1 line
1.7.9.5
author
#7 lore raw

PATCH 5/8 video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb

In reply to Tony Prisk

Update vt8500-fb, wm8505-fb and wmt-ge-rops to support device tree bindings.
Small change in wm8505-fb.c to support WM8650 framebuffer color format.

---
 drivers/video/Kconfig       |    6 +--
 drivers/video/vt8500lcdfb.c |   77 ++++++++++++++++++++++++++++++-----
 drivers/video/wm8505fb.c    |   95 ++++++++++++++++++++++++++++++++++++-------
 drivers/video/wmt_ge_rops.c |    7 ++++
 4 files changed, 158 insertions(+), 27 deletions(-)
drivers/video/Kconfig +3 -3
index 0217f74..b66d951 100644
@@ -1788,7 +1788,7 @@ config FB_AU1200
 
 config FB_VT8500
 	bool "VT8500 LCD Driver"
-	depends on (FB = y) && ARM && ARCH_VT8500 && VTWM_VERSION_VT8500
+	depends on (FB = y) && ARM && ARCH_VT8500
 	select FB_WMT_GE_ROPS
 	select FB_SYS_IMAGEBLIT
 	help
@@ -1797,11 +1797,11 @@ config FB_VT8500
 
 config FB_WM8505
 	bool "WM8505 frame buffer support"
-	depends on (FB = y) && ARM && ARCH_VT8500 && VTWM_VERSION_WM8505
+	depends on (FB = y) && ARM && ARCH_VT8500
 	select FB_WMT_GE_ROPS
 	select FB_SYS_IMAGEBLIT
 	help
-	  This is the framebuffer driver for WonderMedia WM8505
+	  This is the framebuffer driver for WonderMedia WM8505/WM8650
 	  integrated LCD controller.
 
 source "drivers/video/geode/Kconfig"
drivers/video/vt8500lcdfb.c +67 -10

122 lines not on this page · raw message

drivers/video/wm8505fb.c +81 -14

153 lines not on this page · raw message

drivers/video/wmt_ge_rops.c +7 -0
index 55be386..a362480 100644
@@ -158,12 +158,18 @@ static int __devexit wmt_ge_rops_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id wmt_dt_ids[] = {
+	{ .compatible = "wm,prizm-ge-rops", },
+	{ /* sentinel */ }
+};
+
 static struct platform_driver wmt_ge_rops_driver = {
 	.probe		= wmt_ge_rops_probe,
 	.remove		= __devexit_p(wmt_ge_rops_remove),
 	.driver		= {
 		.owner	= THIS_MODULE,
 		.name	= "wmt_ge_rops",
+		.of_match_table = of_match_ptr(wmt_dt_ids),
 	},
 };
 
@@ -173,3 +179,4 @@ MODULE_AUTHOR("Alexey Charkov <[email protected]");
 MODULE_DESCRIPTION("Accelerators for raster operations using "
 		   "WonderMedia Graphics Engine");
 MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(of, wmt_dt_ids);
Signature · 1 line
1.7.9.5
#8 lore raw

Re: [PATCH 5/8] video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb

Quoted 5 lines · Tony Prisk

Update vt8500-fb, wm8505-fb and wmt-ge-rops to support device tree bindings.

Small change in wm8505-fb.c to support WM8650 framebuffer color format.

That might warrant a separate patch?

drivers/video/vt8500lcdfb.c static int __devinit vt8500lcd_probe(struct platform_device *pdev) · line 354

Quoted 8 lines
drivers/video/vt8500lcdfb.c +6 -0
 
+	np = of_find_node_by_name(NULL, "display");
+	if (!np) {
+		pr_err("%s: No display description in Device Tree\n", __func__);
+		ret = -EINVAL;
+		goto failed_free_res;
+	}

I believe that using hard-coded node names is frowned upon. Better would be to put a phandle into the display controller's node that points at the node representing the display, e.g.:

    fb at d800e400 {
        compatible = "via,vt8500-fb";
        reg = <0xd800e400 0x400>;
        interrupts = <12>;
        via,display = <&display>;
    };
    display: display {
        ...
    };
author
#9 lore raw

PATCH 5/8 video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb

Quoted 8 lines · Tony Prisk
Quoted 5 lines

Update vt8500-fb, wm8505-fb and wmt-ge-rops to support device tree bindings.

Small change in wm8505-fb.c to support WM8650 framebuffer color format.

That might warrant a separate patch?

The patch consisted of changing one value in one line and is commented in the source. I didn't think it justified a separate patch as it has been thoroughly tested and is unlikely to cause any problems.

Quoted 9 lines

drivers/video/vt8500lcdfb.c static int __devinit vt8500lcd_probe(struct platform_device *pdev) · line 354

Quoted 8 lines
drivers/video/vt8500lcdfb.c +6 -0
 
+     np = of_find_node_by_name(NULL, "display");
+     if (!np) {
+             pr_err("%s: No display description in Device Tree\n", __func__);
+             ret = -EINVAL;
+             goto failed_free_res;
+     }
Quoted 3 lines

I believe that using hard-coded node names is frowned upon. Better would be to put a phandle into the display controller's node that points at the node representing the display, e.g.:

Will do.

Regards
Tony Prisk

#10 lore raw

PATCH 5/8 video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb

Quoted 13 lines · Tony Prisk
Quoted 12 lines · Tony Prisk
Quoted 11 lines

Update vt8500-fb, wm8505-fb and wmt-ge-rops to support device tree bindings.

drivers/video/vt8500lcdfb.c +6 -0
 
+     np = of_find_node_by_name(NULL, "display");
+     if (!np) {
+             pr_err("%s: No display description in Device Tree\n", __func__);
+             ret = -EINVAL;
+             goto failed_free_res;
+     }
Quoted 5 lines
Quoted 3 lines

I believe that using hard-coded node names is frowned upon. Better would be to put a phandle into the display controller's node that points at the node representing the display, e.g.:

Will do.

I don't think this change made it into v2?

author
#11 lore raw

PATCH 6/8 arm: vt8500: Update arch-vt8500 to devicetree support.

In reply to Tony Prisk

Merged existing board files to a single dt-capable file. Converted irq and timer code to devicetree.
Removed existing device files that are no longer required with devicetree support.
All existing platform devices are converted to devicetree nodes except GPIO and PWM.

GPIO support was limited to VT8500 (non-working on WM8505).

Removed restart.c and moved code into vt8500.c to remove duplicate PMC code.

---
 arch/arm/Kconfig                                |    2 +
 arch/arm/mach-vt8500/Kconfig                    |   72 +-----
 arch/arm/mach-vt8500/Makefile                   |    9 +-
 arch/arm/mach-vt8500/bv07.c                     |   80 -------
 arch/arm/mach-vt8500/common.h                   |   25 +++
 arch/arm/mach-vt8500/devices-vt8500.c           |   91 --------
 arch/arm/mach-vt8500/devices-wm8505.c           |   99 ---------
 arch/arm/mach-vt8500/devices.c                  |  270 -----------------------
 arch/arm/mach-vt8500/devices.h                  |   88 --------
 arch/arm/mach-vt8500/gpio.c                     |  240 --------------------
 arch/arm/mach-vt8500/include/mach/restart.h     |    4 +-
 arch/arm/mach-vt8500/include/mach/vt8500_irqs.h |   88 --------
 arch/arm/mach-vt8500/include/mach/vt8500_regs.h |   79 -------
 arch/arm/mach-vt8500/include/mach/wm8505_irqs.h |  115 ----------
 arch/arm/mach-vt8500/include/mach/wm8505_regs.h |   78 -------
 arch/arm/mach-vt8500/irq.c                      |  160 +++++++-------
 arch/arm/mach-vt8500/restart.c                  |   54 -----
 arch/arm/mach-vt8500/timer.c                    |   56 +++--
 arch/arm/mach-vt8500/vt8500.c                   |  192 ++++++++++++++++
 arch/arm/mach-vt8500/wm8505_7in.c               |   79 -------
 20 files changed, 350 insertions(+), 1531 deletions(-)
 delete mode 100644 arch/arm/mach-vt8500/bv07.c
 create mode 100644 arch/arm/mach-vt8500/common.h
 delete mode 100644 arch/arm/mach-vt8500/devices-vt8500.c
 delete mode 100644 arch/arm/mach-vt8500/devices-wm8505.c
 delete mode 100644 arch/arm/mach-vt8500/devices.c
 delete mode 100644 arch/arm/mach-vt8500/devices.h
 delete mode 100644 arch/arm/mach-vt8500/gpio.c
 delete mode 100644 arch/arm/mach-vt8500/include/mach/vt8500_irqs.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/vt8500_regs.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/wm8505_irqs.h
 delete mode 100644 arch/arm/mach-vt8500/include/mach/wm8505_regs.h
 delete mode 100644 arch/arm/mach-vt8500/restart.c
 create mode 100644 arch/arm/mach-vt8500/vt8500.c
 delete mode 100644 arch/arm/mach-vt8500/wm8505_7in.c
arch/arm/Kconfig +2 -0
index 6774c80..0555b70 100644
@@ -996,6 +996,7 @@ config ARCH_VT8500
 	select GENERIC_CLOCKEVENTS
 	select ARCH_REQUIRE_GPIOLIB
 	select HAVE_PWM
+	select USE_OF
 	help
 	  Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
 
@@ -1613,6 +1614,7 @@ config ARCH_NR_GPIO
 	default 355 if ARCH_U8500
 	default 264 if MACH_H4700
 	default 512 if SOC_OMAP5
+	default 288 if ARCH_VT8500
 	default 0
 	help
 	  Maximum number of GPIOs in the system.
arch/arm/mach-vt8500/Kconfig +7 -65

80 lines not on this page · raw message

arch/arm/mach-vt8500/Makefile +2 -7
index 54e6997..1966183 100644
@@ -1,9 +1,4 @@
-obj-y += devices.o gpio.o irq.o timer.o restart.o
-
-obj-$(CONFIG_VTWM_VERSION_VT8500) += devices-vt8500.o
-obj-$(CONFIG_VTWM_VERSION_WM8505) += devices-wm8505.o
-
-obj-$(CONFIG_MACH_BV07) += bv07.o
-obj-$(CONFIG_MACH_WM8505_7IN_NETBOOK) += wm8505_7in.o
+obj-$(CONFIG_VTWM_VERSION_WMT_DT) += irq.o timer.o
+obj-$(CONFIG_MACH_WMT_DT) += vt8500.o
 
 obj-$(CONFIG_HAVE_PWM) += pwm.o
arch/arm/mach-vt8500/bv07.c deleted +0 -80

80 lines not on this page · raw message

arch/arm/mach-vt8500/common.h new file +25 -0
new file mode 100644
index 0000000..06e93bb
@@ -0,0 +1,25 @@
+/* linux/arch/arm/mach-vt8500/dt_common.h
+ *
+ * Copyright (C) 2012 Tony Prisk <[email protected]>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __ARCH_ARM_MACH_VT8500_DT_COMMON_H
+#define __ARCH_ARM_MACH_VT8500_DT_COMMON_H
+
+#include <linux/of.h>
+
+void __init vt8500_timer_init(void);
+int __init vt8500_irq_init(struct device_node *node,
+				struct device_node *parent);
+
+#endif
arch/arm/mach-vt8500/devices-vt8500.c deleted +0 -91

91 lines not on this page · raw message

arch/arm/mach-vt8500/devices-wm8505.c deleted +0 -99

99 lines not on this page · raw message

arch/arm/mach-vt8500/devices.c deleted +0 -270

270 lines not on this page · raw message

arch/arm/mach-vt8500/devices.h deleted +0 -88

88 lines not on this page · raw message

arch/arm/mach-vt8500/gpio.c deleted +0 -240

240 lines not on this page · raw message

arch/arm/mach-vt8500/include/mach/restart.h +2 -2
index 89f9b78..7389795 100644
@@ -13,5 +13,5 @@
  *
  */
 
-void wmt_setup_restart(void);
-void wmt_restart(char mode, const char *cmd);
+void vt8500_setup_restart(void);
+void vt8500_restart(char mode, const char *cmd);
arch/arm/mach-vt8500/include/mach/vt8500_irqs.h deleted +0 -88

88 lines not on this page · raw message

arch/arm/mach-vt8500/include/mach/vt8500_regs.h deleted +0 -79

79 lines not on this page · raw message

arch/arm/mach-vt8500/include/mach/wm8505_irqs.h deleted +0 -115

115 lines not on this page · raw message

arch/arm/mach-vt8500/include/mach/wm8505_regs.h deleted +0 -78

78 lines not on this page · raw message

arch/arm/mach-vt8500/irq.c +79 -81

239 lines not on this page · raw message

arch/arm/mach-vt8500/restart.c deleted +0 -54

54 lines not on this page · raw message

arch/arm/mach-vt8500/timer.c +41 -15

117 lines not on this page · raw message

arch/arm/mach-vt8500/vt8500.c new file +192 -0

192 lines not on this page · raw message

arch/arm/mach-vt8500/wm8505_7in.c deleted +0 -79

79 lines not on this page · raw message

Signature · 1 line
1.7.9.5
#12 lore raw

Re: [PATCH 6/8] arm: vt8500: Update arch-vt8500 to devicetree support.

Quoted 7 lines · Tony Prisk

Merged existing board files to a single dt-capable file. Converted irq and timer code to devicetree.
Removed existing device files that are no longer required with devicetree support.

All existing platform devices are converted to devicetree nodes except GPIO and PWM.

Perhaps that also explains what I was commenting on in the GPIO driver patch. Why not convert GPIO too?

arch/arm/mach-vt8500/irq.c line 2

Quoted 5 lines
arch/arm/mach-vt8500/irq.c +1 -1
 
 /*
- *  arch/arm/mach-vt8500/irq.c
+ *  arch/arm/mach-vt8500/irq_dt.c

This file didn't get renamed?

Quoted 23 lines
arch/arm/mach-vt8500/vt8500.c +21 -0
 
+void __init vt8500_init(void)
+{
+	struct device_node *np, *fb;
+	void __iomem *gpio_base;
+
+#ifdef CONFIG_FB_VT8500
+	fb = of_find_compatible_node(NULL, NULL, "via,vt8500-fb");
+	if (fb) {
+		np = of_find_compatible_node(NULL, NULL, "via,vt8500-gpio");
+		if (np) {
+			gpio_base = of_iomap(np, 0);
+
+			if (!gpio_base)
+				pr_err("%s:of_iomap(gpio_mux) failed\n", __func__);
+
+			of_node_put(np);
+		} else {
+			gpio_base = ioremap(LEGACY_GPIO_BASE, 0x1000);
+			if (!gpio_base)
+				pr_err("%s:ioremap(legacy_gpio_mux) failed\n", __func__);
+		}

arch/arm/mach-vt8500/vt8500.c line 109

Quoted 10 lines
arch/arm/mach-vt8500/vt8500.c +10 -0
+		if (gpio_base) {
+			writel(readl(gpio_base + VT8500_GPIO_MUX_REG) | 1,
+				gpio_base + VT8500_GPIO_MUX_REG);
+			iounmap(gpio_base);
+		} else
+			pr_err("%s: Could not remap GPIO mux\n", __func__);
+
+		of_node_put(fb);
+	}
+#endif

That looks quite suspicious. What's it doing? Is this something that should be part of a pinctrl driver, or the GPIO driver?

author
#13 lore raw

PATCH 6/8 arm: vt8500: Update arch-vt8500 to devicetree support.

Quoted 11 lines · Tony Prisk
Quoted 7 lines

Merged existing board files to a single dt-capable file. Converted irq and timer code to devicetree.
Removed existing device files that are no longer required with devicetree support.

All existing platform devices are converted to devicetree nodes except GPIO and PWM.

Perhaps that also explains what I was commenting on in the GPIO driver patch. Why not convert GPIO too?

GPIO was converted - I hadn't planned on doing it, but apparently I did it anyway :/ Comment is now removed from the commit message.

Quoted 7 lines

arch/arm/mach-vt8500/irq.c line 2

Quoted 5 lines
arch/arm/mach-vt8500/irq.c +1 -1
 
 /*
- *  arch/arm/mach-vt8500/irq.c
+ *  arch/arm/mach-vt8500/irq_dt.c

This file didn't get renamed?

Not sure what is going on here. I will take a look - it should just be renamed.

Quoted 28 lines
Quoted 28 lines
arch/arm/mach-vt8500/vt8500.c +26 -0
 
+void __init vt8500_init(void)
+{
+     struct device_node *np, *fb;
+     void __iomem *gpio_base;
+
+#ifdef CONFIG_FB_VT8500
+     fb = of_find_compatible_node(NULL, NULL, "via,vt8500-fb");
+     if (fb) {
+             np = of_find_compatible_node(NULL, NULL, "via,vt8500-gpio");
+             if (np) {
+                     gpio_base = of_iomap(np, 0);
+
+                     if (!gpio_base)
+                             pr_err("%s:of_iomap(gpio_mux) failed\n", __func__);
+
+                     of_node_put(np);
+             } else {
+                     gpio_base = ioremap(LEGACY_GPIO_BASE, 0x1000);
+                     if (!gpio_base)
+                             pr_err("%s:ioremap(legacy_gpio_mux) failed\n", __func__);
+             }
+             if (gpio_base) {
+                     writel(readl(gpio_base + VT8500_GPIO_MUX_REG) | 1,
+                             gpio_base + VT8500_GPIO_MUX_REG);
+                     iounmap(gpio_base);
+             } else
Quoted 8 lines

arch/arm/mach-vt8500/vt8500.c line 109

Quoted 5 lines
arch/arm/mach-vt8500/vt8500.c +5 -0
+                     pr_err("%s: Could not remap GPIO mux\n", __func__);
+
+             of_node_put(fb);
+     }
+#endif

That looks quite suspicious. What's it doing? Is this something that should be part of a pinctrl driver, or the GPIO driver?

This code is carried over from the original implementation but converted for device tree. It should be part of a pinctrl driver, but we don't have one. It is basically selecting between CCIR or LCD.

Annoyingly, the bit-fields changed between models, so we have it twice, once for each framebuffer driver. It needs to check for compatible nodes so that it only applies the setting for the framebuffer type being requested by the dts because of the conflicting bit-fields.

Tony Prisk

author
#14 lore raw

PATCH 7/8 arm: vt8500: doc: Add device tree bindings for arch-vt8500 devices

In reply to Tony Prisk

Bindings for gpio, interrupt controller, power management controller, timer, realtime clock, serial uart, ehci and uhci controllers and framebuffer controllers used on the arch-vt8500 platform.

Framebuffer binding also specifies a 'display' node which is required for determining the lcd panel data.

---
 Documentation/devicetree/bindings/arm/vt8500.txt   |   15 +++++++
 .../bindings/arm/vt8500/via,vt8500-intc.txt        |   16 +++++++
 .../bindings/arm/vt8500/via,vt8500-pmc.txt         |   13 ++++++
 .../bindings/arm/vt8500/via,vt8500-timer.txt       |   15 +++++++
 .../devicetree/bindings/gpio/gpio_vt8500.txt       |   24 ++++++++++
 .../devicetree/bindings/rtc/via,vt8500-rtc.txt     |   15 +++++++
 .../bindings/tty/serial/via,vt8500-uart.txt        |   15 +++++++
 .../devicetree/bindings/usb/platform-uhci.txt      |   15 +++++++
 .../devicetree/bindings/usb/via,vt8500-ehci.txt    |   15 +++++++
 .../devicetree/bindings/vendor-prefixes.txt        |    2 +
 .../devicetree/bindings/video/via,vt8500-fb.txt    |   46 ++++++++++++++++++++
 .../devicetree/bindings/video/wm,prizm-ge-rops.txt |   13 ++++++
 .../devicetree/bindings/video/wm,wm8505-fb.txt     |   20 +++++++++
 13 files changed, 224 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500.txt
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500/via,vt8500-intc.txt
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500/via,vt8500-pmc.txt
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500/via,vt8500-timer.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio_vt8500.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/via,vt8500-rtc.txt
 create mode 100644 Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt
 create mode 100644 Documentation/devicetree/bindings/usb/platform-uhci.txt
 create mode 100644 Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
 create mode 100644 Documentation/devicetree/bindings/video/via,vt8500-fb.txt
 create mode 100644 Documentation/devicetree/bindings/video/wm,prizm-ge-rops.txt
 create mode 100644 Documentation/devicetree/bindings/video/wm,wm8505-fb.txt
Documentation/devicetree/bindings/arm/vt8500.txt new file +15 -0
new file mode 100644
index 0000000..1b3b187
@@ -0,0 +1,15 @@
+VIA/Wondermedia VT8500 Platforms Device Tree Bindings
+---------------------------------------
+
+Boards with the VIA VT8500 SoC shall have the following properties:
+Required root node property:
+compatible = "via,vt8500";
+
+Boards with the Wondermedia WM8505 SoC shall have the following properties:
+Required root node property:
+compatible = "wm,wm8505";
+
+Boards with the Wondermedia WM8650 SoC shall have the following properties:
+Required root node property:
+compatible = "wm,wm8650";
+
Documentation/devicetree/bindings/arm/vt8500/via,vt8500-intc.txt new file +16 -0
new file mode 100644
index 0000000..0a4ce10
@@ -0,0 +1,16 @@
+VIA/Wondermedia VT8500 Interrupt Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-intc"
+- reg : Should contain 1 register ranges(address and length)
+- #interrupt-cells : should be <1>
+
+Example:
+
+	intc: interrupt-controller at d8140000 {
+		compatible = "via,vt8500-intc";
+		interrupt-controller;
+		reg = <0xd8140000 0x10000>;
+		#interrupt-cells = <1>;
+	};
Documentation/devicetree/bindings/arm/vt8500/via,vt8500-pmc.txt new file +13 -0
new file mode 100644
index 0000000..521b9c7
@@ -0,0 +1,13 @@
+VIA/Wondermedia VT8500 Power Management Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-pmc"
+- reg : Should contain 1 register ranges(address and length)
+
+Example:
+
+	pmc at d8130000 {
+		compatible = "via,vt8500-pmc";
+		reg = <0xd8130000 0x1000>;
+	};
Documentation/devicetree/bindings/arm/vt8500/via,vt8500-timer.txt new file +15 -0
new file mode 100644
index 0000000..901c73f
@@ -0,0 +1,15 @@
+VIA/Wondermedia VT8500 Timer
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-timer"
+- reg : Should contain 1 register ranges(address and length)
+- interrupts : interrupt for the timer
+
+Example:
+
+	timer at d8130100 {
+		compatible = "via,vt8500-timer";
+		reg = <0xd8130100 0x28>;
+		interrupts = <36>;
+	};
Documentation/devicetree/bindings/gpio/gpio_vt8500.txt new file +24 -0
new file mode 100644
index 0000000..1a122bf
@@ -0,0 +1,24 @@
+VIA/Wondermedia VT8500 GPIO Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-gpio", "wm,wm8505-gpio"
+	or "wm,wm8650-gpio" depending on your SoC
+- reg : Should contain 1 register range (address and length)
+- #gpio-cells : should be <3>.
+	1) bank
+	2) pin number
+	3) flags
+
+Example:
+
+	gpio: gpio-controller at d8110000 {
+		compatible = "via,vt8500-gpio";
+		gpio-controller;
+		reg = <0xd8110000 0x10000>;
+		#gpio-cells = <3>;
+	};
+
+	vibrate {
+		gpios = <&gpio 0 1 0>; /* Bank 0, Pin 1, No flags */
+	};
Documentation/devicetree/bindings/rtc/via,vt8500-rtc.txt new file +15 -0
new file mode 100644
index 0000000..3c0484c
@@ -0,0 +1,15 @@
+VIA/Wondermedia VT8500 Realtime Clock Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-rtc"
+- reg : Should contain 1 register ranges(address and length)
+- interrupts : alarm interrupt
+
+Example:
+
+	rtc at d8100000 {
+		compatible = "via,vt8500-rtc";
+		reg = <0xd8100000 0x10000>;
+		interrupts = <48>;
+	};
Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt new file +15 -0
new file mode 100644
index 0000000..3222502
@@ -0,0 +1,15 @@
+VIA/Wondermedia VT8500 UART Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-uart"
+- reg : Should contain 1 register ranges(address and length)
+- interrupts : UART interrupt
+
+Example:
+
+	uart at d8210000 {
+		compatible = "via,vt8500-uart";
+		reg = <0xd8210000 0x1040>;
+		interrupts = <47>;
+	};
Documentation/devicetree/bindings/usb/platform-uhci.txt new file +15 -0
new file mode 100644
index 0000000..a4fb071
@@ -0,0 +1,15 @@
+Generic Platform UHCI Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "platform-uhci"
+- reg : Should contain 1 register ranges(address and length)
+- interrupts : UHCI controller interrupt
+
+Example:
+
+	uhci at d8007b00 {
+		compatible = "platform-uhci";
+		reg = <0xd8007b00 0x200>;
+		interrupts = <43>;
+	};
Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt new file +15 -0
new file mode 100644
index 0000000..17b3ad1
@@ -0,0 +1,15 @@
+VIA/Wondermedia VT8500 EHCI Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "via,vt8500-ehci"
+- reg : Should contain 1 register ranges(address and length)
+- interrupts : ehci controller interrupt
+
+Example:
+
+	ehci at d8007900 {
+		compatible = "via,vt8500-ehci";
+		reg = <0xd8007900 0x200>;
+		interrupts = <43>;
+	};
Documentation/devicetree/bindings/vendor-prefixes.txt +2 -0
index db4d3af..5c63da2 100644
@@ -47,5 +47,7 @@ sirf	SiRF Technology, Inc.
 st	STMicroelectronics
 stericsson	ST-Ericsson
 ti	Texas Instruments
+via	VIA Technologies, Inc.
 wlf	Wolfson Microelectronics
+wm	Wondermedia Technologies, Inc.
 xlnx	Xilinx
Documentation/devicetree/bindings/video/via,vt8500-fb.txt new file +46 -0

46 lines not on this page · raw message

Documentation/devicetree/bindings/video/wm,prizm-ge-rops.txt new file +13 -0
new file mode 100644
index 0000000..a850fa0
@@ -0,0 +1,13 @@
+VIA/Wondermedia Graphics Engine Controller
+-----------------------------------------------------
+
+Required properties:
+- compatible : "wm,prizm-ge-rops"
+- reg : Should contain 1 register ranges(address and length)
+
+Example:
+
+	ge_rops at d8050400 {
+		compatible = "wm,prizm-ge-rops";
+		reg = <0xd8050400 0x100>;
+	};
Documentation/devicetree/bindings/video/wm,wm8505-fb.txt new file +20 -0
new file mode 100644
index 0000000..ab67382
@@ -0,0 +1,20 @@
+Wondermedia WM8505 Framebuffer
+-----------------------------------------------------
+
+Required properties:
+- compatible : "wm,wm8505-fb"
+- reg : Should contain 1 register ranges(address and length)
+
+Required nodes:
+- display: a display node is required to initialize the lcd panel
+	This should be in the board dts. See definition in
+	Documentation/devicetree/bindings/video/via,vt8500-fb.txt
+
+
+Example:
+
+	fb at d8050800 {
+		compatible = "wm,wm8505-fb";
+		reg = <0xd8050800 0x200>;
+	};
+
Signature · 1 line
1.7.9.5
author
#15 lore raw

PATCH 8/8 ARM: vt8500: gpio: Devicetree support for arch-vt8500

In reply to Tony Prisk

Converted the existing arch-vt8500 gpio to a platform_device. Added support for WM8505 and WM8650 GPIO controllers.

---
 drivers/gpio/Kconfig       |    6 +
 drivers/gpio/Makefile      |    1 +
 drivers/gpio/gpio-vt8500.c |  318 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 325 insertions(+)
 create mode 100644 drivers/gpio/gpio-vt8500.c
drivers/gpio/Kconfig +6 -0
index 542f0c0..3c8897a 100644
@@ -183,6 +183,12 @@ config GPIO_STA2X11
 	  Say yes here to support the STA2x11/ConneXt GPIO device.
 	  The GPIO module has 128 GPIO pins with alternate functions.
 
+config GPIO_VT8500
+	bool "VIA/Wondermedia SoC GPIO Support"
+	depends on ARCH_VT8500
+	help
+	  Say yes here to support the VT8500/WM8505/WM8650 GPIO controller.
+
 config GPIO_XILINX
 	bool "Xilinx GPIO support"
 	depends on PPC_OF || MICROBLAZE
drivers/gpio/Makefile +1 -0
index 0f55662..2c014b9 100644
@@ -66,6 +66,7 @@ obj-$(CONFIG_GPIO_TPS65912)	+= gpio-tps65912.o
 obj-$(CONFIG_GPIO_TWL4030)	+= gpio-twl4030.o
 obj-$(CONFIG_GPIO_UCB1400)	+= gpio-ucb1400.o
 obj-$(CONFIG_GPIO_VR41XX)	+= gpio-vr41xx.o
+obj-$(CONFIG_GPIO_VT8500)	+= gpio-vt8500.o
 obj-$(CONFIG_GPIO_VX855)	+= gpio-vx855.o
 obj-$(CONFIG_GPIO_WM831X)	+= gpio-wm831x.o
 obj-$(CONFIG_GPIO_WM8350)	+= gpio-wm8350.o
drivers/gpio/gpio-vt8500.c new file +318 -0

318 lines not on this page · raw message

Signature · 1 line
1.7.9.5
#16 lore raw

Re: [rtc-linux] [PATCH 8/8] ARM: vt8500: gpio: Devicetree support for arch-vt8500

Quoted 2 lines · Tony Prisk

Converted the existing arch-vt8500 gpio to a platform_device. Added support for WM8505 and WM8650 GPIO controllers.

(...)

Quoted 1 line

+++ b/drivers/gpio/gpio-vt8500.c

This driver looks very one-bit-per-gpio typed. Are you sure you cannot just reuse drivers/gpio/gpio-generic.c? Make a compelling case please...

drivers/gpio/gpio-vt8500.c line 40

Quoted 5 lines
drivers/gpio/gpio-vt8500.c new file +5 -0
+struct vt8500_gpio_bank_regs {
+       int     en;
+       int     dir;
+       int     data_out;
+       int     data_in;

Why are all these members int? They should be u8 from reading your code.

Quoted 4 lines
drivers/gpio/gpio-vt8500.c new file +2 -0
+       int     ngpio;
+};
 
 

drivers/gpio/gpio-vt8500.c line 67

Quoted 10 lines
drivers/gpio/gpio-vt8500.c new file +10 -0
+static struct vt8500_gpio_data vt8500_data = {
+       .num_banks      = 7,
+       .banks  = {
+               VT8500_BANK(0x00, 0x20, 0x40, 0x60, 26),
+               VT8500_BANK(0x04, 0x24, 0x44, 0x64, 28),
+               VT8500_BANK(0x08, 0x28, 0x48, 0x68, 31),
+               VT8500_BANK(0x0C, 0x2C, 0x4C, 0x6C, 19),
+               VT8500_BANK(0x10, 0x30, 0x50, 0x70, 19),
+               VT8500_BANK(0x14, 0x34, 0x54, 0x74, 23),
+               VT8500_BANK(-1, 0x3C, 0x5C, 0x7C, 9),    /* external gpio */

What on earth are all those magic numbers?

I *guess* they're enabling some default GPIO settings etc.

But it really needs better structure, #defines for each one or atleast include <linux/bitops.h> and say:

= BIT(4) | /* Enable GPIO pin 5 on this bank */
BIT(5); /* Enable GPIO pin 6 on this bank */

However I suspect this is board specific and should be taken from device tree. Please elaborate on this...

Ditto for the different instances.

(...)

Quoted 1 line

+ unsigned val;

Looks like all of these should be u8.

Review

Quoted 2 lines
(quoted diff) +2 -0
+       val = readl(vt8500_chip->base + vt8500_chip->regs->en +
+                                                       vt8500_chip->regoff);

val = (u8) readl(...);

usw

Quoted 1 line

+ val |= (1 << offset);

Use <linux/bitops.h>

val |= BIT(offset);

Apart from these remarks it's looking good...

Yours,
Linus Walleij

#17 lore raw

Re: [rtc-linux] [PATCH 8/8] ARM: vt8500: gpio: Devicetree support for arch-vt8500

Quoted 10 lines · Linus Walleij
Quoted 2 lines · Tony Prisk

Converted the existing arch-vt8500 gpio to a platform_device. Added support for WM8505 and WM8650 GPIO controllers.

(...)

Quoted 1 line

+++ b/drivers/gpio/gpio-vt8500.c

This driver looks very one-bit-per-gpio typed. Are you sure you cannot just reuse drivers/gpio/gpio-generic.c? Make a compelling case please...

Quoted 10 lines

drivers/gpio/gpio-vt8500.c line 40

Quoted 5 lines
drivers/gpio/gpio-vt8500.c new file +5 -0
+struct vt8500_gpio_bank_regs {
+       int     en;
+       int     dir;
+       int     data_out;
+       int     data_in;

Why are all these members int? They should be u8 from reading your code.

Quoted 2 lines
(quoted diff) +2 -0
+       int     ngpio;
+};

Not necessarily 8 bit, but definitely unsigned.

Quoted 11 lines

drivers/gpio/gpio-vt8500.c line 67

Quoted 10 lines
drivers/gpio/gpio-vt8500.c new file +10 -0
+static struct vt8500_gpio_data vt8500_data = {
+       .num_banks      = 7,
+       .banks  = {
+               VT8500_BANK(0x00, 0x20, 0x40, 0x60, 26),
+               VT8500_BANK(0x04, 0x24, 0x44, 0x64, 28),
+               VT8500_BANK(0x08, 0x28, 0x48, 0x68, 31),
+               VT8500_BANK(0x0C, 0x2C, 0x4C, 0x6C, 19),
+               VT8500_BANK(0x10, 0x30, 0x50, 0x70, 19),
+               VT8500_BANK(0x14, 0x34, 0x54, 0x74, 23),
+               VT8500_BANK(-1, 0x3C, 0x5C, 0x7C, 9),    /* external gpio */
Quoted 3 lines

What on earth are all those magic numbers?

I *guess* they're enabling some default GPIO settings etc.

No, they are the register offsets you quoted above, per bank. There is no easy way to abstract these, and I suggested putting the values into the source code rather than describing each bank separately in the .dtsi file.

My feeling however is that the "vt8500_chip->regoff" is wrong, which would mean only the first bank works. The code adds the same offsets per bank once more that it sets in this bank table.

Arnd

#18 lore raw

Re: [rtc-linux] [PATCH 8/8] ARM: vt8500: gpio: Devicetree support for arch-vt8500

Quoted 5 lines · Arnd Bergmann
Quoted 3 lines

What on earth are all those magic numbers?

I *guess* they're enabling some default GPIO settings etc.

No, they are the register offsets you quoted above, per bank.

Aha I was fooled by this:

+struct vt8500_gpio_bank_regs {

+       int     en;
+       int     dir;
+       int     data_out;
+       int     data_in;
+       int     ngpio;

+};

This needs to be named something intuitive like "vt8500_gpio_bank_regoffsets"

Some kerneldoc intsead of the opaque comment above will also improve readability a lot:

/**
* struct vt8500_gpio_bank_regoffsets
* @en: offset to enable register in the bank
* ...

Yours,
Linus Walleij

author
#19 lore raw

PATCH 8/8 ARM: vt8500: gpio: Devicetree support for arch-vt8500

Quoted 9 lines

This needs to be named something intuitive like "vt8500_gpio_bank_regoffsets"

Some kerneldoc intsead of the opaque comment above will also improve readability a lot:

/**
* struct vt8500_gpio_bank_regoffsets
* @en: offset to enable register in the bank
* ...

Changes made as requested.

Quoted 5 lines

My feeling however is that the "vt8500_chip->regoff" is wrong, which would mean only the first bank works. The code adds the same offsets per bank once more that it sets in this bank table.

Arnd

Oh.. Thanks for picking that up Arnd. You are absolutely correct. I have removed the references for ->regoff. Left over from old code.

Regards

Tony Prisk

#20 lore raw

Re: [PATCH 8/8] ARM: vt8500: gpio: Devicetree support for arch-vt8500

In reply to Tony Prisk
Quoted 15 lines · Tony Prisk

Converted the existing arch-vt8500 gpio to a platform_device. Added support for WM8505 and WM8650 GPIO controllers.

drivers/gpio/gpio-vt8500.c +10 -0
 
+static struct of_device_id vt8500_gpio_dt_ids[] = {
+	{ .compatible = "via,vt8500-gpio", .data = &vt8500_data, },
+	{ .compatible = "wm,wm8505-gpio", .data = &wm8505_data, },
+	{ .compatible = "wm,wm8650-gpio", .data = &wm8650_data, },
+	{ /* Sentinel */ },
+};
+
+static int __devinit vt8500_gpio_probe(struct platform_device *pdev)
+{
+	void __iomem *gpio_base;

drivers/gpio/gpio-vt8500.c line 273

Quoted 10 lines
drivers/gpio/gpio-vt8500.c +10 -0
+	struct device_node *np;
+	const struct of_device_id *of_id =
+				of_match_device(vt8500_gpio_dt_ids, &pdev->dev);
+
+	if (!of_id) {
+		dev_err(&pdev->dev, "Failed to find gpio controller\n");
+		return -ENODEV;
+	}
+
+	np = of_find_matching_node(NULL, vt8500_gpio_dt_ids);

Can't you use pdev->dev.of_node instead of searching for it again?

...

drivers/gpio/gpio-vt8500.c

Quoted 1 line
drivers/gpio/gpio-vt8500.c +1 -0
+	of_node_put(np);

If so, you could also remove that.

drivers/gpio/gpio-vt8500.c line 313

Quoted 12 lines
drivers/gpio/gpio-vt8500.c +12 -0
+static int __init vt8500_gpio_init(void)
+{
+	return platform_driver_probe(&vt8500_gpio_driver, &vt8500_gpio_probe);
+}
+
+static void __exit vt8500_gpio_exit(void)
+{
+	return platform_driver_unregister(&vt8500_gpio_driver);
+}
+
+module_init(vt8500_gpio_init);
+module_exit(vt8500_gpio_exit);

I think that's all just:

module_platform_driver(vt8500_gpio_driver);

(except that _init uses platform_driver_probe() rather than platform_driver_register(), which seems unusual. I guess that explains the of_find_matching_node() above too.)

Quoted 1 line

+MODULE_LICENSE("GPL");

That should be "GPL v2" given the license header.

#21 lore raw

Re: [PATCH 8/8] ARM: vt8500: gpio: Devicetree support for arch-vt8500

Quoted 7 lines · Stephen Warren

I think that's all just:

module_platform_driver(vt8500_gpio_driver);

(except that _init uses platform_driver_probe() rather than platform_driver_register(), which seems unusual. I guess that explains the of_find_matching_node() above too.)

Ah, I totally missed both of these. Using platform_driver_register is definitely preferred over platform_driver_probe in cases like this, so using module_platform_driver is the right simplification.

Arnd

author
#22 lore raw

cover *** ARM: Update arch-vt8500 to Devicetree ***

In reply to Tony Prisk

Apologies for the formatting/style errors. Thought I had checkpatch'd these but missed a few (especially the uhci patch). All formatting errors returned by scripts/checkpatch.pl are now fixed locally.

Apologies again,
Tony P

#23 lore raw

cover *** ARM: Update arch-vt8500 to Devicetree ***

In reply to Tony Prisk

These patches can be used directly on kernel.org's main tarballs? Or just on gitorious/vt8500 ?

Quoted 136 lines · Tony Prisk

This patchset updates arch-vt8500 to devicetree and removes all the old-style
code. Support for WM8650 has also been added.

Example dts/dtsi files are given for the three currently supported models.

Major changes:

GPIO code has been converted to a platform_device and rewritten as WM8505 support was broken. Add support for WM8650 gpio controller.

UHCI support was missing. Added this as a generic non-pci uhci controller as
it doesn't require anything special. Should be usable by any system that doesn't
have special requirements to get the UHCI controller working.

Framebuffer code patched to support WM8650. The bindings for this are of concern
but there doesn't seem to be a formalized binding yet. This patch is based off
Sascha Hauer's current patch on the dri-devel mailing list and should be easily
patched out when its finalized.

Patchset based on Arnd's arm-soc/for-next branch.

Could I get this reviewed, hopefully for inclusion into v3.7.

Regards
Tony Prisk

Tony Prisk (8):
arm: vt8500: Add device tree files for VIA/Wondermedia SoC's
rtc: vt8500: Add devicetree support for vt8500-rtc
serial: vt8500: Add devicetree support for vt8500-serial
usb: vt8500: Add devicetree support for vt8500-ehci and -uhci.
video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb
arm: vt8500: Update arch-vt8500 to devicetree support.
arm: vt8500: doc: Add device tree bindings for arch-vt8500 devices
ARM: vt8500: gpio: Devicetree support for arch-vt8500

 Documentation/devicetree/bindings/arm/vt8500.txt   |   15 + 
 .../bindings/arm/vt8500/via,vt8500-intc.txt        |   16 + 
 .../bindings/arm/vt8500/via,vt8500-pmc.txt         |   13 + 
 .../bindings/arm/vt8500/via,vt8500-timer.txt       |   15 + 
 .../devicetree/bindings/gpio/gpio_vt8500.txt       |   24 ++ 
 .../devicetree/bindings/rtc/via,vt8500-rtc.txt     |   15 + 
 .../bindings/tty/serial/via,vt8500-uart.txt        |   15 + 
 .../devicetree/bindings/usb/platform-uhci.txt      |   15 + 
 .../devicetree/bindings/usb/via,vt8500-ehci.txt    |   15 + 
 .../devicetree/bindings/vendor-prefixes.txt        |    2 + 
 .../devicetree/bindings/video/via,vt8500-fb.txt    |   46 +++ 
 .../devicetree/bindings/video/wm,prizm-ge-rops.txt |   13 + 
 .../devicetree/bindings/video/wm,wm8505-fb.txt     |   20 ++ 
 arch/arm/Kconfig                                   |    2 + 
 arch/arm/boot/dts/vt8500.dtsi                      |   99 ++++++ 
 arch/arm/boot/dts/vt8500_ref.dts                   |   31 ++ 
 arch/arm/boot/dts/wm8505.dtsi                      |  125 ++++++++ 
 arch/arm/boot/dts/wm8505_ref.dts                   |   31 ++ 
 arch/arm/boot/dts/wm8650.dtsi                      |   95 ++++++ 
 arch/arm/boot/dts/wm8650_ref.dts                   |   31 ++ 
 arch/arm/mach-vt8500/Kconfig                       |   72 +---- 
 arch/arm/mach-vt8500/Makefile                      |    9 +- 
 arch/arm/mach-vt8500/bv07.c                        |   80 ----- 
 arch/arm/mach-vt8500/common.h                      |   25 ++ 
 arch/arm/mach-vt8500/devices-vt8500.c              |   91 ------ 
 arch/arm/mach-vt8500/devices-wm8505.c              |   99 ------ 
 arch/arm/mach-vt8500/devices.c                     |  270 
----------------- 
 arch/arm/mach-vt8500/devices.h                     |   88 ------ 
 arch/arm/mach-vt8500/gpio.c                        |  240 --------------- 
 arch/arm/mach-vt8500/include/mach/restart.h        |    4 +- 
 arch/arm/mach-vt8500/include/mach/vt8500_irqs.h    |   88 ------ 
 arch/arm/mach-vt8500/include/mach/vt8500_regs.h    |   79 ----- 
 arch/arm/mach-vt8500/include/mach/wm8505_irqs.h    |  115 ------- 
 arch/arm/mach-vt8500/include/mach/wm8505_regs.h    |   78 ----- 
 arch/arm/mach-vt8500/irq.c                         |  160 +++++----- 
 arch/arm/mach-vt8500/restart.c                     |   54 ---- 
 arch/arm/mach-vt8500/timer.c                       |   56 +++- 
 arch/arm/mach-vt8500/vt8500.c                      |  192 ++++++++++++ 
 arch/arm/mach-vt8500/wm8505_7in.c                  |   79 ----- 
 drivers/gpio/Kconfig                               |    6 + 
 drivers/gpio/Makefile                              |    1 + 
 drivers/gpio/gpio-vt8500.c                         |  318 
++++++++++++++++++++ 
 drivers/rtc/rtc-vt8500.c                           |    7 + 
 drivers/tty/serial/vt8500_serial.c                 |    7 + 
 drivers/usb/host/Kconfig                           |    4 +- 
 drivers/usb/host/ehci-vt8500.c                     |   24 +- 
 drivers/usb/host/uhci-hcd.c                        |    5 + 
 drivers/usb/host/uhci-platform.c                   |  166 ++++++++++ 
 drivers/video/Kconfig                              |    6 +- 
 drivers/video/vt8500lcdfb.c                        |   77 ++++- 
 drivers/video/wm8505fb.c                           |   95 +++++- 
 drivers/video/wmt_ge_rops.c                        |    7 + 
 52 files changed, 1674 insertions(+), 1566 deletions(-) 
 create mode 100644 Documentation/devicetree/bindings/arm/vt8500.txt 
 create mode 100644 
Documentation/devicetree/bindings/arm/vt8500/via,vt8500-intc.txt 
 create mode 100644 
Documentation/devicetree/bindings/arm/vt8500/via,vt8500-pmc.txt 
 create mode 100644 
Documentation/devicetree/bindings/arm/vt8500/via,vt8500-timer.txt 
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio_vt8500.txt 
 create mode 100644 
Documentation/devicetree/bindings/rtc/via,vt8500-rtc.txt 
 create mode 100644 
Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt 
 create mode 100644 
Documentation/devicetree/bindings/usb/platform-uhci.txt 
 create mode 100644 
Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt 
 create mode 100644 
Documentation/devicetree/bindings/video/via,vt8500-fb.txt 
 create mode 100644 
Documentation/devicetree/bindings/video/wm,prizm-ge-rops.txt 
 create mode 100644 
Documentation/devicetree/bindings/video/wm,wm8505-fb.txt 
 create mode 100644 arch/arm/boot/dts/vt8500.dtsi 
 create mode 100644 arch/arm/boot/dts/vt8500_ref.dts 
 create mode 100644 arch/arm/boot/dts/wm8505.dtsi 
 create mode 100644 arch/arm/boot/dts/wm8505_ref.dts 
 create mode 100644 arch/arm/boot/dts/wm8650.dtsi 
 create mode 100644 arch/arm/boot/dts/wm8650_ref.dts 
 delete mode 100644 arch/arm/mach-vt8500/bv07.c 
 create mode 100644 arch/arm/mach-vt8500/common.h 
 delete mode 100644 arch/arm/mach-vt8500/devices-vt8500.c 
 delete mode 100644 arch/arm/mach-vt8500/devices-wm8505.c 
 delete mode 100644 arch/arm/mach-vt8500/devices.c 
 delete mode 100644 arch/arm/mach-vt8500/devices.h 
 delete mode 100644 arch/arm/mach-vt8500/gpio.c 
 delete mode 100644 arch/arm/mach-vt8500/include/mach/vt8500_irqs.h 
Quoted 13 lines
 delete mode 100644 arch/arm/mach-vt8500/include/mach/vt8500_regs.h 
 delete mode 100644 arch/arm/mach-vt8500/include/mach/wm8505_irqs.h 
 delete mode 100644 arch/arm/mach-vt8500/include/mach/wm8505_regs.h 
 delete mode 100644 arch/arm/mach-vt8500/restart.c 
 create mode 100644 arch/arm/mach-vt8500/vt8500.c 
 delete mode 100644 arch/arm/mach-vt8500/wm8505_7in.c 
 create mode 100644 drivers/gpio/gpio-vt8500.c 
 create mode 100644 drivers/usb/host/uhci-platform.c 
Signature · 1 line
1.7.9.5 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120818/7d16f695/attachment-0001.html>