[PATCH 2/2] 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() Signed-off-by: Chanwoo Choi cw00.c...@samsung.com --- drivers/extcon/Kconfig | 4 --- drivers/extcon/Makefile | 2 -- drivers/extcon/extcon-class.c| 43 ++ drivers/extcon/of_extcon.c | 56 drivers/usb/dwc3/dwc3-omap.c | 3 +-- include/linux/extcon.h | 12 + include/linux/extcon/of_extcon.h | 31 -- 7 files changed, 56 insertions(+), 95 deletions(-) delete mode 100644 drivers/extcon/of_extcon.c delete mode 100644 include/linux/extcon/of_extcon.h diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig index bdb5a00..be56e8a 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 43eccc0..bf7861e 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 7632233..bc4c789 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 @@ -818,6 +819,48 @@ 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 +static inline 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 0a29f82..000 --- 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 kis...@ti.com - * - * Copyright (C) 2013 Samsung Electronics - * Chanwoo Choi cw00.c...@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 name of 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); -
Re: [PATCH 2/2] extcon: Move OF helper function to extcon core and change function name
Hi, On Tue, Mar 18, 2014 at 09:04:40PM +0900, Chanwoo Choi wrote: 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 cw00.c...@samsung.com --- drivers/extcon/Kconfig | 4 --- drivers/extcon/Makefile | 2 -- drivers/extcon/extcon-class.c| 43 ++ drivers/extcon/of_extcon.c | 56 drivers/usb/dwc3/dwc3-omap.c | 3 +-- for dwc3: Acked-by: Felipe Balbi ba...@ti.com include/linux/extcon.h | 12 + include/linux/extcon/of_extcon.h | 31 -- 7 files changed, 56 insertions(+), 95 deletions(-) delete mode 100644 drivers/extcon/of_extcon.c delete mode 100644 include/linux/extcon/of_extcon.h diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig index bdb5a00..be56e8a 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 43eccc0..bf7861e 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 7632233..bc4c789 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 @@ -818,6 +819,48 @@ 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 +static inline 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 0a29f82..000 --- 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 kis...@ti.com - * - * Copyright (C) 2013 Samsung Electronics - * Chanwoo Choi cw00.c...@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 name of 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); - }