mvebu: tclk detection for armada-xp and marvell packet processor with integrated CPU

Thomas Petazzoni thomas.petazzoni at
Mon Nov 17 00:34:37 PST 2014

Dear Chris Packham,

On Mon, 17 Nov 2014 02:12:51 +0000, Chris Packham wrote:

> One of the first problems I encountered looking at the Marvell Packet 
> Processor with integrated CPU (I'll refer to that as 'the PP' throughout 
> the rest of this email) was that it has a different TCLK to the armada-xp.
> It appears that for both the PP and the armada-xp the TCLK is hard-coded 
> (to 200MHz and 250MHz respectively) and cannot be detected as far as I 
> can see from the various data-sheets. I was hoping to re-use 
> drivers/clk/mvebu/armada-xp.c but I need to figure out how to make 
> axp_get_tclk_freq() give me an appropriate answer depending on the SoC. 
> If this were in the mach-mvebu code I could just use mvebu_get_soc_id() 
> to fetch the device id. Is there an equivalent I could use in generic code?
> One option would be to use a different compatible string in the dts. 
> That would also give me a way of handling other differences (the 
> clock-gating is a subset of what's available on the armada-xp). How 
> different would things have to be before it's worth spinning the PP code 
> out into a file of it's own?

To me, it indeed seems like you need a different compatible string
here. Whether a separate file from drivers/clk/mvebu/armada-xp.c is
needed or not will depend on whether only the tclk frequency differs,
or whether also the ratios with other clocks differ.

Best regards,

Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering

More information about the linux-arm-kernel mailing list