AT91SAM9260: How to output PCK0 clock on a GPIO pin
Pedro I. Sanchez
psanchez at fosstel.com
Mon Aug 31 16:37:15 EDT 2009
On Mon, 31 Aug 2009 15:58:50 -0400, Stephen Munnings
<smunnings at gabaedevelopment.com> wrote:
> Sergey Matyukevich wrote:
>> Hi,
>>
>>
>>> And how do I turn on the PMC clocks for the GPIO?
>>>
>>
>> Assigning gpio pin PC6 to TIOB2 peripheral is only a part of the work.
>> Timer counters may operate in different modes. Take a look at
>> the datasheet for at91sam9260, timer counters are covered in chapter 34.
>> It looks like 'waveform mode' is what you need (see 34.5.10, 34.5.11).
>> Before you get desired output on PC6 pin you will have to turn on
>> waveform operating mode for TIOB2 and to configure its wave shapes.
>>
>> Thanks,
>> Sergey
>>
> hmmmm....
>
> PCK0 is *not* a TC pin - it is a clock output from the Power Management
> Controller.
> (Section 25.6)
> It should be as easy as dividing down one of the primary clock sources
> and then enabling
> the appropriate GPIO pin as the appropriate peripheral.
>
> Ahah - there is the problem..... PCK0 is not available on PC6 - it must
> be set as peripheral B
> on pin PC1 or PB30 as Peripheral A - no other choices available...
>
> PC6 is indeed TIOB2 (one of the counter timers)
OK, I see this thread unfolding, thank you!
This is what I have now to test pck0 on PC1:
at91_set_B_periph(AT91_PIN_PC1, 0);
pck0=clk_get(NULL, "pck0");
pll=clk_get(NULL, "plla");
clk_set_parent(pck0, pll);
clk_set_rate(pck0, 50000000);
clk_enable(pck0);
But I don't get a clean clock on PC1. In the end I will still need to get
the TC clock on PC6 but I for the time being I want to be able to generate
any clock out first!
Is there something else to do?
--
Pedro
More information about the linux-arm-kernel
mailing list