1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
From 623f4a862134202e9f0705812cabe2abef6c2f9b Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Mon, 31 Jan 2022 21:01:25 +0000
Subject: [PATCH] overlays: Add spi0-0cs overlay
An overlay to enable SPI0 without claiming any chip select GPIOs.
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 8 ++++
.../boot/dts/overlays/spi0-0cs-overlay.dts | 39 +++++++++++++++++++
3 files changed, 48 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/spi0-0cs-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -195,6 +195,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
spi-gpio35-39.dtbo \
spi-gpio40-45.dtbo \
spi-rtc.dtbo \
+ spi0-0cs.dtbo \
spi0-1cs.dtbo \
spi0-2cs.dtbo \
spi1-1cs.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -3115,6 +3115,14 @@ Params: ds3232 Select t
cs_high This device requires an active-high CS
+Name: spi0-0cs
+Info: Don't claim any CS pins for SPI0. Requires a device with its chip
+ select permanently enabled, but frees a GPIO for e.g. a DPI display.
+Load: dtoverlay=spi0-0cs,<param>=<val>
+Params: no_miso Don't claim and use the MISO pin (9), freeing
+ it for other uses.
+
+
Name: spi0-1cs
Info: Only use one CS pin for SPI0
Load: dtoverlay=spi0-1cs,<param>=<val>
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/spi0-0cs-overlay.dts
@@ -0,0 +1,39 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&spi0_cs_pins>;
+ frag0: __overlay__ {
+ brcm,pins;
+ };
+ };
+
+ fragment@1 {
+ target = <&spi0>;
+ __overlay__ {
+ cs-gpios;
+ status = "okay";
+ };
+ };
+
+ fragment@2 {
+ target = <&spidev1>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@3 {
+ target = <&spi0_pins>;
+ __dormant__ {
+ brcm,pins = <10 11>;
+ };
+ };
+
+ __overrides__ {
+ no_miso = <0>,"=3";
+ };
+};
|