From 2308f60bb68de69306c542de3983be0007cad37b Mon Sep 17 00:00:00 2001 From: Phil Elwell 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 --- 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";