From patchwork Tue Feb 2 13:16:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laxman Dewangan X-Patchwork-Id: 577171 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-vk0-x237.google.com (mail-vk0-x237.google.com [IPv6:2607:f8b0:400c:c05::237]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 8F7BA14076E for ; Wed, 3 Feb 2016 00:28:26 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b=wB9NGAUZ; dkim-atps=neutral Received: by mail-vk0-x237.google.com with SMTP id n1sf51326841vkb.0 for ; Tue, 02 Feb 2016 05:28:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :sender:list-subscribe:list-unsubscribe; bh=FY12CaV1l9W1RERCqyfqNK1JLI+QnQJppzjCMraJt5E=; b=wB9NGAUZgzzSujYShxcObKqxCmAJXOEMOw8BSiy/HpzjiuwKd33ffwqWZtunKUIqDz qQHIUpKVzmB9xgg5PQnLqJtEWj+icEMWwzHruj/Z0uHcIu022+UVIkI0u3I95SFEh0tx RonfqH1H3xnv5dHSroAOrFsFr+3ZO83xcUyV23sfTm6BxVoHMzmQReuA0Ge41r7uhqtY /gUVoO7+Ll1/3aTOdBmxWyRRrQ8DDRXy0ALXAadoM3uJBPJWK0MCvkF9NMtoMrotflb4 6tAFr9+diIqcU0UoeqvTXtEKPk+DFe0DXfb48ngD2zY8txLIhjZhC070FkssWEtmWlPf dxcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-type:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :sender:list-subscribe:list-unsubscribe; bh=FY12CaV1l9W1RERCqyfqNK1JLI+QnQJppzjCMraJt5E=; b=LnTizZ0VxNhORwXZEzRpxgOVEeqCdzezM6lzXsVAdLAPaMn6dVVqxNzam+tL5rVpcN PFW3a8JTJzWViKnuTeWxeJusbF1HvqvmMdBVXt5/FwPWeuNeqQEZrZ2CGaW6uEWdyCQZ UBnBJBMxGQr30Ri5jiKDmALacmyxDKxybxUeE307EMCkluLxwTnxfZoPLUeJDpdsRpTC rYn6jiqmridI1STHOMYTgGAImyNvlFQzZLKKZEGp2b5YSA/fYSvwbJ0qDUOpZ634nF3S 0RK+n4XxSfcYjs3E/Ee1jWUnkUpbNAmS0mWAzzWJp4qYBmnCij7aeR2Xfe3/tASKmis8 D+Wg== X-Gm-Message-State: AG10YORaIiwpA8eXpQaskBxyaFyhRQN1bBYZJ3mcXfb3kAsC8wP7zwutRQpDcE8LVU9rHg== X-Received: by 10.50.18.101 with SMTP id v5mr360542igd.5.1454419704585; Tue, 02 Feb 2016 05:28:24 -0800 (PST) X-BeenThere: rtc-linux@googlegroups.com Received: by 10.50.43.129 with SMTP id w1ls1576163igl.22.canary; Tue, 02 Feb 2016 05:28:24 -0800 (PST) X-Received: by 10.107.11.222 with SMTP id 91mr13419240iol.7.1454419704317; Tue, 02 Feb 2016 05:28:24 -0800 (PST) Received: from hqemgate15.nvidia.com (hqemgate15.nvidia.com. [216.228.121.64]) by gmr-mx.google.com with ESMTPS id jg4si135589pac.2.2016.02.02.05.28.24 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Feb 2016 05:28:24 -0800 (PST) Received-SPF: pass (google.com: domain of ldewangan@nvidia.com designates 216.228.121.64 as permitted sender) client-ip=216.228.121.64; Received: from hqnvupgp08.nvidia.com (Not Verified[216.228.121.13]) by hqemgate15.nvidia.com id ; Tue, 02 Feb 2016 05:28:26 -0800 Received: from hqemhub03.nvidia.com ([172.20.12.94]) by hqnvupgp08.nvidia.com (PGP Universal service); Tue, 02 Feb 2016 05:29:06 -0800 X-PGP-Universal: processed; by hqnvupgp08.nvidia.com on Tue, 02 Feb 2016 05:29:06 -0800 Received: from ldewanganubuntu-System-Product-Name.nvidia.com (172.20.144.16) by hqemhub03.nvidia.com (172.20.150.15) with Microsoft SMTP Server (TLS) id 8.3.406.0; Tue, 2 Feb 2016 05:28:22 -0800 From: Laxman Dewangan To: , , , CC: , , , Laxman Dewangan Subject: [rtc-linux] [PATCH 3/4] rtc: max77686: avoid reference of parent device info multiple palces Date: Tue, 2 Feb 2016 18:46:51 +0530 Message-ID: <1454419012-18050-4-git-send-email-ldewangan@nvidia.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1454419012-18050-1-git-send-email-ldewangan@nvidia.com> References: <1454419012-18050-1-git-send-email-ldewangan@nvidia.com> MIME-Version: 1.0 X-Original-Sender: ldewangan@nvidia.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ldewangan@nvidia.com designates 216.228.121.64 as permitted sender) smtp.mailfrom=ldewangan@nvidia.com Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: rtc-linux@googlegroups.com X-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Get rid of referring parent device info for register access all the places by making regmap as part of max77686 rtc device info. This will also remove the need of storing parent device info in max77686 rtc device info as this is no more required. Signed-off-by: Laxman Dewangan Reviewed-by: Krzysztof Kozlowski Tested-by: Krzysztof Kozlowski Reviewed-by: Javier Martinez Canillas --- drivers/rtc/rtc-max77686.c | 52 ++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c index 11f74ed..ab1f2cd 100644 --- a/drivers/rtc/rtc-max77686.c +++ b/drivers/rtc/rtc-max77686.c @@ -74,12 +74,12 @@ struct max77686_rtc_driver_data { struct max77686_rtc_info { struct device *dev; - struct max77686_dev *max77686; struct i2c_client *rtc; struct rtc_device *rtc_dev; struct mutex lock; struct regmap *regmap; + struct regmap *rtc_regmap; const struct max77686_rtc_driver_data *drv_data; @@ -267,7 +267,7 @@ static int max77686_rtc_update(struct max77686_rtc_info *info, else data = 1 << RTC_RBUDR_SHIFT; - ret = regmap_update_bits(info->max77686->rtc_regmap, + ret = regmap_update_bits(info->rtc_regmap, info->drv_data->map[REG_RTC_UPDATE0], data, data); if (ret < 0) @@ -293,7 +293,7 @@ static int max77686_rtc_read_time(struct device *dev, struct rtc_time *tm) if (ret < 0) goto out; - ret = regmap_bulk_read(info->max77686->rtc_regmap, + ret = regmap_bulk_read(info->rtc_regmap, info->drv_data->map[REG_RTC_SEC], data, ARRAY_SIZE(data)); if (ret < 0) { @@ -322,7 +322,7 @@ static int max77686_rtc_set_time(struct device *dev, struct rtc_time *tm) mutex_lock(&info->lock); - ret = regmap_bulk_write(info->max77686->rtc_regmap, + ret = regmap_bulk_write(info->rtc_regmap, info->drv_data->map[REG_RTC_SEC], data, ARRAY_SIZE(data)); if (ret < 0) { @@ -351,8 +351,8 @@ static int max77686_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) if (ret < 0) goto out; - ret = regmap_bulk_read(info->max77686->rtc_regmap, - map[REG_ALARM1_SEC], data, ARRAY_SIZE(data)); + ret = regmap_bulk_read(info->rtc_regmap, map[REG_ALARM1_SEC], + data, ARRAY_SIZE(data)); if (ret < 0) { dev_err(info->dev, "Fail to read alarm reg(%d)\n", ret); goto out; @@ -370,8 +370,7 @@ static int max77686_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) goto out; } - ret = regmap_read(info->max77686->rtc_regmap, - map[REG_RTC_AE1], &val); + ret = regmap_read(info->rtc_regmap, map[REG_RTC_AE1], &val); if (ret < 0) { dev_err(info->dev, "fail to read alarm enable(%d)\n", ret); @@ -390,7 +389,7 @@ static int max77686_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) } alrm->pending = 0; - ret = regmap_read(info->max77686->regmap, MAX77686_REG_STATUS2, &val); + ret = regmap_read(info->regmap, MAX77686_REG_STATUS2, &val); if (ret < 0) { dev_err(info->dev, "Fail to read status2 reg(%d)\n", ret); goto out; @@ -426,12 +425,10 @@ static int max77686_rtc_stop_alarm(struct max77686_rtc_info *info) goto out; } - ret = regmap_write(info->max77686->rtc_regmap, - map[REG_RTC_AE1], 0); + ret = regmap_write(info->rtc_regmap, map[REG_RTC_AE1], 0); } else { - ret = regmap_bulk_read(info->max77686->rtc_regmap, - map[REG_ALARM1_SEC], data, - ARRAY_SIZE(data)); + ret = regmap_bulk_read(info->rtc_regmap, map[REG_ALARM1_SEC], + data, ARRAY_SIZE(data)); if (ret < 0) { dev_err(info->dev, "Fail to read alarm reg(%d)\n", ret); goto out; @@ -442,9 +439,8 @@ static int max77686_rtc_stop_alarm(struct max77686_rtc_info *info) for (i = 0; i < ARRAY_SIZE(data); i++) data[i] &= ~ALARM_ENABLE_MASK; - ret = regmap_bulk_write(info->max77686->rtc_regmap, - map[REG_ALARM1_SEC], data, - ARRAY_SIZE(data)); + ret = regmap_bulk_write(info->rtc_regmap, map[REG_ALARM1_SEC], + data, ARRAY_SIZE(data)); } if (ret < 0) { @@ -472,12 +468,11 @@ static int max77686_rtc_start_alarm(struct max77686_rtc_info *info) goto out; if (info->drv_data->alarm_enable_reg) { - ret = regmap_write(info->max77686->rtc_regmap, map[REG_RTC_AE1], + ret = regmap_write(info->rtc_regmap, map[REG_RTC_AE1], MAX77802_ALARM_ENABLE_VALUE); } else { - ret = regmap_bulk_read(info->max77686->rtc_regmap, - map[REG_ALARM1_SEC], data, - ARRAY_SIZE(data)); + ret = regmap_bulk_read(info->rtc_regmap, map[REG_ALARM1_SEC], + data, ARRAY_SIZE(data)); if (ret < 0) { dev_err(info->dev, "Fail to read alarm reg(%d)\n", ret); goto out; @@ -496,9 +491,8 @@ static int max77686_rtc_start_alarm(struct max77686_rtc_info *info) if (data[RTC_DATE] & 0x1f) data[RTC_DATE] |= (1 << ALARM_ENABLE_SHIFT); - ret = regmap_bulk_write(info->max77686->rtc_regmap, - map[REG_ALARM1_SEC], data, - ARRAY_SIZE(data)); + ret = regmap_bulk_write(info->rtc_regmap, map[REG_ALARM1_SEC], + data, ARRAY_SIZE(data)); } if (ret < 0) { @@ -527,7 +521,7 @@ static int max77686_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) if (ret < 0) goto out; - ret = regmap_bulk_write(info->max77686->rtc_regmap, + ret = regmap_bulk_write(info->rtc_regmap, info->drv_data->map[REG_ALARM1_SEC], data, ARRAY_SIZE(data)); @@ -593,7 +587,7 @@ static int max77686_rtc_init_reg(struct max77686_rtc_info *info) info->rtc_24hr_mode = 1; - ret = regmap_bulk_write(info->max77686->rtc_regmap, + ret = regmap_bulk_write(info->rtc_regmap, info->drv_data->map[REG_RTC_CONTROLM], data, ARRAY_SIZE(data)); if (ret < 0) { @@ -619,13 +613,13 @@ static int max77686_rtc_probe(struct platform_device *pdev) mutex_init(&info->lock); info->dev = &pdev->dev; - info->max77686 = max77686; info->rtc = max77686->rtc; info->drv_data = (const struct max77686_rtc_driver_data *) id->driver_data; - if (!info->drv_data->separate_i2c_addr) - info->max77686->rtc_regmap = info->max77686->regmap; + info->regmap = max77686->regmap; + info->rtc_regmap = (info->drv_data->separate_i2c_addr) ? + max77686->rtc_regmap : info->regmap; platform_set_drvdata(pdev, info);