From: Peter Chen Date: Tue, 29 Apr 2014 00:35:58 +0000 (+0800) Subject: usb: move usb/usb-common.c to usb/common/usb-common.c X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f4cbd33fd5f0587910fa9db403a1b42f1cabf820;p=openwrt%2Fstaging%2Fblogic.git usb: move usb/usb-common.c to usb/common/usb-common.c Since we will have more usb-common things, and it will let usb-common.c be larger and larger, we create a folder named usb/common for all usb common things. Cc: Felipe Balbi Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile index 9bb672199703..3cba892b83a2 100644 --- a/drivers/usb/Makefile +++ b/drivers/usb/Makefile @@ -59,4 +59,4 @@ obj-$(CONFIG_USB_CHIPIDEA) += chipidea/ obj-$(CONFIG_USB_RENESAS_USBHS) += renesas_usbhs/ obj-$(CONFIG_USB_GADGET) += gadget/ -obj-$(CONFIG_USB_COMMON) += usb-common.o +obj-$(CONFIG_USB_COMMON) += common/ diff --git a/drivers/usb/common/Makefile b/drivers/usb/common/Makefile new file mode 100644 index 000000000000..9b320d1a11fd --- /dev/null +++ b/drivers/usb/common/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for the usb common parts. +# + +obj-$(CONFIG_USB_COMMON) += usb-common.o diff --git a/drivers/usb/common/usb-common.c b/drivers/usb/common/usb-common.c new file mode 100644 index 000000000000..6dfd30a863c7 --- /dev/null +++ b/drivers/usb/common/usb-common.c @@ -0,0 +1,144 @@ +/* + * Provides code common for host and device side USB. + * + * 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, version 2. + * + * If either host side (ie. CONFIG_USB=y) or device side USB stack + * (ie. CONFIG_USB_GADGET=y) is compiled in the kernel, this module is + * compiled-in as well. Otherwise, if either of the two stacks is + * compiled as module, this file is compiled as module as well. + */ + +#include +#include +#include +#include +#include +#include + +const char *usb_otg_state_string(enum usb_otg_state state) +{ + static const char *const names[] = { + [OTG_STATE_A_IDLE] = "a_idle", + [OTG_STATE_A_WAIT_VRISE] = "a_wait_vrise", + [OTG_STATE_A_WAIT_BCON] = "a_wait_bcon", + [OTG_STATE_A_HOST] = "a_host", + [OTG_STATE_A_SUSPEND] = "a_suspend", + [OTG_STATE_A_PERIPHERAL] = "a_peripheral", + [OTG_STATE_A_WAIT_VFALL] = "a_wait_vfall", + [OTG_STATE_A_VBUS_ERR] = "a_vbus_err", + [OTG_STATE_B_IDLE] = "b_idle", + [OTG_STATE_B_SRP_INIT] = "b_srp_init", + [OTG_STATE_B_PERIPHERAL] = "b_peripheral", + [OTG_STATE_B_WAIT_ACON] = "b_wait_acon", + [OTG_STATE_B_HOST] = "b_host", + }; + + if (state < 0 || state >= ARRAY_SIZE(names)) + return "UNDEFINED"; + + return names[state]; +} +EXPORT_SYMBOL_GPL(usb_otg_state_string); + +static const char *const speed_names[] = { + [USB_SPEED_UNKNOWN] = "UNKNOWN", + [USB_SPEED_LOW] = "low-speed", + [USB_SPEED_FULL] = "full-speed", + [USB_SPEED_HIGH] = "high-speed", + [USB_SPEED_WIRELESS] = "wireless", + [USB_SPEED_SUPER] = "super-speed", +}; + +const char *usb_speed_string(enum usb_device_speed speed) +{ + if (speed < 0 || speed >= ARRAY_SIZE(speed_names)) + speed = USB_SPEED_UNKNOWN; + return speed_names[speed]; +} +EXPORT_SYMBOL_GPL(usb_speed_string); + +const char *usb_state_string(enum usb_device_state state) +{ + static const char *const names[] = { + [USB_STATE_NOTATTACHED] = "not attached", + [USB_STATE_ATTACHED] = "attached", + [USB_STATE_POWERED] = "powered", + [USB_STATE_RECONNECTING] = "reconnecting", + [USB_STATE_UNAUTHENTICATED] = "unauthenticated", + [USB_STATE_DEFAULT] = "default", + [USB_STATE_ADDRESS] = "addressed", + [USB_STATE_CONFIGURED] = "configured", + [USB_STATE_SUSPENDED] = "suspended", + }; + + if (state < 0 || state >= ARRAY_SIZE(names)) + return "UNKNOWN"; + + return names[state]; +} +EXPORT_SYMBOL_GPL(usb_state_string); + +#ifdef CONFIG_OF +static const char *const usb_dr_modes[] = { + [USB_DR_MODE_UNKNOWN] = "", + [USB_DR_MODE_HOST] = "host", + [USB_DR_MODE_PERIPHERAL] = "peripheral", + [USB_DR_MODE_OTG] = "otg", +}; + +/** + * of_usb_get_dr_mode - Get dual role mode for given device_node + * @np: Pointer to the given device_node + * + * The function gets phy interface string from property 'dr_mode', + * and returns the correspondig enum usb_dr_mode + */ +enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np) +{ + const char *dr_mode; + int err, i; + + err = of_property_read_string(np, "dr_mode", &dr_mode); + if (err < 0) + return USB_DR_MODE_UNKNOWN; + + for (i = 0; i < ARRAY_SIZE(usb_dr_modes); i++) + if (!strcmp(dr_mode, usb_dr_modes[i])) + return i; + + return USB_DR_MODE_UNKNOWN; +} +EXPORT_SYMBOL_GPL(of_usb_get_dr_mode); + +/** + * of_usb_get_maximum_speed - Get maximum requested speed for a given USB + * controller. + * @np: Pointer to the given device_node + * + * The function gets the maximum speed string from property "maximum-speed", + * and returns the corresponding enum usb_device_speed. + */ +enum usb_device_speed of_usb_get_maximum_speed(struct device_node *np) +{ + const char *maximum_speed; + int err; + int i; + + err = of_property_read_string(np, "maximum-speed", &maximum_speed); + if (err < 0) + return USB_SPEED_UNKNOWN; + + for (i = 0; i < ARRAY_SIZE(speed_names); i++) + if (strcmp(maximum_speed, speed_names[i]) == 0) + return i; + + return USB_SPEED_UNKNOWN; +} +EXPORT_SYMBOL_GPL(of_usb_get_maximum_speed); + +#endif + +MODULE_LICENSE("GPL"); diff --git a/drivers/usb/usb-common.c b/drivers/usb/usb-common.c deleted file mode 100644 index 6dfd30a863c7..000000000000 --- a/drivers/usb/usb-common.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Provides code common for host and device side USB. - * - * 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, version 2. - * - * If either host side (ie. CONFIG_USB=y) or device side USB stack - * (ie. CONFIG_USB_GADGET=y) is compiled in the kernel, this module is - * compiled-in as well. Otherwise, if either of the two stacks is - * compiled as module, this file is compiled as module as well. - */ - -#include -#include -#include -#include -#include -#include - -const char *usb_otg_state_string(enum usb_otg_state state) -{ - static const char *const names[] = { - [OTG_STATE_A_IDLE] = "a_idle", - [OTG_STATE_A_WAIT_VRISE] = "a_wait_vrise", - [OTG_STATE_A_WAIT_BCON] = "a_wait_bcon", - [OTG_STATE_A_HOST] = "a_host", - [OTG_STATE_A_SUSPEND] = "a_suspend", - [OTG_STATE_A_PERIPHERAL] = "a_peripheral", - [OTG_STATE_A_WAIT_VFALL] = "a_wait_vfall", - [OTG_STATE_A_VBUS_ERR] = "a_vbus_err", - [OTG_STATE_B_IDLE] = "b_idle", - [OTG_STATE_B_SRP_INIT] = "b_srp_init", - [OTG_STATE_B_PERIPHERAL] = "b_peripheral", - [OTG_STATE_B_WAIT_ACON] = "b_wait_acon", - [OTG_STATE_B_HOST] = "b_host", - }; - - if (state < 0 || state >= ARRAY_SIZE(names)) - return "UNDEFINED"; - - return names[state]; -} -EXPORT_SYMBOL_GPL(usb_otg_state_string); - -static const char *const speed_names[] = { - [USB_SPEED_UNKNOWN] = "UNKNOWN", - [USB_SPEED_LOW] = "low-speed", - [USB_SPEED_FULL] = "full-speed", - [USB_SPEED_HIGH] = "high-speed", - [USB_SPEED_WIRELESS] = "wireless", - [USB_SPEED_SUPER] = "super-speed", -}; - -const char *usb_speed_string(enum usb_device_speed speed) -{ - if (speed < 0 || speed >= ARRAY_SIZE(speed_names)) - speed = USB_SPEED_UNKNOWN; - return speed_names[speed]; -} -EXPORT_SYMBOL_GPL(usb_speed_string); - -const char *usb_state_string(enum usb_device_state state) -{ - static const char *const names[] = { - [USB_STATE_NOTATTACHED] = "not attached", - [USB_STATE_ATTACHED] = "attached", - [USB_STATE_POWERED] = "powered", - [USB_STATE_RECONNECTING] = "reconnecting", - [USB_STATE_UNAUTHENTICATED] = "unauthenticated", - [USB_STATE_DEFAULT] = "default", - [USB_STATE_ADDRESS] = "addressed", - [USB_STATE_CONFIGURED] = "configured", - [USB_STATE_SUSPENDED] = "suspended", - }; - - if (state < 0 || state >= ARRAY_SIZE(names)) - return "UNKNOWN"; - - return names[state]; -} -EXPORT_SYMBOL_GPL(usb_state_string); - -#ifdef CONFIG_OF -static const char *const usb_dr_modes[] = { - [USB_DR_MODE_UNKNOWN] = "", - [USB_DR_MODE_HOST] = "host", - [USB_DR_MODE_PERIPHERAL] = "peripheral", - [USB_DR_MODE_OTG] = "otg", -}; - -/** - * of_usb_get_dr_mode - Get dual role mode for given device_node - * @np: Pointer to the given device_node - * - * The function gets phy interface string from property 'dr_mode', - * and returns the correspondig enum usb_dr_mode - */ -enum usb_dr_mode of_usb_get_dr_mode(struct device_node *np) -{ - const char *dr_mode; - int err, i; - - err = of_property_read_string(np, "dr_mode", &dr_mode); - if (err < 0) - return USB_DR_MODE_UNKNOWN; - - for (i = 0; i < ARRAY_SIZE(usb_dr_modes); i++) - if (!strcmp(dr_mode, usb_dr_modes[i])) - return i; - - return USB_DR_MODE_UNKNOWN; -} -EXPORT_SYMBOL_GPL(of_usb_get_dr_mode); - -/** - * of_usb_get_maximum_speed - Get maximum requested speed for a given USB - * controller. - * @np: Pointer to the given device_node - * - * The function gets the maximum speed string from property "maximum-speed", - * and returns the corresponding enum usb_device_speed. - */ -enum usb_device_speed of_usb_get_maximum_speed(struct device_node *np) -{ - const char *maximum_speed; - int err; - int i; - - err = of_property_read_string(np, "maximum-speed", &maximum_speed); - if (err < 0) - return USB_SPEED_UNKNOWN; - - for (i = 0; i < ARRAY_SIZE(speed_names); i++) - if (strcmp(maximum_speed, speed_names[i]) == 0) - return i; - - return USB_SPEED_UNKNOWN; -} -EXPORT_SYMBOL_GPL(of_usb_get_maximum_speed); - -#endif - -MODULE_LICENSE("GPL");