From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934570AbdADHTM (ORCPT ); Wed, 4 Jan 2017 02:19:12 -0500 Received: from mail-co1nam03on0065.outbound.protection.outlook.com ([104.47.40.65]:58144 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751670AbdADHTI (ORCPT ); Wed, 4 Jan 2017 02:19:08 -0500 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; From: Peter Chen To: , CC: , , Peter Chen Subject: [PATCH v2 1/1] extcon: usb-gpio: add pinctrl operation during system PM Date: Wed, 4 Jan 2017 15:19:51 +0800 Message-ID: <1483514391-20252-1-git-send-email-peter.chen@nxp.com> X-Mailer: git-send-email 2.7.4 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131279879455237610;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(336005)(39410400002)(39400400002)(39850400002)(39860400002)(39840400002)(39450400003)(39380400002)(2980300002)(1109001)(1110001)(339900001)(199003)(23433003)(189002)(356003)(104016004)(4326007)(8936002)(2906002)(81156014)(5660300001)(105606002)(47776003)(106466001)(81166006)(48376002)(97736004)(85426001)(50466002)(54906002)(5003940100001)(92566002)(305945005)(5001770100001)(68736007)(8676002)(6666003)(50226002)(8656002)(77096006)(38730400001)(50986999)(626004)(33646002)(86362001)(36756003)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR03MB2470;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD033;1:6ph9GLiIV/pNTXGjKX+SqtNzK4b3v55rFBole7qEmsKM+YjZinTR+qRjo6GesYmGg3G8TuWMdwPnkrNElrytEyogsNIXwD1xvwlJkIc2TeHx//YDnuZHm7PnvOgp84PjEg2JQf6d8ggmqWnpIsi41WVgKkBqA4ZjtVYCa6/V/n1+T+7in0GlTpa98z8+LBJVPasQvSBoRklxFw5Jz1gsrNOqRSawygEFrlHqHPpFeT4e1EBRNU+6el6x1kDP0K57j9gw4Ky/HAqR46nQ+EWzzm5IeelQM0K/apbTJOmkDKCNPTc610V0FEi+iBVTHC2UqPypHZLN/eIFhEl/CYz7H4UUBhnR3LwvG6IHA+W9cZsQofiDhvoLoi18jmOHK9hAZE1UW6THgWSAPVeiII8UQ2LNDw51fABMfy8TGCkozke0ZllukZuykvgTfxKimHo3t7cbSq3GabQHOtsA1wTStQCh40jfJeZh3HWXNkVdIcQmF8oLkVe+gGMegoFt7Do2GXqmU4igZ+OUQy2GzR453eKS1f8GmbZGcQJ3AR8HmHSsp+2mpeyQl8jCmcPkK1oZ+8w368/iJmPf3zskkQuDV1AMt9r3WTVGiJBF8PYRGOLGfLh98i9SJQyY+usyk6vTQQVjnTCqGeolpemgkBTd1Q8HELUkCR6bjWTxegdyIcsmQXNHo/KWxGyLr3yHc7Bpcx20qUhE/l6g0QV8hbkxC+n43GrD5L9Ho1LxtRaTqR4= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 7a423c10-07ac-4bf0-848b-08d43471f78a X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2470; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2470;3:7H/kVe6OiL0nvjA+bwMtw0fW2eY5FT5967o2OMnfGObTuYXrtsx6Bu5u/JFCiUxDXm1+EfmtUtJECZdoh95DWppiiWKdbwsqh7h0fpR61J/1Ih9xaQh7tqjDzLNvNUZufakfvUstFsj5lJfJz9kYv4jGb3vU8IJ8Q/JkbdREucjoFCNnGrwcnlT9+d/713lbyuiQV7m3Trba7czUXZOr3WO3eNFslxE4PgEx4hWoyJMP57tOzYA/blxbImOAk6/6X8RO2Gx+VkiSBSNqG5a09C4IdqKTiqxbnxcYErLMK+4Ad3/+AAtG9F5REyYfEbTe2rYdioi0X6cBmvixT6kyO7QlR//kbprE/iQTjZQGa9+eAQjGbemrb31/y857bV0t;25:r0oYLV2fYfe+go6LF+9ILvBKxFdi4QEhBii50hzmD7U7fE24SjIDAOISSu9jfYp16zUEbrlc3EozY+ajOk4sNUEkd42HVGroFvHVJWkoeVE6+6u1Q0TS1GqWdqluuHqPcDvs1sv+lH/E2trWnX8IyWgLFQKaDKKju7PV5k9ZSApPAUdDIoitIK0x+ZGJvGVXFaq0QJNmG3DPUW18agNrGRTHCMdJbJesZO5+HXgkIHVyWjLQeDUHH8pZLJ6Q6GONL51unEJWRMY9Npx9aFea+2DxxGWBdjx/55ypuGpoztqm73rSwl6HYX2z4wupeJ5/mibj2QGThbKdDzMfYyKZdK0LebjStXAKTM2cd9I/zXGHY1fkcoAiNi+fpavwbMdvYlm5SRt2Mf0pothHSd8BRZ5Ae4FfVSkLoakvTE/4VX5W9ml/ziAGSAZ6sR+V3Y4jDWvacK6p65aBN39IdylOgg== X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2470;31:rY/HNP4bYpdSQTiOxdQXUBLdqYMy9PgQ+APeIoEox8XexpTqaVVThIEfAXUq/EvkkjOzbvAYx9y4yCKwuSd7V46/1zfh4yAv7OU4l55CoB7+LL3iihMnI0oJPpS5S1ThOsnKQh1jkMuzBEOpHTRBviSugGGza9cuDv2GQyAv4ByCW58yWZNzZjLE303nkye64PgJ3O2jLMentyO9ydNFKY/yMjHWlWbu8sPeMbfvAxcLpvePRkfD8gDQUZY5mwwFV/t5FkC1N9vfjA5KxyUMk1YRo427OHdW85UeukGi1zo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095060)(601004)(2401047)(13024025)(13023025)(13015025)(13017025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123565025)(20161123563025);SRVR:CY4PR03MB2470;BCL:0;PCL:0;RULEID:(400006);SRVR:CY4PR03MB2470; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2470;4:z7OnCeeqm5KCNRbx0mkfrjI/EpARN9TSL2ohj5oiii0C12m6jfhNS2hEX+GsBpdlQyuFN0igusR19W8bvCxPo9NS3cOZDQWyULNkK4GLa6DlKiQa/j7x6Xyhxmd4OEUrbxI1kESq5g/rDgYD0NnDdKeFGXjzIrGFdw8JkgvuvUbBMxdzhIYi6cmnb29Yv/PTpvJfEPuIIwlPzbQxzDmy0fz9/MWAQYWn2bv0s0X4kAs1s3Nfs1/BVGiYusTjLkvPAuu68XpkWkeE2oZiirBe8GPDB+ntypSxkp9Y0P+zqUC1sLrOv9vWIfxB1lAbHGLs1wdFBzFeRDW8QaZdZYdy6H8IxrtXk7nmDQ4Cc8KzPSxEWdDbCC3w5kOTWJqx7YhYAWX5syD5RXeNb1HkPUX2aYY8kmL2dRv7xP1ZkkwBYp5zKLwnTmxsDqD+4RwrLZv7QUPHegfHtzFIX+bOxcpc+hZw+L5atWKMMZUbI6WrAJShIqOm8OP/mjbXjrWVayLoUUx1mK+Gk3txGpuH8oVhnrOsU1gHylxyJld56D1zMxfrtwwjmdngSEHq/h3/ktBds8/Rm35PxUyFSmmmkTxOeVkRtrijx8Kx8ThQPylRmnSDvGykPAiKjy/cnMh8v8ebx8iRo9/Vw2AWnbP80Fpc28Xr1LM7rHNmMj5u8s5GErzp5jr+XqVST28B22bXik5SXnhOh9l1x8ohzi5RMqpCRoU0nakQWGhOy3b5GDrBSHNglyBhFaGNxZbX9vy3PRw2 X-Forefront-PRVS: 0177904E6B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR03MB2470;23:n3hFllYkcC7j6y1V/YFhjDSPQebRLvofSa7R4kHD4?= =?us-ascii?Q?C1qnPh8HoQtYFAS6S88wd8CrOMEnmLjYq6v/cJy1f+r+Jf1SbHrkZoKMFJyg?= =?us-ascii?Q?IZkplbLQcLzkSO7lsJkLOe3RhXba9NKOmKzIuYf+x4Hbbshl8qtsSzesvqn7?= =?us-ascii?Q?YsaAjXZbVAHWI8/te0mklpkQdNClXD/VhZizIIBCujTGnPWDf0fgAIM4wa4Q?= =?us-ascii?Q?WWu8LF+vhJ+3XMfEFOjxtB87s4lRJdpgQz6WjM4SJ61ihiIrLNh82CHGn+e1?= =?us-ascii?Q?x/ieEbWCT+Cvs+0FRktJk2sITzKLzKagZh8EPu/+4077ZcpvH8g5ZOkT4Ts5?= =?us-ascii?Q?/o9EWYq1A2vnjzCmDkt9n7tCN3PnBsCWntwuoXNR+vPFCiSkIT1QJH7NEr9b?= =?us-ascii?Q?3W0yQJNnrECu3oILrrkrsF0FXjWHrr3PRv9UzAQ7JF4vdJHQU4D+gkv99MAc?= =?us-ascii?Q?nUhAMw1AnYQCIgO4gMpg6Tw+5gFT0uQv5kMTfp44tNuPEEa/A8++eZCZYG8x?= =?us-ascii?Q?6AHGEpYZFOFi1o4enbq5qYomNHn5OZ6792wZZb/SfYGN0FAPFoJ219PdX9wW?= =?us-ascii?Q?RUTXbJnChcA05R0vbWMzjXjORbvN3Wnk5arFM+FfF8MVbUdcwTg9VJbiIadm?= =?us-ascii?Q?1cJ5yHbhUc+pbrytxEtWn1nGyLRJ1zE1ZPvZIff/Y36PCcStv+1GV6iuMFXa?= =?us-ascii?Q?uyySEINppeGJQG80UNHL/uchpX9vvFuzGpxlnxeqr0lZRsW769NfUHCA3txO?= =?us-ascii?Q?ZZaKeGC2uPnXJv+kq5bZpbL0MUKwChLlSmxSFfZE9n+8ck9iHqllwOnk8u75?= =?us-ascii?Q?Gb6mEXKDk7hS9DN9WaNCAAVmXhXjd5GYbupLq7/6b73ozoFG0NI2j8q1xO0l?= =?us-ascii?Q?EGItQmI9Zh+4dUdQQXjtpBeC9gH0BD0kG80L5ufooKY/Jd1R4ntHPyhFBkQw?= =?us-ascii?Q?azRuXzgBZPJPwHTwYe3HqpN8D/jD8MmmiI/qM30k+GuJh2D6IsFomgOwbFgm?= =?us-ascii?Q?FoDbwZicZIkn5BO9X8zIopMn47PIpSHRHROnCNLSFoR6zSIHpPRQPh+j/f7F?= =?us-ascii?Q?7281pSbrdN8dc/KhsTLofLP2UZ84kLwvBxdHWWej8nahh3pzAv0c8mgZlpof?= =?us-ascii?Q?8e4jRxr9doxXrofaJkwDPeh6bMrNRKClNEaxurukOcJxfT5qJtd+iFSOLbvO?= =?us-ascii?Q?y4TpCAaFUlWwKqPsgQOMqVLQwLawxv5rjrWJrxbNKo+9eht0Ax88MxXq6MyD?= =?us-ascii?Q?WbzFWzfQ94t8PjAK2M=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2470;6:K6GeMo8kxhac6gHh+7uGJ8UWKuTQNl4RwnDFhLwfntSchFahyh2KJJrEQUeJH/S4VqBHSfWyvDQkFEkV7++Y+g66CuOEKanDGfOonhkkao/WuOj795TPBw4QF1f0K/SV4abW06E8XEa8enZXMYLU6UZiNFOGliNM1hSDK5/cxOgVepCcOokz0VPgAMzQa7AK3X5pkkbG0DNAUrMTEdWIs2+MzLFdxRPXGPMsWJLsiHWPVCkQKBzOB0eUSzMSc5Y4envjmHpdTCRj97Pflm16N7sUehm3DAnSLM9YIANsHn7ZgNwbyDZhzV63uCJDzzIKSgLP1hU8S6tCAiCBALTkdZPnqZS5c5uknR1dtQSF7AyLNfW6U2WAM349CNt8x6/wyLMnWFSNWdZ3tCImiElDxOu4fExviDBD/4FZbP7ukhOKzdPTmW8hOj7RD1O7nDr4;5:zoXdh2DD+MKu75xHmltwP00IN/crErQFd7mq+zg5hdH3BNXTReOGpf+V8SrdNqdj7QI/N1hsQrhKCTHG3I3VRl1vk1vi9XOvwsOpzVo8SzP5eKD4TfHmVgwrOqtTp++1+qZpnCotZioLD3MzgZYwUiyJ9vGli/tHYeNtL3UuzzIvEZ6OzJMMcDJRsu2BLkBv;24:Os4fviX7VnFM7gRoiLi0Y+M1s5r0n/jjkZlalL4v85p6qWBZ5cno5iNgoQmGHsORPgWu5W0K0EAsaI7EEvtxGKtJtGsGskIWb++trsvlWi8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2470;7:WUyIcqva4VfjirI2yYQ306NWTl+GhsN934XQ8ZFVi/lXKgQJCQl62D59L5xNiSIIiUDv5a/nu6wH4zBO2U7IvSn2JUT5RV6HYIErcMtt9FdCwbvr1tsVEVHj6Au24Tm5/Ih5XNzS/IJL43SD0oRSZNyHVI2HNx5Y1GJVrnIXNBImnB0VxLcuJ8+jzMpq+j8rYWJxjfOnbJlFEcBTAqL8IuuaewI+HwLXoA9G6kN1M2j6ucOYCgsmTDbYrcGMi2r8U7umM/laOK4SaqHK/bObzdjCL1v148yFWIs+oT8VjskgSVTlQxBjBgObEDhTVxDF26YXiVoq9+mDt15xIuYr61zhxrS7O4ryBxrRR4UqHgyYQYlKmAhngw6H/hGP2+psknVfaOU+RMGifzzi3IP14xpcC88T/tlZSP0F94jbUpJUV0v2n7dwQv+NynbjEylJnD066509x6nxWZt55hydFw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2017 07:19:05.3365 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2470 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At some systems, the pinctrl setting will be lost or needs to set as "sleep" state to save power consumption. So, we need to configure pinctrl as "sleep" state when system enters suspend, and as "default" state after system resumes. In this way, the pinctrl value can be recovered as "default" state after resuming. Signed-off-by: Peter Chen --- Changes for v2: - Add header file for pinctrl to avoid build error - Only set pin as "sleep" state when the wakeup is not requested drivers/extcon/extcon-usb-gpio.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c index d589c5f..a5e1882 100644 --- a/drivers/extcon/extcon-usb-gpio.c +++ b/drivers/extcon/extcon-usb-gpio.c @@ -27,6 +27,7 @@ #include #include #include +#include #define USB_GPIO_DEBOUNCE_MS 20 /* ms */ @@ -245,6 +246,9 @@ static int usb_extcon_suspend(struct device *dev) if (info->vbus_gpiod) disable_irq(info->vbus_irq); + if (!device_may_wakeup(dev)) + pinctrl_pm_select_sleep_state(dev); + return ret; } @@ -253,6 +257,9 @@ static int usb_extcon_resume(struct device *dev) struct usb_extcon_info *info = dev_get_drvdata(dev); int ret = 0; + if (!device_may_wakeup(dev)) + pinctrl_pm_select_default_state(dev); + if (device_may_wakeup(dev)) { if (info->id_gpiod) { ret = disable_irq_wake(info->id_irq); -- 2.7.4