2013-01-19 19:44:28 +13:00
/*
* wm8850.dtsi - Device tree file for Wondermedia WM8850 SoC
*
* Copyright (C) 2012 Tony Prisk <linux@prisktech.co.nz>
*
* Licensed under GPLv2 or later
*/
/include/ "skeleton.dtsi"
/ {
compatible = "wm,wm8850";
2013-04-23 10:33:44 +12:00
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a9";
reg = <0x0>;
};
};
2013-01-19 19:44:28 +13:00
aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
};
soc {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
ranges;
interrupt-parent = <&intc0>;
intc0: interrupt-controller@d8140000 {
compatible = "via,vt8500-intc";
interrupt-controller;
reg = <0xd8140000 0x10000>;
#interrupt-cells = <1>;
};
/* Secondary IC cascaded to intc0 */
intc1: interrupt-controller@d8150000 {
compatible = "via,vt8500-intc";
interrupt-controller;
#interrupt-cells = <1>;
reg = <0xD8150000 0x10000>;
interrupts = <56 57 58 59 60 61 62 63>;
};
2013-02-20 09:52:23 +13:00
pinctrl: pinctrl@d8110000 {
compatible = "wm,wm8850-pinctrl";
2013-01-19 19:44:28 +13:00
reg = <0xd8110000 0x10000>;
2013-02-20 09:52:23 +13:00
interrupt-controller;
#interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
2013-01-19 19:44:28 +13:00
};
pmc@d8130000 {
compatible = "via,vt8500-pmc";
reg = <0xd8130000 0x1000>;
clocks {
#address-cells = <1>;
#size-cells = <0>;
ref25: ref25M {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <25000000>;
};
ref24: ref24M {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24000000>;
};
plla: plla {
#clock-cells = <0>;
2013-05-09 07:35:13 +12:00
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-01-19 19:44:28 +13:00
reg = <0x200>;
};
pllb: pllb {
#clock-cells = <0>;
2013-05-09 07:35:13 +12:00
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-01-19 19:44:28 +13:00
reg = <0x204>;
};
2013-05-10 17:35:11 +12:00
pllc: pllc {
#clock-cells = <0>;
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-05-10 17:35:11 +12:00
reg = <0x208>;
};
plld: plld {
#clock-cells = <0>;
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-05-10 17:35:11 +12:00
reg = <0x20c>;
};
plle: plle {
#clock-cells = <0>;
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-05-10 17:35:11 +12:00
reg = <0x210>;
};
pllf: pllf {
#clock-cells = <0>;
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-05-10 17:35:11 +12:00
reg = <0x214>;
};
pllg: pllg {
#clock-cells = <0>;
compatible = "wm,wm8850-pll-clock";
2013-05-17 21:30:05 +12:00
clocks = <&ref24>;
2013-05-10 17:35:11 +12:00
reg = <0x218>;
};
2013-05-10 17:44:58 +12:00
clkarm: arm {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&plla>;
divisor-reg = <0x300>;
};
clkahb: ahb {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&pllb>;
divisor-reg = <0x304>;
};
clkapb: apb {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&pllb>;
divisor-reg = <0x320>;
};
clkddr: ddr {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&plld>;
divisor-reg = <0x310>;
};
2013-01-19 19:44:28 +13:00
clkuart0: uart0 {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&ref24>;
enable-reg = <0x254>;
enable-bit = <24>;
};
clkuart1: uart1 {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&ref24>;
enable-reg = <0x254>;
enable-bit = <25>;
};
clkuart2: uart2 {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&ref24>;
enable-reg = <0x254>;
enable-bit = <26>;
};
clkuart3: uart3 {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&ref24>;
enable-reg = <0x254>;
enable-bit = <27>;
};
clkpwm: pwm {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&pllb>;
divisor-reg = <0x350>;
enable-reg = <0x250>;
enable-bit = <17>;
};
clksdhc: sdhc {
#clock-cells = <0>;
compatible = "via,vt8500-device-clock";
clocks = <&pllb>;
divisor-reg = <0x330>;
divisor-mask = <0x3f>;
enable-reg = <0x250>;
enable-bit = <0>;
};
};
};
2013-04-03 07:20:38 +13:00
fb: fb@d8051700 {
2013-01-19 19:44:28 +13:00
compatible = "wm,wm8505-fb";
reg = <0xd8051700 0x200>;
};
ge_rops@d8050400 {
compatible = "wm,prizm-ge-rops";
reg = <0xd8050400 0x100>;
};
pwm: pwm@d8220000 {
#pwm-cells = <3>;
compatible = "via,vt8500-pwm";
reg = <0xd8220000 0x100>;
clocks = <&clkpwm>;
};
timer@d8130100 {
compatible = "via,vt8500-timer";
reg = <0xd8130100 0x28>;
interrupts = <36>;
};
ehci@d8007900 {
compatible = "via,vt8500-ehci";
reg = <0xd8007900 0x200>;
interrupts = <26>;
};
uhci@d8007b00 {
compatible = "platform-uhci";
reg = <0xd8007b00 0x200>;
interrupts = <26>;
};
uhci@d8008d00 {
compatible = "platform-uhci";
reg = <0xd8008d00 0x200>;
interrupts = <26>;
};
2013-04-23 14:23:26 +12:00
uart0: serial@d8200000 {
2013-01-19 19:44:28 +13:00
compatible = "via,vt8500-uart";
reg = <0xd8200000 0x1040>;
interrupts = <32>;
clocks = <&clkuart0>;
2013-04-23 14:23:26 +12:00
status = "disabled";
2013-01-19 19:44:28 +13:00
};
2013-04-23 14:23:26 +12:00
uart1: serial@d82b0000 {
2013-01-19 19:44:28 +13:00
compatible = "via,vt8500-uart";
reg = <0xd82b0000 0x1040>;
interrupts = <33>;
clocks = <&clkuart1>;
2013-04-23 14:23:26 +12:00
status = "disabled";
2013-01-19 19:44:28 +13:00
};
2013-04-23 14:23:26 +12:00
uart2: serial@d8210000 {
2013-01-19 19:44:28 +13:00
compatible = "via,vt8500-uart";
reg = <0xd8210000 0x1040>;
interrupts = <47>;
clocks = <&clkuart2>;
2013-04-23 14:23:26 +12:00
status = "disabled";
2013-01-19 19:44:28 +13:00
};
2013-04-23 14:23:26 +12:00
uart3: serial@d82c0000 {
2013-01-19 19:44:28 +13:00
compatible = "via,vt8500-uart";
reg = <0xd82c0000 0x1040>;
interrupts = <50>;
clocks = <&clkuart3>;
2013-04-23 14:23:26 +12:00
status = "disabled";
2013-01-19 19:44:28 +13:00
};
rtc@d8100000 {
compatible = "via,vt8500-rtc";
reg = <0xd8100000 0x10000>;
interrupts = <48>;
};
sdhc@d800a000 {
compatible = "wm,wm8505-sdhc";
reg = <0xd800a000 0x1000>;
interrupts = <20 21>;
clocks = <&clksdhc>;
bus-width = <4>;
sdon-inverted;
};
};
};