Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15ab90f4 authored by David S. Miller's avatar David S. Miller
Browse files


Samuel Ortiz says:

====================
NFC 4.5 pull request

This is the first NFC pull request for 4.5 and it brings:

- A new driver for the STMicroelectronics ST95HF NFC chipset.
  The ST95HF is an NFC digital transceiver with an embedded analog
  front-end and as such relies on the Linux NFC digital
  implementation. This is the 3rd user of the NFC digital stack.

- ACPI support for the ST st-nci and st21nfca drivers.

- A small improvement for the nfcsim driver, as we can now tune
  the Rx delay through sysfs.

- A bunch of minor cleanups and small fixes from Christophe Ricard,
  for a few drivers and the NFC core code.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 197c949e c6dc65d8
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
* STMicroelectronics : NFC Transceiver ST95HF

ST NFC Transceiver is required to attach with SPI bus.
ST95HF node should be defined in DT as SPI slave device of SPI
master with which ST95HF transceiver is physically connected.
The properties defined below are required to be the part of DT
to include ST95HF transceiver into the platform.

Required properties:
===================
- reg: Address of SPI slave "ST95HF transceiver" on SPI master bus.

- compatible: should be "st,st95hf" for ST95HF NFC transceiver

- spi-max-frequency: Max. operating SPI frequency for ST95HF
	transceiver.

- enable-gpio: GPIO line to enable ST95HF transceiver.

- interrupt-parent : Standard way to specify the controller to which
	ST95HF transceiver's interrupt is routed.

- interrupts : Standard way to define ST95HF transceiver's out
	interrupt.

Optional property:
=================
- st95hfvin-supply : This is an optional property. It contains a
	phandle to ST95HF transceiver's regulator supply node in DT.

Example:
=======
spi@9840000 {
	reg = <0x9840000 0x110>;
	#address-cells = <1>;
	#size-cells = <0>;
	cs-gpios = <&pio0 4>;
	status = "okay";

	st95hf@0{
		reg = <0>;
		compatible = "st,st95hf";
		status = "okay";
		spi-max-frequency = <1000000>;
		enable-gpio = <&pio4 0>;
		interrupt-parent = <&pio0>;
		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
	};

};
+5 −0
Original line number Diff line number Diff line
@@ -7523,7 +7523,12 @@ F: net/nfc/
F:	include/net/nfc/
F:	include/uapi/linux/nfc.h
F:	drivers/nfc/
F:	include/linux/platform_data/microread.h
F:	include/linux/platform_data/nfcmrvl.h
F:	include/linux/platform_data/nxp-nci.h
F:	include/linux/platform_data/pn544.h
F:	include/linux/platform_data/st21nfca.h
F:	include/linux/platform_data/st-nci.h
F:	Documentation/devicetree/bindings/net/nfc/

NFS, SUNRPC, AND LOCKD CLIENTS
+1 −0
Original line number Diff line number Diff line
@@ -76,4 +76,5 @@ source "drivers/nfc/st21nfca/Kconfig"
source "drivers/nfc/st-nci/Kconfig"
source "drivers/nfc/nxp-nci/Kconfig"
source "drivers/nfc/s3fwrn5/Kconfig"
source "drivers/nfc/st95hf/Kconfig"
endmenu
+1 −0
Original line number Diff line number Diff line
@@ -16,3 +16,4 @@ obj-$(CONFIG_NFC_ST21NFCA) += st21nfca/
obj-$(CONFIG_NFC_ST_NCI)	+= st-nci/
obj-$(CONFIG_NFC_NXP_NCI)	+= nxp-nci/
obj-$(CONFIG_NFC_S3FWRN5)	+= s3fwrn5/
obj-$(CONFIG_NFC_ST95HF)	+= st95hf/
+6 −6
Original line number Diff line number Diff line
@@ -298,6 +298,12 @@ static int fdp_nci_i2c_probe(struct i2c_client *client,
		return -ENODEV;
	}

	/* Checking if we have an irq */
	if (client->irq <= 0) {
		nfc_err(dev, "IRQ not present\n");
		return -ENODEV;
	}

	phy = devm_kzalloc(dev, sizeof(struct fdp_i2c_phy),
			   GFP_KERNEL);
	if (!phy)
@@ -307,12 +313,6 @@ static int fdp_nci_i2c_probe(struct i2c_client *client,
	phy->next_read_size = FDP_NCI_I2C_MIN_PAYLOAD;
	i2c_set_clientdata(client, phy);

	/* Checking if we have an irq */
	if (client->irq <= 0) {
		dev_err(dev, "IRQ not present\n");
		return -ENODEV;
	}

	r = request_threaded_irq(client->irq, NULL, fdp_nci_i2c_irq_thread_fn,
				 IRQF_TRIGGER_RISING | IRQF_ONESHOT,
				 FDP_I2C_DRIVER_NAME, phy);
Loading