[PATCH 4/5 V2] ARM: tegra: paz00: add clocks required for usboperation
Stephen Warren
swarren at nvidia.com
Tue Aug 9 17:40:05 EDT 2011
Marc Dietrich wrote at Tuesday, August 09, 2011 1:26 PM:
> On Tuesday 09 August 2011 20:35:45 you wrote:
> > Marc Dietrich wrote at Tuesday, August 09, 2011 12:29 PM:
> > > These clocks are required for usb operation.
> > > ---
> > >
> > > arch/arm/mach-tegra/board-paz00.c | 6 ++++++
> > > 1 files changed, 6 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/arch/arm/mach-tegra/board-paz00.c
> > > b/arch/arm/mach-tegra/board-paz00.c index 45111f6..89a3dda 100644
> > > --- a/arch/arm/mach-tegra/board-paz00.c
> > > +++ b/arch/arm/mach-tegra/board-paz00.c
> > > @@ -145,6 +145,12 @@ static __initdata struct tegra_clk_init_table
> > > paz00_clk_init_table[] = {
> > >
> > > /* name parent rate enabled */
> > > { "uarta", "pll_p", 216000000, true },
> > > { "uartd", "pll_p", 216000000, true },
> > >
> > > +
> > > + { "pll_p_out4", "pll_p", 24000000, true },
> >
> > Do you need the pll_p_out4 entry? What's that driving? Check in
> > /sys/kernel/debug/clock/clock_tree (/sys/kernel/debug is debugfs).
>
> I think it is only required to setup the correct (non-standard?) frequency.
> Seems all other boards use 108 MHz which cause one of the ports to fail. Don't
> ask me for details ...
...
> root at ac100:~# cat /sys/kernel/debug/clock/clock_tree
> clock state ref div rate
> --------------------------------------------------------------
> clk_m on 9 12000000
...
> pll_p on 10 x18 216000000
...
> pll_p_out4 on 3 9 24000000
> sclk on 2 24000000
> avp.sclk off 0 24000000
> cop on 1 24000000
> hclk on 2 1 24000000
> pclk on 2 2 12000000
> apbdma on 1 1 12000000
Hmm. That's pretty odd.
With the standard kernel the device ships with, what does the clock tree
under pll_p_out4 look like? It'd be very interesting to compare that. If
that setup is the same as what this patch sets up, the patch seems fine.
As far as I know all the clocks there are both unrelated to USB, and
internal to the device, so the board shouldn't have any effect. In
particular, avp.sclk/cop are for the internal media CPU/DSP, hclk/pclk
are the internal AHB/APB bus clocks, and apbdma is for an internal DMA
engine, currently only used for audio in the mainline kernel at least.
I guess I'll ask a few people internally to see if they have a clue why
your change might be necessary.
For reference, here's Harmony on something roughly like linux-next:
clk_m on 7 12000000
...
pll_p on 9 x18 216000000
...
pll_p_out4 on 2 2 108000000
sclk on 2 108000000
avp.sclk off 0 108000000
cop on 1 108000000
hclk on 2 1 108000000
pclk on 2 2 54000000
apbdma on 1 1 54000000
--
nvpublic
More information about the linux-arm-kernel
mailing list