Skip to content

Commit

Permalink
Merge tag 'extcon-next-for-3.15' of git://git.kernel.org/pub/scm/linu…
Browse files Browse the repository at this point in the history
…x/kernel/git/chanwoo/extcon into char-misc-next

Chanwoo writes:

Update extcon for v3.15

This patchset fix minor issue.

The extcon-palmas/gpio use SIMPLE_DEV_PM_OPS macro instead of legacy method.
OF helper function of extcon move in extcon core to remove separate of_extcon.c
and change the name of OF helper function as following because previous function
name is complicated and ambiguous naming.
- of_extcon_get_extcon_dev() -> extcon_get_edev_by_phandle()
  • Loading branch information
Greg Kroah-Hartman committed Mar 19, 2014
2 parents a05f8f8 + 1ad94ff commit 1b3fa22
Show file tree
Hide file tree
Showing 9 changed files with 57 additions and 110 deletions.
4 changes: 0 additions & 4 deletions drivers/extcon/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ if EXTCON

comment "Extcon Device Drivers"

config OF_EXTCON
def_tristate y
depends on OF

config EXTCON_GPIO
tristate "GPIO extcon support"
depends on GPIOLIB
Expand Down
2 changes: 0 additions & 2 deletions drivers/extcon/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
# Makefile for external connector class (extcon) devices
#

obj-$(CONFIG_OF_EXTCON) += of_extcon.o

obj-$(CONFIG_EXTCON) += extcon-class.o
obj-$(CONFIG_EXTCON_GPIO) += extcon-gpio.o
obj-$(CONFIG_EXTCON_ADC_JACK) += extcon-adc-jack.o
Expand Down
42 changes: 42 additions & 0 deletions drivers/extcon/extcon-class.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include <linux/extcon.h>
#include <linux/slab.h>
#include <linux/sysfs.h>
#include <linux/of.h>

/*
* extcon_cable_name suggests the standard cable names for commonly used
Expand Down Expand Up @@ -818,6 +819,47 @@ void extcon_dev_unregister(struct extcon_dev *edev)
}
EXPORT_SYMBOL_GPL(extcon_dev_unregister);

#ifdef CONFIG_OF
/*
* extcon_get_edev_by_phandle - Get the extcon device from devicetree
* @dev - instance to the given device
* @index - index into list of extcon_dev
*
* return the instance of extcon device
*/
struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev, int index)
{
struct device_node *node;
struct extcon_dev *edev;

if (!dev->of_node) {
dev_err(dev, "device does not have a device node entry\n");
return ERR_PTR(-EINVAL);
}

node = of_parse_phandle(dev->of_node, "extcon", index);
if (!node) {
dev_err(dev, "failed to get phandle in %s node\n",
dev->of_node->full_name);
return ERR_PTR(-ENODEV);
}

edev = extcon_get_extcon_dev(node->name);
if (!edev) {
dev_err(dev, "unable to get extcon device : %s\n", node->name);
return ERR_PTR(-ENODEV);
}

return edev;
}
#else
struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev, int index)
{
return ERR_PTR(-ENOSYS);
}
#endif /* CONFIG_OF */
EXPORT_SYMBOL_GPL(extcon_get_edev_by_phandle);

static int __init extcon_class_init(void)
{
return create_extcon_class();
Expand Down
4 changes: 1 addition & 3 deletions drivers/extcon/extcon-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,7 @@ static int gpio_extcon_resume(struct device *dev)
}
#endif

static const struct dev_pm_ops gpio_extcon_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(NULL, gpio_extcon_resume)
};
static SIMPLE_DEV_PM_OPS(gpio_extcon_pm_ops, NULL, gpio_extcon_resume);

static struct platform_driver gpio_extcon_driver = {
.probe = gpio_extcon_probe,
Expand Down
5 changes: 1 addition & 4 deletions drivers/extcon/extcon-palmas.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,10 +271,7 @@ static int palmas_usb_resume(struct device *dev)
};
#endif

static const struct dev_pm_ops palmas_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(palmas_usb_suspend,
palmas_usb_resume)
};
static SIMPLE_DEV_PM_OPS(palmas_pm_ops, palmas_usb_suspend, palmas_usb_resume);

static struct of_device_id of_palmas_match_tbl[] = {
{ .compatible = "ti,palmas-usb", },
Expand Down
64 changes: 0 additions & 64 deletions drivers/extcon/of_extcon.c

This file was deleted.

3 changes: 1 addition & 2 deletions drivers/usb/dwc3/dwc3-omap.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/extcon.h>
#include <linux/extcon/of_extcon.h>
#include <linux/regulator/consumer.h>

#include <linux/usb/otg.h>
Expand Down Expand Up @@ -522,7 +521,7 @@ static int dwc3_omap_probe(struct platform_device *pdev)
dwc3_omap_enable_irqs(omap);

if (of_property_read_bool(node, "extcon")) {
edev = of_extcon_get_extcon_dev(dev, 0);
edev = extcon_get_edev_by_phandle(dev, 0);
if (IS_ERR(edev)) {
dev_vdbg(dev, "couldn't get extcon device\n");
ret = -EPROBE_DEFER;
Expand Down
12 changes: 12 additions & 0 deletions include/linux/extcon.h
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,12 @@ extern int extcon_register_notifier(struct extcon_dev *edev,
struct notifier_block *nb);
extern int extcon_unregister_notifier(struct extcon_dev *edev,
struct notifier_block *nb);

/*
* Following API get the extcon device from devicetree.
* This function use phandle of devicetree to get extcon device directly.
*/
extern struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev, int index);
#else /* CONFIG_EXTCON */
static inline int extcon_dev_register(struct extcon_dev *edev)
{
Expand Down Expand Up @@ -324,5 +330,11 @@ static inline int extcon_unregister_interest(struct extcon_specific_cable_nb
{
return 0;
}

static inline struct extcon_dev *extcon_get_edev_by_phandle(struct device *dev,
int index)
{
return ERR_PTR(-ENODEV);
}
#endif /* CONFIG_EXTCON */
#endif /* __LINUX_EXTCON_H__ */
31 changes: 0 additions & 31 deletions include/linux/extcon/of_extcon.h

This file was deleted.

0 comments on commit 1b3fa22

Please sign in to comment.