Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 326715
b: refs/heads/master
c: 1875962
h: refs/heads/master
i:
  326713: 907f2a4
  326711: b4754e0
v: v3
  • Loading branch information
Olof Johansson committed Sep 5, 2012
1 parent f9f4af6 commit d14a14b
Show file tree
Hide file tree
Showing 24 changed files with 644 additions and 120 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c88a79a7789b2909ad1cf69ea2c9142030bbd6f4
refs/heads/master: 1875962377574b4edb7b164001e3e341c25290d5
17 changes: 17 additions & 0 deletions trunk/Documentation/devicetree/bindings/arm/mrvl/tauros2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
* Marvell Tauros2 Cache

Required properties:
- compatible : Should be "marvell,tauros2-cache".
- marvell,tauros2-cache-features : Specify the features supported for the
tauros2 cache.
The features including
CACHE_TAUROS2_PREFETCH_ON (1 << 0)
CACHE_TAUROS2_LINEFILL_BURST8 (1 << 1)
The definition can be found at
arch/arm/include/asm/hardware/cache-tauros2.h

Example:
L2: l2-cache {
compatible = "marvell,tauros2-cache";
marvell,tauros2-cache-features = <0x3>;
};
31 changes: 31 additions & 0 deletions trunk/Documentation/devicetree/bindings/mtd/pxa3xx-nand.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
PXA3xx NAND DT bindings

Required properties:

- compatible: Should be "marvell,pxa3xx-nand"
- reg: The register base for the controller
- interrupts: The interrupt to map
- #address-cells: Set to <1> if the node includes partitions

Optional properties:

- marvell,nand-enable-arbiter: Set to enable the bus arbiter
- marvell,nand-keep-config: Set to keep the NAND controller config as set
by the bootloader
- num-cs: Number of chipselect lines to usw

Example:

nand0: nand@43100000 {
compatible = "marvell,pxa3xx-nand";
reg = <0x43100000 90>;
interrupts = <45>;
#address-cells = <1>;

marvell,nand-enable-arbiter;
marvell,nand-keep-config;
num-cs = <1>;

/* partitions (optional) */
};

14 changes: 14 additions & 0 deletions trunk/Documentation/devicetree/bindings/rtc/pxa-rtc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
* PXA RTC

PXA specific RTC driver.

Required properties:
- compatible : Should be "marvell,pxa-rtc"

Examples:

rtc@40900000 {
compatible = "marvell,pxa-rtc";
reg = <0x40900000 0x3c>;
interrupts = <30 31>;
};
5 changes: 5 additions & 0 deletions trunk/arch/arm/boot/dts/mmp2.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@
interrupt-parent = <&intc>;
ranges;

L2: l2-cache {
compatible = "marvell,tauros2-cache";
marvell,tauros2-cache-features = <0x3>;
};

