From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752708AbcFOGAQ (ORCPT ); Wed, 15 Jun 2016 02:00:16 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:34851 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750882AbcFOGAH (ORCPT ); Wed, 15 Jun 2016 02:00:07 -0400 From: Andrey Smirnov To: rtc-linux@googlegroups.com Cc: Alessandro Zummo , Alexandre Belloni , linux-kernel@vger.kernel.org, Andrey Smirnov Subject: [PATCH 02/13] RTC: ds1307: Disable square wave and timers as default Date: Tue, 14 Jun 2016 22:59:28 -0700 Message-Id: <1465970379-14703-3-git-send-email-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1465970379-14703-1-git-send-email-andrew.smirnov@gmail.com> References: <1465970379-14703-1-git-send-email-andrew.smirnov@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Disable square wave and timers as default for DS1337/39/41 and DS3231. The rationale being that configuring a chip this way puts it into a known state with lower power consumption. While it is not very likely it is still possible that the code controlling RTCs that ran before this driver configured it to produce square wave and left it in such a state. Signed-off-by: Andrey Smirnov --- drivers/rtc/rtc-ds1307.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index 7e65e2e..c618c22 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c @@ -1320,19 +1320,17 @@ static int ds1307_probe(struct i2c_client *client, ds1307->regs[0] &= ~DS1337_BIT_nEOSC; /* - * Using IRQ or defined as wakeup-source? * Disable the square wave and both alarms. * For some variants, be sure alarms can trigger when we're * running on Vbackup (BBSQI/BBSQW) */ - if (chip->alarm && (ds1307->client->irq > 0 || - ds1307_can_wakeup_device)) { - ds1307->regs[0] |= DS1337_BIT_INTCN - | bbsqi_bitpos[ds1307->type]; - ds1307->regs[0] &= ~(DS1337_BIT_A2IE | DS1337_BIT_A1IE); + ds1307->regs[0] |= DS1337_BIT_INTCN + | bbsqi_bitpos[ds1307->type]; + ds1307->regs[0] &= ~(DS1337_BIT_A2IE | DS1337_BIT_A1IE); + if (chip->alarm && (ds1307->client->irq > 0 || + ds1307_can_wakeup_device)) want_irq = true; - } i2c_smbus_write_byte_data(client, DS1337_REG_CONTROL, ds1307->regs[0]); -- 2.5.5