Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bcm2836 irq #3

Closed
wants to merge 27 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
21f444a
dt-bindings: Add vendor prefix for Raspberry Pi
lategoodbye Jan 29, 2015
4d7fb46
dt-bindings: Add root properties for Raspberry Pi
lategoodbye Jan 29, 2015
f9b2235
ARM: bcm2835: Add header file for pinctrl constants
lategoodbye Jan 29, 2015
72a6dbe
ARM: bcm2835: Use pinctrl header
lategoodbye Jan 29, 2015
9a5a354
ARM: bcm2835: Fix i2c0 node name
baruchsiach Mar 18, 2015
b4f8a96
dt-bindings: Add root properties for Raspberry Pi 2.
anholt Apr 21, 2015
b8d7cc2
ARM: BCM2835: Split peripheral definitions off to a common include.
anholt Apr 16, 2015
896054f
ARM: Make a copy of the 2835 dts for the 2836.
anholt Feb 24, 2015
c9f1307
ARM: Update the device trees for 2836.
anholt Feb 24, 2015
08c28ca
ARM: BCM2836: Add io map initialization for bcm2836.
anholt Mar 13, 2015
681fecb
ARM: Add Kconfig support for bcm2836.
anholt Feb 24, 2015
784aefd
ARM: Add MAINTAINERS for 2836.
anholt Feb 24, 2015
4fd622e
ARM: BCM2835: Register fixed clocks for uart in the DT.
anholt Apr 17, 2015
7455736
mailbox: Enable BCM2835 mailbox support
lkundrak Oct 24, 2014
6743198
ARM: bcm2835: Add the mailbox to the device tree.
anholt Feb 25, 2015
33b9430
PM / Domains: If an OF node is found but no device probed yet, defer.
anholt Mar 10, 2015
40a65ce
ARM: bcm2835: Add the mailbox power channel as a power domain provider.
anholt Feb 26, 2015
98a8ffb
ARM: bcm2835: Add the necessary firmware power domain information to …
anholt Feb 25, 2015
c1f3176
wip irq handler
anholt Apr 17, 2015
c1f01b0
debug
anholt Apr 23, 2015
5d6fd6c
ARM: BCM2836: Try adding a bus mapping for the arm local control regs.
anholt Apr 23, 2015
0ca48ff
irq-bcm2835: fixed incorrect base for local IRQ regs
andreamerello May 2, 2015
28eac1b
irq-bcm2835: implement IPI send
andreamerello May 2, 2015
16e5f71
irq-bcm2835: enable IPIs for SMP
andreamerello May 3, 2015
4fab1d9
irq-bcm2835: fix writing bitfield reg with int value
andreamerello May 5, 2015
e0a45d6
irq-bcm2835: fix compare against irq_data ->irq instead of ->hwirq
andreamerello May 5, 2015
dc34b46
irq-bcm2835: use already defined const instead of hardcoded value
andreamerello May 5, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions Documentation/devicetree/bindings/arm/bcm2835.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,35 @@
Broadcom BCM2835 device tree bindings
-------------------------------------------

Boards with the BCM2835 SoC shall have the following properties:
Raspberry Pi Model A
Required root node properties:
compatible = "raspberrypi,model-a", "brcm,bcm2835";

Required root node property:
Raspberry Pi Model A+
Required root node properties:
compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";

Raspberry Pi Model B
Required root node properties:
compatible = "raspberrypi,model-b", "brcm,bcm2835";

Raspberry Pi Model B (no P5)
early model B with I2C0 rather than I2C1 routed to the expansion header
Required root node properties:
compatible = "raspberrypi,model-b-i2c0", "brcm,bcm2835";

Raspberry Pi Model B rev2
Required root node properties:
compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";

Raspberry Pi Model B+
Required root node properties:
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";

Raspberry Pi Compute Module
Required root node properties:
compatible = "raspberrypi,compute-module", "brcm,bcm2835";

Generic BCM2835 board
Required root node properties:
compatible = "brcm,bcm2835";
10 changes: 10 additions & 0 deletions Documentation/devicetree/bindings/arm/bcm2836.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Broadcom BCM2836 device tree bindings
-------------------------------------------

