rtc: s35392a: add compatible strings
[oweals/u-boot.git] / drivers / rtc / ds1307.c
index 5e74b93b72bcd316ed24a0713a0513521b5c7ba0..a33f47525f787e95c2c7b83f647ff1ea30771b2a 100644 (file)
@@ -1,10 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2001, 2002, 2003
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  * Keith Outwater, keith_outwater@mvis.com`
  * Steven Scholz, steven.scholz@imc-berlin.de
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
@@ -24,6 +23,7 @@ enum ds_type {
        ds_1307,
        ds_1337,
        ds_1340,
+       m41t11,
        mcp794xx,
 };
 
@@ -52,8 +52,6 @@ enum ds_type {
 
 #ifndef CONFIG_DM_RTC
 
-#if defined(CONFIG_CMD_DATE)
-
 /*---------------------------------------------------------------------*/
 #undef DEBUG_RTC
 
@@ -205,8 +203,6 @@ static void rtc_write (uchar reg, uchar val)
        i2c_reg_write (CONFIG_SYS_I2C_RTC_ADDR, reg, val);
 }
 
-#endif /* CONFIG_CMD_DATE*/
-
 #endif /* !CONFIG_DM_RTC */
 
 #ifdef CONFIG_DM_RTC
@@ -265,6 +261,18 @@ read_rtc:
                }
        }
 
+       if (type == m41t11) {
+               /* clock halted?  turn it on, so clock can tick. */
+               if (buf[RTC_SEC_REG_ADDR] & RTC_SEC_BIT_CH) {
+                       buf[RTC_SEC_REG_ADDR] &= ~RTC_SEC_BIT_CH;
+                       dm_i2c_reg_write(dev, RTC_SEC_REG_ADDR,
+                                        MCP7941X_BIT_ST);
+                       dm_i2c_reg_write(dev, RTC_SEC_REG_ADDR,
+                                        buf[RTC_SEC_REG_ADDR]);
+                       goto read_rtc;
+               }
+       }
+
        if (type == mcp794xx) {
                /* make sure that the backup battery is enabled */
                if (!(buf[RTC_DAY_REG_ADDR] & MCP7941X_BIT_VBATEN)) {
@@ -337,6 +345,7 @@ static const struct udevice_id ds1307_rtc_ids[] = {
        { .compatible = "dallas,ds1337", .data = ds_1337 },
        { .compatible = "dallas,ds1340", .data = ds_1340 },
        { .compatible = "microchip,mcp7941x", .data = mcp794xx },
+       { .compatible = "st,m41t11", .data = m41t11 },
        { }
 };