diff mbox series

[v2] rtc: Add fallbacks for dm functions

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

Commit Message

Sean Anderson Oct. 11, 2022, 8:06 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")
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---

Changes in v2:
- Include linux/errno.h for ENOSYS. This is needed for some mips boards
  when CONFIG_BLK is enabled for whatever reason.

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

Comments

Tom Rini Oct. 22, 2022, 1:37 a.m. UTC | #1
On Tue, Oct 11, 2022 at 04:06:35PM -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")
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
> 
> Changes in v2:
> - Include linux/errno.h for ENOSYS. This is needed for some mips boards
>   when CONFIG_BLK is enabled for whatever reason.
> 
>  include/rtc.h | 32 +++++++++++++++++++++++++++++---
>  1 file changed, 29 insertions(+), 3 deletions(-)

Almost there, this just breaks chromebook_coral now, but nothing else.
diff mbox series

Patch

diff --git a/include/rtc.h b/include/rtc.h
index 10104e3bf5a..b6fdbb60dc2 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -15,13 +15,12 @@ 
 
 #include <bcd.h>
 #include <rtc_def.h>
+#include <linux/errno.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 +221,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);