brcm2708: organize kernel patches
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0642-overlays-Add-PCF2129-RTC.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0642-overlays-Add-PCF2129-RTC.patch b/target/linux/brcm2708/patches-4.19/950-0642-overlays-Add-PCF2129-RTC.patch
new file mode 100644 (file)
index 0000000..7bddfdc
--- /dev/null
@@ -0,0 +1,187 @@
+From 2308f60bb68de69306c542de3983be0007cad37b Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 15 Jul 2019 10:39:05 +0100
+Subject: [PATCH] overlays: Add PCF2129 RTC
+
+Add support for the PCF2129 RTC to i2c-rtc and i2c-rtc-gpio overlays.
+Also add rv3028 to i2c-rtc-gpio (it was missed previously), and don't
+attempt to set an alternate address for the PCF2127.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/overlays/README             | 11 ++++-
+ .../dts/overlays/i2c-rtc-gpio-overlay.dts     | 41 +++++++++++++++++--
+ .../arm/boot/dts/overlays/i2c-rtc-overlay.dts | 19 ++++++++-
+ 3 files changed, 64 insertions(+), 7 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -1022,6 +1022,8 @@ Params: abx80x                  Select o
+         pcf2127                 Select the PCF2127 device
++        pcf2129                 Select the PCF2129 device
++
+         pcf8523                 Select the PCF8523 device
+         pcf8563                 Select the PCF8563 device
+@@ -1067,10 +1069,14 @@ Params: abx80x                  Select o
+         pcf2127                 Select the PCF2127 device
++        pcf2129                 Select the PCF2129 device
++
+         pcf8523                 Select the PCF8523 device
+         pcf8563                 Select the PCF8563 device
++        rv3028                  Select the Micro Crystal RV3028 device
++
+         addr                    Sets the address for the RTC. Note that the
+                                 device must be configured to use the specified
+                                 address.
+@@ -1079,11 +1085,14 @@ Params: abx80x                  Select o
+                                 "schottky" (ABx80x only)
+         trickle-resistor-ohms   Resistor value for trickle charge (DS1339,
+-                                ABx80x)
++                                ABx80x, RV3028)
+         wakeup-source           Specify that the RTC can be used as a wakeup
+                                 source
++        backup-switchover-mode  Backup power supply switch mode. Must be 0 for
++                                off or 1 for Vdd < VBackup (RV3028 only)
++
+         i2c_gpio_sda            GPIO used for I2C data (default "23")
+         i2c_gpio_scl            GPIO used for I2C clock (default "24")
+--- a/arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts
++++ b/arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts
+@@ -121,7 +121,7 @@
+                       #size-cells = <0>;
+                       status = "okay";
+-                      pcf2127: pcf2127@51 {
++                      pcf2127@51 {
+                               compatible = "nxp,pcf2127";
+                               reg = <0x51>;
+                               status = "okay";
+@@ -174,6 +174,36 @@
+               };
+       };
++      fragment@11 {
++              target = <&i2c_gpio>;
++              __dormant__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      rv3028: rv3028@52 {
++                              compatible = "microcrystal,rv3028";
++                              reg = <0x52>;
++                              status = "okay";
++                      };
++              };
++      };
++
++      fragment@12 {
++              target = <&i2c_gpio>;
++              __dormant__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      pcf2129@51 {
++                              compatible = "nxp,pcf2129";
++                              reg = <0x51>;
++                              status = "okay";
++                      };
++              };
++      };
++
+       __overrides__ {
+               abx80x = <0>,"+1";
+               ds1307 = <0>,"+2";
+@@ -185,6 +215,8 @@
+               pcf8523 = <0>,"+8";
+               pcf8563 = <0>,"+9";
+               m41t62 = <0>,"+10";
++              rv3028 = <0>,"+11";
++              pcf2129 = <0>,"+12";
+               addr = <&abx80x>, "reg:0",
+                      <&ds1307>, "reg:0",
+@@ -192,18 +224,19 @@
+                      <&ds3231>, "reg:0",
+                      <&mcp7940x>, "reg:0",
+                      <&mcp7941x>, "reg:0",
+-                     <&pcf2127>, "reg:0",
+                      <&pcf8523>, "reg:0",
+                      <&pcf8563>, "reg:0",
+                      <&m41t62>, "reg:0";
+               trickle-diode-type = <&abx80x>,"abracon,tc-diode";
+               trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0",
+-                                      <&abx80x>,"abracon,tc-resistor";
++                                      <&abx80x>,"abracon,tc-resistor",
++                                      <&rv3028>,"trickle-resistor-ohms:0";
++              backup-switchover-mode = <&rv3028>,"backup-switchover-mode:0";
+               wakeup-source = <&ds1339>,"wakeup-source?",
+                               <&ds3231>,"wakeup-source?",
+                               <&mcp7940x>,"wakeup-source?",
+-                                      <&mcp7941x>,"wakeup-source?";
++                              <&mcp7941x>,"wakeup-source?";
+               i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
+               i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
+               i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
+--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
++++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
+@@ -105,7 +105,7 @@
+                       #size-cells = <0>;
+                       status = "okay";
+-                      pcf2127: pcf2127@51 {
++                      pcf2127@51 {
+                               compatible = "nxp,pcf2127";
+                               reg = <0x51>;
+                               status = "okay";
+@@ -173,6 +173,21 @@
+               };
+       };
++      fragment@11 {
++              target = <&i2c_arm>;
++              __dormant__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      pcf2129@51 {
++                              compatible = "nxp,pcf2129";
++                              reg = <0x51>;
++                              status = "okay";
++                      };
++              };
++      };
++
+       __overrides__ {
+               abx80x = <0>,"+0";
+               ds1307 = <0>,"+1";
+@@ -185,6 +200,7 @@
+               pcf8563 = <0>,"+8";
+               m41t62 = <0>,"+9";
+               rv3028 = <0>,"+10";
++              pcf2129 = <0>,"+11";
+               addr = <&abx80x>, "reg:0",
+                      <&ds1307>, "reg:0",
+@@ -192,7 +208,6 @@
+                      <&ds3231>, "reg:0",
+                      <&mcp7940x>, "reg:0",
+                      <&mcp7941x>, "reg:0",
+-                     <&pcf2127>, "reg:0",
+                      <&pcf8523>, "reg:0",
+                      <&pcf8563>, "reg:0",
+                      <&m41t62>, "reg:0";