Message ID | 53afbe8172fb1afd809ce9ba1afeda924b9ea705.1521794177.git.sean.wang@mediatek.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 23/03/2018 at 17:15:08 +0800, sean.wang@mediatek.com wrote: > From: Sean Wang <sean.wang@mediatek.com> > > This is in preparation for allowing other drivers can share the > declaration, so move the declaration into a globally visible header file. > > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > --- > drivers/rtc/rtc-mt6397.c | 53 +--------------------------------- > include/linux/rtc/mt6397.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++ This should go in include/linux/mfd/ > 2 files changed, 73 insertions(+), 52 deletions(-) > create mode 100644 include/linux/rtc/mt6397.h > > diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c > index d133d1f..015609d 100644 > --- a/drivers/rtc/rtc-mt6397.c > +++ b/drivers/rtc/rtc-mt6397.c > @@ -19,63 +19,12 @@ > #include <linux/of_platform.h> > #include <linux/regmap.h> > #include <linux/rtc.h> > -#include <linux/jiffies.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) > - > -#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; > - struct mutex lock; > - struct regmap *regmap; > - int irq; > - u32 addr_base; > -}; > +#include <linux/rtc/mt6397.h> > > static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) > { > diff --git a/include/linux/rtc/mt6397.h b/include/linux/rtc/mt6397.h > new file mode 100644 > index 0000000..4b19f51 > --- /dev/null > +++ b/include/linux/rtc/mt6397.h > @@ -0,0 +1,72 @@ > + Unnecessary empty line > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright (C) 2014-2018 MediaTek Inc. > + * > + * Author: Tianping.Fang <tianping.fang@mediatek.com> > + * Sean Wang <sean.wang@mediatek.com> > + */ > + > +#ifndef _LINUX_RTC_MT6397_H_ > +#define _LINUX_RTC_MT6397_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_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 registers accessing */ > + struct mutex lock; > + struct regmap *regmap; > + int irq; > + u32 addr_base; > +}; > + > +#endif /* _LINUX_RTC_MT6397_H_ */ > + > -- > 2.7.4 >
On Fri, 2018-03-23 at 10:57 +0100, Alexandre Belloni wrote: > On 23/03/2018 at 17:15:08 +0800, sean.wang@mediatek.com wrote: > > From: Sean Wang <sean.wang@mediatek.com> > > > > This is in preparation for allowing other drivers can share the > > declaration, so move the declaration into a globally visible header file. > > > > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > > --- > > drivers/rtc/rtc-mt6397.c | 53 +--------------------------------- > > include/linux/rtc/mt6397.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++ > > This should go in include/linux/mfd/ include/linux/mfd/mt6397 is present, so include/linux/mfd/mt6397/rtc.h seems a nice place to keep these declarations for the pmic rtc. > > 2 files changed, 73 insertions(+), 52 deletions(-) > > create mode 100644 include/linux/rtc/mt6397.h > > > > diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c > > index d133d1f..015609d 100644 > > --- a/drivers/rtc/rtc-mt6397.c > > +++ b/drivers/rtc/rtc-mt6397.c > > @@ -19,63 +19,12 @@ > > #include <linux/of_platform.h> > > #include <linux/regmap.h> > > #include <linux/rtc.h> > > -#include <linux/jiffies.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) > > - > > -#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; > > - struct mutex lock; > > - struct regmap *regmap; > > - int irq; > > - u32 addr_base; > > -}; > > +#include <linux/rtc/mt6397.h> > > > > static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) > > { > > diff --git a/include/linux/rtc/mt6397.h b/include/linux/rtc/mt6397.h > > new file mode 100644 > > index 0000000..4b19f51 > > --- /dev/null > > +++ b/include/linux/rtc/mt6397.h > > @@ -0,0 +1,72 @@ > > + > > Unnecessary empty line > will remove the unnecessary empty line > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Copyright (C) 2014-2018 MediaTek Inc. > > + * > > + * Author: Tianping.Fang <tianping.fang@mediatek.com> > > + * Sean Wang <sean.wang@mediatek.com> > > + */ > > + > > +#ifndef _LINUX_RTC_MT6397_H_ > > +#define _LINUX_RTC_MT6397_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_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 registers accessing */ > > + struct mutex lock; > > + struct regmap *regmap; > > + int irq; > > + u32 addr_base; > > +}; > > + > > +#endif /* _LINUX_RTC_MT6397_H_ */ > > + > > -- > > 2.7.4 > > >
On 24/03/2018 at 15:31:49 +0800, Sean Wang wrote: > On Fri, 2018-03-23 at 10:57 +0100, Alexandre Belloni wrote: > > On 23/03/2018 at 17:15:08 +0800, sean.wang@mediatek.com wrote: > > > From: Sean Wang <sean.wang@mediatek.com> > > > > > > This is in preparation for allowing other drivers can share the > > > declaration, so move the declaration into a globally visible header file. > > > > > > Signed-off-by: Sean Wang <sean.wang@mediatek.com> > > > --- > > > drivers/rtc/rtc-mt6397.c | 53 +--------------------------------- > > > include/linux/rtc/mt6397.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++ > > > > This should go in include/linux/mfd/ > > include/linux/mfd/mt6397 is present, so include/linux/mfd/mt6397/rtc.h > seems a nice place to keep these declarations for the pmic rtc. > Yes, this seems good to me. > > > 2 files changed, 73 insertions(+), 52 deletions(-) > > > create mode 100644 include/linux/rtc/mt6397.h > > > > > > diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c > > > index d133d1f..015609d 100644 > > > --- a/drivers/rtc/rtc-mt6397.c > > > +++ b/drivers/rtc/rtc-mt6397.c > > > @@ -19,63 +19,12 @@ > > > #include <linux/of_platform.h> > > > #include <linux/regmap.h> > > > #include <linux/rtc.h> > > > -#include <linux/jiffies.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) > > > - > > > -#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; > > > - struct mutex lock; > > > - struct regmap *regmap; > > > - int irq; > > > - u32 addr_base; > > > -}; > > > +#include <linux/rtc/mt6397.h> > > > > > > static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) > > > { > > > diff --git a/include/linux/rtc/mt6397.h b/include/linux/rtc/mt6397.h > > > new file mode 100644 > > > index 0000000..4b19f51 > > > --- /dev/null > > > +++ b/include/linux/rtc/mt6397.h > > > @@ -0,0 +1,72 @@ > > > + > > > > Unnecessary empty line > > > > will remove the unnecessary empty line > > > > +// SPDX-License-Identifier: GPL-2.0 > > > +/* > > > + * Copyright (C) 2014-2018 MediaTek Inc. > > > + * > > > + * Author: Tianping.Fang <tianping.fang@mediatek.com> > > > + * Sean Wang <sean.wang@mediatek.com> > > > + */ > > > + > > > +#ifndef _LINUX_RTC_MT6397_H_ > > > +#define _LINUX_RTC_MT6397_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_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 registers accessing */ > > > + struct mutex lock; > > > + struct regmap *regmap; > > > + int irq; > > > + u32 addr_base; > > > +}; > > > + > > > +#endif /* _LINUX_RTC_MT6397_H_ */ > > > + > > > -- > > > 2.7.4 > > > > > > >
On Fri, Mar 23, 2018 at 6:15 AM, <sean.wang@mediatek.com> wrote: > --- /dev/null > +++ b/include/linux/rtc/mt6397.h > @@ -0,0 +1,72 @@ > + > +// SPDX-License-Identifier: GPL-2.0 According to Documentation/process/license-rules.rst the SPDX notation for C header file should be: /* SPDX-License-Identifier: GPL-2.0 */
On Sat, 2018-03-24 at 17:00 -0300, Fabio Estevam wrote: > On Fri, Mar 23, 2018 at 6:15 AM, <sean.wang@mediatek.com> wrote: > > > --- /dev/null > > +++ b/include/linux/rtc/mt6397.h > > @@ -0,0 +1,72 @@ > > + > > +// SPDX-License-Identifier: GPL-2.0 > > According to Documentation/process/license-rules.rst the SPDX notation > for C header file should be: > > /* SPDX-License-Identifier: GPL-2.0 */ Thank you, I'll have an improvement according to the license rule.
diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c index d133d1f..015609d 100644 --- a/drivers/rtc/rtc-mt6397.c +++ b/drivers/rtc/rtc-mt6397.c @@ -19,63 +19,12 @@ #include <linux/of_platform.h> #include <linux/regmap.h> #include <linux/rtc.h> -#include <linux/jiffies.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) - -#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; - struct mutex lock; - struct regmap *regmap; - int irq; - u32 addr_base; -}; +#include <linux/rtc/mt6397.h> static int mtk_rtc_write_trigger(struct mt6397_rtc *rtc) { diff --git a/include/linux/rtc/mt6397.h b/include/linux/rtc/mt6397.h new file mode 100644 index 0000000..4b19f51 --- /dev/null +++ b/include/linux/rtc/mt6397.h @@ -0,0 +1,72 @@ + +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2014-2018 MediaTek Inc. + * + * Author: Tianping.Fang <tianping.fang@mediatek.com> + * Sean Wang <sean.wang@mediatek.com> + */ + +#ifndef _LINUX_RTC_MT6397_H_ +#define _LINUX_RTC_MT6397_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_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 registers accessing */ + struct mutex lock; + struct regmap *regmap; + int irq; + u32 addr_base; +}; + +#endif /* _LINUX_RTC_MT6397_H_ */ +