int retval = 0;
struct device_node *np;
int gpio_count;
+ u32 port_mask = 0x1;
+
#ifdef __IS_DANUBE__
np = of_find_compatible_node(NULL, NULL, "lantiq,ifxhcd-danube");
#elif defined __IS_AMAZON_SE__
dev_err(&_pdev->dev, "failed to find hcd device node\n");
return -ENODEV;
}
-
+ of_property_read_u32(np, "lantiq,portmask", &port_mask);
// Parsing and store the parameters
IFX_DEBUGPL(DBG_ENTRY, "%s() %d\n", __func__, __LINE__ );
parse_parms();
ifxusb_hcd_1.dev=&_pdev->dev;
ifxusb_hcd_2.dev=&_pdev->dev;
- retval = ifxusb_driver_probe_h(&ifxusb_hcd_1,
+ if (port_mask & 0x1) {
+ retval = ifxusb_driver_probe_h(&ifxusb_hcd_1,
IFXUSB1_IRQ,
IFXUSB1_IOMEM_BASE,
IFXUSB1_FIFOMEM_BASE,
IFXUSB1_FIFODBG_BASE
);
- if(retval)
- goto ifxusb_driver_probe_fail;
+ if(retval)
+ goto ifxusb_driver_probe_fail;
+ }
- retval = ifxusb_driver_probe_h(&ifxusb_hcd_2,
+ if (port_mask & 0x2) {
+ retval = ifxusb_driver_probe_h(&ifxusb_hcd_2,
IFXUSB2_IRQ,
IFXUSB2_IOMEM_BASE,
IFXUSB2_FIFOMEM_BASE,
IFXUSB2_FIFODBG_BASE
);
- if(retval)
- goto ifxusb_driver_probe_fail;
-
+ if(retval)
+ goto ifxusb_driver_probe_fail;
+ }
#elif defined(__IS_FIRST__)
memset(&ifxusb_hcd, 0, sizeof(ifxhcd_hcd_t));