[Top] [All Lists]

Re: Alchemy power managment code.

To: Nico Coesel <>
Subject: Re: Alchemy power managment code.
From: Sergei Shtylyov <>
Date: Fri, 28 Mar 2008 19:13:09 +0300
Cc: Atsushi Nemoto <>,,
In-reply-to: <>
Organization: MontaVista Software Inc.
Original-recipient: rfc822;
References: <>
User-agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.2) Gecko/20040803
Nico Coesel wrote:

Correct - and cevt-r4k won't be usable either. I guess that means you leave the user the choice between either these two or using wait.

Not nice but ...

The Alchemy code doesn't even try to use CP0 counter when CONFIG_PM=y if you look into

arch/mips/au1000/common/time.c... or at

least it didn't before Atsushi removed do_fast_pm_gettimeoffset().

Oh, yes. At that time I tried to implement clocksource drivers for non-standard timers, but it seems I had missied Alchemy PM=y case.

The driver would be something like this?  Completely untested ;-)

static cycle_t au1000_hpt_read(void)
        return au_readl(SYS_TOYREAD);

struct clocksource au1000_clocksource = {
        .name   = "au1000-counter",
        .rating = 200,

   Rating should be greater than that of CP0 counter...

        .read   = au1000_hpt_read,
        .mask   = CLOCKSOURCE_MASK(32),

void __init au1000_clocksource_init(unsinged long cpu_speed) {
        struct clocksource *cs = &au1000_clocksource;

        clocksource_set_clock(cs, cpu_speed);

Not really, it's clocked by 32768 Hz input, so probably not very good as a clocksource.

Why not? If a 32768Hz watch crystal is connected then you'll have a
stable clocksource. IIRC watch crystals are more precise than the
crystals used to generate the core frequency.

32 KHz is too low a frequency. The same goes about using TOY as a clockevent -- HRT boasts microsecond resoultion which TOY can't provide.

Nico Coesel

WBR, Sergei

<Prev in Thread] Current Thread [Next in Thread>