summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/extcon/extcon-gpio.c6
-rw-r--r--include/linux/extcon/extcon-gpio.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/extcon/extcon-gpio.c b/drivers/extcon/extcon-gpio.c
index 2a89c89dfaf5..ba927df2fb91 100644
--- a/drivers/extcon/extcon-gpio.c
+++ b/drivers/extcon/extcon-gpio.c
@@ -70,17 +70,15 @@ static int gpio_extcon_probe(struct platform_device *pdev)
if (!pdata)
return -EBUSY;
- if (!pdata->irq_flags) {
- dev_err(&pdev->dev, "IRQ flag is not specified.\n");
+ if (!pdata->irq_flags || pdata->extcon_id > EXTCON_NONE)
return -EINVAL;
- }
data = devm_kzalloc(&pdev->dev, sizeof(struct gpio_extcon_data),
GFP_KERNEL);
if (!data)
return -ENOMEM;
- data->edev = devm_extcon_dev_allocate(&pdev->dev, NULL);
+ data->edev = devm_extcon_dev_allocate(&pdev->dev, &pdata->extcon_id);
if (IS_ERR(data->edev)) {
dev_err(&pdev->dev, "failed to allocate extcon device\n");
return -ENOMEM;
diff --git a/include/linux/extcon/extcon-gpio.h b/include/linux/extcon/extcon-gpio.h
index 0b17ad43fbfc..232bb8f80b51 100644
--- a/include/linux/extcon/extcon-gpio.h
+++ b/include/linux/extcon/extcon-gpio.h
@@ -26,6 +26,7 @@
/**
* struct gpio_extcon_platform_data - A simple GPIO-controlled extcon device.
* @name: The name of this GPIO extcon device.
+ * @extcon_id: The unique id of specific external connector.
* @gpio: Corresponding GPIO.
* @gpio_active_low: Boolean describing whether gpio active state is 1 or 0
* If true, low state of gpio means active.
@@ -45,6 +46,7 @@
*/
struct gpio_extcon_platform_data {
const char *name;
+ unsigned int extcon_id;
unsigned gpio;
bool gpio_active_low;
unsigned long debounce;