Re: USB hangs on AU1100

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 05, 2005 at 09:42:41AM -0700, Pete Popov wrote:
> It sounds like this is a custom Au1100 based board? What boot code are
> you running?  I'm guessing the SOC isn't setup correctly or you have a
> HW problem.

Yes, you was right, I missing to setup USB clock... I just added this
code to the board init function (board_setup() function) and now USB
works:

    #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_AU1X00_USB_DEVICE)
	    /* zero and disable FREQ2 */
	    sys_freqctrl = au_readl(SYS_FREQCTRL0);
	    sys_freqctrl &= ~0xFFF00000;
	    au_writel(sys_freqctrl, SYS_FREQCTRL0);
    
	    /* zero and disable USBH/USBD/IrDA clock */
	    sys_clksrc = au_readl(SYS_CLKSRC);
	    sys_clksrc &= ~0x0000001F;
	    au_writel(sys_clksrc, SYS_CLKSRC);
    
	    sys_freqctrl = au_readl(SYS_FREQCTRL0);
	    sys_freqctrl &= ~0xFFF00000;
    
	    sys_clksrc = au_readl(SYS_CLKSRC);
	    sys_clksrc &= ~0x0000001F;
    
	    /* FREQ2 = aux/2 = 48 MHz */
	    sys_freqctrl |= ((0<<22) | (1<<21) | (1<<20));
	    au_writel(sys_freqctrl, SYS_FREQCTRL0);
    
	    /* Route 48MHz FREQ2 into USBH/USBD/IrDA */
	    sys_clksrc |= ((4<<2) | (0<<1) | 0 );
	    au_writel(sys_clksrc, SYS_CLKSRC);
    
	    /* setup the static bus controller */
	    au_writel(0x00000002, MEM_STCFG3);  /* type = PCMCIA */
	    au_writel(0x280E3D07, MEM_STTIME3); /* 250ns cycle time */
	    au_writel(0x10000000, MEM_STADDR3); /* any PCMCIA select */
    
	    /* Get USB Functionality pin state (device vs host drive pins) */
	    pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
    #ifndef CONFIG_AU1X00_USB_DEVICE
	    /* 2nd USB port is USB host */
	    pin_func |= 0x8000;
    #endif
	    au_writel(pin_func, SYS_PINFUNC);
    #endif /* defined (CONFIG_USB_OHCI_HCD) || defined (CONFIG_AU1X00_USB_DEVICE) */

But don't you think is better to put this code into USB driver (file
ohci-au1xxx.c) during probing stage? In this manner each platforms may
don't worry about clock initialization...

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail:    giometti@xxxxxxxx
Linux Device Driver                             giometti@xxxxxxxxxxxx
Embedded Systems                     home page: giometti.enneenne.com
UNIX programming                     phone:     +39 349 2432127

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux