diff options
author | Sriram Dash <sriram.dash@nxp.com> | 2016-04-05 14:41:20 +0530 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2016-04-10 17:18:42 +0200 |
commit | 469e72bc5d982de1117a801c6f61b16853da2f28 (patch) | |
tree | 7087183e717e429a6772d5ca26deeb961b9c7941 /drivers/usb | |
parent | 93eb8f39d27074846b04d8b889fd1b02d7489e8d (diff) | |
download | u-boot-imx-469e72bc5d982de1117a801c6f61b16853da2f28.zip u-boot-imx-469e72bc5d982de1117a801c6f61b16853da2f28.tar.gz u-boot-imx-469e72bc5d982de1117a801c6f61b16853da2f28.tar.bz2 |
drivers:usb:common:fsl-dt-fixup: Remove code duplication for fdt_usb_get_node_type
Call fdt_usb_get_node_type() from fdt_fixup_usb_mode_phy_type() to
avoid code duplication.
Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
Acked-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/common/fsl-dt-fixup.c | 72 |
1 files changed, 29 insertions, 43 deletions
diff --git a/drivers/usb/common/fsl-dt-fixup.c b/drivers/usb/common/fsl-dt-fixup.c index 92adb46..eb13f12 100644 --- a/drivers/usb/common/fsl-dt-fixup.c +++ b/drivers/usb/common/fsl-dt-fixup.c @@ -19,33 +19,45 @@ #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 #endif -static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, - const char *phy_type, int start_offset) +static const char *fdt_usb_get_node_type(void *blob, int start_offset, + int *node_offset) { const char *compat_dr = "fsl-usb2-dr"; const char *compat_mph = "fsl-usb2-mph"; - const char *prop_mode = "dr_mode"; - const char *prop_type = "phy_type"; const char *node_type = NULL; - int node_offset; - int err; - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, compat_mph); - if (node_offset < 0) { - node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (node_offset < 0) { - printf("WARNING: could not find compatible node: %s", - fdt_strerror(node_offset)); - return -1; + *node_offset = fdt_node_offset_by_compatible(blob, start_offset, + compat_mph); + if (*node_offset < 0) { + *node_offset = fdt_node_offset_by_compatible(blob, + start_offset, + compat_dr); + if (*node_offset < 0) { + printf("ERROR: could not find compatible node: %s\n", + fdt_strerror(*node_offset)); + } else { + node_type = compat_dr; } - node_type = compat_dr; } else { node_type = compat_mph; } + return node_type; +} + +static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, + const char *phy_type, int start_offset) +{ + const char *prop_mode = "dr_mode"; + const char *prop_type = "phy_type"; + const char *node_type = NULL; + int node_offset; + int err; + + node_type = fdt_usb_get_node_type(blob, start_offset, &node_offset); + if (!node_type) + return -1; + if (mode) { err = fdt_setprop(blob, node_offset, prop_mode, mode, strlen(mode) + 1); @@ -65,32 +77,6 @@ static int fdt_fixup_usb_mode_phy_type(void *blob, const char *mode, return node_offset; } -static const char *fdt_usb_get_node_type(void *blob, int start_offset, - int *node_offset) -{ - const char *compat_dr = "fsl-usb2-dr"; - const char *compat_mph = "fsl-usb2-mph"; - const char *node_type = NULL; - - *node_offset = fdt_node_offset_by_compatible(blob, start_offset, - compat_mph); - if (*node_offset < 0) { - *node_offset = fdt_node_offset_by_compatible(blob, - start_offset, - compat_dr); - if (*node_offset < 0) { - printf("ERROR: could not find compatible node: %s\n", - fdt_strerror(*node_offset)); - } else { - node_type = compat_dr; - } - } else { - node_type = compat_mph; - } - - return node_type; -} - static int fdt_fixup_usb_erratum(void *blob, const char *prop_erratum, int start_offset) { |