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