Thread (17 messages) 17 messages, 6 authors, 2020-04-01

Re: [PATCH v10 4/5] rtc: mt6397: Add support for the MediaTek MT6358 RTC

From: Ran Bi <hidden>
Date: 2020-03-13 08:31:18
Also in: linux-devicetree, linux-mediatek, linux-pm, linux-rtc, lkml

On Fri, 2020-03-13 at 07:22 +0000, Lee Jones wrote:
On Thu, 12 Mar 2020, Ran Bi wrote:
quoted
On Thu, 2020-03-12 at 07:44 +0000, Lee Jones wrote:
quoted
On Wed, 11 Mar 2020, Hsin-Hsiung Wang wrote:
quoted
From: Ran Bi <redacted>

This add support for the MediaTek MT6358 RTC. Driver using
compatible data to store different RTC_WRTGR address offset.
This replace RTC_WRTGR to RTC_WRTGR_MT6323 in mt6323-poweroff
driver which only needed by armv7 CPU without ATF.

Signed-off-by: Ran Bi <redacted>
Signed-off-by: Hsin-Hsiung Wang <redacted>
---
 drivers/power/reset/mt6323-poweroff.c |  2 +-
 drivers/rtc/rtc-mt6397.c              | 32 ++++++++++++++++++++++++--------
 include/linux/mfd/mt6397/rtc.h        |  9 ++++++++-
 3 files changed, 33 insertions(+), 10 deletions(-)
<...>
quoted
quoted
 
 #define RTC_IRQ_STA            0x0002
 #define RTC_IRQ_STA_AL         BIT(0)
@@ -65,6 +67,10 @@
 #define MTK_RTC_POLL_DELAY_US  10
 #define MTK_RTC_POLL_TIMEOUT   (jiffies_to_usecs(HZ))
 
+struct mtk_rtc_data {
+	u32			wrtgr;
+};
Do you expect to add more properties to this struct?

If not, it seems a bit overkill.
Yes, we would add more properties here in future patches.
quoted
quoted
 struct mt6397_rtc {
 	struct device           *dev;
 	struct rtc_device       *rtc_dev;
@@ -74,6 +80,7 @@ struct mt6397_rtc {
 	struct regmap           *regmap;
 	int                     irq;
 	u32                     addr_base;
+	const struct mtk_rtc_data *data;
'data' is a terrible variable name.

Why do you need to store this?

It's one variable which is used once AFAICT.
I would rename 'data' to 'config'.

This struct will be extended in future patches to achieve more PMIC chip
compatibility.
On closer inspection, it looks like wrtgr (also not a great name for a
variable by the way) is a register address.  Is that correct?
Initially I thought it was a model number, which would have been a
suitable candidate for entry into OF .data.

However, describing register addresses in OF .data does not sound like
good practice.  It is usually used to identify a platform in the cases
where platforms cannot be otherwise dynamically interrogated for model
number via a register read.

Describing register maps via 'config' data is a slippery slope.
wrtgr is a special register called "write trigger" which could apply RTC
register change after write 1 to this register. I suppose I could rename
it to "trigger".

Most RTC register offset was same between 6397 and 6358 PMIC chip except
this trigger register. So I would like to store this difference into OF
data. Otherwise, I need a long if-else condition based on model number
or register read.
 
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help