bcm27xx: switch to 5.15
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.10 / 950-0578-overlays-spi-rtc-Add-ds3232-and-ds3234.patch
1 From 8273b9e71c1f5c1f6f74faac21de64bf42686817 Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.com>
3 Date: Mon, 19 Apr 2021 10:33:24 +0100
4 Subject: [PATCH] overlays: spi-rtc: Add ds3232 and ds3234
5
6 Extend the spi-rtc overlay to support the ds3232 and ds3234 RTCs, as
7 well as adding parameters to select difference SPI controllers and
8 chip selects.
9
10 N.B. The default CS is now active-low - use the "cs_high" parameter to
11 override this.
12
13 Signed-off-by: Phil Elwell <phil@raspberrypi.com>
14 ---
15 arch/arm/boot/dts/overlays/README | 12 +++-
16 .../arm/boot/dts/overlays/spi-rtc-overlay.dts | 58 ++++++++++++++++---
17 2 files changed, 61 insertions(+), 9 deletions(-)
18
19 --- a/arch/arm/boot/dts/overlays/README
20 +++ b/arch/arm/boot/dts/overlays/README
21 @@ -2689,7 +2689,17 @@ Params: <None>
22 Name: spi-rtc
23 Info: Adds support for a number of SPI Real Time Clock devices
24 Load: dtoverlay=spi-rtc,<param>=<val>
25 -Params: pcf2123 Select the PCF2123 device
26 +Params: ds3232 Select the DS3232 device
27 + ds3234 Select the DS3234 device
28 + pcf2123 Select the PCF2123 device
29 +
30 + spi0_0 Use spi0.0 (default)
31 + spi0_1 Use spi0.1
32 + spi1_0 Use spi1.0
33 + spi1_1 Use spi1.1
34 + spi2_0 Use spi2.0
35 + spi2_1 Use spi2.1
36 + cs_high This device requires an active-high CS
37
38
39 Name: spi0-1cs
40 --- a/arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
41 +++ b/arch/arm/boot/dts/overlays/spi-rtc-overlay.dts
42 @@ -1,3 +1,4 @@
43 +// Definitions for several SPI-based Real Time Clocks
44 /dts-v1/;
45 /plugin/;
46
47 @@ -5,29 +6,70 @@
48 compatible = "brcm,bcm2835";
49
50 fragment@0 {
51 - target = <&spidev0>;
52 + target = <&rtc>;
53 __dormant__ {
54 - status = "disabled";
55 + compatible = "maxim,ds3232";
56 };
57 };
58
59 fragment@1 {
60 - target = <&spi0>;
61 + target = <&rtc>;
62 + __dormant__ {
63 + compatible = "maxim,ds3234";
64 + };
65 + };
66 +
67 + fragment@2 {
68 + target = <&rtc>;
69 __dormant__ {
70 + compatible = "nxp,rtc-pcf2123";
71 + };
72 + };
73 +
74 + spidev: fragment@100 {
75 + target = <&spidev0>;
76 + __overlay__ {
77 + status = "disabled";
78 + };
79 + };
80 +
81 + frag101: fragment@101 {
82 + target = <&spi0>;
83 + __overlay__ {
84 #address-cells = <1>;
85 #size-cells = <0>;
86 status = "okay";
87
88 - rtc-pcf2123@0 {
89 - compatible = "nxp,rtc-pcf2123";
90 - spi-max-frequency = <5000000>;
91 - spi-cs-high = <1>;
92 + rtc: rtc@0 {
93 reg = <0>;
94 + spi-max-frequency = <5000000>;
95 };
96 };
97 };
98
99 __overrides__ {
100 - pcf2123 = <0>, "=0=1";
101 + spi0_0 = <&spidev>, "target:0=",<&spidev0>,
102 + <&frag101>, "target:0=",<&spi0>,
103 + <&rtc>, "reg:0=0";
104 + spi0_1 = <&spidev>, "target:0=",<&spidev1>,
105 + <&frag101>, "target:0=",<&spi0>,
106 + <&rtc>, "reg:0=1";
107 + spi1_0 = <0>,"-100",
108 + <&frag101>, "target:0=",<&spi1>,
109 + <&rtc>, "reg:0=0";
110 + spi1_1 = <0>,"-100",
111 + <&frag101>, "target:0=",<&spi1>,
112 + <&rtc>, "reg:0=1";
113 + spi2_0 = <0>,"-100",
114 + <&frag101>, "target:0=",<&spi2>,
115 + <&rtc>, "reg:0=0";
116 + spi2_1 = <0>,"-100",
117 + <&frag101>, "target:0=",<&spi2>,
118 + <&rtc>, "reg:0=1";
119 + cs_high = <&rtc>, "spi-cs-high?";
120 +
121 + ds3232 = <0>,"+0";
122 + ds3234 = <0>,"+1";
123 + pcf2123 = <0>,"+2";
124 };
125 };