Skip to content

Commit

Permalink
Merge tag 'vt8500-for-next' of git://git.code.sf.net/p/linuxwmt/code …
Browse files Browse the repository at this point in the history
…into next/dt

From Tony Prisk:

Update arch-vt8500 and drivers to device tree and
remove existing non-dt code.

* tag 'vt8500-for-next' of git://git.code.sf.net/p/linuxwmt/code:
  arm: vt8500: Update arch-vt8500 to devicetree support.
  arm: vt8500: gpio: Devicetree support for arch-vt8500
  arm: vt8500: doc: Add device tree bindings for arch-vt8500 devices
  arm: vt8500: clk: Add Common Clock Framework support
  video: vt8500: Add devicetree support for vt8500-fb and wm8505-fb
  serial: vt8500: Add devicetree support for vt8500-serial
  rtc: vt8500: Add devicetree support for vt8500-rtc
  arm: vt8500: Add device tree files for VIA/Wondermedia SoC's

Resolved add/change conflict in drivers/clk/Makefile.

Signed-off-by: Olof Johansson <olof@lixom.net>
  • Loading branch information
Olof Johansson committed Sep 24, 2012
2 parents 40169a7 + e9a91de commit db404e7
Show file tree
Hide file tree
Showing 51 changed files with 2,291 additions and 1,584 deletions.
14 changes: 14 additions & 0 deletions Documentation/devicetree/bindings/arm/vt8500.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
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";
16 changes: 16 additions & 0 deletions Documentation/devicetree/bindings/arm/vt8500/via,vt8500-intc.txt
Original file line number Diff line number Diff line change
@@ -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@d8140000 {
compatible = "via,vt8500-intc";
interrupt-controller;
reg = <0xd8140000 0x10000>;
#interrupt-cells = <1>;
};
13 changes: 13 additions & 0 deletions Documentation/devicetree/bindings/arm/vt8500/via,vt8500-pmc.txt
Original file line number Diff line number Diff line change
@@ -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@d8130000 {
compatible = "via,vt8500-pmc";
reg = <0xd8130000 0x1000>;
};
15 changes: 15 additions & 0 deletions Documentation/devicetree/bindings/arm/vt8500/via,vt8500-timer.txt
Original file line number Diff line number Diff line change
@@ -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@d8130100 {
compatible = "via,vt8500-timer";
reg = <0xd8130100 0x28>;
interrupts = <36>;
};
72 changes: 72 additions & 0 deletions Documentation/devicetree/bindings/clock/vt8500.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Device Tree Clock bindings for arch-vt8500

This binding uses the common clock binding[1].

[1] Documentation/devicetree/bindings/clock/clock-bindings.txt

Required properties:
- compatible : shall be one of the following:
"via,vt8500-pll-clock" - for a VT8500/WM8505 PLL clock
"wm,wm8650-pll-clock" - for a WM8650 PLL clock
"via,vt8500-device-clock" - for a VT/WM device clock

Required properties for PLL clocks:
- reg : shall be the control register offset from PMC base for the pll clock.
- clocks : shall be the input parent clock phandle for the clock. This should
be the reference clock.
- #clock-cells : from common clock binding; shall be set to 0.

Required properties for device clocks:
- clocks : shall be the input parent clock phandle for the clock. This should
be a pll output.
- #clock-cells : from common clock binding; shall be set to 0.


Device Clocks

Device clocks are required to have one or both of the following sets of
properties:


Gated device clocks:

Required properties:
- enable-reg : shall be the register offset from PMC base for the enable
register.
- enable-bit : shall be the bit within enable-reg to enable/disable the clock.


Divisor device clocks:

Required property:
- divisor-reg : shall be the register offset from PMC base for the divisor
register.
Optional property:
- divisor-mask : shall be the mask for the divisor register. Defaults to 0x1f
if not specified.


For example:

ref25: ref25M {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <25000000>;
};

plla: plla {
#clock-cells = <0>;
compatible = "wm,wm8650-pll-clock";
clocks = <&ref25>;
reg = <0x200>;
};

sdhc: sdhc {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&pllb>;
divisor-reg = <0x328>;
divisor-mask = <0x3f>;
enable-reg = <0x254>;
enable-bit = <18>;
};
24 changes: 24 additions & 0 deletions Documentation/devicetree/bindings/gpio/gpio-vt8500.txt
Original file line number Diff line number Diff line change
@@ -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 - should be 0

Example:

gpio: gpio-controller@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 */
};
15 changes: 15 additions & 0 deletions Documentation/devicetree/bindings/rtc/via,vt8500-rtc.txt
Original file line number Diff line number Diff line change
@@ -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@d8100000 {
compatible = "via,vt8500-rtc";
reg = <0xd8100000 0x10000>;
interrupts = <48>;
};
17 changes: 17 additions & 0 deletions Documentation/devicetree/bindings/tty/serial/via,vt8500-uart.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
VIA/Wondermedia VT8500 UART Controller
-----------------------------------------------------

Required properties:
- compatible : "via,vt8500-uart"
- reg : Should contain 1 register ranges(address and length)
- interrupts : UART interrupt
- clocks : phandle to the uart source clock (usually a 24Mhz fixed clock)

