• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  linux/arch/arm/mach-omap2/clock_common_data.c
3  *
4  *  Copyright (C) 2005-2009 Texas Instruments, Inc.
5  *  Copyright (C) 2004-2009 Nokia Corporation
6  *
7  *  Contacts:
8  *  Richard Woodruff <r-woodruff2@ti.com>
9  *  Paul Walmsley
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License version 2 as
13  * published by the Free Software Foundation.
14  *
15  * This file contains clock data that is common to both the OMAP2xxx and
16  * OMAP3xxx clock definition files.
17  */
18 
19 #include <linux/clk-private.h>
20 #include "clock.h"
21 
22 /* clksel_rate data common to 24xx/343x */
23 const struct clksel_rate gpt_32k_rates[] = {
24 	 { .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_3XXX },
25 	 { .div = 0 }
26 };
27 
28 const struct clksel_rate gpt_sys_rates[] = {
29 	 { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX },
30 	 { .div = 0 }
31 };
32 
33 const struct clksel_rate gfx_l3_rates[] = {
34 	{ .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX },
35 	{ .div = 2, .val = 2, .flags = RATE_IN_24XX | RATE_IN_3XXX },
36 	{ .div = 3, .val = 3, .flags = RATE_IN_243X | RATE_IN_3XXX },
37 	{ .div = 4, .val = 4, .flags = RATE_IN_243X | RATE_IN_3XXX },
38 	{ .div = 0 }
39 };
40 
41 const struct clksel_rate dsp_ick_rates[] = {
42 	{ .div = 1, .val = 1, .flags = RATE_IN_24XX },
43 	{ .div = 2, .val = 2, .flags = RATE_IN_24XX },
44 	{ .div = 3, .val = 3, .flags = RATE_IN_243X },
45 	{ .div = 0 },
46 };
47 
48 
49 /* clksel_rate blocks shared between OMAP44xx and AM33xx */
50 
51 const struct clksel_rate div_1_0_rates[] = {
52 	{ .div = 1, .val = 0, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
53 	{ .div = 0 },
54 };
55 
56 const struct clksel_rate div3_1to4_rates[] = {
57 	{ .div = 1, .val = 0, .flags = RATE_IN_4430 },
58 	{ .div = 2, .val = 1, .flags = RATE_IN_4430 },
59 	{ .div = 4, .val = 2, .flags = RATE_IN_4430 },
60 	{ .div = 0 },
61 };
62 
63 const struct clksel_rate div_1_1_rates[] = {
64 	{ .div = 1, .val = 1, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
65 	{ .div = 0 },
66 };
67 
68 const struct clksel_rate div_1_2_rates[] = {
69 	{ .div = 1, .val = 2, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
70 	{ .div = 0 },
71 };
72 
73 const struct clksel_rate div_1_3_rates[] = {
74 	{ .div = 1, .val = 3, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
75 	{ .div = 0 },
76 };
77 
78 const struct clksel_rate div_1_4_rates[] = {
79 	{ .div = 1, .val = 4, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
80 	{ .div = 0 },
81 };
82 
83 const struct clksel_rate div31_1to31_rates[] = {
84 	{ .div = 1, .val = 1, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
85 	{ .div = 2, .val = 2, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
86 	{ .div = 3, .val = 3, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
87 	{ .div = 4, .val = 4, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
88 	{ .div = 5, .val = 5, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
89 	{ .div = 6, .val = 6, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
90 	{ .div = 7, .val = 7, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
91 	{ .div = 8, .val = 8, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
92 	{ .div = 9, .val = 9, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
93 	{ .div = 10, .val = 10, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
94 	{ .div = 11, .val = 11, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
95 	{ .div = 12, .val = 12, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
96 	{ .div = 13, .val = 13, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
97 	{ .div = 14, .val = 14, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
98 	{ .div = 15, .val = 15, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
99 	{ .div = 16, .val = 16, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
100 	{ .div = 17, .val = 17, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
101 	{ .div = 18, .val = 18, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
102 	{ .div = 19, .val = 19, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
103 	{ .div = 20, .val = 20, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
104 	{ .div = 21, .val = 21, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
105 	{ .div = 22, .val = 22, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
106 	{ .div = 23, .val = 23, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
107 	{ .div = 24, .val = 24, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
108 	{ .div = 25, .val = 25, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
109 	{ .div = 26, .val = 26, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
110 	{ .div = 27, .val = 27, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
111 	{ .div = 28, .val = 28, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
112 	{ .div = 29, .val = 29, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
113 	{ .div = 30, .val = 30, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
114 	{ .div = 31, .val = 31, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
115 	{ .div = 0 },
116 };
117 
118 /* Clocks shared between various OMAP SoCs */
119 
120 static struct clk_ops dummy_ck_ops = {};
121 
122 struct clk dummy_ck = {
123 	.name = "dummy_clk",
124 	.ops = &dummy_ck_ops,
125 	.flags = CLK_IS_BASIC,
126 };
127