Skip to contentSkip to conversation

Interaction between USB phy power and MADC driver

DISCUSSION Frank Agius 2 participants 2 messages Sep 6, 2012

lore
Share & tools
lore
#0 lore raw

I'm seeing what I think is an unintended consequence of powering down the USB phy. All the relavent code is in file twl4030_usb.c. My system is setup to use the USB in otg mode. If nothing is connected to the USB OTG port, the phy suspension code is called. In the chain of calls that follows, the vusb3v1 regulator is disabled. However, according to the OMAP power management manual, vusb3v1 is used "to bias the analog multiplexers on the four MCPC pins between the carkit and the MADC". I've seen if there is no bias on this mux, the MADC driver returns incorrect counts on these 4 pins that should be in A/D mode. If I plug something into the USB OTG port, the MADC driver returns the expected counts. I also created a debug version of the twl4030-usb driver, with the disabling of the vusb3v1 commented out and the MADC returns the correct counts regardless of the state of the USB OTG port.

Since the vusb3v1 regulator is required for the proper operation of the mux and by extension the MADC and carkit mode, shouldn't it always be enabled?

frank

#1 lore raw
Quoted 15 lines · Frank Agius

I'm seeing what I think is an unintended consequence of powering down the USB phy. All the relavent code is in file twl4030_usb.c. My system is setup to use the USB in otg mode. If nothing is connected to the USB OTG port, the phy suspension code is called. In the chain of calls that follows, the vusb3v1 regulator is disabled. However, according to the OMAP power management manual, vusb3v1 is used "to bias the analog multiplexers on the four MCPC pins between the carkit and the MADC". I've seen if there is no bias on this mux, the MADC driver returns incorrect counts on these 4 pins that should be in A/D mode. If I plug something into the USB OTG port, the MADC driver returns the expected counts. I also created a debug version of the twl4030-usb driver, with the disabling of the vusb3v1 commented out and the MADC returns the correct counts regardless of the state of the USB OTG port.

Quoted 3 lines

Since the vusb3v1 regulator is required for the proper operation of the mux and by extension the MADC and carkit mode, shouldn't it always be enabled?

If MADC needs that regulator, it should request it as well so the regulator framework has correct usecounts. Also, IIRC there is a "suspend" mode for the regulator which won't power it down, but it will consume minimal power while mantaining MADC working.

Signature · 1 line
balbi