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
----- Original Message ----
From: Amol Lad <[EMAIL PROTECTED]>
To: Andy Ngo <[EMAIL PROTECTED]>; Kevin Hilman <[EMAIL PROTECTED]>;
[email protected]
Sent: Monday, March 19, 2007 11:35:28 PM
Subject: Re: USB port not working
in GIT kernel?
Can you try removing Zheng's patch ?
----- Original Message ----
From: Andy Ngo <[EMAIL PROTECTED]>
To: Kevin Hilman <[EMAIL PROTECTED]>; Amol Lad <[EMAIL PROTECTED]>;
[email protected]
Sent: Tuesday, March 20, 2007 12:57:00 PM
Subject: Re: USB port not working in GIT kernel?
This is driving me nuts. I don't know why it's not working; we have 2 DVEVMs
and neither of them work.
I had tested them with the Montavista version and they
worked fine (after making a patch that Zheng posted).
I just couldn't get them to work with the GIT tree; I've tried Amol's config
file and even Kelvin's config file
(from an October 2006 post:
http://www.mail-archive.com/[email protected]/msg00551.html).
I've used 4 different brands of USB thumb drives with no luck. Here's my
kernel:
[EMAIL PROTECTED]:~# modprobe musb_hdrc
musb_hdrc: version 2.2a/db-0.5.2,
pio, host, debug=0
musb_hdrc: USB Host mode controller at c805e000 using PIO, IRQ 12
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
[EMAIL PROTECTED]:~# modprobe usb_storage
SCSI subsystem initialized
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
[EMAIL PROTECTED]:~# usb 1-1: new high speed USB device using musb_hdrc and
address 2
usb 1-1: string descriptor 0 read error: -71
usb 1-1: string descriptor 0 read error: -110
usb 1-1: string descriptor 0 read error: -110
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: can't set config #1, error -110
The above is where usbcore is compiled as static in the kernel. If it is
compiled as a module, I still get the
same
errors. Weird thing is that if I compiled usbcore AND musb_hdrc as static, the
board will hang after the following
message:
Uncompressing
Linux...................................................................
..... done, booting the kernel.
I did a search and found the following post
(http://linux.omap.com/pipermail/davinci-linux-open-source/2006-June/000262.html)
where the problem seems to be a result of a machine number discrepancy between
u-boot and the kernel. Hmmm..., maybe
my u-boot is out dated. I have to check that out.
Regards,
Andy
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source