summaryrefslogtreecommitdiff
path: root/drivers/usb/common/fsl-dt-fixup.c
diff options
context:
space:
mode:
authorSriram Dash <sriram.dash@nxp.com>2016-04-05 14:41:20 +0530
committerMarek Vasut <marex@denx.de>2016-04-10 17:18:42 +0200
commit469e72bc5d982de1117a801c6f61b16853da2f28 (patch)
tree7087183e717e429a6772d5ca26deeb961b9c7941 /drivers/usb/common/fsl-dt-fixup.c
parent93eb8f39d27074846b04d8b889fd1b02d7489e8d (diff)
downloadu-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/common/fsl-dt-fixup.c')
-rw-r--r--drivers/usb/common/fsl-dt-fixup.c72
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)
{