Example:

uart@d8210000 {
compatible = "via,vt8500-uart";
reg = <0xd8210000 0x1040>;
interrupts = <47>;
clocks = <&ref24>;
};
15 changes: 15 additions & 0 deletions Documentation/devicetree/bindings/usb/platform-uhci.txt
Original file line number Diff line number Diff line change
@@ -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@d8007b00 {
compatible = "platform-uhci";
reg = <0xd8007b00 0x200>;
interrupts = <43>;
};
15 changes: 15 additions & 0 deletions Documentation/devicetree/bindings/usb/via,vt8500-ehci.txt
Original file line number Diff line number Diff line change
@@ -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@d8007900 {
compatible = "via,vt8500-ehci";
reg = <0xd8007900 0x200>;
interrupts = <43>;
};
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
62 changes: 62 additions & 0 deletions Documentation/devicetree/bindings/video/via,vt8500-fb.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
VIA VT8500 Framebuffer
-----------------------------------------------------

Required properties:
- compatible : "via,vt8500-fb"
- reg : Should contain 1 register ranges(address and length)
- interrupts : framebuffer controller interrupt
- display: a phandle pointing to the display node

Required nodes:
- display: a display node is required to initialize the lcd panel
This should be in the board dts.
- default-mode: a videomode within the display with timing parameters
as specified below.

Example:

fb@d800e400 {
compatible = "via,vt8500-fb";
reg = <0xd800e400 0x400>;
interrupts = <12>;
display = <&display>;
default-mode = <&mode0>;
};

VIA VT8500 Display
-----------------------------------------------------
Required properties (as per of_videomode_helper):

- hactive, vactive: Display resolution
- hfront-porch, hback-porch, hsync-len: Horizontal Display timing parameters
in pixels
vfront-porch, vback-porch, vsync-len: Vertical display timing parameters in
lines
- clock: displayclock in Hz
- bpp: lcd panel bit-depth.
<16> for RGB565, <32> for RGB888

Optional properties (as per of_videomode_helper):
- width-mm, height-mm: Display dimensions in mm
- hsync-active-high (bool): Hsync pulse is active high
- vsync-active-high (bool): Vsync pulse is active high
- interlaced (bool): This is an interlaced mode
- doublescan (bool): This is a doublescan mode

Example:
display: display@0 {
modes {
mode0: mode@0 {
hactive = <800>;
vactive = <480>;
hback-porch = <88>;
hfront-porch = <40>;
hsync-len = <0>;
vback-porch = <32>;
vfront-porch = <11>;
vsync-len = <1>;
clock = <0>; /* unused but required */
bpp = <16>; /* non-standard but required */
};
};
};
13 changes: 13 additions & 0 deletions Documentation/devicetree/bindings/video/wm,prizm-ge-rops.txt
Original file line number Diff line number Diff line change
@@ -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@d8050400 {
compatible = "wm,prizm-ge-rops";
reg = <0xd8050400 0x100>;
};
23 changes: 23 additions & 0 deletions Documentation/devicetree/bindings/video/wm,wm8505-fb.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Wondermedia WM8505 Framebuffer
-----------------------------------------------------

Required properties:
- compatible : "wm,wm8505-fb"
- reg : Should contain 1 register ranges(address and length)
- via,display: a phandle pointing to the display node

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
- default-mode: a videomode node as specified in
Documentation/devicetree/bindings/video/via,vt8500-fb.txt

Example:

fb@d8050800 {
compatible = "wm,wm8505-fb";
reg = <0xd8050800 0x200>;
display = <&display>;
default-mode = <&mode0>;
};
7 changes: 5 additions & 2 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1004,6 +1004,10 @@ config ARCH_VT8500
select ARCH_HAS_CPUFREQ
select GENERIC_CLOCKEVENTS
select ARCH_REQUIRE_GPIOLIB
select USE_OF
select COMMON_CLK
select HAVE_CLK
select CLKDEV_LOOKUP
help
Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.

Expand Down Expand Up @@ -1128,8 +1132,6 @@ source "arch/arm/mach-versatile/Kconfig"
source "arch/arm/mach-vexpress/Kconfig"
source "arch/arm/plat-versatile/Kconfig"

source "arch/arm/mach-vt8500/Kconfig"

source "arch/arm/mach-w90x900/Kconfig"

# Definitions to make life easier
Expand Down Expand Up @@ -1622,6 +1624,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.
Expand Down
36 changes: 36 additions & 0 deletions arch/arm/boot/dts/vt8500-bv07.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* vt8500-bv07.dts - Device tree file for Benign BV07 Netbook
*
* Copyright (C) 2012 Tony Prisk <linux@prisktech.co.nz>
*
* 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: display@0 {
modes {
mode0: mode@0 {
hactive = <800>;
vactive = <480>;
hback-porch = <88>;
hfront-porch = <40>;
hsync-len = <0>;
vback-porch = <32>;
vfront-porch = <11>;
vsync-len = <1>;
clock = <0>; /* unused but required */
bpp = <16>; /* non-standard but required */
};
};
};
};
Loading

0 comments on commit db404e7

Please sign in to comment.