openwrt/target/linux/brcm2708/patches-4.19/950-0614-overlays-Add-PCF2129-RTC.patch

188 lines
5.2 KiB
Diff
Raw Normal View History

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";