Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 340075
b: refs/heads/master
c: 433683a
h: refs/heads/master
i:
  340073: eaba223
  340071: ea999ad
v: v3
  • Loading branch information
Pawel Moll committed Nov 5, 2012
1 parent f431193 commit 79f7d49
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 45 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: 38669e045dbf8f62a008898a7fb1e93975b3817c
refs/heads/master: 433683a66401adb0150792e725cc4f631c94de46
32 changes: 22 additions & 10 deletions trunk/Documentation/devicetree/bindings/arm/vexpress.txt
Original file line number Diff line number Diff line change
Expand Up @@ -141,14 +141,19 @@ can be used to obtain required phandle in the tile's "aliases" node:
- SP804 timers:
v2m_timer01 and v2m_timer23

Current Linux implementation requires a "arm,v2m_timer" alias
pointing at one of the motherboard's SP804 timers, if it is to be
used as the system timer. This alias should be defined in the
motherboard files.

The tile description must define "ranges", "interrupt-map-mask" and
"interrupt-map" properties to translate the motherboard's address
and interrupt space into one used by the tile's processor.
The tile description should define a "smb" node, describing the
Static Memory Bus between the tile and motherboard. It must define
the following properties:
- "simple-bus" compatible value (to ensure creation of the children)
compatible = "simple-bus";
- mapping of the SMB CS/offset addresses into main address space:
#address-cells = <2>;
#size-cells = <1>;
ranges = <...>;
- interrupts mapping:
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <...>;


Example of a VE tile description (simplified)
Expand Down Expand Up @@ -200,13 +205,20 @@ Example of a VE tile description (simplified)
};
};

motherboard {
smb {
compatible = "simple-bus";

#address-cells = <2>;
#size-cells = <1>;
/* CS0 is visible at 0x08000000 */
ranges = <0 0 0x08000000 0x04000000>;

#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
/* Active high IRQ 0 is connected to GIC's SPI0 */
interrupt-map = <0 0 0 &gic 0 0 4>;

/include/ "vexpress-v2m-rs1.dtsi"
};
};

/include/ "vexpress-v2m-rs1.dtsi"
11 changes: 4 additions & 7 deletions trunk/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,16 @@
* CHANGES TO vexpress-v2m.dtsi!
*/

/ {
aliases {
arm,v2m_timer = &v2m_timer01;
};

motherboard {
compatible = "simple-bus";
model = "V2M-P1";
arm,hbi = <0x190>;
arm,vexpress,site = <0>;
arm,v2m-memory-map = "rs1";
compatible = "arm,vexpress,v2m-p1", "simple-bus";
#address-cells = <2>; /* SMB chipselect number and offset */
#size-cells = <1>;
#interrupt-cells = <1>;
ranges;

flash@0,00000000 {
compatible = "arm,vexpress-flash", "cfi-flash";
Expand Down Expand Up @@ -340,4 +338,3 @@
};
};
};
};
11 changes: 4 additions & 7 deletions trunk/arch/arm/boot/dts/vexpress-v2m.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,15 @@
* CHANGES TO vexpress-v2m-rs1.dtsi!
*/

/ {
aliases {
arm,v2m_timer = &v2m_timer01;
};

motherboard {
compatible = "simple-bus";
model = "V2M-P1";
arm,hbi = <0x190>;
arm,vexpress,site = <0>;
compatible = "arm,vexpress,v2m-p1", "simple-bus";
#address-cells = <2>; /* SMB chipselect number and offset */
#size-cells = <1>;
#interrupt-cells = <1>;
ranges;

flash@0,00000000 {
compatible = "arm,vexpress-flash", "cfi-flash";
Expand Down Expand Up @@ -339,4 +337,3 @@
};
};
};
};
11 changes: 8 additions & 3 deletions trunk/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
Original file line number Diff line number Diff line change
Expand Up @@ -220,14 +220,19 @@
};
};

motherboard {
smb {
compatible = "simple-bus";

#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0 0x08000000 0x04000000>,
<1 0 0 0x14000000 0x04000000>,
<2 0 0 0x18000000 0x04000000>,
<3 0 0 0x1c000000 0x04000000>,
<4 0 0 0x0c000000 0x04000000>,
<5 0 0 0x10000000 0x04000000>;

#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <0 0 0 &gic 0 0 4>,
<0 0 1 &gic 0 1 4>,
Expand Down Expand Up @@ -272,7 +277,7 @@
<0 0 40 &gic 0 40 4>,
<0 0 41 &gic 0 41 4>,
<0 0 42 &gic 0 42 4>;

/include/ "vexpress-v2m-rs1.dtsi"
};
};

