All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chanwoo Choi <cw00.choi@samsung.com>
To: Kishon Vijay Abraham I <kishon@ti.com>
Cc: myungjoo.ham@samsung.com, balbi@ti.com, ldewangan@nvidia.com,
	gg@slimlogic.co.uk, lgirdwood@gmail.com, broonie@kernel.org,
	devicetree-discuss@lists.ozlabs.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-omap@vger.kernel.org, grant.likely@linaro.org,
	rob.herring@calxeda.com, rob@landley.net,
	gregkh@linuxfoundation.org, george.cherian@ti.com,
	sameo@linux.intel.com
Subject: Re: [PATCH v5 2/3] extcon: Palmas Extcon Driver
Date: Mon, 27 May 2013 14:34:55 +0900	[thread overview]
Message-ID: <51A2F07F.8070009@samsung.com> (raw)
In-Reply-To: <1369405896-30246-3-git-send-email-kishon@ti.com>

Hi Kishon,

I have some comment about this patch
and upload modified patch to following repository (extcon-for-palmas).
- http://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/commit/?h=extcon-for-palmas&id=f2b7cb80699cbe1a5fd6c97ef2c600915f8d7f2c

This patchset include patch related to other module
,so I need your opinion to apply this patchset to git repository.

On 05/24/2013 11:31 PM, Kishon Vijay Abraham I wrote:
> From: Graeme Gregory <gg@slimlogic.co.uk>
>
> This is the driver for the USB comparator built into the palmas chip. It
> handles the various USB OTG events that can be generated by cable
> insertion/removal.
>
> Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
> Signed-off-by: Moiz Sonasath <m-sonasath@ti.com>
> Signed-off-by: Ruchika Kharwar <ruchika@ti.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> Signed-off-by: George Cherian <george.cherian@ti.com>
> [kishon@ti.com: adapted palmas usb driver to use the extcon framework]
> Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
> ---
> Changes from v4:
> * removed no_control_vbus property (to be used if the platform wants to use
> its own vbus control.
> * removed unnecessary headers
> * moved the palmas_usb_state to palmas.h
> * misc cleanups
> *A checkpatch warning "WARNING: static const char * array should
>  probably be static const char * const"is ignored since it introduces a
>  compilation warning.
> Changes from v3:
> * adapted the driver to extcon framework (so moved to drivers/extcon)
> * removed palmas_usb_(write/read) and replaced all calls with
>   palmas_(read/write).
> * ignored a checkpatch warning in the line 
> 	static const char *palmas_extcon_cable[] = {
>   as it seemed to be incorrect?
> * removed all references to OMAP in this driver.
> * couldn't test this driver with mainline as omap5 panda is not booting
>   with mainline.
> * A comment to change to platform_get_irq from regmap is not done as I felt
>   the data should come from regmap in this case. Graeme?
> Changes from v2:
> * Moved the driver to drivers/usb/phy/
> * Added a bit more explanation in Kconfig
>  .../devicetree/bindings/extcon/extcon-twl.txt      |  16 +
>  drivers/extcon/Kconfig                             |   7 +
>  drivers/extcon/Makefile                            |   1 +
>  drivers/extcon/extcon-palmas.c                     | 341 +++++++++++++++++++++
>  include/linux/mfd/palmas.h                         |  25 +-
>  5 files changed, 380 insertions(+), 10 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/extcon/extcon-twl.txt
>  create mode 100644 drivers/extcon/extcon-palmas.c
>
> diff --git a/Documentation/devicetree/bindings/extcon/extcon-twl.txt b/Documentation/devicetree/bindings/extcon/extcon-twl.txt
> new file mode 100644
> index 0000000..8ffdeed
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/extcon/extcon-twl.txt
> @@ -0,0 +1,15 @@
> +EXTCON FOR TWL CHIPS
> +
> +PALMAS USB COMPARATOR
> +Required Properties:
> + - compatible : Should be "ti,palmas-usb" or "ti,twl6035-usb"
> + - vbus-supply : phandle to the regulator device tree node.
> +
> +Optional Properties:
> + - ti,wakeup : To enable the wakeup comparator in probe
> +
> +palmas-usb {
> +       compatible = "ti,twl6035-usb", "ti,palmas-usb";
> +       vbus-supply = <&smps10_reg>;
> +       ti,wakeup;
> +};
> diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig
> index 3297301..63f454e 100644
> --- a/drivers/extcon/Kconfig
> +++ b/drivers/extcon/Kconfig
> @@ -53,4 +53,11 @@ config EXTCON_ARIZONA
>  	  with Wolfson Arizona devices. These are audio CODECs with
>  	  advanced audio accessory detection support.
>  
> +config EXTCON_PALMAS
> +	tristate "Palmas USB EXTCON support"
> +	depends on MFD_PALMAS
You should add REGULATOR_PALMAS dependency because
palmas_set_switch_smps10() is defined in palmas regulator driver.

+    depends on MFD_PALMAS && REGULATOR_PALMAS

> +	help
> +	  Say Y here to enable support for USB peripheral and USB host
> +	  detection by palmas usb.
> +
>  endif # MULTISTATE_SWITCH
> diff --git a/drivers/extcon/Makefile b/drivers/extcon/Makefile
> index f98a3c4..540e2c3 100644
> --- a/drivers/extcon/Makefile
> +++ b/drivers/extcon/Makefile
> @@ -8,3 +8,4 @@ obj-$(CONFIG_EXTCON_ADC_JACK)	+= extcon-adc-jack.o
>  obj-$(CONFIG_EXTCON_MAX77693)	+= extcon-max77693.o
>  obj-$(CONFIG_EXTCON_MAX8997)	+= extcon-max8997.o
>  obj-$(CONFIG_EXTCON_ARIZONA)	+= extcon-arizona.o
> +obj-$(CONFIG_EXTCON_PALMAS)	+= extcon-palmas.o
> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> new file mode 100644
> index 0000000..9e613e9
> --- /dev/null
> +++ b/drivers/extcon/extcon-palmas.c
> @@ -0,0 +1,341 @@
> +/*
> + * Palmas USB transceiver driver
> + *
> + * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * Author: Graeme Gregory <gg@slimlogic.co.uk>
> + * Author: Kishon Vijay Abraham I <kishon@ti.com>
> + *
> + * Based on twl6030_usb.c
> + *
> + * Author: Hema HK <hemahk@ti.com>
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <linux/module.h>
> +#include <linux/interrupt.h>
> +#include <linux/platform_device.h>
> +#include <linux/usb/phy_companion.h>
> +#include <linux/err.h>
> +#include <linux/mfd/palmas.h>
> +#include <linux/of.h>
> +#include <linux/of_platform.h>
> +
> +static const char *palmas_extcon_cable[] = {
> +	[0] = "USB",
> +	[1] = "USB-HOST",
> +	NULL,
> +};
> +
> +static const int mutually_exclusive[] = {0x3, 0x0};
> +
> +static void palmas_usb_wakeup(struct palmas *palmas, int enable)
> +{
> +	if (enable)
> +		palmas_write(palmas, PALMAS_USB_OTG_BASE, PALMAS_USB_WAKEUP,
> +			PALMAS_USB_WAKEUP_ID_WK_UP_COMP);
> +	else
> +		palmas_write(palmas, PALMAS_USB_OTG_BASE, PALMAS_USB_WAKEUP, 0);
> +}
> +
> +static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
> +{
> +	int ret;
> +	struct palmas_usb *palmas_usb = _palmas_usb;
> +	unsigned int vbus_line_state;
> +
> +	palmas_read(palmas_usb->palmas, PALMAS_INTERRUPT_BASE,
> +		PALMAS_INT3_LINE_STATE, &vbus_line_state);
> +
> +	if (vbus_line_state & PALMAS_INT3_LINE_STATE_VBUS) {
> +		if (palmas_usb->linkstat != PALMAS_USB_STATE_VBUS) {
> +			if (palmas_usb->vbus_reg) {
> +				ret = regulator_enable(palmas_usb->vbus_reg);
> +				if (ret) {
> +					dev_dbg(palmas_usb->dev,
> +						"regulator enable failed\n");
> +					goto ret0;

I prefer to use consistent name of goto statement becuase you use
'fail_' prefix in palmas_usb_probe()
-                    goto ret0;
+                    goto fail;

> +				}
> +			}
> +			palmas_usb->linkstat = PALMAS_USB_STATE_VBUS;
> +			extcon_set_cable_state(&palmas_usb->edev, "USB", true);
> +		} else {
> +			dev_dbg(palmas_usb->dev,
> +				"Spurious connect event detected\n");
> +		}
> +	} else if (!(vbus_line_state & PALMAS_INT3_LINE_STATE_VBUS)) {
> +		if (palmas_usb->linkstat == PALMAS_USB_STATE_VBUS) {
> +			if (palmas_usb->vbus_reg)
> +				regulator_disable(palmas_usb->vbus_reg);
> +			palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT;
> +			extcon_set_cable_state(&palmas_usb->edev, "USB", false);
> +		} else {
> +			dev_dbg(palmas_usb->dev,
> +				"Spurious disconnect event detected\n");
> +		}
> +	}
> +
> +ret0:
ditto.

-ret0:
+fail:
> +	return IRQ_HANDLED;
> +}
> +
> +static irqreturn_t palmas_id_irq_handler(int irq, void *_palmas_usb)
> +{
> +	int			ret;
> +	unsigned int		set;
> +	struct palmas_usb	*palmas_usb = _palmas_usb;
You should use space instead of tab when defined local variables.

+    int ret;
+    unsigned int set;
+    struct palmas_usb *palmas_usb = _palmas_usb;

> +
> +	palmas_read(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_ID_INT_LATCH_SET, &set);
> +
> +	if (set & PALMAS_USB_ID_INT_SRC_ID_GND) {
> +		palmas_set_switch_smps10(palmas_usb->palmas, 1);
> +		if (palmas_usb->vbus_reg) {
> +			ret = regulator_enable(palmas_usb->vbus_reg);
> +			if (ret) {
> +				dev_dbg(palmas_usb->dev,
> +					"regulator enable failed\n");
> +				goto ret0;

ditto.

> +			}
> +		}
> +		palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +			PALMAS_USB_ID_INT_EN_HI_SET,
> +			PALMAS_USB_ID_INT_EN_HI_SET_ID_FLOAT);
> +		palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +			PALMAS_USB_ID_INT_EN_HI_CLR,
> +			PALMAS_USB_ID_INT_EN_HI_CLR_ID_GND);
> +		palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +			PALMAS_USB_ID_INT_LATCH_CLR,
> +			PALMAS_USB_ID_INT_EN_HI_CLR_ID_GND);
> +		palmas_usb->linkstat = PALMAS_USB_STATE_ID;
> +		extcon_set_cable_state(&palmas_usb->edev, "USB-HOST", true);
> +	} else if (set & PALMAS_USB_ID_INT_SRC_ID_FLOAT) {
> +		palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +			PALMAS_USB_ID_INT_EN_HI_SET,
> +			PALMAS_USB_ID_INT_EN_HI_SET_ID_GND);
> +		palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +			PALMAS_USB_ID_INT_EN_HI_CLR,
> +			PALMAS_USB_ID_INT_EN_HI_CLR_ID_FLOAT);
> +		palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +			PALMAS_USB_ID_INT_LATCH_CLR,
> +			PALMAS_USB_ID_INT_EN_HI_CLR_ID_FLOAT);
> +		if (palmas_usb->vbus_reg)
> +			regulator_disable(palmas_usb->vbus_reg);
> +		palmas_set_switch_smps10(palmas_usb->palmas, 0);
> +		palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT;
> +		extcon_set_cable_state(&palmas_usb->edev, "USB-HOST", false);
> +	}
> +
> +ret0:

ditto.

> +	return IRQ_HANDLED;
> +}
> +
> +static void palmas_enable_irq(struct palmas_usb *palmas_usb)
> +{
> +	palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_VBUS_CTRL_SET,
> +		PALMAS_USB_VBUS_CTRL_SET_VBUS_ACT_COMP);
> +
> +	palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_ID_CTRL_SET, PALMAS_USB_ID_CTRL_SET_ID_ACT_COMP);
> +
> +	palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_ID_INT_EN_HI_SET,
> +		PALMAS_USB_ID_INT_EN_HI_SET_ID_GND);
> +
> +	palmas_vbus_irq_handler(palmas_usb->vbus_irq, palmas_usb);
> +
> +	/* cold plug for host mode needs this delay */
> +	msleep(30);
> +	palmas_id_irq_handler(palmas_usb->id_irq, palmas_usb);
> +}
> +
> +static void palmas_set_vbus_work(struct work_struct *data)
> +{
> +	int ret;
> +	struct palmas_usb *palmas_usb = container_of(data, struct palmas_usb,
> +								set_vbus_work);
> +
> +	/*
> +	 * Start driving VBUS. Set OPA_MODE bit in CHARGERUSB_CTRL1
> +	 * register. This enables boost mode.
> +	 */
> +
> +	if (palmas_usb->vbus_enable) {
> +		ret = regulator_enable(palmas_usb->vbus_reg);
> +		if (ret)
> +			dev_dbg(palmas_usb->dev, "regulator enable failed\n");
> +	} else {
> +		regulator_disable(palmas_usb->vbus_reg);
> +	}
> +}
> +
> +static int palmas_set_vbus(struct phy_companion *comparator, bool enabled)
> +{
> +	struct palmas_usb *palmas_usb = comparator_to_palmas(comparator);
> +
> +	palmas_usb->vbus_enable = enabled;
> +	schedule_work(&palmas_usb->set_vbus_work);
> +
> +	return 0;
> +}
> +
> +static int palmas_start_srp(struct phy_companion *comparator)
> +{
> +	struct palmas_usb *palmas_usb = comparator_to_palmas(comparator);
> +
> +	palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_VBUS_CTRL_SET, PALMAS_USB_VBUS_CTRL_SET_VBUS_DISCHRG
> +		| PALMAS_USB_VBUS_CTRL_SET_VBUS_IADP_SINK);
> +	palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_VBUS_CTRL_SET,
> +		PALMAS_USB_VBUS_CTRL_SET_VBUS_CHRG_VSYS |
> +		PALMAS_USB_VBUS_CTRL_SET_VBUS_IADP_SINK);
> +
> +	msleep(100);
> +
> +	palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE,
> +		PALMAS_USB_VBUS_CTRL_CLR,
> +		PALMAS_USB_VBUS_CTRL_SET_VBUS_CHRG_VSYS |
> +		PALMAS_USB_VBUS_CTRL_SET_VBUS_CHRG_VSYS);
> +
> +	return 0;
> +}
> +
> +static int palmas_usb_probe(struct platform_device *pdev)
> +{
> +	struct palmas *palmas = dev_get_drvdata(pdev->dev.parent);
> +	struct palmas_usb_platform_data	*pdata = pdev->dev.platform_data;
> +	struct device_node *node = pdev->dev.of_node;
> +	struct palmas_usb *palmas_usb;
> +	int status;
> +
> +	if (node && !pdata) {
> +		pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
> +
> +		if (!pdata)
> +			return -ENOMEM;
> +
> +		pdata->wakeup = of_property_read_bool(node, "ti,wakeup");
> +	}
> +
> +	if (!pdata)
> +		return -EINVAL;
I think that if condition of first if statement is true,
second if statement is unnecessary. So, I prefer
to modify if/else statement as following:

+	} else if (!pdata) {
		return -EINVAL;
+	}

 
> +
> +	palmas_usb = devm_kzalloc(&pdev->dev, sizeof(*palmas_usb), GFP_KERNEL);
> +	if (!palmas_usb)
> +		return -ENOMEM;
> +
> +	palmas->usb		= palmas_usb;
> +	palmas_usb->palmas	= palmas;
> +
> +	palmas_usb->dev		= &pdev->dev;

