diff mbox

[RESEND,2/2] extcon: gpio: Add support for using cable names

Message ID 1415201388-32060-3-git-send-email-george.cherian@ti.com
State New, archived
Headers show

Commit Message

George Cherian Nov. 5, 2014, 3:29 p.m. UTC
Add support for using cable names. Enables other drivers to register interest
and get notified using extcon provided notifier call backs.

Signed-off-by: George Cherian <george.cherian@ti.com>
---
 Documentation/devicetree/bindings/extcon/extcon-gpio.txt | 2 ++
 drivers/extcon/extcon-gpio.c                             | 4 ++++
 2 files changed, 6 insertions(+)

Comments

Chanwoo Choi Nov. 12, 2014, 1:12 a.m. UTC | #1
Hi George,

On 11/06/2014 12:29 AM, George Cherian wrote:
> Add support for using cable names. Enables other drivers to register interest
> and get notified using extcon provided notifier call backs.
> 
> Signed-off-by: George Cherian <george.cherian@ti.com>
> ---
>  Documentation/devicetree/bindings/extcon/extcon-gpio.txt | 2 ++
>  drivers/extcon/extcon-gpio.c                             | 4 ++++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/extcon/extcon-gpio.txt b/Documentation/devicetree/bindings/extcon/extcon-gpio.txt
> index 30aa2e1..2c9d29f 100644
> --- a/Documentation/devicetree/bindings/extcon/extcon-gpio.txt
> +++ b/Documentation/devicetree/bindings/extcon/extcon-gpio.txt
> @@ -7,6 +7,7 @@ Required Properties:
>   - compatible: should be:
>  	* "linux,extcon-gpio"
>   - gpios: specifies the gpio pin used.
> + - cable-name: Name of the cable used.
>  
>  Optional Properties:
>   - debounce: Debounce time for GPIO IRQ in ms
> @@ -18,4 +19,5 @@ Eg:
>  		compatible = "linux,extcon-gpio";
>  		gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
>  		debounce = <20>;
> +		cable-name = "USB-HOST";
>  		};
> diff --git a/drivers/extcon/extcon-gpio.c b/drivers/extcon/extcon-gpio.c
> index 85795de..0e1b3e8 100644
> --- a/drivers/extcon/extcon-gpio.c
> +++ b/drivers/extcon/extcon-gpio.c
> @@ -38,6 +38,7 @@ struct gpio_extcon_data {
>  	int irq;
>  	struct delayed_work work;
>  	unsigned long debounce_jiffies;
> +	const char *cable_name[1];

*cable_name[1] -> **cable_name

>  };
>  
>  static void gpio_extcon_work(struct work_struct *work)
> @@ -100,6 +101,9 @@ static int gpio_extcon_probe(struct platform_device *pdev)
>  				msecs_to_jiffies(debounce);
>  	}
>  
> +	of_property_read_string_index(np, "cable-name", 0,
> +				      extcon_data->cable_name);
> +	extcon_data->edev->supported_cable = extcon_data->cable_name;

It is wrong. I don't want to allocate ables to supported_cable directly.
For consistency of extcon driver, you have to add the array of supported cables
by using devm_extcon_dev_allocate().

Thanks,
Chanwoo Choi

>  	ret = devm_extcon_dev_register(&pdev->dev, extcon_data->edev);
>  	if (ret < 0)
>  		return ret;
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/extcon/extcon-gpio.txt b/Documentation/devicetree/bindings/extcon/extcon-gpio.txt
index 30aa2e1..2c9d29f 100644
--- a/Documentation/devicetree/bindings/extcon/extcon-gpio.txt
+++ b/Documentation/devicetree/bindings/extcon/extcon-gpio.txt
@@ -7,6 +7,7 @@  Required Properties:
  - compatible: should be:
 	* "linux,extcon-gpio"
  - gpios: specifies the gpio pin used.
+ - cable-name: Name of the cable used.
 
 Optional Properties:
  - debounce: Debounce time for GPIO IRQ in ms
@@ -18,4 +19,5 @@  Eg:
 		compatible = "linux,extcon-gpio";
 		gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
 		debounce = <20>;
+		cable-name = "USB-HOST";
 		};
diff --git a/drivers/extcon/extcon-gpio.c b/drivers/extcon/extcon-gpio.c
index 85795de..0e1b3e8 100644
--- a/drivers/extcon/extcon-gpio.c
+++ b/drivers/extcon/extcon-gpio.c
@@ -38,6 +38,7 @@  struct gpio_extcon_data {
 	int irq;
 	struct delayed_work work;
 	unsigned long debounce_jiffies;
+	const char *cable_name[1];
 };
 
 static void gpio_extcon_work(struct work_struct *work)
@@ -100,6 +101,9 @@  static int gpio_extcon_probe(struct platform_device *pdev)
 				msecs_to_jiffies(debounce);
 	}
 
+	of_property_read_string_index(np, "cable-name", 0,
+				      extcon_data->cable_name);
+	extcon_data->edev->supported_cable = extcon_data->cable_name;
 	ret = devm_extcon_dev_register(&pdev->dev, extcon_data->edev);
 	if (ret < 0)
 		return ret;