axi@d4200000 { /* AXI */
compatible = "mrvl,axi-bus", "simple-bus";
#address-cells = <1>;
Expand Down
14 changes: 14 additions & 0 deletions trunk/arch/arm/boot/dts/pxa27x.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/* The pxa3xx skeleton simply augments the 2xx version */
/include/ "pxa2xx.dtsi"

/ {
model = "Marvell PXA27x familiy SoC";
compatible = "marvell,pxa27x";

pxabus {
pxairq: interrupt-controller@40d00000 {
marvell,intc-priority;
marvell,intc-nr-irqs = <34>;
};
};
};
132 changes: 132 additions & 0 deletions trunk/arch/arm/boot/dts/pxa2xx.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
/*
* pxa2xx.dtsi - Device Tree Include file for Marvell PXA2xx family SoC
*
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
*
* Licensed under GPLv2 or later.
*/

/include/ "skeleton.dtsi"

/ {
model = "Marvell PXA2xx family SoC";
compatible = "marvell,pxa2xx";
interrupt-parent = <&pxairq>;

aliases {
serial0 = &ffuart;
serial1 = &btuart;
serial2 = &stuart;
serial3 = &hwuart;
i2c0 = &pwri2c;
i2c1 = &pxai2c1;
};

cpus {
cpu@0 {
compatible = "arm,xscale";
};
};

pxabus {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;

pxairq: interrupt-controller@40d00000 {
#interrupt-cells = <1>;
compatible = "marvell,pxa-intc";
interrupt-controller;
interrupt-parent;
marvell,intc-nr-irqs = <32>;
reg = <0x40d00000 0xd0>;
};

gpio: gpio@40e00000 {
compatible = "mrvl,pxa-gpio";
#address-cells = <0x1>;
#size-cells = <0x1>;
reg = <0x40e00000 0x10000>;
gpio-controller;
#gpio-cells = <0x2>;
interrupts = <10>;
interrupt-names = "gpio_mux";
interrupt-controller;
#interrupt-cells = <0x2>;
ranges;

gcb0: gpio@40e00000 {
reg = <0x40e00000 0x4>;
};

gcb1: gpio@40e00004 {
reg = <0x40e00004 0x4>;
};

gcb2: gpio@40e00008 {
reg = <0x40e00008 0x4>;
};
gcb3: gpio@40e0000c {
reg = <0x40e0000c 0x4>;
};
};

ffuart: uart@40100000 {
compatible = "mrvl,pxa-uart";
reg = <0x40100000 0x30>;
interrupts = <22>;
status = "disabled";
};

btuart: uart@40200000 {
compatible = "mrvl,pxa-uart";
reg = <0x40200000 0x30>;
interrupts = <21>;
status = "disabled";
};

stuart: uart@40700000 {
compatible = "mrvl,pxa-uart";
reg = <0x40700000 0x30>;
interrupts = <20>;
status = "disabled";
};

hwuart: uart@41100000 {
compatible = "mrvl,pxa-uart";
reg = <0x41100000 0x30>;
interrupts = <7>;
status = "disabled";
};

pxai2c1: i2c@40301680 {
compatible = "mrvl,pxa-i2c";
reg = <0x40301680 0x30>;
interrupts = <18>;
#address-cells = <0x1>;
#size-cells = <0>;
status = "disabled";
};

usb0: ohci@4c000000 {
compatible = "mrvl,pxa-ohci";
reg = <0x4c000000 0x10000>;
interrupts = <3>;
status = "disabled";
};

mmc0: mmc@41100000 {
compatible = "mrvl,pxa-mmc";
reg = <0x41100000 0x1000>;
interrupts = <23>;
status = "disabled";
};

rtc@40900000 {
compatible = "marvell,pxa-rtc";
reg = <0x40900000 0x3c>;
interrupts = <30 31>;
};
};
};
32 changes: 32 additions & 0 deletions trunk/arch/arm/boot/dts/pxa3xx.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* The pxa3xx skeleton simply augments the 2xx version */
/include/ "pxa2xx.dtsi"

/ {
model = "Marvell PXA3xx familiy SoC";
compatible = "marvell,pxa3xx";

pxabus {
pwri2c: i2c@40f500c0 {
compatible = "mrvl,pwri2c";
reg = <0x40f500c0 0x30>;
interrupts = <6>;
#address-cells = <0x1>;
#size-cells = <0>;
status = "disabled";
};

nand0: nand@43100000 {
compatible = "marvell,pxa3xx-nand";
reg = <0x43100000 90>;
interrupts = <45>;
#address-cells = <1>;
#size-cells = <1>;
status = "disabled";
};

pxairq: interrupt-controller@40d00000 {
marvell,intc-priority;
marvell,intc-nr-irqs = <56>;
};
};
};
5 changes: 5 additions & 0 deletions trunk/arch/arm/boot/dts/pxa910.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
interrupt-parent = <&intc>;
ranges;

L2: l2-cache {
compatible = "marvell,tauros2-cache";
marvell,tauros2-cache-features = <0x3>;
};

axi@d4200000 { /* AXI */
compatible = "mrvl,axi-bus", "simple-bus";
#address-cells = <1>;
Expand Down
5 changes: 4 additions & 1 deletion trunk/arch/arm/include/asm/hardware/cache-tauros2.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@
* warranty of any kind, whether express or implied.
*/

extern void __init tauros2_init(void);
#define CACHE_TAUROS2_PREFETCH_ON (1 << 0)
#define CACHE_TAUROS2_LINEFILL_BURST8 (1 << 1)

extern void __init tauros2_init(unsigned int features);
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-dove/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ void __init dove_init(void)
printk(KERN_INFO "TCLK = %dMHz\n", (get_tclk() + 499999) / 1000000);

#ifdef CONFIG_CACHE_TAUROS2
tauros2_init();
tauros2_init(0);
#endif
dove_setup_cpu_mbus();

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-mmp/mmp2.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ static int __init mmp2_init(void)
{
if (cpu_is_mmp2()) {
#ifdef CONFIG_CACHE_TAUROS2
tauros2_init();
tauros2_init(0);
#endif
mfp_init_base(MFPR_VIRT_BASE);
mfp_init_addr(mmp2_addr_map);
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/arm/mach-mmp/pxa910.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <linux/io.h>
#include <linux/platform_device.h>

#include <asm/hardware/cache-tauros2.h>
#include <asm/mach/time.h>
#include <mach/addr-map.h>
#include <mach/regs-apbc.h>
Expand Down Expand Up @@ -116,6 +117,9 @@ static struct clk_lookup pxa910_clkregs[] = {
static int __init pxa910_init(void)
{
if (cpu_is_pxa910()) {
#ifdef CONFIG_CACHE_TAUROS2
tauros2_init(0);
#endif
mfp_init_base(MFPR_VIRT_BASE);
mfp_init_addr(pxa910_mfp_addr_map);
pxa_init_dma(IRQ_PXA910_DMA_INT0, 32);
Expand Down
12 changes: 12 additions & 0 deletions trunk/arch/arm/mach-pxa/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@ config PXA_V7_MACH_AUTO
if !ARCH_PXA_V7
comment "Intel/Marvell Dev Platforms (sorted by hardware release time)"

config MACH_PXA3XX_DT
bool "Support PXA3xx platforms from device tree"
select PXA3xx
select CPU_PXA300
select POWER_SUPPLY
select HAVE_PWM
select USE_OF
help
Include support for Marvell PXA3xx based platforms using
the device tree. Needn't select any other machine while
MACH_PXA3XX_DT is enabled.

config ARCH_LUBBOCK
bool "Intel DBPXA250 Development Platform (aka Lubbock)"
select PXA25x
Expand Down
3 changes: 3 additions & 0 deletions trunk/arch/arm/mach-pxa/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ obj-$(CONFIG_CPU_PXA930) += pxa930.o

# NOTE: keep the order of boards in accordance to their order in Kconfig

# Device Tree support
obj-$(CONFIG_MACH_PXA3XX_DT) += pxa-dt.o

# Intel/Marvell Dev Platforms
obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
Expand Down
8 changes: 6 additions & 2 deletions trunk/arch/arm/mach-pxa/clock-pxa3xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,10 @@ void clk_pxa3xx_cken_enable(struct clk *clk)

if (clk->cken < 32)
CKENA |= mask;
else
else if (clk->cken < 64)
CKENB |= mask;
else
CKENC |= mask;
}

void clk_pxa3xx_cken_disable(struct clk *clk)
Expand All @@ -137,8 +139,10 @@ void clk_pxa3xx_cken_disable(struct clk *clk)

if (clk->cken < 32)
CKENA &= ~mask;
else
else if (clk->cken < 64)
CKENB &= ~mask;
else
CKENC &= ~mask;
}

const struct clkops clk_pxa3xx_cken_ops = {
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
#define AICSR __REG(0x41340008) /* Application Subsystem Interrupt Control/Status Register */
#define CKENA __REG(0x4134000C) /* A Clock Enable Register */
#define CKENB __REG(0x41340010) /* B Clock Enable Register */
#define CKENC __REG(0x41340024) /* C Clock Enable Register */
#define AC97_DIV __REG(0x41340014) /* AC97 clock divisor value register */

#define ACCR_XPDIS (1 << 31) /* Core PLL Output Disable */
Expand Down
Loading

0 comments on commit d14a14b

Please sign in to comment.