• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  
58  struct 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  
72  extern void clkdev_add_static(unsigned long cpu, unsigned long fpi,
73  				unsigned long io, unsigned long ppe);
74  
75  extern unsigned long ltq_danube_cpu_hz(void);
76  extern unsigned long ltq_danube_fpi_hz(void);
77  extern unsigned long ltq_danube_pp32_hz(void);
78  
79  extern unsigned long ltq_ar9_cpu_hz(void);
80  extern unsigned long ltq_ar9_fpi_hz(void);
81  
82  extern unsigned long ltq_vr9_cpu_hz(void);
83  extern unsigned long ltq_vr9_fpi_hz(void);
84  extern unsigned long ltq_vr9_pp32_hz(void);
85  
86  extern unsigned long ltq_ar10_cpu_hz(void);
87  extern unsigned long ltq_ar10_fpi_hz(void);
88  extern unsigned long ltq_ar10_pp32_hz(void);
89  
90  extern unsigned long ltq_grx390_cpu_hz(void);
91  extern unsigned long ltq_grx390_fpi_hz(void);
92  extern unsigned long ltq_grx390_pp32_hz(void);
93  
94  #endif
95