From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753328AbcA0CWk (ORCPT ); Tue, 26 Jan 2016 21:22:40 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:46924 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751745AbcA0CWf (ORCPT ); Tue, 26 Jan 2016 21:22:35 -0500 X-AuditID: cbfee68f-f793a6d000001364-ad-56a829e991eb Date: Wed, 27 Jan 2016 11:22:32 +0900 From: Andi Shyti To: Javier Martinez Canillas Cc: linux-kernel@vger.kernel.org, Kukjin Kim , rtc-linux@googlegroups.com, Chanwoo Choi , Alexandre Belloni , Krzysztof Kozlowski , Laxman Dewangan , linux-samsung-soc@vger.kernel.org Subject: Re: [PATCH v3 06/10] rtc: max77686: Add max77802 support Message-id: <20160127022232.GH14296@samsunx.samsung> References: <1453836020-29579-1-git-send-email-javier@osg.samsung.com> <1453836020-29579-7-git-send-email-javier@osg.samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-disposition: inline In-reply-to: <1453836020-29579-7-git-send-email-javier@osg.samsung.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrOIsWRmVeSWpSXmKPExsWyRsSkQPel5oowg3NtIhYd1xYzWVz/8pzV 4s3bNUwWr18YWvQ/fs1ssXTfahaLy7vmsFnMOL+PyWJ/ZwejA6fHk00XGT32TDzJ5rFpVSeb R2/zOzaPLf132T36tqxi9Pi8SS6APYrLJiU1J7MstUjfLoEr4+bRZUwFXcIVJ38tY2xg/MXX xcjJISFgInHl8FR2CFtM4sK99WxdjFwcQgIrGCWWdFxihSn6fOQIK0RiKaPEodtNLBDOR0aJ 7tOvmECqWARUJT63zQCz2QQ0JZpu/2ADsUUETCV+rX0B1s0ssJdJovHVHRaQhLCAo0TvnmWM XYwcHLxAK1pu+kAMbWaUaPs2H6yGV0BQ4sfke2A2s4CWxPqdx5kgbGmJR39ngN3NKeAusWj+ LrA5ogIqEq8O1oPMkRD4yC4xb98XqOMEJL5NPsQCUiMhICux6QAzxGeSEgdX3GCZwCg2C8m2 WUi2zUKybQEj8ypG0dSC5ILipPQiY73ixNzi0rx0veT83E2MwPg8/e9Z/w7GuwesDzEKcDAq 8fDe2L88TIg1say4MvcQoynQFROZpUST84FJIK8k3tDYzMjC1MTU2Mjc0kxJnHeh1M9gIYH0 xJLU7NTUgtSi+KLSnNTiQ4xMHJxSDYyhPA5yO48/l/JbVH6Q3yW5RtGCx+SkjN88CwHtLu47 uxx3hil8Wl53/8vcIv+7EzaujtPzC5j56aVmi0/NKpms/yuSXcyfLuyTvLPFKiDY58e/35cz c8uY/314/eLxqbOXg2e7MctwPr0emnxf539erpvcEY6DOUHTzXotvix0+zUzWyHOwECJpTgj 0VCLuag4EQDdPqogygIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphleLIzCtJLcpLzFFi42I5/e+xgO5LzRVhBj8ucVt0XFvMZHH9y3NW izdv1zBZvH5haNH/+DWzxdJ9q1ksLu+aw2Yx4/w+Jov9nR2MDpweTzZdZPTYM/Ekm8emVZ1s Hr3N79g8tvTfZffo27KK0ePzJrkA9qgGRpuM1MSU1CKF1Lzk/JTMvHRbJe/geOd4UzMDQ11D SwtzJYW8xNxUWyUXnwBdt8wcoNOUFMoSc0qBQgGJxcVK+naYJoSGuOlawDRG6PqGBMH1GBmg gYQ1jBk3jy5jKugSrjj5axljA+Mvvi5GTg4JAROJz0eOsELYYhIX7q1n62Lk4hASWMooceh2 EwuE85FRovv0KyaQKhYBVYnPbTPAbDYBTYmm2z/YQGwRAVOJX2tfsII0MAvsZZJofHWHBSQh LOAo0btnGWMXIwcHL9C6lps+EEObGSXavs0Hq+EVEJT4MfkemM0soCWxfudxJghbWuLR3xns IDangLvEovm7wOaICqhIvDpYP4FRYBaS7llIumch6V7AyLyKUSK1ILmgOCk91zAvtVyvODG3 uDQvXS85P3cTIzgFPJPawXhwl/shRgEORiUe3hv7l4cJsSaWFVfmHmKU4GBWEuHtUVoRJsSb klhZlVqUH19UmpNafIjRFBggE5mlRJPzgekpryTe0NjEzMjSyNzQwsjYXEmct/ZSZJiQQHpi SWp2ampBahFMHxMHp1QD49yHXNfFJlsZnuuYdW+eEYtvbKnCuTAbpu03FRNVZR411Z5VY3i2 TazocvT3soncr49UKbZ4PXwsXR3CJFRycN+b8H7J8t83UxsvFpfPmObYWX5ddG68weFdf13D Jr3l3zXnBQuT4lsuztgl936sehRu6Pd+YQGz1PW/CTqdj/eGas6VtpxzU4mlOCPRUIu5qDgR AKmstCoXAwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 26, 2016 at 04:20:16PM -0300, Javier Martinez Canillas wrote: > The MAX77686 and MAX77802 RTC IP blocks are very similar with only > these differences: > > 0) The RTC registers layout and addresses are different. > > 1) The MAX77686 use 1 bit of the sec/min/hour/etc registers as the > alarm enable while MAX77802 has a separate register for that. > > 2) The MAX77686 RTCYEAR register valid values range is 0..99 while > for MAX77802 is 0..199. > > 3) The MAX77686 has a separate I2C address for the RTC registers > while the MAX77802 uses the same I2C address as the PMIC regs. > > 5) The minimum delay before a RTC update (16 msecs vs 200 usecs). > > There are separate drivers for MAX77686 and MAX77802 RTC IP blocks > but the differences are not that big so the driver can be extended > to support both instead of duplicating a lot of code in 2 drivers. > > Suggested-by: Krzysztof Kozlowski > Signed-off-by: Javier Martinez Canillas > Acked-by: Laxman Dewangan Reviewed-by: Andi Shyti Just a nitpick, though. > -static int max77686_rtc_tm_to_data(struct rtc_time *tm, u8 *data) > +static int max77686_rtc_tm_to_data(struct rtc_time *tm, u8 *data, > + struct max77686_rtc_info *info) > { > data[RTC_SEC] = tm->tm_sec; > data[RTC_MIN] = tm->tm_min; > @@ -178,13 +240,19 @@ static int max77686_rtc_tm_to_data(struct rtc_time *tm, u8 *data) > data[RTC_WEEKDAY] = 1 << tm->tm_wday; > data[RTC_DATE] = tm->tm_mday; > data[RTC_MONTH] = tm->tm_mon + 1; > - data[RTC_YEAR] = tm->tm_year > 100 ? (tm->tm_year - 100) : 0; > > - if (tm->tm_year < 100) { > - pr_warn("RTC cannot handle the year %d. Assume it's 2000.\n", > - 1900 + tm->tm_year); > - return -EINVAL; > + if (!info->drv_data->alarm_enable_reg) { > + data[RTC_YEAR] = tm->tm_year > 100 ? (tm->tm_year - 100) : 0; > + > + if (tm->tm_year < 100) { > + pr_warn("RTC can't handle year %d. Assume it's 2000.\n", > + 1900 + tm->tm_year); > + return -EINVAL; > + } > + } else { > + data[RTC_YEAR] = tm->tm_year; > } > + This can be written als as: if (info->drv_data->alarm_enable_reg) { data[RTC_YEAR] = tm->tm_year; return 0; } [ ... the rest without any indentation ...] We make also Krzysztof happy by avoiding the if (!...) > return 0; > }