NFC: nxp-nci: Make firmware GPIO pin optional

There are other NXP NCI compatible NFC controllers such as the PN7150
that use an integrated firmware and therefore do not have a GPIO to
select firmware downloading mode. To support this kind of controller,
let's make the firmware GPIO optional.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20201201113921.6572-1-frieder.schrempf@kontron.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Frieder Schrempf 2020-12-01 12:39:09 +01:00 committed by Jakub Kicinski
parent 6b4f503186
commit 59f96cf6ba
2 changed files with 2 additions and 2 deletions

View File

@ -6,11 +6,11 @@ Required properties:
- reg: address on the bus - reg: address on the bus
- interrupts: GPIO interrupt to which the chip is connected - interrupts: GPIO interrupt to which the chip is connected
- enable-gpios: Output GPIO pin used for enabling/disabling the chip - enable-gpios: Output GPIO pin used for enabling/disabling the chip
- firmware-gpios: Output GPIO pin used to enter firmware download mode
Optional SoC Specific Properties: Optional SoC Specific Properties:
- pinctrl-names: Contains only one value - "default". - pinctrl-names: Contains only one value - "default".
- pintctrl-0: Specifies the pin control groups used for this controller. - pintctrl-0: Specifies the pin control groups used for this controller.
- firmware-gpios: Output GPIO pin used to enter firmware download mode
Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2): Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2):

View File

@ -286,7 +286,7 @@ static int nxp_nci_i2c_probe(struct i2c_client *client,
return PTR_ERR(phy->gpiod_en); return PTR_ERR(phy->gpiod_en);
} }
phy->gpiod_fw = devm_gpiod_get(dev, "firmware", GPIOD_OUT_LOW); phy->gpiod_fw = devm_gpiod_get_optional(dev, "firmware", GPIOD_OUT_LOW);
if (IS_ERR(phy->gpiod_fw)) { if (IS_ERR(phy->gpiod_fw)) {
nfc_err(dev, "Failed to get FW gpio\n"); nfc_err(dev, "Failed to get FW gpio\n");
return PTR_ERR(phy->gpiod_fw); return PTR_ERR(phy->gpiod_fw);