Raspberry Pi 2 Model B
Required root node properties:
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";

Generic BCM2836 board
Required root node properties:
compatible = "brcm,bcm2836";
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ radxa Radxa
raidsonic RaidSonic Technology GmbH
ralink Mediatek/Ralink Technology Corp.
ramtron Ramtron International
raspberrypi Raspberry Pi Foundation
realtek Realtek Semiconductor Corp.
renesas Renesas Electronics Corporation
ricoh Ricoh Co. Ltd.
Expand Down
7 changes: 7 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2128,6 +2128,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi.git
S: Maintained
N: bcm2835

BROADCOM BCM2836 ARM ARCHITECTURE
M: Eric Anholt <eric@anholt.net>
L: linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi.git
S: Maintained
N: bcm2836

BROADCOM BCM33XX MIPS ARCHITECTURE
M: Kevin Cernekee <cernekee@gmail.com>
L: linux-mips@linux-mips.org
Expand Down
10 changes: 8 additions & 2 deletions arch/arm/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,12 @@ choice

config DEBUG_BCM2835
bool "Kernel low-level debugging on BCM2835 PL011 UART"
depends on ARCH_BCM2835
depends on ARCH_BCM2835 && ARCH_MULTI_V6
select DEBUG_UART_PL01X

config DEBUG_BCM2836
bool "Kernel low-level debugging on BCM2836 PL011 UART"
depends on ARCH_BCM2835 && ARCH_MULTI_V7
select DEBUG_UART_PL01X

config DEBUG_BCM_5301X
Expand Down Expand Up @@ -1369,6 +1374,7 @@ config DEBUG_UART_PHYS
default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
default 0x20201000 if DEBUG_BCM2835
default 0x3f201000 if DEBUG_BCM2836
default 0x3e000000 if DEBUG_BCM_KONA_UART
default 0x4000e400 if DEBUG_LL_UART_EFM32
default 0x40090000 if ARCH_LPC32XX
Expand Down Expand Up @@ -1450,7 +1456,7 @@ config DEBUG_UART_VIRT
default 0xf0000be0 if ARCH_EBSA110
default 0xf0010000 if DEBUG_ASM9260_UART
default 0xf01fb000 if DEBUG_NOMADIK_UART
default 0xf0201000 if DEBUG_BCM2835
default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836
default 0xf1000300 if DEBUG_BCM_5301X
default 0xf1002000 if DEBUG_MT8127_UART0
default 0xf1006000 if DEBUG_MT6589_UART0
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ dtb-$(CONFIG_ARCH_AXXIA) += \
axm5516-amarillo.dtb
dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2835-rpi-b.dtb \
bcm2835-rpi-b-plus.dtb
bcm2835-rpi-b-plus.dtb \
bcm2836-rpi-2-b.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4708-buffalo-wzr-1750dhp.dtb \
bcm4708-luxul-xwc-1000.dtb \
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/dts-v1/;
/include/ "bcm2835-rpi.dtsi"
#include "bcm2835-rpi.dtsi"

