diff mbox series

rtc: Add fallbacks for dm functions

Message ID 20220923183016.2303086-1-sean.anderson@seco.com
State Changes Requested
Delegated to: Tom Rini
Headers show
Series rtc: Add fallbacks for dm functions | expand

Commit Message

Sean Anderson Sept. 23, 2022, 6:30 p.m. UTC
This adds fallbacks for the various dm_rtc_* functions. This allows
common code to use these functions without ifdefs.

Fixes: c8ce7ba87d1 ("misc: Add support for nvmem cells")
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---

 include/rtc.h | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

Comments

Simon Glass Sept. 24, 2022, 2:01 p.m. UTC | #1
On Fri, 23 Sept 2022 at 12:30, Sean Anderson <sean.anderson@seco.com> wrote:
>
> This adds fallbacks for the various dm_rtc_* functions. This allows
> common code to use these functions without ifdefs.
>
> Fixes: c8ce7ba87d1 ("misc: Add support for nvmem cells")
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
>
>  include/rtc.h | 31 ++++++++++++++++++++++++++++---
>  1 file changed, 28 insertions(+), 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini Oct. 11, 2022, 7:40 p.m. UTC | #2
On Fri, Sep 23, 2022 at 02:30:16PM -0400, Sean Anderson wrote:

> This adds fallbacks for the various dm_rtc_* functions. This allows
> common code to use these functions without ifdefs.
> 
> Fixes: c8ce7ba87d1 ("misc: Add support for nvmem cells")
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

This breaks a number of platforms such as malta64el:
+include/rtc.h: In function 'dm_rtc_get':
+include/rtc.h:225:17: error: 'ENOSYS' undeclared (first use in this function)
+  225 |         return -ENOSYS;
+      |                 ^~~~~~
diff mbox series

Patch

diff --git a/include/rtc.h b/include/rtc.h
index 10104e3bf5a..4bd5f7468d0 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -17,11 +17,9 @@ 
 #include <rtc_def.h>
 
 typedef int64_t time64_t;
-
-#ifdef CONFIG_DM_RTC
-
 struct udevice;
 
+#if CONFIG_IS_ENABLED(DM_RTC)
 struct rtc_ops {
 	/**
 	 * get() - get the current time
@@ -222,6 +220,33 @@  int rtc_enable_32khz_output(int busnum, int chip_addr);
 #endif
 
 #else
+static inline int dm_rtc_get(struct udevice *dev, struct rtc_time *time)
+{
+	return -ENOSYS;
+}
+
+static inline int dm_rtc_set(struct udevice *dev, struct rtc_time *time)
+{
+	return -ENOSYS;
+}
+
+static inline int dm_rtc_reset(struct udevice *dev)
+{
+	return -ENOSYS;
+}
+
+static inline int dm_rtc_read(struct udevice *dev, unsigned int reg, u8 *buf,
+			      unsigned int len)
+{
+	return -ENOSYS;
+}
+
+static inline int dm_rtc_write(struct udevice *dev, unsigned int reg,
+			       const u8 *buf, unsigned int len)
+{
+	return -ENOSYS;
+}
+
 int rtc_get (struct rtc_time *);
 int rtc_set (struct rtc_time *);
 void rtc_reset (void);