mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
uwb: sr100: allow cansleep gpio funcs
Allow chip enable and spi handshake gpio get/set to sleep so they will work with an i2c gpio expander. Also make rtc gpio optional since that pin is not present on banks. Change-Id: Ibeb530de04d4f1a858193be80ea656b03bdd87a5 Signed-off-by: Ryan Lattrel <ryanl@motorola.com> Reviewed-on: https://gerrit.mot.com/1834059 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Konstantin Makariev <kmakariev@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
0858d1198e
commit
d4eca3585c
1 changed files with 18 additions and 18 deletions
|
|
@ -306,13 +306,11 @@ static long sr100_dev_ioctl(struct file* filp, unsigned int cmd,
|
|||
case SR100_SET_PWR:
|
||||
if (arg == PWR_ENABLE) {
|
||||
printk(KERN_ALERT " enable power request");
|
||||
//gpio_set_value(sr100_dev->rtc_sync_gpio, 1);
|
||||
gpio_set_value(sr100_dev->ce_gpio, 1);
|
||||
gpio_set_value_cansleep(sr100_dev->ce_gpio, 1);
|
||||
msleep(10);
|
||||
} else if (arg == PWR_DISABLE) {
|
||||
printk(KERN_ALERT "disable power request");
|
||||
gpio_set_value(sr100_dev->ce_gpio, 0);
|
||||
//gpio_set_value(sr100_dev->rtc_sync_gpio, 0);
|
||||
gpio_set_value_cansleep(sr100_dev->ce_gpio, 0);
|
||||
sr100_disable_irq(sr100_dev);
|
||||
msleep(10);
|
||||
} else if (arg == ABORT_READ_PENDING) {
|
||||
|
|
@ -430,7 +428,7 @@ static int sr100_dev_transceive(struct sr100_dev* sr100_dev, int op_mode, int co
|
|||
goto transcive_end;
|
||||
}
|
||||
retry_count = 0;
|
||||
gpio_set_value(sr100_dev->spi_handshake_gpio, 1);
|
||||
gpio_set_value_cansleep(sr100_dev->spi_handshake_gpio, 1);
|
||||
while (gpio_get_value(sr100_dev->irq_gpio)) {
|
||||
if (retry_count == 100) {
|
||||
break;
|
||||
|
|
@ -501,7 +499,7 @@ static int sr100_dev_transceive(struct sr100_dev* sr100_dev, int op_mode, int co
|
|||
}
|
||||
}while(gpio_get_value(sr100_dev->irq_gpio));
|
||||
ret = spi_transcive_success;
|
||||
gpio_set_value(sr100_dev->spi_handshake_gpio, 0);
|
||||
gpio_set_value_cansleep(sr100_dev->spi_handshake_gpio, 0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -510,7 +508,7 @@ static int sr100_dev_transceive(struct sr100_dev* sr100_dev, int op_mode, int co
|
|||
}
|
||||
transcive_end:
|
||||
if(sr100_dev->mode == SR100_READ_MODE){
|
||||
gpio_set_value(sr100_dev->spi_handshake_gpio, 0);
|
||||
gpio_set_value_cansleep(sr100_dev->spi_handshake_gpio, 0);
|
||||
}
|
||||
mutex_unlock(&sr100_dev->sr100_access_lock);
|
||||
return ret;
|
||||
|
|
@ -750,16 +748,18 @@ static int sr100_hw_setup(struct sr100_spi_platform_data* platform_data,
|
|||
goto fail_gpio;
|
||||
}
|
||||
|
||||
ret = gpio_request(platform_data->rtc_sync_gpio, "sr100 rtc");
|
||||
if (ret < 0) {
|
||||
pr_info("sr100 - Failed requesting rtc gpio - %d\n", platform_data->rtc_sync_gpio);
|
||||
goto fail_gpio;
|
||||
}
|
||||
if (gpio_is_valid(platform_data->rtc_sync_gpio)) {
|
||||
ret = gpio_request(platform_data->rtc_sync_gpio, "sr100 rtc");
|
||||
if (ret < 0) {
|
||||
pr_info("sr100 - Failed requesting rtc gpio - %d\n", platform_data->rtc_sync_gpio);
|
||||
goto fail_gpio;
|
||||
}
|
||||
|
||||
ret = gpio_direction_output(platform_data->rtc_sync_gpio, 1);
|
||||
if (ret < 0) {
|
||||
pr_info("sr100 - Failed setting rtc gpio - %d\n", platform_data->rtc_sync_gpio);
|
||||
goto fail_gpio;
|
||||
ret = gpio_direction_output(platform_data->rtc_sync_gpio, 1);
|
||||
if (ret < 0) {
|
||||
pr_info("sr100 - Failed setting rtc gpio - %d\n", platform_data->rtc_sync_gpio);
|
||||
goto fail_gpio;
|
||||
}
|
||||
}
|
||||
#if HVH_VDD_ENABLE
|
||||
ret = gpio_request(platform_data->vdd_1v8_gpio, "sup_vdd_1v8");
|
||||
|
|
@ -877,7 +877,7 @@ static int sr100_parse_dt(struct device* dev,
|
|||
}
|
||||
pdata->rtc_sync_gpio = of_get_named_gpio(np, "nxp,sr100-rtc", 0);
|
||||
if (!gpio_is_valid(pdata->rtc_sync_gpio)) {
|
||||
return -EINVAL;
|
||||
pr_info("Not rtc gpio set\n");
|
||||
}
|
||||
#if HVH_VDD_ENABLE
|
||||
pdata->vdd_1v8_gpio = of_get_named_gpio(np, "nxp,sr100-vdd", 0);
|
||||
|
|
|
|||
Loading…
Reference in a new issue