Merge branch 'caf/driver/br_android_ncihalx_comm_13' into nfc-driver.lnx.13.0
* caf/driver/br_android_ncihalx_comm_13: Updated corresponding to - NFC_AR_00_E800_13.03.00_OpnSrc Updated corresponding to - NFC_AR_00_E800_13.02.01_OpnSrc Change-Id: I8494390209f52873828fcc2c83929403c633646d
This commit is contained in:
10
nfc/common.h
10
nfc/common.h
@@ -1,6 +1,6 @@
|
||||
/******************************************************************************
|
||||
* Copyright (C) 2015, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2019-2021 NXP
|
||||
* Copyright (C) 2019-2022 NXP
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -91,12 +91,8 @@
|
||||
#define NCI_CMD_RSP_TIMEOUT_MS (2000)
|
||||
/* Time to wait for NFCC to be ready again after any change in the GPIO */
|
||||
#define NFC_GPIO_SET_WAIT_TIME_US (10000)
|
||||
/*Time to wait after soft reset via any NCI/DL cmd*/
|
||||
#define NFC_SOFT_RESET_WAIT_TIME_USEC (5000)
|
||||
/* Time to wait for IRQ low during write 5*3ms */
|
||||
#define NFC_WRITE_IRQ_WAIT_TIME_US (3000)
|
||||
/* Time to wait before retrying i2c/I3C writes */
|
||||
#define WRITE_RETRY_WAIT_TIME_US (1000)
|
||||
/* Time to wait before retrying writes */
|
||||
#define WRITE_RETRY_WAIT_TIME_US (3000)
|
||||
/* Time to wait before retrying read for some specific usecases */
|
||||
#define READ_RETRY_WAIT_TIME_US (3500)
|
||||
#define NFC_MAGIC (0xE9)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/******************************************************************************
|
||||
* Copyright (C) 2015, The Linux Foundation. All rights reserved.
|
||||
* Copyright (C) 2013-2021 NXP
|
||||
* Copyright (C) 2013-2022 NXP
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -237,8 +237,8 @@ int i2c_write(struct nfc_dev *nfc_dev, const char *buf, size_t count,
|
||||
for (retry_cnt = 1; retry_cnt <= MAX_WRITE_IRQ_COUNT; retry_cnt++) {
|
||||
if (gpio_get_value(nfc_gpio->irq)) {
|
||||
pr_warn("%s: irq high during write, wait\n", __func__);
|
||||
usleep_range(NFC_WRITE_IRQ_WAIT_TIME_US,
|
||||
NFC_WRITE_IRQ_WAIT_TIME_US + 100);
|
||||
usleep_range(WRITE_RETRY_WAIT_TIME_US,
|
||||
WRITE_RETRY_WAIT_TIME_US + 100);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@@ -336,27 +336,27 @@ int nfc_i2c_dev_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||
int ret = 0;
|
||||
struct nfc_dev *nfc_dev = NULL;
|
||||
struct i2c_dev *i2c_dev = NULL;
|
||||
struct platform_configs nfc_configs;
|
||||
struct platform_gpio *nfc_gpio = &nfc_configs.gpio;
|
||||
|
||||
struct platform_configs *nfc_configs = NULL;
|
||||
struct platform_gpio *nfc_gpio = NULL;
|
||||
pr_debug("%s: enter\n", __func__);
|
||||
/* retrieve details of gpios from dt */
|
||||
ret = nfc_parse_dt(&client->dev, &nfc_configs, PLATFORM_IF_I2C);
|
||||
if (ret) {
|
||||
pr_err("%s: failed to parse dt\n", __func__);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
|
||||
pr_err("%s: need I2C_FUNC_I2C\n", __func__);
|
||||
ret = -ENODEV;
|
||||
goto err;
|
||||
}
|
||||
nfc_dev = kzalloc(sizeof(struct nfc_dev), GFP_KERNEL);
|
||||
if (nfc_dev == NULL) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
nfc_configs = &nfc_dev->configs;
|
||||
nfc_gpio = &nfc_configs->gpio;
|
||||
/* retrieve details of gpios from dt */
|
||||
ret = nfc_parse_dt(&client->dev,nfc_configs, PLATFORM_IF_I2C);
|
||||
if (ret) {
|
||||
pr_err("%s: failed to parse dt\n", __func__);
|
||||
goto err_free_nfc_dev;
|
||||
}
|
||||
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
|
||||
pr_err("%s: need I2C_FUNC_I2C\n", __func__);
|
||||
ret = -ENODEV;
|
||||
goto err_free_nfc_dev;
|
||||
}
|
||||
nfc_dev->read_kbuf = kzalloc(MAX_NCI_BUFFER_SIZE, GFP_DMA | GFP_KERNEL);
|
||||
if (!nfc_dev->read_kbuf) {
|
||||
ret = -ENOMEM;
|
||||
@@ -393,11 +393,6 @@ int nfc_i2c_dev_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
||||
pr_err("%s: unable to request nfc firm downl gpio [%d]\n",
|
||||
__func__, nfc_gpio->dwl_req);
|
||||
}
|
||||
|
||||
/* copy the retrieved gpio details from DT */
|
||||
memcpy(&nfc_dev->configs, &nfc_configs,
|
||||
sizeof(struct platform_configs));
|
||||
|
||||
/* init mutex and queues */
|
||||
init_waitqueue_head(&nfc_dev->read_wq);
|
||||
mutex_init(&nfc_dev->read_mutex);
|
||||
|
Reference in New Issue
Block a user