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