2017-02-07 05:22:13

by Heiko Schocher

[permalink] [raw]
Subject: [PATCH] Make EN2 pin optional in the TRF7970A driver

From: Guan Ben <[email protected]>

Make the EN2 pin optional. This is useful for boards,
which have this pin fix wired, for example to ground.

Signed-off-by: Guan Ben <[email protected]>
Signed-off-by: Mark Jonas <[email protected]>
Signed-off-by: Heiko Schocher <[email protected]>

---

.../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
drivers/nfc/trf7970a.c | 26 ++++++++++++----------
2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
index 32b35a0..5889a3d 100644
--- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
+++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
@@ -5,8 +5,8 @@ Required properties:
- spi-max-frequency: Maximum SPI frequency (<= 2000000).
- interrupt-parent: phandle of parent interrupt handler.
- interrupts: A single interrupt specifier.
-- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on the
- TRF7970A.
+- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2' pins on the
+ TRF7970A. EN2 is optional.
- vin-supply: Regulator for supply voltage to VIN pin

Optional SoC Specific Properties:
diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
index 26c9dbb..75079fb 100644
--- a/drivers/nfc/trf7970a.c
+++ b/drivers/nfc/trf7970a.c
@@ -1885,8 +1885,10 @@ static int trf7970a_power_up(struct trf7970a *trf)
usleep_range(5000, 6000);

if (!(trf->quirks & TRF7970A_QUIRK_EN2_MUST_STAY_LOW)) {
- gpio_set_value(trf->en2_gpio, 1);
- usleep_range(1000, 2000);
+ if (gpio_is_valid(trf->en2_gpio)) {
+ gpio_set_value(trf->en2_gpio, 1);
+ usleep_range(1000, 2000);
+ }
}

gpio_set_value(trf->en_gpio, 1);
@@ -1914,7 +1916,8 @@ static int trf7970a_power_down(struct trf7970a *trf)
}

gpio_set_value(trf->en_gpio, 0);
- gpio_set_value(trf->en2_gpio, 0);
+ if (gpio_is_valid(trf->en2_gpio))
+ gpio_set_value(trf->en2_gpio, 0);

ret = regulator_disable(trf->regulator);
if (ret)
@@ -2032,15 +2035,14 @@ static int trf7970a_probe(struct spi_device *spi)

trf->en2_gpio = of_get_named_gpio(np, "ti,enable-gpios", 1);
if (!gpio_is_valid(trf->en2_gpio)) {
- dev_err(trf->dev, "No EN2 GPIO property\n");
- return trf->en2_gpio;
- }
-
- ret = devm_gpio_request_one(trf->dev, trf->en2_gpio,
- GPIOF_DIR_OUT | GPIOF_INIT_LOW, "trf7970a EN2");
- if (ret) {
- dev_err(trf->dev, "Can't request EN2 GPIO: %d\n", ret);
- return ret;
+ dev_info(trf->dev, "No EN2 GPIO property\n");
+ } else {
+ ret = devm_gpio_request_one(trf->dev, trf->en2_gpio,
+ GPIOF_DIR_OUT | GPIOF_INIT_LOW, "trf7970a EN2");
+ if (ret) {
+ dev_err(trf->dev, "Can't request EN2 GPIO: %d\n", ret);
+ return ret;
+ }
}

if (of_property_read_bool(np, "en2-rf-quirk"))
--
2.7.4


2017-02-10 15:57:42

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
> From: Guan Ben <[email protected]>
>
> Make the EN2 pin optional. This is useful for boards,
> which have this pin fix wired, for example to ground.
>
> Signed-off-by: Guan Ben <[email protected]>
> Signed-off-by: Mark Jonas <[email protected]>
> Signed-off-by: Heiko Schocher <[email protected]>
>
> ---
>
> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
> drivers/nfc/trf7970a.c | 26 ++++++++++++----------
> 2 files changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
> index 32b35a0..5889a3d 100644
> --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
> +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
> @@ -5,8 +5,8 @@ Required properties:
> - spi-max-frequency: Maximum SPI frequency (<= 2000000).
> - interrupt-parent: phandle of parent interrupt handler.
> - interrupts: A single interrupt specifier.
> -- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on the
> - TRF7970A.
> +- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2' pins on the
> + TRF7970A. EN2 is optional.

Could EN ever be optional/fixed? If so, perhaps deprecate this property
and do 2 properties, one for each pin.

Rob

