diff options
author | John Crispin <john@openwrt.org> | 2012-12-15 11:01:05 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2012-12-15 11:01:05 +0000 |
commit | 66daf1ef6195412fb79c1c766c173d01de89d21b (patch) | |
tree | f77cd9d2f57a24713385263ca5ef562e3503b83e /package/platform | |
parent | 3dac521a49dc1fba0484968ce0c0cb6bc406ab34 (diff) | |
download | upstream-66daf1ef6195412fb79c1c766c173d01de89d21b.tar.gz upstream-66daf1ef6195412fb79c1c766c173d01de89d21b.tar.bz2 upstream-66daf1ef6195412fb79c1c766c173d01de89d21b.zip |
allow to load only 1 usb port on AR9 / VR9
SVN-Revision: 34700
Diffstat (limited to 'package/platform')
-rw-r--r-- | package/platform/lantiq/ltq-hcd/src/ifxusb_driver.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/package/platform/lantiq/ltq-hcd/src/ifxusb_driver.c b/package/platform/lantiq/ltq-hcd/src/ifxusb_driver.c index b49a197883..c30cf44914 100644 --- a/package/platform/lantiq/ltq-hcd/src/ifxusb_driver.c +++ b/package/platform/lantiq/ltq-hcd/src/ifxusb_driver.c @@ -305,6 +305,8 @@ static int ifxusb_driver_probe(struct platform_device *_pdev) 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__ @@ -318,7 +320,7 @@ static int ifxusb_driver_probe(struct platform_device *_pdev) 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(); @@ -349,24 +351,27 @@ static int ifxusb_driver_probe(struct platform_device *_pdev) 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)); |