From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753542AbdA3Mvq (ORCPT ); Mon, 30 Jan 2017 07:51:46 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:43702 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753508AbdA3MvM (ORCPT ); Mon, 30 Jan 2017 07:51:12 -0500 X-AuditID: cbfec7ef-f79d26d00000420c-d6-588f33d138c4 From: Marek Szyprowski To: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Marek Szyprowski , Sylwester Nawrocki , Krzysztof Kozlowski , Linus Walleij , Tomasz Figa , Lee Jones , Bartlomiej Zolnierkiewicz Subject: [PATCH v3 2/7] pinctrl: samsung: Ensure that pad retention is disabled on driver init Date: Mon, 30 Jan 2017 13:38:23 +0100 Message-id: <1485779908-32147-3-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1485779908-32147-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrAIsWRmVeSWpSXmKPExsWy7djPc7oXjfsjDOYuFbLYOGM9q8X58xvY Le5/PcpoMeXPciaLTY+vsVpsnv+H0eLyrjlsFjPO72OyWHvkLrvF4TftrBardv1hdOD22Dnr LrvHplWdbB53ru1h89i8pN6jb8sqRo/Pm+QC2KK4bFJSczLLUov07RK4MlqWZRR85ao4fbq2 gXEmZxcjJ4eEgInE3y1fGSFsMYkL99azdTFycQgJLGOUaHn+hxHC+cwoseHoMXaYjt23V7DD Vf26cg+qpYFJYkbjIjaQKjYBQ4mut11gCRGBdkaJu30dTCAOs8AmJom2JSeYQaqEBRIkfr/5 AdbBIqAq8XrfcTCbV8BDYuWFHVD75CROHpvMCmJzCnhKbHl6iBkiPpld4vUNlS5GDiBbVmLT Aaiwi8SWTxOhWoUlXh3fAmXLSHR2HGSCsPsZJZpatSHsGYwS597yQtjWEoePXwRbxSzAJzFp 23RmiPG8Eh1tQhAlHhKPVj1hg7AdJVY8O8sC8fwcRomG/W2sExhlFjAyrGIUSS0tzk1PLTbU K07MLS7NS9dLzs/dxAiM99P/jr/fwfi0OeQQowAHoxIPb4NgX4QQa2JZcWXuIUYJDmYlEd6T qv0RQrwpiZVVqUX58UWlOanFhxilOViUxHn3LrgSLiSQnliSmp2aWpBaBJNl4uCUamBcvnUp 9/PCUNbXWVnrtG//3rqAs57pnfym2wd/tPo8frOn57W6dey0UlfBxISAejZT8z+bwnRent93 YKP8UyG+9IDfbxwWKqvq1zqzb52o/X9ngwbf4VbGoJb713YwLWqYL/o59sHl/VszDhwS+XBr uptL+lLeNMnfeWGPz+j7yYV9vj5pgneeEktxRqKhFnNRcSIAzw92rvMCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeLIzCtJLcpLzFFi42I5/e/4VV1Bk/4Ig6UbxS02zljPanH+/AZ2 i/tfjzJaTPmznMli0+NrrBab5/9htLi8aw6bxYzz+5gs1h65y25x+E07q8WqXX8YHbg9ds66 y+6xaVUnm8eda3vYPDYvqffo27KK0ePzJrkAtig3m4zUxJTUIoXUvOT8lMy8dFul0BA3XQsl hbzE3FRbpQhd35AgJYWyxJxSIM/IAA04OAe4Byvp2yW4ZbQsyyj4ylVx+nRtA+NMzi5GTg4J AROJ3bdXsEPYYhIX7q1n62Lk4hASWMIocfNRCzuE08QkcWXpIRaQKjYBQ4mut11gVSIC7YwS r29fYwJxmAW2MEl0bboINktYIEFi67tHYB0sAqoSr/cdZwOxeQU8JFZe2AG1T07i5LHJrCA2 p4CnxJanh5hBbCGgmvM3/rNMYORdwMiwilEktbQ4Nz232FCvODG3uDQvXS85P3cTIzD4tx37 uXkH46WNwYcYBTgYlXh4bwj3RQixJpYVV+YeYpTgYFYS4T2p2h8hxJuSWFmVWpQfX1Sak1p8 iNEU6KiJzFKiyfnAyMwriTc0MTS3NDQytrAwNzJSEuct+XAlXEggPbEkNTs1tSC1CKaPiYNT qoGx2c7+6YI5/gv+xZzIOf7/0t37JSuZG+pd+ATF7zJzvrqrX/qn+r7uFMGV7+riY9bO2vz0 IVNM58EAPfulE9jXxdhvslx96stdnVurjN7kK9eLXO9YFL295EjpvXczPqVf1Y2a3h+27eyF x3OUe02Ol014e7rDKnNBlOIN5xMaK6dsk/wbxsykocRSnJFoqMVcVJwIAAsK2rCUAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170130123838eucas1p12953af1e9af22e17ed9ca9c49dbd1e9d X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170130123838eucas1p12953af1e9af22e17ed9ca9c49dbd1e9d X-RootMTR: 20170130123838eucas1p12953af1e9af22e17ed9ca9c49dbd1e9d References: <1485779908-32147-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When pin controller device is a part of power domain, there is no guarantee that the power domain was not turned off and then on during boot process before probing of the pin control driver. If it happened, then pin control driver should ensure that pad retention is turned off during its probe call. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski --- drivers/pinctrl/samsung/pinctrl-exynos.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index 63e51b56a22a..fa3802970570 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c @@ -777,6 +777,7 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata) { struct samsung_retention_ctrl *ctrl; struct regmap *pmu_regs; + int i; ctrl = devm_kzalloc(drvdata->dev, sizeof(*ctrl), GFP_KERNEL); if (!ctrl) @@ -794,6 +795,10 @@ static void exynos_retention_disable(struct samsung_pinctrl_drv_data *drvdata) ctrl->enable = exynos_retention_enable; ctrl->disable = exynos_retention_disable; + /* Ensure that retention is disabled on driver init */ + for (i = 0; i < ctrl->nr_regs; i++) + regmap_write(pmu_regs, ctrl->regs[i], ctrl->value); + return ctrl; } -- 1.9.1