2017-02-13 21:32:24

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <[email protected]> wrote:
> Hello Rob,
>
>
> Am 10.02.2017 um 16:51 schrieb Rob Herring:
>>
>> On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
>>>
>>> From: Guan Ben <[email protected]>
>>>
>>> Make the EN2 pin optional. This is useful for boards,
>>> which have this pin fix wired, for example to ground.
>>>
>>> Signed-off-by: Guan Ben <[email protected]>
>>> Signed-off-by: Mark Jonas <[email protected]>
>>> Signed-off-by: Heiko Schocher <[email protected]>
>>>
>>> ---
>>>
>>> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
>>> drivers/nfc/trf7970a.c | 26
>>> ++++++++++++----------
>>> 2 files changed, 16 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>> b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>> index 32b35a0..5889a3d 100644
>>> --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>> +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>> @@ -5,8 +5,8 @@ Required properties:
>>> - spi-max-frequency: Maximum SPI frequency (<= 2000000).
>>> - interrupt-parent: phandle of parent interrupt handler.
>>> - interrupts: A single interrupt specifier.
>>> -- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on the
>>> - TRF7970A.
>>> +- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2' pins
>>> on the
>>> + TRF7970A. EN2 is optional.
>>
>>
>> Could EN ever be optional/fixed? If so, perhaps deprecate this property
>> and do 2 properties, one for each pin.
>
>
> The hardware I have has the EN2 pin fix connected to ground. Looking
> into http://www.ti.com/lit/ds/slos743k/slos743k.pdf page 19 table 6-3
> and 6-4 the EN2 pin is a don;t core if EN = 1. If EN = 0 EN2 pin
> selects between Power Down and Sleep Mode ... I see no reason why
> this is not possible/allowed ...
>
> Hmm.. I do not like the idea of deprecating the "ti,enable-gpios"
> property into 2 seperate properties ... but if this would be a reason
> for not accepting this patch, I can do this ... How should I name
> the 2 new properties?

I guess if this ever happens, then we just add "ti,enable2-gpios" and
ti,enable-gpios continues to point to EN. We don't need to deprecate
anything (or maybe just deprecate having both GPIOs on single
property).

In that case,

Acked-by: Rob Herring <[email protected]>

>
> "ti,pin-enable" and "ti,pin-enable2" ?
>
> bye,
> Heiko
> --
> DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

2017-02-13 06:38:20

by Heiko Schocher

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

Hello Rob,

Am 10.02.2017 um 16:51 schrieb Rob Herring:
> On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
>> From: Guan Ben <[email protected]>
>>
>> Make the EN2 pin optional. This is useful for boards,
>> which have this pin fix wired, for example to ground.
>>
>> Signed-off-by: Guan Ben <[email protected]>
>> Signed-off-by: Mark Jonas <[email protected]>
>> Signed-off-by: Heiko Schocher <[email protected]>
>>
>> ---
>>
>> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
>> drivers/nfc/trf7970a.c | 26 ++++++++++++----------
>> 2 files changed, 16 insertions(+), 14 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>> index 32b35a0..5889a3d 100644
>> --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>> +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>> @@ -5,8 +5,8 @@ Required properties:
>> - spi-max-frequency: Maximum SPI frequency (<= 2000000).
>> - interrupt-parent: phandle of parent interrupt handler.
>> - interrupts: A single interrupt specifier.
>> -- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on the
>> - TRF7970A.
>> +- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2' pins on the
>> + TRF7970A. EN2 is optional.
>
> Could EN ever be optional/fixed? If so, perhaps deprecate this property
> and do 2 properties, one for each pin.

The hardware I have has the EN2 pin fix connected to ground. Looking
into http://www.ti.com/lit/ds/slos743k/slos743k.pdf page 19 table 6-3
and 6-4 the EN2 pin is a don;t core if EN = 1. If EN = 0 EN2 pin
selects between Power Down and Sleep Mode ... I see no reason why
this is not possible/allowed ...

Hmm.. I do not like the idea of deprecating the "ti,enable-gpios"
property into 2 seperate properties ... but if this would be a reason
for not accepting this patch, I can do this ... How should I name
the 2 new properties?

"ti,pin-enable" and "ti,pin-enable2" ?

bye,
Heiko
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

2017-02-21 16:44:12

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

