diff options
author | John Crispin <blogic@openwrt.org> | 2012-12-15 11:01:05 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2012-12-15 11:01:05 +0000 |
commit | 53ccbdf3f185df54ea22adc13655cd1c546ebee0 (patch) | |
tree | 211dc9f8a77e2c9e2656d80541ddf4b1f9a55e85 /package | |
parent | 4257df4d28607d4c55a1b6098a89efffc9afd2e7 (diff) | |
download | upstream-53ccbdf3f185df54ea22adc13655cd1c546ebee0.tar.gz upstream-53ccbdf3f185df54ea22adc13655cd1c546ebee0.tar.bz2 upstream-53ccbdf3f185df54ea22adc13655cd1c546ebee0.zip |
[lantiq] allow to load only 1 usb port on AR9 / VR9
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34700 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-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)); |