aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch125
1 files changed, 125 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch b/target/linux/bcm27xx/patches-5.10/950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch
new file mode 100644
index 0000000000..3a2970abd6
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch
@@ -0,0 +1,125 @@
+From 8273b9e71c1f5c1f6f74faac21de64bf42686817 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Mon, 19 Apr 2021 10:33:24 +0100
+Subject: [PATCH] overlays: spi-rtc: Add ds3232 and ds3234
+
+Extend the spi-rtc overlay to support the ds3232 and ds3234 RTCs, as
+well as adding parameters to select difference SPI controllers and
+chip selects.
+
+N.B. The default CS is now active-low - use the "cs_high" parameter to
+override this.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/README | 12 +++-
+ .../arm/boot/dts/overlays/spi-rtc-overlay.dts | 58 ++++++++++++++++---
+ 2 files changed, 61 insertions(+), 9 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -2689,7 +2689,17 @@ Params: <None>
+ Name: spi-rtc
+ Info: Adds support for a number of SPI Real Time Clock devices
+ Load: dtoverlay=spi-rtc,<param>=<val>
+-Params: pcf2123 Select the PCF2123 device
++Params: ds3232 Select the DS3232 device
++ ds3234 Select the DS3234 device
++ pcf2123 Select the PCF2123 device
++
++ spi0_0 Use spi0.0 (default)
++ spi0_1 Use spi0.1
++ spi1_0 Use spi1.0
++ spi1_1 Use spi1.1
++ spi2_0 Use spi2.0
++ spi2_1 Use spi2.1
++ cs_high This device requires an active-high CS
+
+
+ Name: spi0-1cs
+--- a/arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
++++ b/arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
+@@ -1,3 +1,4 @@
++// Definitions for several SPI-based Real Time Clocks
+ /dts-v1/;
+ /plugin/;
+
+@@ -5,29 +6,70 @@
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+- target = <&spidev0>;
++ target = <&rtc>;
+ __dormant__ {
+- status = "disabled";
++ compatible = "maxim,ds3232";
+ };
+ };
+
+ fragment@1 {
+- target = <&spi0>;
++ target = <&rtc>;
++ __dormant__ {
++ compatible = "maxim,ds3234";
++ };
++ };
++
++ fragment@2 {
++ target = <&rtc>;
+ __dormant__ {
++ compatible = "nxp,rtc-pcf2123";
++ };
++ };
++
++ spidev: fragment@100 {
++ target = <&spidev0>;
++ __overlay__ {
++ status = "disabled";
++ };
++ };
++
++ frag101: fragment@101 {
++ target = <&spi0>;
++ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+- rtc-pcf2123@0 {
+- compatible = "nxp,rtc-pcf2123";
+- spi-max-frequency = <5000000>;
+- spi-cs-high = <1>;
++ rtc: rtc@0 {
+ reg = <0>;
++ spi-max-frequency = <5000000>;
+ };
+ };
+ };
+
+ __overrides__ {
+- pcf2123 = <0>, "=0=1";
++ spi0_0 = <&spidev>, "target:0=",<&spidev0>,
++ <&frag101>, "target:0=",<&spi0>,
++ <&rtc>, "reg:0=0";
++ spi0_1 = <&spidev>, "target:0=",<&spidev1>,
++ <&frag101>, "target:0=",<&spi0>,
++ <&rtc>, "reg:0=1";
++ spi1_0 = <0>,"-100",
++ <&frag101>, "target:0=",<&spi1>,
++ <&rtc>, "reg:0=0";
++ spi1_1 = <0>,"-100",
++ <&frag101>, "target:0=",<&spi1>,
++ <&rtc>, "reg:0=1";
++ spi2_0 = <0>,"-100",
++ <&frag101>, "target:0=",<&spi2>,
++ <&rtc>, "reg:0=0";
++ spi2_1 = <0>,"-100",
++ <&frag101>, "target:0=",<&spi2>,
++ <&rtc>, "reg:0=1";
++ cs_high = <&rtc>, "spi-cs-high?";
++
++ ds3232 = <0>,"+0";
++ ds3234 = <0>,"+1";
++ pcf2123 = <0>,"+2";
+ };
+ };