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 2a89c89dfaf538bb07f7a631811e30c97fc9559e..ba927df2fb91aa2e9bbf35f1ef0cb03cefe55913 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 0b17ad43fbfcefd062b3902dd615e1af45f6b245..232bb8f80b5142c40a9795718a9a32862eb71355 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;