On 22/02/12 22:00, Kevin Hilman wrote: > Peter Ujfalusi <peter.ujfalusi@xxxxxx> writes: > >> Hi, >> >> I hoped that time will solve this, but so far no luck. I just can not >> get the ethernet port (along with the USB host ports) working on my xM RevC. >> What is the trick to get it working on 3.3-rc3? >> >> There seams to be some configuration issue: >> >> [ 1.437530] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver >> [ 1.444671] ehci_hcd: block sizes: qh 64 qtd 96 itd 160 sitd 96 >> [ 1.451354] ehci-omap ehci-omap.0: failed to get ehci port0 regulator >> [ 1.458282] ehci-omap ehci-omap.0: failed to get ehci port1 regulator > > > The first thing I try when I see these regulator failures is to add > CONFIG_REGULATOR_DUMMY=y to the .config to see if that helps. If so, > then the board file needs some help configuring the right regulators. > > Kevin > -- Apologies for the malformed patch, but I don't have time to clean it up this morning (or test it in its cleaned state); however, the following fixes the problem for me. It used to be masked because u-boot turns the regulator on to activate ethernet on Beagle xM and no-one ever turns it off again, but some versions of u-boot don't identify xM rev C correctly, so never turn it on .. Anyway, it's neater for the kernel to know what it's doing. And removes a whole two lines of kernel startup output :-) Richard. --- commit 39d26ad563023acdddd06e8aaaf154378c373187 Author: Richard Watts <rrw@xxxxxxxxxxxxx> Date: Fri Jan 20 12:27:59 2012 +0000 Turn on the USB regulator on Beagle xM explicitly, when the USB subsystem asks for it, rather than relying on u-boot to do it. diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 4a71cb7..69ed6a0 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c @@ -362,11 +362,32 @@ static struct regulator_init_data beagle_vsim = { .consumer_supplies = beagle_vsim_supply, }; +static struct regulator_consumer_supply beagle_usb_supply[] = { + REGULATOR_SUPPLY("hsusb0", "ehci-omap.0"), + REGULATOR_SUPPLY("hsusb1", "ehci-omap.0") +}; + +static struct regulator_init_data usb_power = { + .constraints = { + .min_uV = 1800000, + .max_uV = 1800000, + .valid_modes_mask = REGULATOR_MODE_NORMAL, + .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE + | REGULATOR_CHANGE_MODE + | REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(beagle_usb_supply), + .consumer_supplies = beagle_usb_supply +}; + + + static struct twl4030_platform_data beagle_twldata = { /* platform_data for children goes here */ .gpio = &beagle_gpio_data, .vmmc1 = &beagle_vmmc1, .vsim = &beagle_vsim, + .vaux2 = &usb_power, }; static struct i2c_board_info __initdata beagle_i2c_eeprom[] = -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html