Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  *
0004  * Copyright (C) 2010 John Crispin <john@phrozen.org>
0005  */
0006 
0007 #ifndef _LTQ_CLK_H__
0008 #define _LTQ_CLK_H__
0009 
0010 #include <linux/clkdev.h>
0011 
0012 /* clock speeds */
0013 #define CLOCK_33M   33333333
0014 #define CLOCK_60M   60000000
0015 #define CLOCK_62_5M 62500000
0016 #define CLOCK_83M   83333333
0017 #define CLOCK_83_5M 83500000
0018 #define CLOCK_98_304M   98304000
0019 #define CLOCK_100M  100000000
0020 #define CLOCK_111M  111111111
0021 #define CLOCK_125M  125000000
0022 #define CLOCK_133M  133333333
0023 #define CLOCK_150M  150000000
0024 #define CLOCK_166M  166666666
0025 #define CLOCK_167M  166666667
0026 #define CLOCK_196_608M  196608000
0027 #define CLOCK_200M  200000000
0028 #define CLOCK_222M  222000000
0029 #define CLOCK_240M  240000000
0030 #define CLOCK_250M  250000000
0031 #define CLOCK_266M  266666666
0032 #define CLOCK_288M  288888888
0033 #define CLOCK_300M  300000000
0034 #define CLOCK_333M  333333333
0035 #define CLOCK_360M  360000000
0036 #define CLOCK_393M  393215332
0037 #define CLOCK_400M  400000000
0038 #define CLOCK_432M  432000000
0039 #define CLOCK_450M  450000000
0040 #define CLOCK_500M  500000000
0041 #define CLOCK_600M  600000000
0042 #define CLOCK_666M  666666666
0043 #define CLOCK_720M  720000000
0044 
0045 /* clock out speeds */
0046 #define CLOCK_32_768K   32768
0047 #define CLOCK_1_536M    1536000
0048 #define CLOCK_2_5M  2500000
0049 #define CLOCK_12M   12000000
0050 #define CLOCK_24M   24000000
0051 #define CLOCK_25M   25000000
0052 #define CLOCK_30M   30000000
0053 #define CLOCK_40M   40000000
0054 #define CLOCK_48M   48000000
0055 #define CLOCK_50M   50000000
0056 #define CLOCK_60M   60000000
0057 
0058 struct clk {
0059     struct clk_lookup cl;
0060     unsigned long rate;
0061     unsigned long *rates;
0062     unsigned int module;
0063     unsigned int bits;
0064     unsigned long (*get_rate) (void);
0065     int (*enable) (struct clk *clk);
0066     void (*disable) (struct clk *clk);
0067     int (*activate) (struct clk *clk);
0068     void (*deactivate) (struct clk *clk);
0069     void (*reboot) (struct clk *clk);
0070 };
0071 
0072 extern void clkdev_add_static(unsigned long cpu, unsigned long fpi,
0073                 unsigned long io, unsigned long ppe);
0074 
0075 extern unsigned long ltq_danube_cpu_hz(void);
0076 extern unsigned long ltq_danube_fpi_hz(void);
0077 extern unsigned long ltq_danube_pp32_hz(void);
0078 
0079 extern unsigned long ltq_ar9_cpu_hz(void);
0080 extern unsigned long ltq_ar9_fpi_hz(void);
0081 
0082 extern unsigned long ltq_vr9_cpu_hz(void);
0083 extern unsigned long ltq_vr9_fpi_hz(void);
0084 extern unsigned long ltq_vr9_pp32_hz(void);
0085 
0086 extern unsigned long ltq_ar10_cpu_hz(void);
0087 extern unsigned long ltq_ar10_fpi_hz(void);
0088 extern unsigned long ltq_ar10_pp32_hz(void);
0089 
0090 extern unsigned long ltq_grx390_cpu_hz(void);
0091 extern unsigned long ltq_grx390_fpi_hz(void);
0092 extern unsigned long ltq_grx390_pp32_hz(void);
0093 
0094 #endif