aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.4/950-0957-overlays-Add-spi0-1cs-and-spi0-2cs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0957-overlays-Add-spi0-1cs-and-spi0-2cs.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0957-overlays-Add-spi0-1cs-and-spi0-2cs.patch199
1 files changed, 199 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0957-overlays-Add-spi0-1cs-and-spi0-2cs.patch b/target/linux/bcm27xx/patches-5.4/950-0957-overlays-Add-spi0-1cs-and-spi0-2cs.patch
new file mode 100644
index 0000000000..3af45bb0b6
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.4/950-0957-overlays-Add-spi0-1cs-and-spi0-2cs.patch
@@ -0,0 +1,199 @@
+From 692af7a59fd6d9d3b64edbf028cd75b0096ef8c7 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Fri, 28 Aug 2020 12:55:41 +0100
+Subject: [PATCH] overlays: Add spi0-1cs and spi0-2cs
+
+The spi0-1cs overlay allows the SPI0 interface to be run with a single
+CS line, which can be useful if GPIOs are in short supply. The no_miso
+parameter is for write-only devices that don't need the return channel,
+and again is there to free up a GPIO.
+
+spi0-2cs is the new name for spi0-cs (now deprecated with a redirect
+to spi0-2cs), but with the addedd no_miso parameter.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/Makefile | 3 +-
+ arch/arm/boot/dts/overlays/README | 22 ++++++++--
+ arch/arm/boot/dts/overlays/overlay_map.dts | 4 ++
+ .../boot/dts/overlays/spi0-1cs-overlay.dts | 42 +++++++++++++++++++
+ ...i0-cs-overlay.dts => spi0-2cs-overlay.dts} | 8 ++++
+ 5 files changed, 75 insertions(+), 4 deletions(-)
+ create mode 100644 arch/arm/boot/dts/overlays/spi0-1cs-overlay.dts
+ rename arch/arm/boot/dts/overlays/{spi0-cs-overlay.dts => spi0-2cs-overlay.dts} (79%)
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -161,7 +161,8 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+ spi-gpio35-39.dtbo \
+ spi-gpio40-45.dtbo \
+ spi-rtc.dtbo \
+- spi0-cs.dtbo \
++ spi0-1cs.dtbo \
++ spi0-2cs.dtbo \
+ spi1-1cs.dtbo \
+ spi1-2cs.dtbo \
+ spi1-3cs.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -2412,11 +2412,27 @@ Load: dtoverlay=spi-rtc,<param>=<val>
+ Params: pcf2123 Select the PCF2123 device
+
+
+-Name: spi0-cs
+-Info: Allows the (software) CS pins for SPI0 to be changed
+-Load: dtoverlay=spi0-cs,<param>=<val>
++Name: spi0-1cs
++Info: Only use one CS pin for SPI0
++Load: dtoverlay=spi0-1cs,<param>=<val>
++Params: cs0_pin GPIO pin for CS0 (default 8)
++ no_miso Don't claim and use the MISO pin (9), freeing
++ it for other uses.
++
++
++Name: spi0-2cs
++Info: Change the CS pins for SPI0
++Load: dtoverlay=spi0-2cs,<param>=<val>
+ Params: cs0_pin GPIO pin for CS0 (default 8)
+ cs1_pin GPIO pin for CS1 (default 7)
++ no_miso Don't claim and use the MISO pin (9), freeing
++ it for other uses.
++
++
++Name: spi0-cs
++Info: This overlay has been renamed spi0-1cs, keeping spi0-cs as an
++ alias for backwards compatibility.
++Load: <Deprecated>
+
+
+ Name: spi0-hw-cs
+--- a/arch/arm/boot/dts/overlays/overlay_map.dts
++++ b/arch/arm/boot/dts/overlays/overlay_map.dts
+@@ -61,6 +61,10 @@
+ deprecated = "use sdio,bus_width=1,gpios_22_25";
+ };
+
++ spi0-cs {
++ renamed = "spi0-2cs";
++ };
++
+ spi0-hw-cs {
+ deprecated = "no longer necessary";
+ };
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/spi0-1cs-overlay.dts
+@@ -0,0 +1,42 @@
++/dts-v1/;
++/plugin/;
++
++
++/ {
++ compatible = "brcm,bcm2835";
++
++ fragment@0 {
++ target = <&spi0_cs_pins>;
++ frag0: __overlay__ {
++ brcm,pins = <8>;
++ };
++ };
++
++ fragment@1 {
++ target = <&spi0>;
++ frag1: __overlay__ {
++ cs-gpios = <&gpio 8 1>;
++ status = "okay";
++ };
++ };
++
++ fragment@2 {
++ target = <&spidev1>;
++ __overlay__ {
++ status = "disabled";
++ };
++ };
++
++ fragment@3 {
++ target = <&spi0_pins>;
++ __dormant__ {
++ brcm,pins = <10 11>;
++ };
++ };
++
++ __overrides__ {
++ cs0_pin = <&frag0>,"brcm,pins:0",
++ <&frag1>,"cs-gpios:4";
++ no_miso = <0>,"=3";
++ };
++};
+--- a/arch/arm/boot/dts/overlays/spi0-cs-overlay.dts
++++ /dev/null
+@@ -1,29 +0,0 @@
+-/dts-v1/;
+-/plugin/;
+-
+-
+-/ {
+- compatible = "brcm,bcm2835";
+-
+- fragment@0 {
+- target = <&spi0_cs_pins>;
+- frag0: __overlay__ {
+- brcm,pins = <8 7>;
+- };
+- };
+-
+- fragment@1 {
+- target = <&spi0>;
+- frag1: __overlay__ {
+- cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
+- status = "okay";
+- };
+- };
+-
+- __overrides__ {
+- cs0_pin = <&frag0>,"brcm,pins:0",
+- <&frag1>,"cs-gpios:4";
+- cs1_pin = <&frag0>,"brcm,pins:4",
+- <&frag1>,"cs-gpios:16";
+- };
+-};
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/spi0-2cs-overlay.dts
+@@ -0,0 +1,37 @@
++/dts-v1/;
++/plugin/;
++
++
++/ {
++ compatible = "brcm,bcm2835";
++
++ fragment@0 {
++ target = <&spi0_cs_pins>;
++ frag0: __overlay__ {
++ brcm,pins = <8 7>;
++ };
++ };
++
++ fragment@1 {
++ target = <&spi0>;
++ frag1: __overlay__ {
++ cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
++ status = "okay";
++ };
++ };
++
++ fragment@2 {
++ target = <&spi0_pins>;
++ __dormant__ {
++ brcm,pins = <10 11>;
++ };
++ };
++
++ __overrides__ {
++ cs0_pin = <&frag0>,"brcm,pins:0",
++ <&frag1>,"cs-gpios:4";
++ cs1_pin = <&frag0>,"brcm,pins:4",
++ <&frag1>,"cs-gpios:16";
++ no_miso = <0>,"=2";
++ };
++};