Skip to content

Commit

Permalink
extcon: Move OF helper function to extcon core and change function name
Browse files Browse the repository at this point in the history
This patch move simply OF helper function to extcon core and change function
name as following:
- of_extcon_get_extcon_dev() -> extcon_get_edev_by_phandle()

Signed-off-by: Chanwoo Choi <[email protected]>
Acked-by: Felipe Balbi <[email protected]>
  • Loading branch information
chanwoochoi committed Mar 19, 2014
1 parent ca48824 commit 1ad94ff
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 95 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
56 changes: 0 additions & 56 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 1ad94ff

Please sign in to comment.