From patchwork Sat Oct 24 18:25:43 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Matyukevich X-Patchwork-Id: 36849 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-vw0-f164.google.com (mail-vw0-f164.google.com [209.85.212.164]) by ozlabs.org (Postfix) with ESMTP id 3290FB7BB7 for ; Sun, 25 Oct 2009 05:32:22 +1100 (EST) Received: by vws36 with SMTP id 36so10974808vws.29 for ; Sat, 24 Oct 2009 11:32:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=beta; h=domainkey-signature:received:received:x-sender:x-apparently-to :received:received:received:received-spf:received:dkim-signature :domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references:reply-to:sender :precedence:x-google-loop:mailing-list:list-id:list-post:list-help :list-unsubscribe:x-beenthere-env:x-beenthere; bh=Ht9PpWs34YdlctM5r4faw7ii6tUfP0G+8c9keJD3TIU=; b=bzVg8Ceh0CtTfeDC24iz0jCnqWP1RX1uLHBdRf5h1jEHweW5lW84r0mkAR/fkEvocz M9tUnO28aHTEN6o+sxZbZvKpfI56g3j8VURBZsjD1n322OhaYsn1fsOe5Bk9j4nqJsgP VtqmCdrspkDCQiKGO/GAzqQ5UQEUv2sVoUWyI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlegroups.com; s=beta; h=x-sender:x-apparently-to:received-spf:authentication-results :dkim-signature:domainkey-signature:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references:reply-to:sender :precedence:x-google-loop:mailing-list:list-id:list-post:list-help :list-unsubscribe:x-beenthere-env:x-beenthere; b=v4NHS4/pfLGMUItBTiIsFmT8hE3Cq8t+FGkxalHFEzBl73l/6V1memdFWJoVPbws3I xfx9E7ElLQXGsjwefoAEoo8HFCl49/24bLPk1YqNSjvDA+BgNPZUBEDDY0w5FwNuTwcd DaTNAZjofA6/nrni4+ryFar4Wr1U77mcv++DE= Received: by 10.220.68.201 with SMTP id w9mr1279701vci.15.1256409139968; Sat, 24 Oct 2009 11:32:19 -0700 (PDT) Received: by 10.176.241.26 with SMTP id o26gr2989yqh.0; Sat, 24 Oct 2009 11:32:19 -0700 (PDT) X-Sender: geomatsi@gmail.com X-Apparently-To: rtc-linux@googlegroups.com Received: by 10.211.156.12 with SMTP id i12mr1015272ebo.28.1256409139553; Sat, 24 Oct 2009 11:32:19 -0700 (PDT) Received: by 10.211.156.12 with SMTP id i12mr1015271ebo.28.1256409139518; Sat, 24 Oct 2009 11:32:19 -0700 (PDT) Received: from mail-ew0-f214.google.com (mail-ew0-f214.google.com [209.85.219.214]) by gmr-mx.google.com with ESMTP id 15si737530ewy.4.2009.10.24.11.32.18; Sat, 24 Oct 2009 11:32:18 -0700 (PDT) Received-SPF: pass (google.com: domain of geomatsi@gmail.com designates 209.85.219.214 as permitted sender) client-ip=209.85.219.214; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of geomatsi@gmail.com designates 209.85.219.214 as permitted sender) smtp.mail=geomatsi@gmail.com; dkim=pass (test mode) header.i=@gmail.com Received: by ewy10 with SMTP id 10so12506475ewy.33 for ; Sat, 24 Oct 2009 11:32:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=odW90H/Cb+6uuYPj1vU1FHctBuYiPxvY/7TCRPIR/eE=; b=l8lT/0Z+em/r+gfpbgxhct97OLK6S0Q3NAKQFKQfZgNU6HRlItlu6ZWcKXX9nTdFm9 ehET3seklzCd3LTsLP0bwHRpxb+ni3BbENCea+G775NMeC2mPNod2WYu34FO1mN6v7qy YPh9zq+KackxOA1rQCTtgBC05TZl5Jf28NtOk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=u9JDfi67HRId47qUHAYGM5+8USmueJRMYtL3ZAa8pnB5mcY0VhBVgA+rLgnN6aI+Kn IlWAnVQwAaLGhECL2o9gKbKfQznXDsKFX+YeZ0U7oUOI5546M6g1tlrAVDOc7XCPdvcp PTDP0L7P9br703pgzS7eZP3ma8fu17oi0XktY= Received: by 10.210.9.7 with SMTP id 7mr7659020ebi.5.1256409138424; Sat, 24 Oct 2009 11:32:18 -0700 (PDT) Received: from localhost.localdomain (ppp78-37-31-159.pppoe.avangarddsl.ru [78.37.31.159]) by mx.google.com with ESMTPS id 7sm8910484eyg.17.2009.10.24.11.32.17 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 24 Oct 2009 11:32:18 -0700 (PDT) From: Sergey Matyukevich To: rtc-linux@googlegroups.com Cc: Sergey Lapin Subject: [rtc-linux] [PATCH v2 3/3] RTC: improve readability in fm3130 Date: Sat, 24 Oct 2009 22:25:43 +0400 Message-Id: <1256408743-6644-3-git-send-email-geomatsi@gmail.com> X-Mailer: git-send-email 1.6.2.5 In-Reply-To: <1256408743-6644-2-git-send-email-geomatsi@gmail.com> References: <1256369471-11901-1-git-send-email-geomatsi@gmail.com> <1256408743-6644-1-git-send-email-geomatsi@gmail.com> <1256408743-6644-2-git-send-email-geomatsi@gmail.com> Reply-To: rtc-linux@googlegroups.com Sender: rtc-linux@googlegroups.com Precedence: bulk X-Google-Loop: groups Mailing-List: list rtc-linux@googlegroups.com; contact rtc-linux+owner@googlegroups.com List-Id: List-Post: List-Help: List-Unsubscribe: , X-BeenThere-Env: rtc-linux@googlegroups.com X-BeenThere: rtc-linux@googlegroups.com add whitespaces and empty lines to improve code readability Acked-by: Sergey Lapin --- drivers/rtc/rtc-fm3130.c | 40 +++++++++++++++++++++++++--------------- 1 files changed, 25 insertions(+), 15 deletions(-) diff --git a/drivers/rtc/rtc-fm3130.c b/drivers/rtc/rtc-fm3130.c index 5df991a..db7d41f 100644 --- a/drivers/rtc/rtc-fm3130.c +++ b/drivers/rtc/rtc-fm3130.c @@ -31,15 +31,15 @@ #define FM3130_ALARM_MONTHS (0xd) #define FM3130_ALARM_WP_CONTROL (0xe) -#define FM3130_CAL_CONTROL_BIT_nOSCEN (1 << 7) /* Osciallator enabled */ -#define FM3130_RTC_CONTROL_BIT_LB (1 << 7) /* Low battery */ -#define FM3130_RTC_CONTROL_BIT_AF (1 << 6) /* Alarm flag */ -#define FM3130_RTC_CONTROL_BIT_CF (1 << 5) /* Century overflow */ -#define FM3130_RTC_CONTROL_BIT_POR (1 << 4) /* Power on reset */ -#define FM3130_RTC_CONTROL_BIT_AEN (1 << 3) /* Alarm enable */ -#define FM3130_RTC_CONTROL_BIT_CAL (1 << 2) /* Calibration mode */ -#define FM3130_RTC_CONTROL_BIT_WRITE (1 << 1) /* W=1 -> write mode W=0 normal */ -#define FM3130_RTC_CONTROL_BIT_READ (1 << 0) /* R=1 -> read mode R=0 normal */ +#define FM3130_CAL_CONTROL_BIT_nOSCEN (1 << 7) /* Osciallator enabled */ +#define FM3130_RTC_CONTROL_BIT_LB (1 << 7) /* Low battery */ +#define FM3130_RTC_CONTROL_BIT_AF (1 << 6) /* Alarm flag */ +#define FM3130_RTC_CONTROL_BIT_CF (1 << 5) /* Century overflow */ +#define FM3130_RTC_CONTROL_BIT_POR (1 << 4) /* Power on reset */ +#define FM3130_RTC_CONTROL_BIT_AEN (1 << 3) /* Alarm enable */ +#define FM3130_RTC_CONTROL_BIT_CAL (1 << 2) /* Calibration mode */ +#define FM3130_RTC_CONTROL_BIT_WRITE (1 << 1) /* Write RTC */ +#define FM3130_RTC_CONTROL_BIT_READ (1 << 0) /* Read RTC */ #define FM3130_CLOCK_REGS 7 #define FM3130_ALARM_REGS 5 @@ -54,10 +54,12 @@ struct fm3130 { int alarm_valid; int data_valid; }; + static const struct i2c_device_id fm3130_id[] = { { "fm3130", 0 }, { } }; + MODULE_DEVICE_TABLE(i2c, fm3130_id); #define FM3130_MODE_NORMAL 0 @@ -74,7 +76,7 @@ static void fm3130_rtc_mode(struct device *dev, int mode) case FM3130_MODE_NORMAL: fm3130->regs[FM3130_RTC_CONTROL] &= ~(FM3130_RTC_CONTROL_BIT_WRITE | - FM3130_RTC_CONTROL_BIT_READ); + FM3130_RTC_CONTROL_BIT_READ); break; case FM3130_MODE_WRITE: fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_WRITE; @@ -99,7 +101,7 @@ static int fm3130_get_time(struct device *dev, struct rtc_time *t) if (!fm3130->data_valid) { /* We have invalid data in RTC, probably due to battery faults or other problems. Return EIO - for now, it will allow us to set data later insted + for now, it will allow us to set data later instead of error during probing which disables device */ return -EIO; } @@ -149,12 +151,11 @@ static int fm3130_get_time(struct device *dev, struct rtc_time *t) return rtc_valid_tm(t); } - static int fm3130_set_time(struct device *dev, struct rtc_time *t) { struct fm3130 *fm3130 = dev_get_drvdata(dev); - int tmp, i; - u8 *buf = fm3130->regs; + u8 *buf = fm3130->regs; + int tmp, i; dev_dbg(dev, "%s secs=%d, mins=%d, " "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n", @@ -201,8 +202,8 @@ static int fm3130_set_time(struct device *dev, struct rtc_time *t) static int fm3130_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) { struct fm3130 *fm3130 = dev_get_drvdata(dev); - int tmp; struct rtc_time *tm = &alrm->time; + int tmp; if (!fm3130->alarm_valid) { /* We have invalid alarm in RTC, probably due @@ -215,10 +216,12 @@ static int fm3130_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) /* read the RTC alarm registers all at once */ tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent), &fm3130->msg[2], 2); + if (tmp != 2) { dev_err(dev, "%s error %d\n", "read", tmp); return -EIO; } + dev_dbg(dev, "alarm read %02x %02x %02x %02x %02x\n", fm3130->regs[FM3130_ALARM_SECONDS], fm3130->regs[FM3130_ALARM_MINUTES], @@ -286,12 +289,14 @@ static int fm3130_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) fm3130->regs[FM3130_ALARM_HOURS], fm3130->regs[FM3130_ALARM_DATE], fm3130->regs[FM3130_ALARM_MONTHS]); + /* Writing time registers, we don't support multibyte transfers */ for (i = 0; i < FM3130_ALARM_REGS; i++) { i2c_smbus_write_byte_data(fm3130->client, FM3130_ALARM_SECONDS + i, fm3130->regs[FM3130_ALARM_SECONDS + i]); } + fm3130->regs[FM3130_RTC_CONTROL] = i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL); @@ -414,6 +419,7 @@ static int __devinit fm3130_probe(struct i2c_client *client, fm3130->regs[FM3130_RTC_CONTROL] = i2c_smbus_read_byte_data(client, FM3130_RTC_CONTROL); + fm3130->regs[FM3130_CAL_CONTROL] = i2c_smbus_read_byte_data(client, FM3130_CAL_CONTROL); @@ -456,6 +462,7 @@ static int __devinit fm3130_probe(struct i2c_client *client, ~FM3130_RTC_CONTROL_BIT_POR); dev_dbg(&client->dev, "POR bit is set\n"); } + /* ACS is controlled by alarm */ i2c_smbus_write_byte_data(client, FM3130_ALARM_WP_CONTROL, 0x80); @@ -531,13 +538,16 @@ bad_clock: Time setting from u-boot doesn't work anyway */ fm3130->rtc = rtc_device_register(client->name, &client->dev, &fm3130_rtc_ops, THIS_MODULE); + if (IS_ERR(fm3130->rtc)) { err = PTR_ERR(fm3130->rtc); dev_err(&client->dev, "unable to register the class device\n"); goto exit_free; } + return 0; + exit_free: kfree(fm3130); return err;