Skip to content

Commit 615c263

Browse files
committed
Merge pull request #1099 from notro/noatags
Enable ARCH_BCM2835 for downstream use
2 parents 2942198 + 9709c65 commit 615c263

25 files changed

+585
-216
lines changed

arch/arm/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ config ARCH_BCM2708
330330
select GENERIC_CLOCKEVENTS
331331
select ARM_ERRATA_411920
332332
select MACH_BCM2708
333+
select MULTI_IRQ_HANDLER
333334
select VC4
334335
select FIQ
335336
help

arch/arm/boot/dts/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ ifeq ($(CONFIG_OF),y)
33
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b.dtb
44
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b-plus.dtb
55
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-cm.dtb
6+
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-cm.dtb
67
dtb-$(CONFIG_BCM2709_DT) += bcm2709-rpi-2-b.dtb
78

89
# Raspberry Pi

arch/arm/boot/dts/bcm2708.dtsi

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,7 @@
2424
};
2525
};
2626
};
27+
28+
&intc {
29+
compatible = "brcm,bcm2835-armctrl-ic";
30+
};

arch/arm/boot/dts/bcm2708_common.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
brcm,dma-channel-mask = <0x0f35>;
6666
};
6767

68-
intc: interrupt-controller {
68+
intc: interrupt-controller@7e00b200 {
6969
compatible = "brcm,bcm2708-armctrl-ic";
7070
reg = <0x7e00b200 0x200>;
7171
interrupt-controller;
Lines changed: 115 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,128 @@
11
/dts-v1/;
2-
#include "bcm2835-rpi.dtsi"
2+
#include "bcm2835.dtsi"
33

44
/ {
55
compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
66
model = "Raspberry Pi Model B+";
7+
};
78

8-
leds {
9-
act {
10-
gpios = <&gpio 47 0>;
11-
};
9+
&gpio {
10+
spi0_pins: spi0_pins {
11+
brcm,pins = <7 8 9 10 11>;
12+
brcm,function = <4>; /* alt0 */
13+
};
1214

13-
pwr {
14-
label = "PWR";
15-
gpios = <&gpio 35 0>;
16-
default-state = "keep";
17-
linux,default-trigger = "default-on";
18-
};
15+
i2c0_pins: i2c0 {
16+
brcm,pins = <0 1>;
17+
brcm,function = <4>;
1918
};
20-
};
2119

22-
&gpio {
23-
pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
20+
i2c1_pins: i2c1 {
21+
brcm,pins = <2 3>;
22+
brcm,function = <4>;
23+
};
2424

25-
/* I2S interface */
26-
i2s_alt0: i2s_alt0 {
25+
i2s_pins: i2s {
2726
brcm,pins = <18 19 20 21>;
28-
brcm,function = <BCM2835_FSEL_ALT0>;
27+
brcm,function = <4>; /* alt0 */
28+
};
29+
};
30+
31+
&mmc {
32+
status = "okay";
33+
bus-width = <4>;
34+
};
35+
36+
&fb {
37+
status = "okay";
38+
};
39+
40+
&uart0 {
41+
status = "okay";
42+
};
43+
44+
&spi0 {
45+
pinctrl-names = "default";
46+
pinctrl-0 = <&spi0_pins>;
47+
48+
spidev@0{
49+
compatible = "spidev";
50+
reg = <0>; /* CE0 */
51+
#address-cells = <1>;
52+
#size-cells = <0>;
53+
spi-max-frequency = <500000>;
54+
};
55+
56+
spidev@1{
57+
compatible = "spidev";
58+
reg = <1>; /* CE1 */
59+
#address-cells = <1>;
60+
#size-cells = <0>;
61+
spi-max-frequency = <500000>;
62+
};
63+
};
64+
65+
&i2c0 {
66+
pinctrl-names = "default";
67+
pinctrl-0 = <&i2c0_pins>;
68+
clock-frequency = <100000>;
69+
};
70+
71+
&i2c1 {
72+
pinctrl-names = "default";
73+
pinctrl-0 = <&i2c1_pins>;
74+
clock-frequency = <100000>;
75+
};
76+
77+
&i2c2 {
78+
clock-frequency = <100000>;
79+
};
80+
81+
&i2s {
82+
#sound-dai-cells = <0>;
83+
pinctrl-names = "default";
84+
pinctrl-0 = <&i2s_pins>;
85+
};
86+
87+
&leds {
88+
act_led: act {
89+
label = "led0";
90+
linux,default-trigger = "mmc0";
91+
gpios = <&gpio 47 0>;
92+
};
93+
94+
pwr_led: pwr {
95+
label = "led1";
96+
linux,default-trigger = "input";
97+
gpios = <&gpio 35 0>;
98+
};
99+
};
100+
101+
/ {
102+
__overrides__ {
103+
uart0 = <&uart0>,"status";
104+
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
105+
uart1_clkrate = <&uart1>,"clock-frequency:0";
106+
i2s = <&i2s>,"status";
107+
spi = <&spi0>,"status";
108+
i2c0 = <&i2c0>,"status";
109+
i2c1 = <&i2c1>,"status";
110+
i2c2_iknowwhatimdoing = <&i2c2>,"status";
111+
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
112+
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
113+
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
114+
core_freq = <&clk_core>,"clock-frequency:0";
115+
116+
act_led_gpio = <&act_led>,"gpios:4";
117+
act_led_activelow = <&act_led>,"gpios:8";
118+
act_led_trigger = <&act_led>,"linux,default-trigger";
119+
120+
pwr_led_gpio = <&pwr_led>,"gpios:4";
121+
pwr_led_activelow = <&pwr_led>,"gpios:8";
122+
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
123+
124+
audio = <&audio>,"status";
125+
watchdog = <&watchdog>,"status";
126+
random = <&random>,"status";
29127
};
30128
};

arch/arm/boot/dts/bcm2835-rpi-b.dts

Lines changed: 106 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,118 @@
11
/dts-v1/;
2-
#include "bcm2835-rpi.dtsi"
2+
#include "bcm2835.dtsi"
33

44
/ {
55
compatible = "raspberrypi,model-b", "brcm,bcm2835";
66
model = "Raspberry Pi Model B";
7-
8-
leds {
9-
act {
10-
gpios = <&gpio 16 1>;
11-
};
12-
};
137
};
148

159
&gpio {
16-
pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
10+
spi0_pins: spi0_pins {
11+
brcm,pins = <7 8 9 10 11>;
12+
brcm,function = <4>; /* alt0 */
13+
};
14+
15+
i2c0_pins: i2c0 {
16+
brcm,pins = <0 1>;
17+
brcm,function = <4>;
18+
};
1719

18-
/* I2S interface */
19-
i2s_alt2: i2s_alt2 {
20+
i2c1_pins: i2c1 {
21+
brcm,pins = <2 3>;
22+
brcm,function = <4>;
23+
};
24+
25+
i2s_pins: i2s {
2026
brcm,pins = <28 29 30 31>;
21-
brcm,function = <BCM2835_FSEL_ALT2>;
27+
brcm,function = <6>; /* alt2 */
28+
};
29+
};
30+
31+
&mmc {
32+
status = "okay";
33+
bus-width = <4>;
34+
};
35+
36+
&fb {
37+
status = "okay";
38+
};
39+
40+
&uart0 {
41+
status = "okay";
42+
};
43+
44+
&spi0 {
45+
pinctrl-names = "default";
46+
pinctrl-0 = <&spi0_pins>;
47+
48+
spidev@0{
49+
compatible = "spidev";
50+
reg = <0>; /* CE0 */
51+
#address-cells = <1>;
52+
#size-cells = <0>;
53+
spi-max-frequency = <500000>;
54+
};
55+
56+
spidev@1{
57+
compatible = "spidev";
58+
reg = <1>; /* CE1 */
59+
#address-cells = <1>;
60+
#size-cells = <0>;
61+
spi-max-frequency = <500000>;
62+
};
63+
};
64+
65+
&i2c0 {
66+
pinctrl-names = "default";
67+
pinctrl-0 = <&i2c0_pins>;
68+
clock-frequency = <100000>;
69+
};
70+
71+
&i2c1 {
72+
pinctrl-names = "default";
73+
pinctrl-0 = <&i2c1_pins>;
74+
clock-frequency = <100000>;
75+
};
76+
77+
&i2c2 {
78+
clock-frequency = <100000>;
79+
};
80+
81+
&i2s {
82+
#sound-dai-cells = <0>;
83+
pinctrl-names = "default";
84+
pinctrl-0 = <&i2s_pins>;
85+
};
86+
87+
&leds {
88+
act_led: act {
89+
label = "led0";
90+
linux,default-trigger = "mmc0";
91+
gpios = <&gpio 16 1>;
92+
};
93+
};
94+
95+
/ {
96+
__overrides__ {
97+
uart0 = <&uart0>,"status";
98+
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
99+
uart1_clkrate = <&uart1>,"clock-frequency:0";
100+
i2s = <&i2s>,"status";
101+
spi = <&spi0>,"status";
102+
i2c0 = <&i2c0>,"status";
103+
i2c1 = <&i2c1>,"status";
104+
i2c2_iknowwhatimdoing = <&i2c2>,"status";
105+
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
106+
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
107+
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
108+
core_freq = <&clk_core>,"clock-frequency:0";
109+
110+
act_led_gpio = <&act_led>,"gpios:4";
111+
act_led_activelow = <&act_led>,"gpios:8";
112+
act_led_trigger = <&act_led>,"linux,default-trigger";
113+
114+
audio = <&audio>,"status";
115+
watchdog = <&watchdog>,"status";
116+
random = <&random>,"status";
22117
};
23118
};

0 commit comments

Comments
 (0)