/ {
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
Expand All @@ -25,6 +25,6 @@
/* I2S interface */
i2s_alt0: i2s_alt0 {
brcm,pins = <18 19 20 21>;
brcm,function = <4>; /* alt0 */
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
4 changes: 2 additions & 2 deletions arch/arm/boot/dts/bcm2835-rpi-b.dts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/dts-v1/;
/include/ "bcm2835-rpi.dtsi"
#include "bcm2835-rpi.dtsi"

/ {
compatible = "raspberrypi,model-b", "brcm,bcm2835";
Expand All @@ -18,6 +18,6 @@
/* I2S interface */
i2s_alt2: i2s_alt2 {
brcm,pins = <28 29 30 31>;
brcm,function = <6>; /* alt2 */
brcm,function = <BCM2835_FSEL_ALT2>;
};
};
8 changes: 4 additions & 4 deletions arch/arm/boot/dts/bcm2835-rpi.dtsi
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/include/ "bcm2835.dtsi"
#include "bcm2835.dtsi"

/ {
memory {
Expand All @@ -21,17 +21,17 @@

gpioout: gpioout {
brcm,pins = <6>;
brcm,function = <1>; /* GPIO out */
brcm,function = <BCM2835_FSEL_GPIO_OUT>;
};

alt0: alt0 {
brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
brcm,function = <4>; /* alt0 */
brcm,function = <BCM2835_FSEL_ALT0>;
};

alt3: alt3 {
brcm,pins = <48 49 50 51 52 53>;
brcm,function = <7>; /* alt3 */
brcm,function = <BCM2835_FSEL_ALT3>;
};
};

Expand Down
158 changes: 3 additions & 155 deletions arch/arm/boot/dts/bcm2835.dtsi
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/include/ "skeleton.dtsi"
#include <dt-bindings/pinctrl/bcm2835.h>
#include "skeleton.dtsi"
#include "bcm283x-common.dtsi"

/ {
compatible = "brcm,bcm2835";
Expand All @@ -22,162 +24,8 @@
clock-frequency = <1000000>;
};

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@7e100000 {
compatible = "brcm,bcm2835-pm-wdt";
reg = <0x7e100000 0x28>;
};

rng@7e104000 {
compatible = "brcm,bcm2835-rng";
reg = <0x7e104000 0x10>;
};

gpio: gpio@7e200000 {
compatible = "brcm,bcm2835-gpio";
reg = <0x7e200000 0xb4>;
/*
* The GPIO IP block is designed for 3 banks of GPIOs.
* Each bank has a GPIO interrupt for itself.
* There is an overall "any bank" interrupt.
* In order, these are GIC interrupts 17, 18, 19, 20.
* Since the BCM2835 only has 2 banks, the 2nd bank
* interrupt output appears to be mirrored onto the
* 3rd bank's interrupt signal.
* So, a bank0 interrupt shows up on 17, 20, and
* a bank1 interrupt shows up on 18, 19, 20!
*/
interrupts = <2 17>, <2 18>, <2 19>, <2 20>;

gpio-controller;
#gpio-cells = <2>;

interrupt-controller;
#interrupt-cells = <2>;
};

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";
status = "disabled";
};

spi: spi@7e204000 {
compatible = "brcm,bcm2835-spi";
reg = <0x7e204000 0x1000>;
interrupts = <2 22>;
clocks = <&clk_spi>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};

i2c0: i2c@20205000 {
compatible = "brcm,bcm2835-i2c";
reg = <0x7e205000 0x1000>;
interrupts = <2 21>;
clocks = <&clk_i2c>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};

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>;
clocks = <&clk_i2c>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};

usb@7e980000 {
compatible = "brcm,bcm2835-usb";
reg = <0x7e980000 0x10000>;
interrupts = <1 9>;
};

arm-pmu {
compatible = "arm,arm1176-pmu";
};
};

clocks {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;

clk_mmc: clock@0 {
compatible = "fixed-clock";
reg = <0>;
#clock-cells = <0>;
clock-output-names = "mmc";
clock-frequency = <100000000>;
};

clk_i2c: clock@1 {
compatible = "fixed-clock";
reg = <1>;
#clock-cells = <0>;
clock-output-names = "i2c";
clock-frequency = <250000000>;
};

clk_spi: clock@2 {
compatible = "fixed-clock";
reg = <2>;
#clock-cells = <0>;
clock-output-names = "spi";
clock-frequency = <250000000>;
};
};
};
30 changes: 30 additions & 0 deletions arch/arm/boot/dts/bcm2836-rpi-2-b.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/dts-v1/;
#include "bcm2836-rpi.dtsi"

/ {
compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
model = "Raspberry Pi 2 Model B";

leds {
act {
gpios = <&gpio 47 0>;
};

pwr {
label = "PWR";
gpios = <&gpio 35 0>;
default-state = "keep";
linux,default-trigger = "default-on";
};
};
};

&gpio {
pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;

/* I2S interface */
i2s_alt0: i2s_alt0 {
brcm,pins = <18 19 20 21>;
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
Loading