Hi,
I got my answer from TI tech support: "An ARM clock lower than 180Mhz violates the minimum clock frequency requirement to the USB PHY. The VBUS Clock feeding onto USB Controller on the Switch side must be >= to the xclk, which is the necessary 60 Mhz PHY clock, used in our design for High Speed operation. At the minimum you would require the same amount of clock speed, 60 MHz, on the VBUS side to cope up with the PHY." Hence, the USB controller won't work with my 162Mhz ARM version, which generates a 54Mhz clock (on SYSCLK3) as input to the USB chip; the minimum is 60Mhz. Guess, I gotta go bump up that ARM speed a little and tell my hardware engineer there's no but's about it. Regards, Andy ----- Original Message ---- From: Andy Ngo <[EMAIL PROTECTED]> To: Amol Lad <[EMAIL PROTECTED]>; Kevin Hilman <[EMAIL PROTECTED]>; [email protected] Sent: Wednesday, March 21, 2007 1:01:02 PM Subject: Re: USB port not working in GIT kernel? Hi Amol, Kevin, Sorry to keep bothering you guys, but since you guys are Linux experts, I throw it at you. Do you know what I have to change to get the USB host controller to working correctly again if I lower the ARM speed (from 297 Mhz to 162 Mhz). I looked at the driver in drivers/usb/musb and couldn't anything about clock setting. I see the following code commented out in drivers/usb/musb/davinci.c #if 0 /* REVISIT there's something odd about clocking, this * didn't appear do the job ... */ musb->clock = clk_get(pDevice, "usb"); if (IS_ERR(musb->clock)) return PTR_ERR(musb->clock); status = clk_enable(musb->clock); if (status < 0) return -ENODEV; #endif I also noticed the clock table "davinci_clks" in arch/arm/mach-davinci/clock.c has no reference to the USB host controller. I noticed input clock to the USB controller and PHY chip is SYSCLK5, which is based on the system clock. So if I changed the system clock, I must somehow adjust the divider (PLLDIV5). Regards, Andy ----- Original Message ---- From: Andy Ngo <[EMAIL PROTECTED]> To: Amol Lad <[EMAIL PROTECTED]>; Kevin Hilman <[EMAIL PROTECTED]>; [email protected] Sent: Tuesday, March 20, 2007 3:29:13 PM Subject: Re: USB port not working in GIT kernel? Hi guys, I figured out my problem. I just reflashed the latest u-boot (dvevm 1.10.01) and now USB is working. I just realized that last month, I modified u-boot to force the ARM to run at 162Mhz instead of the stock 297Mhz; our hardware engineer wanted to run at a lower speed to conserve power; we will be running at that speed in our final custom board. Well, everything runs fine on my 162Mhz-version of u-boot except the USB host controller. I looked at TMS320DM644x DMSoC Arm Subsystem Reference Guide (sprue14a) and it seems like SYSCLK5 is an input to the USB PHY chip. Since I reduced the ARM clock down to 162Mhz, I think I may need to change the divider value for PLLDIV5 such that value in SYSCLK5 is the same as before when it was working. Does anyone know which USB file (drivers/usb/musb ?) I need to update to reflect my lower ARM speed? On a related note, is it possible to have the ARM boot up at the highest speed (297 Mhz), then go back to a lower speed (like 162Mhz) after the kernel has come up? I'm a kernel newbie so I'm not familiar with the kernel time management (kernel calculate jiffies based on system clock?). Amol/Kevin, thanks for all your help and sorry it took me this long to realize it was what I did to u-boot that caused the USB problems. Regards, Andy
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
