From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Subject: Re: [PATCH v3 2/3] mmc: sdhci-of-arasan: add phy support for sdhci-of-arasan Date: Tue, 20 Oct 2015 09:30:51 +0200 Message-ID: <5625EDAB.70707@xilinx.com> References: <1445324718-31407-1-git-send-email-shawn.lin@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1445324718-31407-1-git-send-email-shawn.lin@rock-chips.com> Sender: linux-kernel-owner@vger.kernel.org To: Shawn Lin , Ulf Hansson , Michal Simek , soren.brinkmann@xilinx.com Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org List-Id: linux-mmc@vger.kernel.org Hi, On 10/20/2015 09:05 AM, Shawn Lin wrote: > This patch adds Generic PHY access for sdhci-of-arasan. Driver > can get PHY handler from dt-binding, and power-on/init the PHY. > Also we add pm ops for PHY here if CONFIG_PM_SLEEP is enabled. > Currently, it's just mandatory for arasan,sdhci-5.1. > > Signed-off-by: Shawn Lin > > Serise-changes: 3 > - remove phy_init/exit for suspend/resume > - adjust phy_int/power_on seq to make code more reasonable > - simplify suspend/resume_phy > > Serise-changes: 2 > - Keep phy as a mandatory requirement for arasan,sdhci-5.1 > > --- > > Changes in v2: None > > drivers/mmc/host/sdhci-of-arasan.c | 87 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 87 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c > index 75379cb..85bd0f9d 100644 > --- a/drivers/mmc/host/sdhci-of-arasan.c > +++ b/drivers/mmc/host/sdhci-of-arasan.c > @@ -21,6 +21,7 @@ > > #include > #include > +#include > #include "sdhci-pltfm.h" > > #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c > @@ -35,6 +36,7 @@ > */ > struct sdhci_arasan_data { > struct clk *clk_ahb; > + struct phy *phy; > }; > > static unsigned int sdhci_arasan_get_timeout_clock(struct sdhci_host *host) > @@ -70,6 +72,42 @@ static struct sdhci_pltfm_data sdhci_arasan_pdata = { > > #ifdef CONFIG_PM_SLEEP > /** > + * sdhci_arasan_suspend_phy - Suspend phy method for the driver > + * @phy: Handler of phy structure > + * Returns 0 on success and error value on error > + * > + * Put the phy in a deactive state. > + */ This is not kernel-doc format. Try this and fix it. ./scripts/kernel-doc -man -v drivers/mmc/host/sdhci-of-arasan.c > /dev/null > +static int sdhci_arasan_suspend_phy(struct phy *phy) > +{ > + int ret = 0; > + > + ret = phy_power_off(phy); > + if (ret) > + phy_power_on(phy); I am curious about this logic. If power_off fails I would expect that phy could still have power_on. Or not? Thanks, Michal From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752814AbbJTHb5 (ORCPT ); Tue, 20 Oct 2015 03:31:57 -0400 Received: from mail-by2on0057.outbound.protection.outlook.com ([207.46.100.57]:48576 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752502AbbJTHbz (ORCPT ); Tue, 20 Oct 2015 03:31:55 -0400 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Subject: Re: [PATCH v3 2/3] mmc: sdhci-of-arasan: add phy support for sdhci-of-arasan To: Shawn Lin , Ulf Hansson , Michal Simek , References: <1445324718-31407-1-git-send-email-shawn.lin@rock-chips.com> CC: , From: Michal Simek Message-ID: <5625EDAB.70707@xilinx.com> Date: Tue, 20 Oct 2015 09:30:51 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1445324718-31407-1-git-send-email-shawn.lin@rock-chips.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-21890.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD014;1:vNwULzIi6DjgiTSK5mh/IcDPRpqWnC09CE/RxKSrVFikW2mJYnq+u3TAwDW6+60USf4UXMH9istefa+vR2whqUmGUnvx+1iWDJmJ62dTrwq6idVr7LsEXXBU/qKOw6AB7txWwYIXRcv/GSZnF/RVXSrkn0mTTwYXYb8+/fJPSjPJrxLiA8pBkyvdSXe5StMrGFAQ+yAqN7PORfrOfuJrMQcLZqPHtpRlGO1/faQm4TIPt254vz60VYWzngQdcnsE3w5qkNPgezt0Rhpu2LMY0tlQrLg+UEwDC43XVg3H38UY4kZCPOQ7Ii6t8zFNmNCJI5vMr/2DHZf+OF9//qBu1GIJEdHVCfCKTaxdJbEvVUgDhJ0VOZ1fYfSDPz6V3/3tBsXKBJZojlU/jAOHQyrrdw== X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(189002)(479174004)(24454002)(164054003)(377454003)(199003)(5001960100002)(36386004)(86362001)(23746002)(50986999)(77096005)(230783001)(2950100001)(16796002)(76176999)(19580405001)(189998001)(36756003)(4001350100001)(575784001)(87936001)(19580395003)(65816999)(81156007)(5001770100001)(54356999)(106466001)(64126003)(50466002)(33656002)(4001450100002)(65956001)(83506001)(92566002)(47776003)(5008740100001)(64706001)(63266004)(46102003)(65806001)(11100500001)(5007970100001)(6806005)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN1AFFO11HUB019;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11HUB019;2:85lzWBWi7rCZlkfZA5o/+FX7iWEKkiuS79y7BKm/mtjRDKwVqzlUUqav5SQS3BZzkEH3NHFxgdzcNIKglQJrq23Fm/WKXF8OP8kNfXhEY0NOLJ0T5uHQxi9oR2J3MlG0Uy78mHNSfJJORtGpgN6Iae0fVO4lFjbot7pcaATQ/jk=;3:g2o0lLWt/qfjSlt5NMJipJ5TSf7KAKZXxLVkfqI7WV6karvhxbPyzSlKDW54UZDsulHxK7Myn0IiThXMVeTwPGW1AIPcFBhUOm/OxQUR3fShOah1TLvcCLKd5ARD4I2EH6jm3LC3MeoNMnHbcly8cbgHg0niNF/sctkOFx73fr88jABWQVfatBCg2Dg+ktweoYX0Xu6A7NLWE5joBcbKD8VCbptHOdOeK19y7PzBq/HMIFJh1OP7eP6DFGDMf/u13QYU1U3vJ2u0tjYn+c40Ww==;25:/xgGrMLfEYuZv31JYrvpquGfzPadlgj32zQCxtMYqtvVkzxCFSRgzKZlmX0JKYPbjhcHEmvNztfOqk2UGk/6YlQ4e0+CYoLdD1a3CfnB06pT9kfFFfZBfL1jG54866DG5sRQ41pPJkb9n2RbA6snmCtP/YK8qwYOvFhy+OjDwG24X9k0H2CNDAJOM6x0R5AuFkkrs/vPVT0oSB550D4lrVRQ+5SX2ORYm6lcWCIdlTtnqv4zLG5EuQ7sWwzZqXRb X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501001);SRVR:BN1AFFO11HUB019; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11HUB019;20:mQ3G9BD5VgEueg55lH+iKCiPDVb8hF7UuKPxXobsjHnizhmoMxYpbcywkURdqQZFrGkw/ywdteiA5W7SGYermCHthVVsCTFXPikY61iS1WKBgir4L4omN4x6mVdV4iVt420DLcq4ZcAIMwh4RLc0LOBbkZ4E3698EviNJT0/5QmuLQx+njknI4iOD2pLLqabdwLbCDnRtEOEJVEwhYszdhe1W6DgYOJDqzySIkvmI/oUx5BPkidW8RETLV2TGK1Y0DKAXuSe9Mp6dT6ASm0fyQGacyXx1mxwGpqirGE8IT9dDJU70e8txjesOJbnG+/BLfzRBICAcgF/UpaypanVLnkXbYErtarwDRNezdQVSkWDyjO0Rk311HP5zn1vIohleIHGywmPeaO8HNwS2J+uRT98WmiGyTF/RjTvqx+on/THaHk37umc86SL/+LIxiEXbwCI5o1CgHRxYJ/r3vyNBpMJslk+1RevsbhxEnXW3ys5vlzJ8MgHEr4vxcXiOjfi;4:mjoq+qSG53J+7c5R+XV8Y6Z1KHPJBabg3dHcO9KSW6PjeYZiHpqt2kMxjq4PCTVNapuff2yBDy4xCDtezSqj26e0nSYlYP4hKGX4Z5jjNpz6mV6KcjigoBrUcaSbAwExCKeMijWuj8mM99CkenHS/nGfUwA8gnwtwU9u/pR+CVlA4XTlalqDLWZh19KOagoxozna3mpcbBExCExZkqP4pPYX6X8qlohB7SPDwWxDRcdkPQuSrqa1YjqMzEvPChfTjyDXvuWtH+o5gKZJ4D2FS4GAZV5UjZNV4/ZDVk8MWqQqud7EWrvm7d4MI8TAqZuQEOy/wG8uxsANxn6QFWxFR3UunDlavXW8ffwAa3abn33G8U/2ugL0TXQ7J5nlFOtr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10115024);SRVR:BN1AFFO11HUB019;BCL:0;PCL:0;RULEID:;SRVR:BN1AFFO11HUB019; X-Forefront-PRVS: 073515755F X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BN1AFFO11HUB019;23:eOg8Xkk6+J5cQMxlWo6qxdFPHv7SwQAQSKx?= =?Windows-1252?Q?CUq440hGm+kWl2ta+DnQuqDgfr+slMvpVUPGFhCkDGd4HIROzk6uHZFz?= =?Windows-1252?Q?g9R00x8GcF8Q4cgg71Vyp9IkQnmsuNmwTjzd4Twnfk2N3YMgyTabMMmH?= =?Windows-1252?Q?NAISjw8lf5KffP/ofLBB1Z4y1sM6yBvjB+TDcMVF58ax6ZUAQVEGJTU/?= =?Windows-1252?Q?fQK7Rly0AAWmYQu6/CBN9tKgYgZwoyN/VyZ7qqhkVG8GOf1v+JbZWT0o?= =?Windows-1252?Q?uUOKPfgJTNrOxje1wRfzDejNAMckWxfJvjdJfTj78wrBXIGouPWYZWvE?= =?Windows-1252?Q?JbaYL8fWjlX9uVWG+G1VbfbWq4Fs7HqF+7IW2E4qGOzKQ/WTH8IlSJcs?= =?Windows-1252?Q?mDKDFOf3OkGXM7YcwbcbkWz1QXSLMbQj92AB6X2LUSlMuMKibsZhtJvT?= =?Windows-1252?Q?HzXWIr03DBzXWJSLpuIxXtQD4JLhAzIkM1r/HJP6H1i+n42Q9MxV8SoS?= =?Windows-1252?Q?1hVnxqWaPu+crzCEBiTycp2yqMGiKAhhZ3V4fwq96NG0RKhDgN+Q+NRh?= =?Windows-1252?Q?UM0PA74N30a5KL5phgAvR74uz6jHo1vF5K4MVgnXSeePHMUmR/C/eEqP?= =?Windows-1252?Q?F6tLD+AT6JK9zqF+W6XjS7lzhB+cxB34t3EpLO2qKp41puiDZpYJ4TBz?= =?Windows-1252?Q?8PrO8kMBOKjQWp431zyjrTxrorOMyUacp9rkmQQ6AltTwFEhYJes7riL?= =?Windows-1252?Q?45YXQ5V7h0sSvJc2EgD+/udASnFq6QJxedOSIa0hy/gIS4TK5d+QSR0d?= =?Windows-1252?Q?ahMKczpQf7yiPyX+PkdArLbmqUVZvLaAk7BrKJLhmZLt71aIwo32obDj?= =?Windows-1252?Q?LxdXJCTA8QKDJZz0kUWmO2Btny3hLjne6YSpZfVblcWdlR5WhSLUX4oi?= =?Windows-1252?Q?F1mHGxWwQ4FHxv16rrP5AD+UPsA6tczgzmnjTV+RIKsRp/EpfhBkPzSc?= =?Windows-1252?Q?X8WUX/dGDAtmWanuQa1UlcFsQfi7XabPjKiVjjJBePKx7IJqT3VdFKf2?= =?Windows-1252?Q?o9hNdQMvZFOKcm0nHAxbMlZx7mSW9PWfYv5soo7PLGpStWzrMqLBty2K?= =?Windows-1252?Q?C/cWOkmcpX7PmvSYoI6yFQedmU/VZwPn7J5hMSyz6mlJTOToredmOsK4?= =?Windows-1252?Q?GGVJXodOeu1hGM9G3dZ6J9n+Qa9bZsvDxvUppa0PwAR+6UwT5xi36c8i?= =?Windows-1252?Q?HJz4xJEMKv1yXDyNLsH0dXqyAl3Pox1QjqCVt9wEORZ2En6G8kuDB27v?= =?Windows-1252?Q?AdkUjhr26XS9b9IJe7GVW+Oc1sRu8bhtYV4gdGD0uewUzCkjxxGvwami?= =?Windows-1252?Q?6BH1224ItD35Lhn1deJ8q7QWWuKF85ImeMw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11HUB019;5:RbJKrEWyMidJyIo79HGuz5EMMyFvcZt+3Z/iChLOgmtLj5txqYNsbMQGdUtv9ShWwgIrUd+nd/dL7hs/jA8058xiz6O6Dn4xmPkKhloPEyg/AT3KYwcz/O+PyS5nkFtZhqELbmxy7t+xEWUKdZzg3g==;24:+eOesoKK6N0aFoBaZyx8Hb1UBtvmWN7nPFVsf5O0+CQjIrg60iLBxQH4cDCdgB5VXOnFys9LBcRb+yydvfWFwmr19T5SNxVfnL7q6ja5MVI= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2015 07:31:53.4068 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1AFFO11HUB019 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 10/20/2015 09:05 AM, Shawn Lin wrote: > This patch adds Generic PHY access for sdhci-of-arasan. Driver > can get PHY handler from dt-binding, and power-on/init the PHY. > Also we add pm ops for PHY here if CONFIG_PM_SLEEP is enabled. > Currently, it's just mandatory for arasan,sdhci-5.1. > > Signed-off-by: Shawn Lin > > Serise-changes: 3 > - remove phy_init/exit for suspend/resume > - adjust phy_int/power_on seq to make code more reasonable > - simplify suspend/resume_phy > > Serise-changes: 2 > - Keep phy as a mandatory requirement for arasan,sdhci-5.1 > > --- > > Changes in v2: None > > drivers/mmc/host/sdhci-of-arasan.c | 87 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 87 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c > index 75379cb..85bd0f9d 100644 > --- a/drivers/mmc/host/sdhci-of-arasan.c > +++ b/drivers/mmc/host/sdhci-of-arasan.c > @@ -21,6 +21,7 @@ > > #include > #include > +#include > #include "sdhci-pltfm.h" > > #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c > @@ -35,6 +36,7 @@ > */ > struct sdhci_arasan_data { > struct clk *clk_ahb; > + struct phy *phy; > }; > > static unsigned int sdhci_arasan_get_timeout_clock(struct sdhci_host *host) > @@ -70,6 +72,42 @@ static struct sdhci_pltfm_data sdhci_arasan_pdata = { > > #ifdef CONFIG_PM_SLEEP > /** > + * sdhci_arasan_suspend_phy - Suspend phy method for the driver > + * @phy: Handler of phy structure > + * Returns 0 on success and error value on error > + * > + * Put the phy in a deactive state. > + */ This is not kernel-doc format. Try this and fix it. ./scripts/kernel-doc -man -v drivers/mmc/host/sdhci-of-arasan.c > /dev/null > +static int sdhci_arasan_suspend_phy(struct phy *phy) > +{ > + int ret = 0; > + > + ret = phy_power_off(phy); > + if (ret) > + phy_power_on(phy); I am curious about this logic. If power_off fails I would expect that phy could still have power_on. Or not? Thanks, Michal