diff options
author | Chanwoo Choi <cw00.choi@samsung.com> | 2014-03-18 20:31:33 +0900 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-11-18 11:47:31 +0900 |
commit | dfb7bd65eb856383836bc243d941bdb9734f149b (patch) | |
tree | 36b0d7f85c46ac526b803436a015b2f770e1db54 /drivers | |
parent | 96a17925ba8b9c5726c6421f496055ef75dc8f6c (diff) | |
download | linux-3.10-dfb7bd65eb856383836bc243d941bdb9734f149b.tar.gz linux-3.10-dfb7bd65eb856383836bc243d941bdb9734f149b.tar.bz2 linux-3.10-dfb7bd65eb856383836bc243d941bdb9734f149b.zip |
extcon: Move OF helper function to extcon core and change function name
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()
Change-Id: I37fd827f945e3d713cfe15607689eab6792007b1
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/extcon/Kconfig | 4 | ||||
-rw-r--r-- | drivers/extcon/Makefile | 2 | ||||
-rw-r--r-- | drivers/extcon/extcon-class.c | 42 | ||||
-rw-r--r-- | drivers/extcon/of_extcon.c | 56 | ||||
-rw-r--r-- | drivers/misc/sii9234.c | 3 | ||||
-rw-r--r-- | drivers/usb/gadget/udc-core.c | 3 |
6 files changed, 44 insertions, 66 deletions
diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig index aaebc6d0cb0..90b3ad038b4 100644 --- a/drivers/extcon/Kconfig +++ b/drivers/extcon/Kconfig @@ -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 diff --git a/drivers/extcon/Makefile b/drivers/extcon/Makefile index b04c0388c5c..034bb95404b 100644 --- a/drivers/extcon/Makefile +++ b/drivers/extcon/Makefile @@ -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 diff --git a/drivers/extcon/extcon-class.c b/drivers/extcon/extcon-class.c index 5fe0ff7abee..3bc083bb402 100644 --- a/drivers/extcon/extcon-class.c +++ b/drivers/extcon/extcon-class.c @@ -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 @@ -843,6 +844,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(); diff --git a/drivers/extcon/of_extcon.c b/drivers/extcon/of_extcon.c deleted file mode 100644 index e8ea4e0eb04..00000000000 --- a/drivers/extcon/of_extcon.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * OF helpers for External connector (extcon) framework - * - * Copyright (C) 2013 Texas Instruments, Inc. - * Kishon Vijay Abraham I <kishon@ti.com> - * - * Copyright (C) 2013 Samsung Electronics - * Chanwoo Choi <cw00.choi@samsung.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. - */ - -#include <linux/module.h> -#include <linux/slab.h> -#include <linux/err.h> -#include <linux/extcon.h> -#include <linux/of.h> -#include <linux/of_platform.h> -#include <linux/extcon/of_extcon.h> - -/* - * of_extcon_get_extcon_dev - 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 *of_extcon_get_extcon_dev(struct device *dev, int index) -{ - struct device_node *node; - struct extcon_dev *edev; - - if (!dev->of_node) { - dev_dbg(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_dbg(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_dbg(dev, "unable to get extcon device : %s\n", node->name); - return ERR_PTR(-ENODEV); - } - - return edev; -} -EXPORT_SYMBOL_GPL(of_extcon_get_extcon_dev); diff --git a/drivers/misc/sii9234.c b/drivers/misc/sii9234.c index 8d051c4ff63..dfc70823456 100644 --- a/drivers/misc/sii9234.c +++ b/drivers/misc/sii9234.c @@ -43,7 +43,6 @@ #include <linux/extcon.h> #include <linux/of.h> #include <linux/of_gpio.h> -#include <linux/extcon/of_extcon.h> #include <linux/regulator/machine.h> /* MHL Tx registers and bits */ @@ -872,7 +871,7 @@ static int sii9234_extcon_init(struct sii9234 *sii9234) int ret; if (of_property_read_bool(dev->of_node, "extcon")) { - edev = of_extcon_get_extcon_dev(dev, 0); + edev = extcon_get_edev_by_phandle(dev, 0); if (IS_ERR(edev)) { dev_err(dev, "failed to acquire extcon device\n"); return PTR_ERR(edev); diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c index 0c639bb3cfe..1db6f187674 100644 --- a/drivers/usb/gadget/udc-core.c +++ b/drivers/usb/gadget/udc-core.c @@ -29,7 +29,6 @@ #include <linux/of.h> #include <linux/extcon.h> -#include <linux/extcon/of_extcon.h> #include <linux/workqueue.h> /** @@ -379,7 +378,7 @@ static int udc_bind_to_driver(struct usb_udc *udc, struct usb_gadget_driver *dri node = udc->gadget->dev.of_node; /* Check if we have an extcon associated with the UDC driver */ if (node && of_property_read_bool(node, "extcon")) { - edev = of_extcon_get_extcon_dev(&udc->gadget->dev, 0); + edev = extcon_get_edev_by_phandle(&udc->gadget->dev, 0); if(IS_ERR(edev)) { dev_dbg(&udc->dev, "couldn't get extcon device\n"); |