diff mbox

Make EN2 pin optional in the TRF7970A driver

Message ID 1486444924-18444-1-git-send-email-hs@denx.de (mailing list archive)
State Accepted
Delegated to: Samuel Ortiz
Headers show

Commit Message

Heiko Schocher Feb. 7, 2017, 5:22 a.m. UTC
From: Guan Ben <ben.guan@cn.bosch.com>

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 <ben.guan@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Heiko Schocher <hs@denx.de>

---

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

Comments

Rob Herring (Arm) Feb. 10, 2017, 3:51 p.m. UTC | #1
On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
> From: Guan Ben <ben.guan@cn.bosch.com>
> 
> 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 <ben.guan@cn.bosch.com>
> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> 
> ---
> 
>  .../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
Heiko Schocher Feb. 13, 2017, 6:38 a.m. UTC | #2
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 <ben.guan@cn.bosch.com>
>>
>> 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 <ben.guan@cn.bosch.com>
>> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
>> Signed-off-by: Heiko Schocher <hs@denx.de>
>>
>> ---
>>
>>   .../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
Rob Herring (Arm) Feb. 13, 2017, 9:31 p.m. UTC | #3
On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <hs@denx.de> 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 <ben.guan@cn.bosch.com>
>>>
>>> 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 <ben.guan@cn.bosch.com>
>>> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
>>> Signed-off-by: Heiko Schocher <hs@denx.de>
>>>
>>> ---
>>>
>>>   .../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 <robh@kernel.org>

>
> "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
Heiko Schocher Feb. 20, 2017, 5:19 a.m. UTC | #4
Hello all,

Am 13.02.2017 um 22:31 schrieb Rob Herring:
> On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <hs@denx.de> 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 <ben.guan@cn.bosch.com>
>>>>
>>>> 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 <ben.guan@cn.bosch.com>
>>>> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
>>>> Signed-off-by: Heiko Schocher <hs@denx.de>
>>>>
>>>> ---
>>>>
>>>>    .../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 <robh@kernel.org>

gentle ping.

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

Thanks!

bye,
Heiko
Rob Herring (Arm) Feb. 21, 2017, 4:43 p.m. UTC | #5
On Sun, Feb 19, 2017 at 11:19 PM, Heiko Schocher <hs@denx.de> wrote:
> Hello all,
>
> Am 13.02.2017 um 22:31 schrieb Rob Herring:
>>
>> On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <hs@denx.de> 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 <ben.guan@cn.bosch.com>
>>>>>
>>>>> 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 <ben.guan@cn.bosch.com>
>>>>> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
>>>>> Signed-off-by: Heiko Schocher <hs@denx.de>
>>>>>
>>>>> ---
>>>>>
>>>>>    .../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 <robh@kernel.org>
>
>
> 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
Heiko Schocher March 28, 2017, 5:37 a.m. UTC | #6
Hello all,

Am 21.02.2017 um 17:43 schrieb Rob Herring:
> On Sun, Feb 19, 2017 at 11:19 PM, Heiko Schocher <hs@denx.de> wrote:
>> Hello all,
>>
>> Am 13.02.2017 um 22:31 schrieb Rob Herring:
>>>
>>> On Mon, Feb 13, 2017 at 12:38 AM, Heiko Schocher <hs@denx.de> 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 <ben.guan@cn.bosch.com>
>>>>>>
>>>>>> 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 <ben.guan@cn.bosch.com>
>>>>>> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
>>>>>> Signed-off-by: Heiko Schocher <hs@denx.de>
>>>>>>
>>>>>> ---
>>>>>>
>>>>>>     .../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 <robh@kernel.org>
>>
>>
>> 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
Samuel Ortiz April 1, 2017, 10:35 p.m. UTC | #7
Hi Heiko,

On Tue, Feb 07, 2017 at 06:22:04AM +0100, Heiko Schocher wrote:
> From: Guan Ben <ben.guan@cn.bosch.com>
> 
> 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 <ben.guan@cn.bosch.com>
> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
> Signed-off-by: Heiko Schocher <hs@denx.de>
> 
> ---
> 
>  .../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.
diff mbox

Patch

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"))