ARM: bcm2835: DT changes for 3.15

A variety of features are added to the bcm2835 device trees:
 - ARM PMU, for perf_event
 - DMA controller
 - I2S controller
 
 A few cleanups are applied to the DTs too.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJTGTGiAAoJEJuNpwkmVCGcRWQP/1oe3/PF6pEZgCy5887uCy9z
 RUj8eSLQk4QelyFSlDJ0ChvgCez6bb72Lw5Tm9gh2CNX3vMnTAWqLlLFuYlXgMjh
 agKthe1ZG2uHlRfVdVgQlRW1hivdCF+5DzvnAJ0pUkhaWzG9L9mtPVXozpFEsWur
 leu9E5JfWSnc6YW+iGtyxQ3l5SmWMFv6D+nChWlGx5jz40g/kieiI0toiiIIu/mb
 OtIzucUtQqmINPzVIktpe2m8qwdXPL6W4ktH9Y5/Cg8AGI/WCHWRCS1VZZ8uzkHs
 /yZbs5cK0pnJKbXnJqUrTe+zuaxW7xyp3WonZrIRN72cz5qvi7LAneEOZcYJ3cqz
 r19yEahzmZrhTdQZKC1CuaEDk9e6GckP6FUbUv3eGcwGoQU0I942JpVgGEVQ5P1Y
 NGTDQU9OawkHuxlZl9hOLZkunAzY0GHbR73AZ2SqYXyzN5t4kCURF0RyOq8J9nL0
 A58XpmuWOpeOuBuqCKxgVEd+5c3BYDE1oiSWwSHCcGotWb7zvyIgqGp+JbEE+KFf
 PHqUhv8g1FIGpwYK/M4dP8oqClaFKXzo44QbrojlLOHCu/zaEXnNu4fDX02hfit/
 W0d6YymesUQGBk0cxmxC/3CfJN/Vpc8BtIhW0Yxdhi3U9sLDyWgl0TZEETD1ARk6
 m6BIR2gbuqINemEGy+0V
 =pjrN
 -----END PGP SIGNATURE-----

Merge tag 'bcm2835-for-3.15-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi into next/dt

Merge "ARM: bcm2835: DT changes for 3.15" from Stephen Warren:

A variety of features are added to the bcm2835 device trees:
- ARM PMU, for perf_event
- DMA controller
- I2S controller

A few cleanups are applied to the DTs too.

* tag 'bcm2835-for-3.15-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi:
  ARM: bcm2835: fix clock DT node names
  ARM: bcm2835: node name unit address cleanup
  ARM: bcm2835: fix DT node sort order
  ARM: bcm2835: add I2S driver to device tree
  ARM: bcm2835: add dmaengine driver to device tree
  ARM: bcm2835: perf_event support for Raspberry-Pi

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2014-03-11 13:30:39 -07:00
commit fdc52533f5

View File

@ -15,39 +15,52 @@ soc {
#size-cells = <1>;
ranges = <0x7e000000 0x20000000 0x02000000>;
timer {
timer@7e003000 {
compatible = "brcm,bcm2835-system-timer";
reg = <0x7e003000 0x1000>;
interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
clock-frequency = <1000000>;
};
intc: interrupt-controller {
dma: dma@7e007000 {
compatible = "brcm,bcm2835-dma";
reg = <0x7e007000 0xf00>;
interrupts = <1 16>,
<1 17>,
<1 18>,
<1 19>,
<1 20>,
<1 21>,
<1 22>,
<1 23>,
<1 24>,
<1 25>,
<1 26>,
<1 27>,
<1 28>;
#dma-cells = <1>;
brcm,dma-channel-mask = <0x7f35>;
};
intc: interrupt-controller@7e00b200 {
compatible = "brcm,bcm2835-armctrl-ic";
reg = <0x7e00b200 0x200>;
interrupt-controller;
#interrupt-cells = <2>;
};
watchdog {
watchdog@7e100000 {
compatible = "brcm,bcm2835-pm-wdt";
reg = <0x7e100000 0x28>;
};
rng {
rng@7e104000 {
compatible = "brcm,bcm2835-rng";
reg = <0x7e104000 0x10>;
};
uart@20201000 {
compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
reg = <0x7e201000 0x1000>;
interrupts = <2 25>;
clock-frequency = <3000000>;
arm,primecell-periphid = <0x00241011>;
};
gpio: gpio {
gpio: gpio@7e200000 {
compatible = "brcm,bcm2835-gpio";
reg = <0x7e200000 0xb4>;
/*
@ -70,7 +83,25 @@ gpio: gpio {
#interrupt-cells = <2>;
};
spi: spi@20204000 {
uart@7e201000 {
compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
reg = <0x7e201000 0x1000>;
interrupts = <2 25>;
clock-frequency = <3000000>;
arm,primecell-periphid = <0x00241011>;
};
i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s";
reg = <0x7e203000 0x20>,
<0x7e101098 0x02>;
dmas = <&dma 2>,
<&dma 3>;
dma-names = "tx", "rx";
};
spi: spi@7e204000 {
compatible = "brcm,bcm2835-spi";
reg = <0x7e204000 0x1000>;
interrupts = <2 22>;
@ -90,7 +121,15 @@ i2c0: i2c@20205000 {
status = "disabled";
};
i2c1: i2c@20804000 {
sdhci: sdhci@7e300000 {
compatible = "brcm,bcm2835-sdhci";
reg = <0x7e300000 0x100>;
interrupts = <2 30>;
clocks = <&clk_mmc>;
status = "disabled";
};
i2c1: i2c@7e804000 {
compatible = "brcm,bcm2835-i2c";
reg = <0x7e804000 0x1000>;
interrupts = <2 21>;
@ -100,19 +139,15 @@ i2c1: i2c@20804000 {
status = "disabled";
};
sdhci: sdhci {
compatible = "brcm,bcm2835-sdhci";
reg = <0x7e300000 0x100>;
interrupts = <2 30>;
clocks = <&clk_mmc>;
status = "disabled";
};
usb {
usb@7e980000 {
compatible = "brcm,bcm2835-usb";
reg = <0x7e980000 0x10000>;
interrupts = <1 9>;
};
arm-pmu {
compatible = "arm,arm1176-pmu";
};
};
clocks {
@ -120,24 +155,27 @@ clocks {
#address-cells = <1>;
#size-cells = <0>;
clk_mmc: mmc {
clk_mmc: clock@0 {
compatible = "fixed-clock";
reg = <0>;
#clock-cells = <0>;
clock-output-names = "mmc";
clock-frequency = <100000000>;
};
clk_i2c: i2c {
clk_i2c: clock@1 {
compatible = "fixed-clock";
reg = <1>;
#clock-cells = <0>;
clock-output-names = "i2c";
clock-frequency = <250000000>;
};
clk_spi: spi {
clk_spi: clock@2 {
compatible = "fixed-clock";
reg = <2>;
#clock-cells = <0>;
clock-output-names = "spi";
clock-frequency = <250000000>;
};
};