/include/ "vexpress-v2m-rs1.dtsi"
11 changes: 8 additions & 3 deletions trunk/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
Original file line number Diff line number Diff line change
Expand Up @@ -305,14 +305,19 @@
};
};

motherboard {
smb {
compatible = "simple-bus";

#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0 0x08000000 0x04000000>,
<1 0 0 0x14000000 0x04000000>,
<2 0 0 0x18000000 0x04000000>,
<3 0 0 0x1c000000 0x04000000>,
<4 0 0 0x0c000000 0x04000000>,
<5 0 0 0x10000000 0x04000000>;

#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <0 0 0 &gic 0 0 4>,
<0 0 1 &gic 0 1 4>,
Expand Down Expand Up @@ -357,7 +362,7 @@
<0 0 40 &gic 0 40 4>,
<0 0 41 &gic 0 41 4>,
<0 0 42 &gic 0 42 4>;

/include/ "vexpress-v2m-rs1.dtsi"
};
};

/include/ "vexpress-v2m-rs1.dtsi"
11 changes: 8 additions & 3 deletions trunk/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
Original file line number Diff line number Diff line change
Expand Up @@ -182,14 +182,19 @@
};
};

motherboard {
smb {
compatible = "simple-bus";

#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x08000000 0x04000000>,
<1 0 0x14000000 0x04000000>,
<2 0 0x18000000 0x04000000>,
<3 0 0x1c000000 0x04000000>,
<4 0 0x0c000000 0x04000000>,
<5 0 0x10000000 0x04000000>;

#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <0 0 0 &gic 0 0 4>,
<0 0 1 &gic 0 1 4>,
Expand Down Expand Up @@ -234,7 +239,7 @@
<0 0 40 &gic 0 40 4>,
<0 0 41 &gic 0 41 4>,
<0 0 42 &gic 0 42 4>;

/include/ "vexpress-v2m-rs1.dtsi"
};
};

/include/ "vexpress-v2m-rs1.dtsi"
11 changes: 8 additions & 3 deletions trunk/arch/arm/boot/dts/vexpress-v2p-ca9.dts
Original file line number Diff line number Diff line change
Expand Up @@ -265,13 +265,18 @@
};
};

motherboard {
smb {
compatible = "simple-bus";

#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x40000000 0x04000000>,
<1 0 0x44000000 0x04000000>,
<2 0 0x48000000 0x04000000>,
<3 0 0x4c000000 0x04000000>,
<7 0 0x10000000 0x00020000>;

#interrupt-cells = <1>;
interrupt-map-mask = <0 0 63>;
interrupt-map = <0 0 0 &gic 0 0 4>,
<0 0 1 &gic 0 1 4>,
Expand Down Expand Up @@ -316,7 +321,7 @@
<0 0 40 &gic 0 40 4>,
<0 0 41 &gic 0 41 4>,
<0 0 42 &gic 0 42 4>;

/include/ "vexpress-v2m.dtsi"
};
};

/include/ "vexpress-v2m.dtsi"
19 changes: 11 additions & 8 deletions trunk/arch/arm/mach-vexpress/v2m.c
Original file line number Diff line number Diff line change
Expand Up @@ -446,17 +446,20 @@ static void __init v2m_dt_init_irq(void)

static void __init v2m_dt_timer_init(void)
{
struct device_node *node;
const char *path;
int err;
struct device_node *node = NULL;

vexpress_clk_of_init();

err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
if (WARN_ON(err))
return;
node = of_find_node_by_path(path);
v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
do {
node = of_find_compatible_node(node, NULL, "arm,sp804");
} while (node && vexpress_get_site_by_node(node) != VEXPRESS_SITE_MB);
if (node) {
pr_info("Using SP804 '%s' as a clock & events source\n",
node->full_name);
v2m_sp804_init(of_iomap(node, 0),
irq_of_parse_and_map(node, 0));
}

if (arch_timer_of_register() != 0)
twd_local_timer_of_register();

Expand Down

0 comments on commit 79f7d49

Please sign in to comment.