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

Commit 15203b4c authored by Amitkumar Karwar's avatar Amitkumar Karwar Committed by Samuel Ortiz
Browse files

NFC: nfcmrvl: Add setup handler



Marvell nfc device provides support for external coexistance
control. It allows Device Host to inhibit the NFCC from polling
when required by asserting a GPIO pin. A second pin allows the
DH to have feedback on the current NFCC state.

The required configuration for this feature is done in setup
handler.

Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent f26e30cc
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -66,10 +66,25 @@ static int nfcmrvl_nci_send(struct nci_dev *ndev, struct sk_buff *skb)
	return priv->if_ops->nci_send(priv, skb);
}

static int nfcmrvl_nci_setup(struct nci_dev *ndev)
{
	__u8 val;

	val = NFCMRVL_GPIO_PIN_NFC_NOT_ALLOWED;
	nci_set_config(ndev, NFCMRVL_NOT_ALLOWED_ID, 1, &val);
	val = NFCMRVL_GPIO_PIN_NFC_ACTIVE;
	nci_set_config(ndev, NFCMRVL_ACTIVE_ID, 1, &val);
	val = NFCMRVL_EXT_COEX_ENABLE;
	nci_set_config(ndev, NFCMRVL_EXT_COEX_ID, 1, &val);

	return 0;
}

static struct nci_ops nfcmrvl_nci_ops = {
	.open = nfcmrvl_nci_open,
	.close = nfcmrvl_nci_close,
	.send = nfcmrvl_nci_send,
	.setup = nfcmrvl_nci_setup,
};

struct nfcmrvl_private *nfcmrvl_nci_register_dev(void *drv_data,
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,12 @@
/* Define private flags: */
#define NFCMRVL_NCI_RUNNING			1

#define NFCMRVL_EXT_COEX_ID			0xE0
#define NFCMRVL_NOT_ALLOWED_ID			0xE1
#define NFCMRVL_ACTIVE_ID			0xE2
#define NFCMRVL_EXT_COEX_ENABLE			1
#define NFCMRVL_GPIO_PIN_NFC_NOT_ALLOWED	0xA
#define NFCMRVL_GPIO_PIN_NFC_ACTIVE		0xB
#define NFCMRVL_NCI_MAX_EVENT_SIZE		260

struct nfcmrvl_private {