extcon: gpio: Add the missing supported_cable parameter to devm_extcon_dev_allocate()
authorChanwoo Choi <cw00.choi@samsung.com>
Tue, 29 Sep 2015 13:57:24 +0000 (22:57 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Wed, 30 Sep 2015 10:22:49 +0000 (19:22 +0900)
The commit 2a9de9c0 ("extcon: Use the unique id for external connector instead
of string") defines the unique id of each external connector to identify the
type of external connector instead of string name. So, devm_extcon_dev_allocate()
should include the second parameter (unsigned int *supported_cable). This patch
adds the supported_cable parameter which is passed by platform data.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/extcon/extcon-gpio.c
include/linux/extcon/extcon-gpio.h

index 2a89c89..ba927df 100644 (file)
@@ -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;
index 0b17ad4..232bb8f 100644 (file)
@@ -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;