Commit 2843d565 authored by Biwen Li's avatar Biwen Li Committed by Alexandre Belloni

rtc: pcf2127: properly set flag WD_CD for rtc chips(pcf2129, pca2129)

Properly set flag WD_CD for rtc chips(pcf2129, pca2129)
Signed-off-by: default avatarBiwen Li <biwen.li@nxp.com>
Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20201202031840.15582-1-biwen.li@oss.nxp.com
parent 198be989
...@@ -558,7 +558,7 @@ static const struct attribute_group pcf2127_attr_group = { ...@@ -558,7 +558,7 @@ static const struct attribute_group pcf2127_attr_group = {
}; };
static int pcf2127_probe(struct device *dev, struct regmap *regmap, static int pcf2127_probe(struct device *dev, struct regmap *regmap,
int alarm_irq, const char *name, bool has_nvmem) int alarm_irq, const char *name, bool is_pcf2127)
{ {
struct pcf2127 *pcf2127; struct pcf2127 *pcf2127;
int ret = 0; int ret = 0;
...@@ -601,7 +601,7 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap, ...@@ -601,7 +601,7 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap,
set_bit(RTC_FEATURE_ALARM, pcf2127->rtc->features); set_bit(RTC_FEATURE_ALARM, pcf2127->rtc->features);
} }
if (has_nvmem) { if (is_pcf2127) {
struct nvmem_config nvmem_cfg = { struct nvmem_config nvmem_cfg = {
.priv = pcf2127, .priv = pcf2127,
.reg_read = pcf2127_nvmem_read, .reg_read = pcf2127_nvmem_read,
...@@ -636,6 +636,10 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap, ...@@ -636,6 +636,10 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap,
* Watchdog timer enabled and reset pin /RST activated when timed out. * Watchdog timer enabled and reset pin /RST activated when timed out.
* Select 1Hz clock source for watchdog timer. * Select 1Hz clock source for watchdog timer.
* Note: Countdown timer disabled and not available. * Note: Countdown timer disabled and not available.
* For pca2129, pcf2129, only bit[7] is for Symbol WD_CD
* of register watchdg_tim_ctl. The bit[6] is labeled
* as T. Bits labeled as T must always be written with
* logic 0.
*/ */
ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_WD_CTL, ret = regmap_update_bits(pcf2127->regmap, PCF2127_REG_WD_CTL,
PCF2127_BIT_WD_CTL_CD1 | PCF2127_BIT_WD_CTL_CD1 |
...@@ -643,7 +647,7 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap, ...@@ -643,7 +647,7 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap,
PCF2127_BIT_WD_CTL_TF1 | PCF2127_BIT_WD_CTL_TF1 |
PCF2127_BIT_WD_CTL_TF0, PCF2127_BIT_WD_CTL_TF0,
PCF2127_BIT_WD_CTL_CD1 | PCF2127_BIT_WD_CTL_CD1 |
PCF2127_BIT_WD_CTL_CD0 | (is_pcf2127 ? PCF2127_BIT_WD_CTL_CD0 : 0) |
PCF2127_BIT_WD_CTL_TF1); PCF2127_BIT_WD_CTL_TF1);
if (ret) { if (ret) {
dev_err(dev, "%s: watchdog config (wd_ctl) failed\n", __func__); dev_err(dev, "%s: watchdog config (wd_ctl) failed\n", __func__);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment