Hello,
I'm currently experiencing issues trying to use one of i.MX28 GPIO pins to produce a 5V output (using a voltage regulator) in order to power an USB interface (a camera board to be precise). This is a custom board and the USB power pin in question is GPIO3_28 (MX28_PAD_PWM3__GPIO_3_28) and the over-current pin is connected to GPIO3_18 (MX28_PAD_PWM2__USB1_OVERCURRENT). The kernel in question is 3.14-rc5
The device tree definitions vital to this issue are the following:
PIN DEFINITIONS:
pinctrl@80018000 {
pinctrl-names = "default";
pinctrl-0 = <&hog_pins_a>;
hog_pins_a: hog@0 {
reg = <0>;
fsl,pinmux-ids = <
0x2053 /* MX28_PAD_SSP0_DATA5__GPIO_2_5 */
0x2063 /* MX28_PAD_SSP0_DATA6__GPIO_2_6 */
0x2073 /* MX28_PAD_SSP0_DATA7__GPIO_2_7 */
0x3043 /* MX28_PAD_AUART1_RX__GPIO_3_4 */
0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */
0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */
>;
fsl,drive-strength = <MXS_DRIVE_4mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
usbphy1_pins: usbphy1-pins {
fsl,pinmux-ids = <
MX28_PAD_PWM2__USB1_OVERCURRENT
>;
fsl,drive-strength = <MXS_DRIVE_12mA>;
fsl,voltage = <MXS_VOLTAGE_HIGH>;
fsl,pull-up = <MXS_PULL_DISABLE>;
};
USBPHY DEFINITON:
usbphy1: usbphy@8007e000 {
pinctrl-names = "default";
pinctrl-0 = <&usbphy1_pins>;
status = "okay";
};
USB DEFINITION:
usb1: usb@80090000 {
vbus-supply = <®_usb1_vbus>;
dr_mode = "host";
disable-over-current;
status = "okay";
};
REGULATOR DEFINITION:
reg_usb1_vbus: usb1_vbus {
compatible = "regulator-fixed";
regulator-name = "usb1_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio3 28 0>;
enable-active-high;
};
IFCONFIG:
(usb0 -> ../../devices/soc0/80080000.ahb/80090000.usb/ci_hdrc.1/usb2/2-1/2-1:1.0/net/usb0)
usb0 Link encap:Ethernet HWaddr 8A:D8:73:29:3F:F5
inet addr:172.16.245.114 Bcast:172.16.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:3919 (3.8 KiB)
The USB device is recognized (ci_hdrc device) but the voltage that I measure is 3V3 and not 5V0. Maybe I am overlooking the bindings from USB/PHY driver to the regulator. I would gladly appreciate any help with this issue.
Regards,
Gordan Markuš