Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1575391 > unrolled thread
| Started by | Heiko Schocher <hs@denx.de> |
|---|---|
| First post | 2017-02-07 06:30 +0100 |
| Last post | 2017-02-13 07:40 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] Make EN2 pin optional in the TRF7970A driver Heiko Schocher <hs@denx.de> - 2017-02-07 06:30 +0100
Re: [PATCH] Make EN2 pin optional in the TRF7970A driver Rob Herring <robh@kernel.org> - 2017-02-10 17:00 +0100
Re: [PATCH] Make EN2 pin optional in the TRF7970A driver Heiko Schocher <hs@denx.de> - 2017-02-13 07:40 +0100
| From | Heiko Schocher <hs@denx.de> |
|---|---|
| Date | 2017-02-07 06:30 +0100 |
| Subject | [PATCH] Make EN2 pin optional in the TRF7970A driver |
| Message-ID | <t86vM-6Us-17@gated-at.bofh.it> |
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.
- 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
[toc] | [next] | [standalone]
| From | Rob Herring <robh@kernel.org> |
|---|---|
| Date | 2017-02-10 17:00 +0100 |
| Message-ID | <t9lM5-5lR-11@gated-at.bofh.it> |
| In reply to | #1575391 |
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
[toc] | [prev] | [next] | [standalone]
| From | Heiko Schocher <hs@denx.de> |
|---|---|
| Date | 2017-02-13 07:40 +0100 |
| Message-ID | <taisN-8sW-3@gated-at.bofh.it> |
| In reply to | #1578571 |
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 -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web