On Sun, Feb 19, 2017 at 11:19 PM, Heiko Schocher <[email protected]> wrote:
> Hello all,
>
> Am 13.02.2017 um 22:31 schrieb Rob Herring:
>>
>> On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <[email protected]> wrote:
>>>
>>> Hello Rob,
>>>
>>>
>>> Am 10.02.2017 um 16:51 schrieb Rob Herring:
>>>>
>>>>
>>>> On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
>>>>>
>>>>>
>>>>> From: Guan Ben <[email protected]>
>>>>>
>>>>> Make the EN2 pin optional. This is useful for boards,
>>>>> which have this pin fix wired, for example to ground.
>>>>>
>>>>> Signed-off-by: Guan Ben <[email protected]>
>>>>> Signed-off-by: Mark Jonas <[email protected]>
>>>>> Signed-off-by: Heiko Schocher <[email protected]>
>>>>>
>>>>> ---
>>>>>
>>>>> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
>>>>> drivers/nfc/trf7970a.c | 26
>>>>> ++++++++++++----------
>>>>> 2 files changed, 16 insertions(+), 14 deletions(-)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>> b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>> index 32b35a0..5889a3d 100644
>>>>> --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>> +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>> @@ -5,8 +5,8 @@ Required properties:
>>>>> - spi-max-frequency: Maximum SPI frequency (<= 2000000).
>>>>> - interrupt-parent: phandle of parent interrupt handler.
>>>>> - interrupts: A single interrupt specifier.
>>>>> -- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on
>>>>> the
>>>>> - TRF7970A.
>>>>> +- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2'
>>>>> pins
>>>>> on the
>>>>> + TRF7970A. EN2 is optional.
>>>>
>>>>
>>>>
>>>> Could EN ever be optional/fixed? If so, perhaps deprecate this property
>>>> and do 2 properties, one for each pin.
>>>
>>>
>>>
>>> The hardware I have has the EN2 pin fix connected to ground. Looking
>>> into http://www.ti.com/lit/ds/slos743k/slos743k.pdf page 19 table 6-3
>>> and 6-4 the EN2 pin is a don;t core if EN = 1. If EN = 0 EN2 pin
>>> selects between Power Down and Sleep Mode ... I see no reason why
>>> this is not possible/allowed ...
>>>
>>> Hmm.. I do not like the idea of deprecating the "ti,enable-gpios"
>>> property into 2 seperate properties ... but if this would be a reason
>>> for not accepting this patch, I can do this ... How should I name
>>> the 2 new properties?
>>
>>
>> I guess if this ever happens, then we just add "ti,enable2-gpios" and
>> ti,enable-gpios continues to point to EN. We don't need to deprecate
>> anything (or maybe just deprecate having both GPIOs on single
>> property).
>>
>> In that case,
>>
>> Acked-by: Rob Herring <[email protected]>
>
>
> gentle ping.
>
> Are there any more comments to this patch? Is it acceptable as it
> is?

I acked it, so yes, it is fine.

Rob

2017-02-20 05:19:58

by Heiko Schocher

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

Hello all,

