mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Teemu Peltola <teemu.peltola@nextfour.com>
To: barebox@lists.infradead.org
Subject: Re: i.MX25 3-stack - over-current change on port 1 - USB host port not working
Date: Wed, 30 Mar 2011 10:42:43 +0300	[thread overview]
Message-ID: <4D92DEF3.5010705@nextfour.com> (raw)
In-Reply-To: <4D8711C3.7050107@nextfour.com>

On 03/21/2011 10:52 AM, Teemu Peltola wrote:
> On 03/17/2011 11:19 AM, Eric Bénard wrote:
>> Hi,
>>
>> On 16/03/2011 15:26, Teemu Peltola wrote:
>>> I have Freescale i.MX25 3-stack development board + debug board
>>> attached to
>>> it. I have built barebox-2011.03.0 using
>>> freescale_mx25_3stack_defconfig with
>>> some modifications to support NAND booting (see below). I have used
>>> buildroot-2011.02 to create 2.6.38 kernel (CONFIG_MACH_MX25_3DS=y
>>> etc.) and
>>> rootfs images.
>>>
>>> When I boot these images from barebox, dmesg displays the following
>>> error
>>> message constantly and USB host port does not work:
>>>
>>> mxc-ehci mxc-ehci.1: GetStatus port:1 status cc001020 102 ACK POWER
>>> sig=se0 OCC
>>> hub 1-0:1.0: over-current change on port 1
>>> hub 1-0:1.0: enabling power on all ports
>>> hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
>>>
>>> If I try to use Freescale RedBoot (mx25_3stack_redboot_TO1_1.bin from
>>> L2.6.31_09.12.00_SDK_images_MX25 package) with the same kernel and
>>> rootfs, USB
>>> works. Is there some initialization that is missing from barebox?
>>>
>> if you don't need USB in barebox don't enable it. I also have problems
>> with OTG port under Linux when it's enabled under barebox. I didn't yet
>> found time to investigate.
>
> Disabling USB in barebox did not help.

It seems that USBH2_PWR signal is not powered. The following patch for 
barebox-2011.03.0 seems to work, using it as GPIO:

--- a/barebox-2011.03.0/arch/arm/boards/freescale-mx25-3-stack/3stack.c 
2011-03-29 09:16:54.247015588 +0300
+++ b/barebox-2011.03.0/arch/arm/boards/freescale-mx25-3-stack/3stack.c 
2011-03-29 09:18:53.675014266 +0300
@@ -168,6 +168,11 @@
         /* Set to Host mode */
         tmp = readl(IMX_OTG_BASE + 0x5a8);
         writel(tmp | 0x3, IMX_OTG_BASE + 0x5a8);
+
+/* usb_top_USBH2_PWR, gpio4_GPIO[11] */
+#define USB_PWR_GPIO 107
+
+       gpio_direction_output(USB_PWR_GPIO, 1);
  }

  static struct device_d usbh2_dev = {
@@ -288,20 +293,9 @@
         MX25_PAD_UART1_RTS__RTS,
         MX25_PAD_UART1_CTS__CTS,
         /* USBH2 */
-       MX25_PAD_D9__USBH2_PWR,
-       MX25_PAD_D8__USBH2_OC,
-       MX25_PAD_LD0__USBH2_CLK,
-       MX25_PAD_LD1__USBH2_DIR,
-       MX25_PAD_LD2__USBH2_STP,
-       MX25_PAD_LD3__USBH2_NXT,
-       MX25_PAD_LD4__USBH2_DATA0,
-       MX25_PAD_LD5__USBH2_DATA1,
-       MX25_PAD_LD6__USBH2_DATA2,
-       MX25_PAD_LD7__USBH2_DATA3,
-       MX25_PAD_HSYNC__USBH2_DATA4,
-       MX25_PAD_VSYNC__USBH2_DATA5,
-       MX25_PAD_LSCLK__USBH2_DATA6,
-       MX25_PAD_OE_ACD__USBH2_DATA7,
+#ifdef CONFIG_USB
+       MX25_PAD_D9__GPIO11,
+#endif
         /* i2c */
         MX25_PAD_I2C1_CLK__SCL,
         MX25_PAD_I2C1_DAT__SDA,


And for Linux 2.6.38.2:

--- a/linux-2.6.38.2/arch/arm/mach-imx/mach-mx25_3ds.c.orig 
2011-03-27 21:37:20.000000000 +0300
+++ b/linux-2.6.38.2/arch/arm/mach-imx/mach-mx25_3ds.c    2011-03-29 
10:49:33.574515896 +0300
@@ -103,6 +103,9 @@
         MX25_PAD_SD1_DATA1__SD1_DATA1,
         MX25_PAD_SD1_DATA2__SD1_DATA2,
         MX25_PAD_SD1_DATA3__SD1_DATA3,
+
+       /* Use USBH2_PWR signal as gpio to enable USB */
+       MX25_PAD_D9__GPIO_4_11
  };

  static const struct fec_platform_data mx25_fec_pdata __initconst = {
@@ -126,6 +129,14 @@
         gpio_set_value(FEC_RESET_B_GPIO, 1);
  }

+#define USBH2_PWR_GPIO         IMX_GPIO_NR(4,11)
+
+static void __init imx25_usb_h2_powerup(void)
+{
+       gpio_request(USBH2_PWR_GPIO, "USBH2 PWR");
+       gpio_direction_output(USBH2_PWR_GPIO, 1);  /* Power up */
+}
+
  static const struct mxc_nand_platform_data
  mx25pdk_nand_board_info __initconst = {
         .width          = 1,
@@ -203,6 +214,7 @@
         imx25_add_imx_uart0(&uart_pdata);
         imx25_add_fsl_usb2_udc(&otg_device_pdata);
         imx25_add_mxc_ehci_hs(&usbh2_pdata);
+       imx25_usb_h2_powerup();
         imx25_add_mxc_nand(&mx25pdk_nand_board_info);
         imx25_add_imxdi_rtc(NULL);
         imx25_add_imx_fb(&mx25pdk_fb_pdata);

BR,

Teemu

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

      parent reply	other threads:[~2011-03-30  7:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-16 14:26 Teemu Peltola
2011-03-17  9:19 ` Eric Bénard
2011-03-21  8:52   ` Teemu Peltola
2011-03-21 19:21     ` Atmel status Dvorkin Dmitry
2011-03-27 19:51       ` Robert Schwebel
2011-03-30  7:42     ` Teemu Peltola [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D92DEF3.5010705@nextfour.com \
    --to=teemu.peltola@nextfour.com \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox