rtc: mt6397: move some common definitions into rtc.h
authorJosef Friedl <josef.friedl@speed.at>
Tue, 10 Sep 2019 07:04:41 +0000 (09:04 +0200)
committerLee Jones <lee.jones@linaro.org>
Thu, 24 Oct 2019 08:03:43 +0000 (09:03 +0100)
move code to separate header-file to reuse definitions later
in poweroff-driver (drivers/power/reset/mt6323-poweroff.c)

Suggested-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Josef Friedl <josef.friedl@speed.at>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/rtc/rtc-mt6397.c
include/linux/mfd/mt6397/rtc.h [new file with mode: 0644]

index 704229eb0cacb9f101fa60f5c58a749d98a6a258..5f76c83e3e9af095954fa2a78e58813d6e6b95c0 100644 (file)
@@ -9,60 +9,7 @@
 #include <linux/module.h>
 #include <linux/regmap.h>
 #include <linux/rtc.h>
-#include <linux/irqdomain.h>
-#include <linux/platform_device.h>
-#include <linux/of_address.h>
-#include <linux/of_irq.h>
-#include <linux/io.h>
-#include <linux/mfd/mt6397/core.h>
-
-#define RTC_BBPU               0x0000
-#define RTC_BBPU_CBUSY         BIT(6)
-
-#define RTC_WRTGR              0x003c
-
-#define RTC_IRQ_STA            0x0002
-#define RTC_IRQ_STA_AL         BIT(0)
-#define RTC_IRQ_STA_LP         BIT(3)
-
-#define RTC_IRQ_EN             0x0004
-#define RTC_IRQ_EN_AL          BIT(0)
-#define RTC_IRQ_EN_ONESHOT     BIT(2)
-#define RTC_IRQ_EN_LP          BIT(3)
-#define RTC_IRQ_EN_ONESHOT_AL  (RTC_IRQ_EN_ONESHOT | RTC_IRQ_EN_AL)
-
-#define RTC_AL_MASK            0x0008
-#define RTC_AL_MASK_DOW                BIT(4)
-
-#define RTC_TC_SEC             0x000a
-/* Min, Hour, Dom... register offset to RTC_TC_SEC */
-#define RTC_OFFSET_SEC         0
-#define RTC_OFFSET_MIN         1
-#define RTC_OFFSET_HOUR                2
-#define RTC_OFFSET_DOM         3
-#define RTC_OFFSET_DOW         4
-#define RTC_OFFSET_MTH         5
-#define RTC_OFFSET_YEAR                6
-#define RTC_OFFSET_COUNT       7
-
-#define RTC_AL_SEC             0x0018
-
-#define RTC_PDN2               0x002e
-#define RTC_PDN2_PWRON_ALARM   BIT(4)
-
-#define RTC_MIN_YEAR           1968
-#define RTC_BASE_YEAR          1900
-#define RTC_NUM_YEARS          128
-#define RTC_MIN_YEAR_OFFSET    (RTC_MIN_YEAR - RTC_BASE_YEAR)
-
-struct mt6397_rtc {
-       struct device           *dev;
-       struct rtc_device       *rtc_dev;
-       struct mutex            lock;
-       struct regmap           *regmap;
-       int                     irq;
-       u32                     addr_base;
-};
+#include <linux/mfd/mt6397/rtc.h>
 
 static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc)
 {
diff --git a/include/linux/mfd/mt6397/rtc.h b/include/linux/mfd/mt6397/rtc.h
new file mode 100644 (file)
index 0000000..f84b916
--- /dev/null
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2014-2019 MediaTek Inc.
+ *
+ * Author: Tianping.Fang <tianping.fang@mediatek.com>
+ *        Sean Wang <sean.wang@mediatek.com>
+ */
+
+#ifndef _LINUX_MFD_MT6397_RTC_H_
+#define _LINUX_MFD_MT6397_RTC_H_
+
+#include <linux/jiffies.h>
+#include <linux/mutex.h>
+#include <linux/regmap.h>
+#include <linux/rtc.h>
+
+#define RTC_BBPU               0x0000
+#define RTC_BBPU_CBUSY         BIT(6)
+#define RTC_BBPU_KEY            (0x43 << 8)
+
+#define RTC_WRTGR              0x003c
+
+#define RTC_IRQ_STA            0x0002
+#define RTC_IRQ_STA_AL         BIT(0)
+#define RTC_IRQ_STA_LP         BIT(3)
+
+#define RTC_IRQ_EN             0x0004
+#define RTC_IRQ_EN_AL          BIT(0)
+#define RTC_IRQ_EN_ONESHOT     BIT(2)
+#define RTC_IRQ_EN_LP          BIT(3)
+#define RTC_IRQ_EN_ONESHOT_AL  (RTC_IRQ_EN_ONESHOT | RTC_IRQ_EN_AL)
+
+#define RTC_AL_MASK            0x0008
+#define RTC_AL_MASK_DOW                BIT(4)
+
+#define RTC_TC_SEC             0x000a
+/* Min, Hour, Dom... register offset to RTC_TC_SEC */
+#define RTC_OFFSET_SEC         0
+#define RTC_OFFSET_MIN         1
+#define RTC_OFFSET_HOUR                2
+#define RTC_OFFSET_DOM         3
+#define RTC_OFFSET_DOW         4
+#define RTC_OFFSET_MTH         5
+#define RTC_OFFSET_YEAR                6
+#define RTC_OFFSET_COUNT       7
+
+#define RTC_AL_SEC             0x0018
+
+#define RTC_PDN2               0x002e
+#define RTC_PDN2_PWRON_ALARM   BIT(4)
+
+#define RTC_MIN_YEAR           1968
+#define RTC_BASE_YEAR          1900
+#define RTC_NUM_YEARS          128
+#define RTC_MIN_YEAR_OFFSET    (RTC_MIN_YEAR - RTC_BASE_YEAR)
+
+#define MTK_RTC_POLL_DELAY_US  10
+#define MTK_RTC_POLL_TIMEOUT   (jiffies_to_usecs(HZ))
+
+struct mt6397_rtc {
+       struct device           *dev;
+       struct rtc_device       *rtc_dev;
+
+       /* Protect register access from multiple tasks */
+       struct mutex            lock;
+       struct regmap           *regmap;
+       int                     irq;
+       u32                     addr_base;
+};
+
+#endif /* _LINUX_MFD_MT6397_RTC_H_ */