You should use space instead of tab when assign some value to variables.

+	palmas->usb = palmas_usb;
+	palmas_usb->palmas = palmas;
+
+	palmas_usb->dev= &pdev->dev;


> +
> +	palmas_usb->id_otg_irq = regmap_irq_get_virq(palmas->irq_data,
> +						PALMAS_ID_OTG_IRQ);
> +	palmas_usb->id_irq = regmap_irq_get_virq(palmas->irq_data,
> +						PALMAS_ID_IRQ);
> +	palmas_usb->vbus_otg_irq = regmap_irq_get_virq(palmas->irq_data,
> +						PALMAS_VBUS_OTG_IRQ);
> +	palmas_usb->vbus_irq = regmap_irq_get_virq(palmas->irq_data,
> +						PALMAS_VBUS_IRQ);
> +
> +	palmas_usb->comparator.set_vbus	= palmas_set_vbus;
> +	palmas_usb->comparator.start_srp = palmas_start_srp;
> +
> +	palmas_usb_wakeup(palmas, pdata->wakeup);
> +
> +	palmas_usb->vbus_reg = devm_regulator_get(&pdev->dev, "vbus");
> +	if (IS_ERR(palmas_usb->vbus_reg)) {
> +		dev_err(&pdev->dev, "vbus init failed\n");
> +		return PTR_ERR(palmas_usb->vbus_reg);
> +	}
> +
> +	INIT_WORK(&palmas_usb->set_vbus_work, palmas_set_vbus_work);
> +
> +	platform_set_drvdata(pdev, palmas_usb);
> +
> +	palmas_usb->edev.name = "palmas-usb";
> +	palmas_usb->edev.supported_cable = palmas_extcon_cable;
> +	palmas_usb->edev.mutually_exclusive = mutually_exclusive;
> +
> +	status = extcon_dev_register(&palmas_usb->edev, palmas_usb->dev);
> +	if (status) {
> +		dev_err(&pdev->dev, "failed to register extcon device\n");
> +		goto fail_irq;
> +	}
> +
> +	status = devm_request_threaded_irq(palmas_usb->dev, palmas_usb->id_irq,
> +			NULL, palmas_id_irq_handler,
> +			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
> +			"palmas_usb_id", palmas_usb);
> +	if (status < 0) {
> +		dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",
> +					palmas_usb->id_irq, status);
> +		goto fail_extcon;
> +	}
> +
> +	status = devm_request_threaded_irq(palmas_usb->dev,
> +			palmas_usb->vbus_irq, NULL, palmas_vbus_irq_handler,
> +			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
> +			"palmas_usb_vbus", palmas_usb);
> +	if (status < 0) {
> +		dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",
> +					palmas_usb->vbus_irq, status);
> +		goto fail_extcon;
> +	}
> +
> +	palmas_enable_irq(palmas_usb);
> +
> +	return 0;
> +
> +fail_extcon:
> +	extcon_dev_unregister(&palmas_usb->edev);
> +
> +fail_irq:
> +	cancel_work_sync(&palmas_usb->set_vbus_work);
> +
> +	return status;
> +}
> +
> +static int palmas_usb_remove(struct platform_device *pdev)
> +{
> +	struct palmas_usb *palmas_usb = platform_get_drvdata(pdev);
> +
> +		cancel_work_sync(&palmas_usb->set_vbus_work);
> +	extcon_dev_unregister(&palmas_usb->edev);
> +
> +	return 0;
> +}
> +
> +static struct of_device_id of_palmas_match_tbl[] = {
> +	{ .compatible = "ti,palmas-usb", },
> +	{ .compatible = "ti,twl6035-usb", },
> +	{ /* end */ }
> +};
> +
> +static struct platform_driver palmas_usb_driver = {
> +	.probe = palmas_usb_probe,
> +	.remove = palmas_usb_remove,
> +	.driver = {
> +		.name = "palmas-usb",
> +		.of_match_table = of_palmas_match_tbl,
> +		.owner = THIS_MODULE,
> +	},
> +};
> +
> +module_platform_driver(palmas_usb_driver);
> +
> +MODULE_ALIAS("platform:palmas-usb");
> +MODULE_AUTHOR("Graeme Gregory <gg@slimlogic.co.uk>");
> +MODULE_DESCRIPTION("Palmas USB transceiver driver");
> +MODULE_LICENSE("GPL");
> +MODULE_DEVICE_TABLE(of, of_palmas_match_tbl);
> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
> index 6df375d..eb4846b 100644
> --- a/include/linux/mfd/palmas.h
> +++ b/include/linux/mfd/palmas.h
> @@ -20,6 +20,8 @@
>  #include <linux/leds.h>
>  #include <linux/regmap.h>
>  #include <linux/regulator/driver.h>
> +#include <linux/extcon.h>
> +#include <linux/usb/phy_companion.h>
>  
>  #define PALMAS_NUM_CLIENTS		3
>  
> @@ -37,6 +39,12 @@ struct palmas_gpadc;
>  struct palmas_resource;
>  struct palmas_usb;
>  
> +enum palmas_usb_state {
> +	PALMAS_USB_STATE_DISCONNECT,
> +	PALMAS_USB_STATE_VBUS,
> +	PALMAS_USB_STATE_ID,
> +};
> +
>  struct palmas {
>  	struct device *dev;
>  
> @@ -180,9 +188,6 @@ struct palmas_pmic_platform_data {
>  };
>  
>  struct palmas_usb_platform_data {
> -	/* Set this if platform wishes its own vbus control */
> -	int no_control_vbus;
> -
>  	/* Do we enable the wakeup comparator on probe */
>  	int wakeup;
>  };
> @@ -350,22 +355,22 @@ struct palmas_usb {
>  	struct palmas *palmas;
>  	struct device *dev;
>  
> -	/* for vbus reporting with irqs disabled */
> -	spinlock_t lock;
> +	struct extcon_dev edev;
> +	struct phy_companion comparator;
>  
>  	struct regulator *vbus_reg;
>  
>  	/* used to set vbus, in atomic path */
>  	struct work_struct set_vbus_work;
>  
> -	int irq1;
> -	int irq2;
> -	int irq3;
> -	int irq4;
> +	int id_otg_irq;
> +	int id_irq;
> +	int vbus_otg_irq;
> +	int vbus_irq;
>  
>  	int vbus_enable;
>  
> -	u8 linkstat;
> +	enum palmas_usb_state linkstat;
>  };
>  
>  #define comparator_to_palmas(x) container_of((x), struct palmas_usb, comparator)


  parent reply	other threads:[~2013-05-27  5:35 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-24 14:31 [PATCH 0/3] palmas usb driver Kishon Vijay Abraham I
2013-05-24 14:31 ` Kishon Vijay Abraham I
2013-05-24 14:31 ` [PATCH 1/3] drivers: regulator: palmas: add an API to set/clear the switch bit on SMPS10 Kishon Vijay Abraham I
2013-05-24 14:31   ` Kishon Vijay Abraham I
2013-05-24 15:09   ` Sergei Shtylyov
2013-05-24 15:09     ` Sergei Shtylyov
2013-05-25 17:00   ` Laxman Dewangan
2013-05-25 17:00     ` Laxman Dewangan
2013-05-24 14:31 ` [PATCH v5 2/3] extcon: Palmas Extcon Driver Kishon Vijay Abraham I
2013-05-24 14:31   ` Kishon Vijay Abraham I
2013-05-25 17:10   ` Laxman Dewangan
2013-05-25 17:10     ` Laxman Dewangan
2013-05-27  5:34   ` Chanwoo Choi [this message]
2013-05-27  5:54     ` Kishon Vijay Abraham I
2013-05-27  5:54       ` Kishon Vijay Abraham I
2013-05-27  6:08       ` Chanwoo Choi
2013-05-27  6:22         ` Laxman Dewangan
2013-05-27  6:22           ` Laxman Dewangan
2013-05-27  6:31           ` Kishon Vijay Abraham I
2013-05-27  6:31             ` Kishon Vijay Abraham I
2013-05-27  6:36             ` Laxman Dewangan
2013-05-27  6:36               ` Laxman Dewangan
2013-05-27  6:41               ` Kishon Vijay Abraham I
2013-05-27  6:41                 ` Kishon Vijay Abraham I
2013-05-27  6:56                 ` Laxman Dewangan
2013-05-27  6:56                   ` Laxman Dewangan
2013-05-27  9:24                   ` Kishon Vijay Abraham I
2013-05-27  9:24                     ` Kishon Vijay Abraham I
2013-05-24 14:31 ` [PATCH 3/3] usb: dwc3: use extcon fwrk to receive connect/disconnect notification Kishon Vijay Abraham I
2013-05-24 14:31   ` Kishon Vijay Abraham I
2013-05-27  5:38   ` Chanwoo Choi
2013-05-30 23:45   ` Chanwoo Choi
2013-05-27 13:33 ` [PATCH v6] extcon: Palmas Extcon Driver Kishon Vijay Abraham I
2013-05-27 13:33   ` Kishon Vijay Abraham I
2013-05-28  2:51   ` Chanwoo Choi
2013-05-27 13:35 ` [PATCH v2] usb: dwc3: use extcon fwrk to receive connect/disconnect notification Kishon Vijay Abraham I
2013-05-27 13:35   ` Kishon Vijay Abraham I
2013-05-28  2:24   ` Chanwoo Choi
2013-05-28  2:24     ` Chanwoo Choi
2013-05-28  5:27     ` Kishon Vijay Abraham I
2013-05-28  5:27       ` Kishon Vijay Abraham I
2013-05-28 17:35 ` [PATCH 0/3] palmas usb driver Felipe Balbi
2013-05-28 17:35   ` Felipe Balbi
2013-05-29  6:06   ` Kishon Vijay Abraham I
2013-05-29  6:06     ` Kishon Vijay Abraham I
2013-05-29 17:38     ` Felipe Balbi
2013-05-29 17:38       ` Felipe Balbi
     [not found]       ` <20130529173851.GC21290-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2013-05-30  2:17         ` Chanwoo Choi
2013-05-30  2:44         ` Chanwoo Choi
2013-05-30  2:46         ` Chanwoo Choi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51A2F07F.8070009@samsung.com \
    --to=cw00.choi@samsung.com \
    --cc=balbi@ti.com \
    --cc=broonie@kernel.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=george.cherian@ti.com \
    --cc=gg@slimlogic.co.uk \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=kishon@ti.com \
    --cc=ldewangan@nvidia.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=myungjoo.ham@samsung.com \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    --cc=sameo@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.