Am 13.02.2017 um 22:31 schrieb Rob Herring:
> On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <[email protected]> wrote:
>> Hello Rob,
>>
>>
>> Am 10.02.2017 um 16:51 schrieb Rob Herring:
>>>
>>> On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
>>>>
>>>> From: Guan Ben <[email protected]>
>>>>
>>>> Make the EN2 pin optional. This is useful for boards,
>>>> which have this pin fix wired, for example to ground.
>>>>
>>>> Signed-off-by: Guan Ben <[email protected]>
>>>> Signed-off-by: Mark Jonas <[email protected]>
>>>> Signed-off-by: Heiko Schocher <[email protected]>
>>>>
>>>> ---
>>>>
>>>> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
>>>> drivers/nfc/trf7970a.c | 26
>>>> ++++++++++++----------
>>>> 2 files changed, 16 insertions(+), 14 deletions(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>> b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>> index 32b35a0..5889a3d 100644
>>>> --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>> +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>> @@ -5,8 +5,8 @@ Required properties:
>>>> - spi-max-frequency: Maximum SPI frequency (<= 2000000).
>>>> - interrupt-parent: phandle of parent interrupt handler.
>>>> - interrupts: A single interrupt specifier.
>>>> -- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on the
>>>> - TRF7970A.
>>>> +- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2' pins
>>>> on the
>>>> + TRF7970A. EN2 is optional.
>>>
>>>
>>> Could EN ever be optional/fixed? If so, perhaps deprecate this property
>>> and do 2 properties, one for each pin.
>>
>>
>> The hardware I have has the EN2 pin fix connected to ground. Looking
>> into http://www.ti.com/lit/ds/slos743k/slos743k.pdf page 19 table 6-3
>> and 6-4 the EN2 pin is a don;t core if EN = 1. If EN = 0 EN2 pin
>> selects between Power Down and Sleep Mode ... I see no reason why
>> this is not possible/allowed ...
>>
>> Hmm.. I do not like the idea of deprecating the "ti,enable-gpios"
>> property into 2 seperate properties ... but if this would be a reason
>> for not accepting this patch, I can do this ... How should I name
>> the 2 new properties?
>
> I guess if this ever happens, then we just add "ti,enable2-gpios" and
> ti,enable-gpios continues to point to EN. We don't need to deprecate
> anything (or maybe just deprecate having both GPIOs on single
> property).
>
> In that case,
>
> Acked-by: Rob Herring <[email protected]>

gentle ping.

Are there any more comments to this patch? Is it acceptable as it
is?

Thanks!

bye,
Heiko
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

2017-03-28 05:37:54

by Heiko Schocher

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

Hello all,

Am 21.02.2017 um 17:43 schrieb Rob Herring:
> On Sun, Feb 19, 2017 at 11:19 PM, Heiko Schocher <[email protected]> wrote:
>> Hello all,
>>
>> Am 13.02.2017 um 22:31 schrieb Rob Herring:
>>>
>>> On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <[email protected]> wrote:
>>>>
>>>> Hello Rob,
>>>>
>>>>
>>>> Am 10.02.2017 um 16:51 schrieb Rob Herring:
>>>>>
>>>>>
>>>>> On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
>>>>>>
>>>>>>
>>>>>> From: Guan Ben <[email protected]>
>>>>>>
>>>>>> Make the EN2 pin optional. This is useful for boards,
>>>>>> which have this pin fix wired, for example to ground.
>>>>>>
>>>>>> Signed-off-by: Guan Ben <[email protected]>
>>>>>> Signed-off-by: Mark Jonas <[email protected]>
>>>>>> Signed-off-by: Heiko Schocher <[email protected]>
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
>>>>>> drivers/nfc/trf7970a.c | 26
>>>>>> ++++++++++++----------
>>>>>> 2 files changed, 16 insertions(+), 14 deletions(-)
>>>>>>
>>>>>> diff --git a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>>> b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>>> index 32b35a0..5889a3d 100644
>>>>>> --- a/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>>> +++ b/Documentation/devicetree/bindings/net/nfc/trf7970a.txt
>>>>>> @@ -5,8 +5,8 @@ Required properties:
>>>>>> - spi-max-frequency: Maximum SPI frequency (<= 2000000).
>>>>>> - interrupt-parent: phandle of parent interrupt handler.
>>>>>> - interrupts: A single interrupt specifier.
>>>>>> -- ti,enable-gpios: Two GPIO entries used for 'EN' and 'EN2' pins on
>>>>>> the
>>>>>> - TRF7970A.
>>>>>> +- ti,enable-gpios: One or two GPIO entries used for 'EN' and 'EN2'
>>>>>> pins
>>>>>> on the
>>>>>> + TRF7970A. EN2 is optional.
>>>>>
>>>>>
>>>>>
>>>>> Could EN ever be optional/fixed? If so, perhaps deprecate this property
>>>>> and do 2 properties, one for each pin.
>>>>
>>>>
>>>>
>>>> The hardware I have has the EN2 pin fix connected to ground. Looking
>>>> into http://www.ti.com/lit/ds/slos743k/slos743k.pdf page 19 table 6-3
>>>> and 6-4 the EN2 pin is a don;t core if EN = 1. If EN = 0 EN2 pin
>>>> selects between Power Down and Sleep Mode ... I see no reason why
>>>> this is not possible/allowed ...
>>>>
>>>> Hmm.. I do not like the idea of deprecating the "ti,enable-gpios"
>>>> property into 2 seperate properties ... but if this would be a reason
>>>> for not accepting this patch, I can do this ... How should I name
>>>> the 2 new properties?
>>>
>>>
>>> I guess if this ever happens, then we just add "ti,enable2-gpios" and
>>> ti,enable-gpios continues to point to EN. We don't need to deprecate
>>> anything (or maybe just deprecate having both GPIOs on single
>>> property).
>>>
>>> In that case,
>>>
>>> Acked-by: Rob Herring <[email protected]>
>>
>>
>> gentle ping.
>>
>> Are there any more comments to this patch? Is it acceptable as it
>> is?
>
> I acked it, so yes, it is fine.

Gentle ping. Any more issues or can this patch go into mainline?

bye,
Heiko
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

2017-04-01 22:35:10

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] Make EN2 pin optional in the TRF7970A driver

Hi Heiko,

On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
> From: Guan Ben <[email protected]>
>
> Make the EN2 pin optional. This is useful for boards,
> which have this pin fix wired, for example to ground.
>
> Signed-off-by: Guan Ben <[email protected]>
> Signed-off-by: Mark Jonas <[email protected]>
> Signed-off-by: Heiko Schocher <[email protected]>
>
> ---
>
> .../devicetree/bindings/net/nfc/trf7970a.txt | 4 ++--
> drivers/nfc/trf7970a.c | 26 ++++++++++++----------
> 2 files changed, 16 insertions(+), 14 deletions(-)
Applied to nfc-next, thanks.

Cheers,
Samuel.