Skip to content

Commit cba19dc

Browse files
msperlpopcornmix
authored andcommitted
spi: bcm270x: dt: move to cs-gpio and add an overlay for GPIO 35-39
Moves SPI settings for chip-selects to framework managed GPIOs. And also adds an overlay to move GPIOs used for SPI to GPIO35-39
1 parent 01c7671 commit cba19dc

8 files changed

+78
-9
lines changed

arch/arm/boot/dts/bcm2708-rpi-b-plus.dts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,15 @@
99

1010
&gpio {
1111
spi0_pins: spi0_pins {
12-
brcm,pins = <7 8 9 10 11>;
12+
brcm,pins = <9 10 11>;
1313
brcm,function = <4>; /* alt0 */
1414
};
1515

16+
spi0_cs_pins: spi0_cs_pins {
17+
brcm,pins = <8 7>;
18+
brcm,function = <1>; /* output */
19+
};
20+
1621
i2c0_pins: i2c0 {
1722
brcm,pins = <0 1>;
1823
brcm,function = <4>;
@@ -44,7 +49,8 @@
4449

4550
&spi0 {
4651
pinctrl-names = "default";
47-
pinctrl-0 = <&spi0_pins>;
52+
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
53+
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
4854

4955
spidev@0{
5056
compatible = "spidev";

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,15 @@
99

1010
&gpio {
1111
spi0_pins: spi0_pins {
12-
brcm,pins = <7 8 9 10 11>;
12+
brcm,pins = <9 10 11>;
1313
brcm,function = <4>; /* alt0 */
1414
};
1515

16+
spi0_cs_pins: spi0_cs_pins {
17+
brcm,pins = <8 7>;
18+
brcm,function = <1>; /* output */
19+
};
20+
1621
i2c0_pins: i2c0 {
1722
brcm,pins = <0 1>;
1823
brcm,function = <4>;
@@ -44,7 +49,8 @@
4449

4550
&spi0 {
4651
pinctrl-names = "default";
47-
pinctrl-0 = <&spi0_pins>;
52+
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
53+
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
4854

4955
spidev@0{
5056
compatible = "spidev";

arch/arm/boot/dts/bcm2708-rpi-cm.dts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,15 @@
1212

1313
&gpio {
1414
spi0_pins: spi0_pins {
15-
brcm,pins = <7 8 9 10 11>;
15+
brcm,pins = <9 10 11>;
1616
brcm,function = <4>; /* alt0 */
1717
};
1818

19+
spi0_cs_pins: spi0_cs_pins {
20+
brcm,pins = <8 7>;
21+
brcm,function = <1>; /* output */
22+
};
23+
1924
i2c0_pins: i2c0 {
2025
brcm,pins = <0 1>;
2126
brcm,function = <4>;
@@ -34,7 +39,8 @@
3439

3540
&spi0 {
3641
pinctrl-names = "default";
37-
pinctrl-0 = <&spi0_pins>;
42+
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
43+
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
3844

3945
spidev@0{
4046
compatible = "spidev";

arch/arm/boot/dts/bcm2709-rpi-2-b.dts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,15 @@
99

1010
&gpio {
1111
spi0_pins: spi0_pins {
12-
brcm,pins = <7 8 9 10 11>;
12+
brcm,pins = <9 10 11>;
1313
brcm,function = <4>; /* alt0 */
1414
};
1515

16+
spi0_cs_pins: spi0_cs_pins {
17+
brcm,pins = <8 7>;
18+
brcm,function = <1>; /* output */
19+
};
20+
1621
i2c0_pins: i2c0 {
1722
brcm,pins = <0 1>;
1823
brcm,function = <4>;
@@ -44,7 +49,8 @@
4449

4550
&spi0 {
4651
pinctrl-names = "default";
47-
pinctrl-0 = <&spi0_pins>;
52+
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
53+
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
4854

4955
spidev@0{
5056
compatible = "spidev";

arch/arm/boot/dts/overlays/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ dtb-$(RPI_DT_OVERLAYS) += rpi-sense-overlay.dtb
4545
dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb
4646
dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb
4747
dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb
48+
dtb-$(RPI_DT_OVERLAYS) += spi-gpio35-39-overlay.dtb
4849
dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb
4950
dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb
5051
dtb-$(RPI_DT_OVERLAYS) += vga666-overlay.dtb

arch/arm/boot/dts/overlays/README

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,12 @@ Load: dtoverlay=spi-bcm2835
519519
Params: <None>
520520

521521

522+
Name: spi-gpio35-39
523+
Info: move SPI function block to GPIO 35 to 39
524+
Load: dtoverlay=spi-gpio35-39
525+
Params: <None>
526+
527+
522528
Name: tinylcd35
523529
Info: 3.5" Color TFT Display by www.tinylcd.com
524530
Options: Touch, RTC, keypad

arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Device tree overlay for spi-bcm2835
2+
* Device tree overlay to use spi-bcm2708
33
*/
44

55
/dts-v1/;
@@ -15,4 +15,11 @@
1515
compatible = "brcm,bcm2708-spi";
1616
};
1717
};
18+
19+
fragment@1 {
20+
target = <&spi0_cs_pins>;
21+
__overlay__ {
22+
brcm,function = <4>; /* alt0 */
23+
};
24+
};
1825
};
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Device tree overlay to move spi0 to gpio 35 to 39 on CM
3+
*/
4+
5+
/dts-v1/;
6+
/plugin/;
7+
8+
/ {
9+
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
10+
11+
fragment@0 {
12+
target = <&spi0>;
13+
__overlay__ {
14+
cs-gpios = <&gpio 36 1>, <&gpio 35 1>;
15+
};
16+
};
17+
18+
fragment@1 {
19+
target = <&spi0_cs_pins>;
20+
__overlay__ {
21+
bcrm,pins = <36 35>;
22+
};
23+
};
24+
25+
fragment@2 {
26+
target = <&spi0_pins>;
27+
__overlay__ {
28+
bcrm,pins = <37 38 39>;
29+
};
30+
};
31+
};

0 commit comments

Comments
 (0)