All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Lapa <chris@lapa.com.au>
To: Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	dwmw2@infradead.org, dbaryshkov@gmail.com, sre@kernel.org,
	mark.rutland@arm.com, robh+dt@kernel.org
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pm@vger.kernel.org
Subject: Re: [PATCH v3 4/7] max8903: adds requesting of gpios.
Date: Sun, 19 Jun 2016 23:51:07 +1000	[thread overview]
Message-ID: <3ec2ecbd-8f88-99bf-0d5d-bf3252cd61fd@lapa.com.au> (raw)
In-Reply-To: <576398F7.4050704@samsung.com>

On 17/06/2016 4:30 PM, Krzysztof Kozlowski wrote:
> On 06/17/2016 07:00 AM, Chris Lapa wrote:
>> From: Chris Lapa <chris@lapa.com.au>
>>
>> This change ensures all gpios are available for the driver to use.
>>
>> Signed-off-by: Chris Lapa <chris@lapa.com.au>
>> ---
>>  drivers/power/max8903_charger.c | 79 ++++++++++++++++++++++++++++++++++++-----
>>  1 file changed, 70 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/power/max8903_charger.c b/drivers/power/max8903_charger.c
>> index dbd911c4..c068efe 100644
>> --- a/drivers/power/max8903_charger.c
>> +++ b/drivers/power/max8903_charger.c
>> @@ -212,6 +212,16 @@ static int max8903_probe(struct platform_device *pdev)
>>
>>  	if (pdata->dc_valid) {
>>  		if (pdata->dok && gpio_is_valid(pdata->dok)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->dok,
>
> No need to split these two arguments. They fit in 80 chars.
>
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for dok: %d err %d\n",
>> +						pdata->dok, ret);
>
> Indentation here is wrong. These should be aligned to first argument (dev).
>
>> +				return -EINVAL;
>
> Return 'ret'.
>
> All these three comments apply also to code below.
>
> Anyway the probe function is getting bigger and more difficult to read.
> Consider factoring out some code to a separate function. For example all
> the GPIO handling stuff could be factored.
>
> Best regards,
> Krzysztof

Good idea, I've split the gpio setup code into a function named: 
max8903_setup_gpios()

Also fixed the other issues you mentioned above.

Thanks,
Chris

>
>> +			}
>> +
>>  			gpio = pdata->dok; /* PULL_UPed Interrupt */
>>  			ta_in = gpio_get_value(gpio) ? 0 : 1;
>>  		} else {
>> @@ -223,6 +233,16 @@ static int max8903_probe(struct platform_device *pdev)
>>
>>  	if (pdata->dcm) {
>>  		if (gpio_is_valid(pdata->dcm)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->dcm,
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for dcm: %d err %d\n",
>> +						pdata->dcm, ret);
>> +				return -EINVAL;
>> +			}
>> +
>>  			gpio = pdata->dcm; /* Output */
>>  			gpio_set_value(gpio, ta_in);
>>  		} else {
>> @@ -233,6 +253,16 @@ static int max8903_probe(struct platform_device *pdev)
>>
>>  	if (pdata->usb_valid) {
>>  		if (pdata->uok && gpio_is_valid(pdata->uok)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->uok,
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for uok: %d err %d\n",
>> +						pdata->uok, ret);
>> +				return -EINVAL;
>> +			}
>> +
>>  			gpio = pdata->uok;
>>  			usb_in = gpio_get_value(gpio) ? 0 : 1;
>>  		} else {
>> @@ -244,6 +274,16 @@ static int max8903_probe(struct platform_device *pdev)
>>
>>  	if (pdata->cen) {
>>  		if (gpio_is_valid(pdata->cen)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->cen,
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for cen: %d err %d\n",
>> +						pdata->cen, ret);
>> +				return -EINVAL;
>> +			}
>> +
>>  			gpio_set_value(pdata->cen, (ta_in || usb_in) ? 0 : 1);
>>  		} else {
>>  			dev_err(dev, "Invalid pin: cen.\n");
>> @@ -252,23 +292,44 @@ static int max8903_probe(struct platform_device *pdev)
>>  	}
>>
>>  	if (pdata->chg) {
>> -		if (!gpio_is_valid(pdata->chg)) {
>> -			dev_err(dev, "Invalid pin: chg.\n");
>> -			return -EINVAL;
>> +		if (gpio_is_valid(pdata->chg)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->chg,
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for chg: %d err %d\n",
>> +						pdata->chg, ret);
>> +				return -EINVAL;
>> +			}
>>  		}
>>  	}
>>
>>  	if (pdata->flt) {
>> -		if (!gpio_is_valid(pdata->flt)) {
>> -			dev_err(dev, "Invalid pin: flt.\n");
>> -			return -EINVAL;
>> +		if (gpio_is_valid(pdata->flt)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->flt,
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for flt: %d err %d\n",
>> +						pdata->flt, ret);
>> +				return -EINVAL;
>> +			}
>>  		}
>>  	}
>>
>>  	if (pdata->usus) {
>> -		if (!gpio_is_valid(pdata->usus)) {
>> -			dev_err(dev, "Invalid pin: usus.\n");
>> -			return -EINVAL;
>> +		if (gpio_is_valid(pdata->usus)) {
>> +			ret = devm_gpio_request(dev,
>> +						pdata->usus,
>> +						data->psy_desc.name);
>> +			if (ret) {
>> +				dev_err(dev,
>> +						"Failed GPIO request for usus: %d err %d\n",
>> +						pdata->usus, ret);
>> +				return -EINVAL;
>> +			}
>>  		}
>>  	}
>>
>>
>

  reply	other threads:[~2016-06-19 13:51 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-02  6:44 [PATCH 0/2] max8903: Add device tree support and logic fixup chris
2016-06-02  6:44 ` [PATCH 1/2] max8903: adds support for initiation via device tree chris
2016-06-09 10:35   ` Krzysztof Kozlowski
2016-06-10  5:35     ` Chris Lapa
2016-06-10  6:13       ` Krzysztof Kozlowski
2016-06-10 10:23         ` Krzysztof Kozlowski
2016-06-02  6:44 ` [PATCH 2/2] max8903: cleans up confusing relationship between dc_valid, dok and dcm chris
2016-06-10 12:32   ` [PATCH v2 0/4] max8903: Add device tree support and logic fixup Chris Lapa
2016-06-10 12:32     ` [PATCH v2 1/4] max8903: adds documentation for device tree bindings Chris Lapa
2016-06-10 13:51       ` Krzysztof Kozlowski
2016-06-14  1:54         ` Chris Lapa
2016-06-16  6:35           ` Krzysztof Kozlowski
2016-06-16  6:48             ` Chris Lapa
2016-06-10 12:32     ` [PATCH v2 2/4] max8903: adds support for initiation via device tree Chris Lapa
2016-06-10 14:02       ` Krzysztof Kozlowski
2016-06-14  1:50         ` Chris Lapa
2016-06-10 12:32     ` [PATCH v2 3/4] max8903: cleans up confusing relationship between dc_valid, dok and dcm Chris Lapa
2016-06-10 12:32     ` [PATCH v2 4/4] max8903: remove unnecessary malloc failed message print out Chris Lapa
2016-06-10 14:08       ` Krzysztof Kozlowski
2016-06-17  5:00   ` [PATCH v3 0/7] max8903: Add device tree support and misc fixes Chris Lapa
2016-06-17  5:00     ` [PATCH v3 1/7] max8903: adds documentation for device tree bindings Chris Lapa
2016-06-17  6:15       ` Krzysztof Kozlowski
2016-06-20 13:22       ` Rob Herring
2016-06-20 23:43         ` Chris Lapa
2016-06-17  5:00     ` [PATCH v3 2/7] max8903: store pointer to pdata instead of copying it Chris Lapa
2016-06-17  6:14       ` Krzysztof Kozlowski
2016-06-17  5:00     ` [PATCH v3 3/7] max8903: cleans up confusing relationship between dc_valid, dok and dcm Chris Lapa
2016-06-17  6:23       ` Krzysztof Kozlowski
2016-06-17  6:26       ` Krzysztof Kozlowski
2016-06-17  6:28         ` Chris Lapa
2016-06-17  6:42           ` Krzysztof Kozlowski
2016-06-19 13:48         ` Chris Lapa
2016-06-17  5:00     ` [PATCH v3 4/7] max8903: adds requesting of gpios Chris Lapa
2016-06-17  5:00       ` Chris Lapa
2016-06-17  6:30       ` Krzysztof Kozlowski
2016-06-19 13:51         ` Chris Lapa [this message]
2016-06-17  5:00     ` [PATCH v3 5/7] max8903: removes non zero validity checks on gpios Chris Lapa
2016-06-17  5:00       ` Chris Lapa
2016-06-17  6:35       ` Krzysztof Kozlowski
2016-06-17  5:00     ` [PATCH v3 6/7] max8903: remove unnecessary 'out of memory' error message Chris Lapa
2016-06-17  6:35       ` Krzysztof Kozlowski
2016-06-17  5:00     ` [PATCH v3 7/7] max8903: adds support for initiation via device tree Chris Lapa
2016-06-17  6:41       ` Krzysztof Kozlowski
2016-06-19 13:52         ` Chris Lapa
2016-06-19 22:27   ` [PATCH v4 0/7] max8903: Add device tree support and misc fixes Chris Lapa
2016-06-19 22:27     ` Chris Lapa
2016-06-19 22:27     ` [PATCH v4 1/7] max8903: adds documentation for device tree bindings Chris Lapa
2016-06-20 12:17       ` Krzysztof Kozlowski
2016-06-19 22:27     ` [PATCH v4 2/7] max8903: store pointer to pdata instead of copying it Chris Lapa
2016-06-20 12:18       ` Krzysztof Kozlowski
2016-06-19 22:27     ` [PATCH v4 3/7] max8903: cleans up confusing relationship between dc_valid, dok and dcm Chris Lapa
2016-06-20 12:18       ` Krzysztof Kozlowski
2016-06-19 22:27     ` [PATCH v4 4/7] max8903: adds requesting of gpios Chris Lapa
2016-06-20 12:20       ` Krzysztof Kozlowski
2016-06-19 22:27     ` [PATCH v4 5/7] max8903: removes non zero validity checks on gpios Chris Lapa
2016-06-19 22:27       ` Chris Lapa
2016-06-20 12:21       ` Krzysztof Kozlowski
2016-06-19 22:27     ` [PATCH v4 6/7] max8903: remove unnecessary 'out of memory' error message Chris Lapa
2016-06-20 12:22       ` Krzysztof Kozlowski
2016-06-19 22:27     ` [PATCH v4 7/7] max8903: adds support for initiation via device tree Chris Lapa
2016-06-20 12:23       ` Krzysztof Kozlowski
2016-06-20 12:23         ` Krzysztof Kozlowski
2016-06-24  2:26   ` [PATCH v5 0/7] max8903: Add device tree support and misc fixes Chris Lapa
2016-06-24  2:26     ` [PATCH v5 1/7] max8903: adds documentation for device tree bindings Chris Lapa
2016-06-28 20:55       ` Rob Herring
2016-06-24  2:26     ` [PATCH v5 2/7] max8903: store pointer to pdata instead of copying it Chris Lapa
2016-06-24  2:26     ` [PATCH v5 3/7] max8903: cleans up confusing relationship between dc_valid, dok and dcm Chris Lapa
2016-06-24  2:26     ` [PATCH v5 4/7] max8903: adds requesting of gpios Chris Lapa
2016-06-24  2:26     ` [PATCH v5 5/7] max8903: removes non zero validity checks on gpios Chris Lapa
2016-06-24  2:26     ` [PATCH v5 6/7] max8903: remove unnecessary 'out of memory' error message Chris Lapa
2016-06-24  2:26     ` [PATCH v5 7/7] max8903: adds support for initiation via device tree Chris Lapa
2016-06-28 18:16     ` [PATCH v5 0/7] max8903: Add device tree support and misc fixes Sebastian Reichel
2016-06-28 23:05       ` Chris Lapa
2016-06-28 23:05         ` Chris Lapa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3ec2ecbd-8f88-99bf-0d5d-bf3252cd61fd@lapa.com.au \
    --to=chris@lapa.com.au \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=k.kozlowski@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.