linux/arch/mips/lantiq/clk.h
<<
>>
Prefs
   1/*
   2 *  This program is free software; you can redistribute it and/or modify it
   3 *  under the terms of the GNU General Public License version 2 as published
   4 *  by the Free Software Foundation.
   5 *
   6 * Copyright (C) 2010 John Crispin <john@phrozen.org>
   7 */
   8
   9#ifndef _LTQ_CLK_H__
  10#define _LTQ_CLK_H__
  11
  12#include <linux/clkdev.h>
  13
  14/* clock speeds */
  15#define CLOCK_33M       33333333
  16#define CLOCK_60M       60000000
  17#define CLOCK_62_5M     62500000
  18#define CLOCK_83M       83333333
  19#define CLOCK_83_5M     83500000
  20#define CLOCK_98_304M   98304000
  21#define CLOCK_100M      100000000
  22#define CLOCK_111M      111111111
  23#define CLOCK_125M      125000000
  24#define CLOCK_133M      133333333
  25#define CLOCK_150M      150000000
  26#define CLOCK_166M      166666666
  27#define CLOCK_167M      166666667
  28#define CLOCK_196_608M  196608000
  29#define CLOCK_200M      200000000
  30#define CLOCK_222M      222000000
  31#define CLOCK_240M      240000000
  32#define CLOCK_250M      250000000
  33#define CLOCK_266M      266666666
  34#define CLOCK_288M      288888888
  35#define CLOCK_300M      300000000
  36#define CLOCK_333M      333333333
  37#define CLOCK_360M      360000000
  38#define CLOCK_393M      393215332
  39#define CLOCK_400M      400000000
  40#define CLOCK_432M      432000000
  41#define CLOCK_450M      450000000
  42#define CLOCK_500M      500000000
  43#define CLOCK_600M      600000000
  44#define CLOCK_666M      666666666
  45#define CLOCK_720M      720000000
  46
  47/* clock out speeds */
  48#define CLOCK_32_768K   32768
  49#define CLOCK_1_536M    1536000
  50#define CLOCK_2_5M      2500000
  51#define CLOCK_12M       12000000
  52#define CLOCK_24M       24000000
  53#define CLOCK_25M       25000000
  54#define CLOCK_30M       30000000
  55#define CLOCK_40M       40000000
  56#define CLOCK_48M       48000000
  57#define CLOCK_50M       50000000
  58#define CLOCK_60M       60000000
  59
  60struct clk {
  61        struct clk_lookup cl;
  62        unsigned long rate;
  63        unsigned long *rates;
  64        unsigned int module;
  65        unsigned int bits;
  66        unsigned long (*get_rate) (void);
  67        int (*enable) (struct clk *clk);
  68        void (*disable) (struct clk *clk);
  69        int (*activate) (struct clk *clk);
  70        void (*deactivate) (struct clk *clk);
  71        void (*reboot) (struct clk *clk);
  72};
  73
  74extern void clkdev_add_static(unsigned long cpu, unsigned long fpi,
  75                                unsigned long io, unsigned long ppe);
  76
  77extern unsigned long ltq_danube_cpu_hz(void);
  78extern unsigned long ltq_danube_fpi_hz(void);
  79extern unsigned long ltq_danube_pp32_hz(void);
  80
  81extern unsigned long ltq_ar9_cpu_hz(void);
  82extern unsigned long ltq_ar9_fpi_hz(void);
  83
  84extern unsigned long ltq_vr9_cpu_hz(void);
  85extern unsigned long ltq_vr9_fpi_hz(void);
  86extern unsigned long ltq_vr9_pp32_hz(void);
  87
  88extern unsigned long ltq_ar10_cpu_hz(void);
  89extern unsigned long ltq_ar10_fpi_hz(void);
  90extern unsigned long ltq_ar10_pp32_hz(void);
  91
  92extern unsigned long ltq_grx390_cpu_hz(void);
  93extern unsigned long ltq_grx390_fpi_hz(void);
  94extern unsigned long ltq_grx390_pp32_hz(void);
  95
  96#endif
  97