Paul Walmsley | 82e9bd5 | 2009-12-08 16:18:47 -0700 | [diff] [blame] | 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 | |
Mike Turquette | f9ae32a | 2012-11-07 13:14:47 -0800 | [diff] [blame] | 19 | #include <linux/clk-private.h> |
Paul Walmsley | 82e9bd5 | 2009-12-08 16:18:47 -0700 | [diff] [blame] | 20 | #include "clock.h" |
| 21 | |
| 22 | /* clksel_rate data common to 24xx/343x */ |
| 23 | const struct clksel_rate gpt_32k_rates[] = { |
Paul Walmsley | 6340536 | 2010-05-18 18:40:25 -0600 | [diff] [blame] | 24 | { .div = 1, .val = 0, .flags = RATE_IN_24XX | RATE_IN_3XXX }, |
Paul Walmsley | 82e9bd5 | 2009-12-08 16:18:47 -0700 | [diff] [blame] | 25 | { .div = 0 } |
| 26 | }; |
| 27 | |
| 28 | const struct clksel_rate gpt_sys_rates[] = { |
Paul Walmsley | 6340536 | 2010-05-18 18:40:25 -0600 | [diff] [blame] | 29 | { .div = 1, .val = 1, .flags = RATE_IN_24XX | RATE_IN_3XXX }, |
Paul Walmsley | 82e9bd5 | 2009-12-08 16:18:47 -0700 | [diff] [blame] | 30 | { .div = 0 } |
| 31 | }; |
| 32 | |
| 33 | const struct clksel_rate gfx_l3_rates[] = { |
Paul Walmsley | 6340536 | 2010-05-18 18:40:25 -0600 | [diff] [blame] | 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 }, |
Paul Walmsley | 82e9bd5 | 2009-12-08 16:18:47 -0700 | [diff] [blame] | 38 | { .div = 0 } |
| 39 | }; |
| 40 | |
Paul Walmsley | 2241139 | 2011-02-25 15:52:04 -0700 | [diff] [blame] | 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 | }; |
Paul Walmsley | 571efa0 | 2012-05-29 15:26:40 +0530 | [diff] [blame] | 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 | |
Rajendra Nayak | cb26867 | 2012-11-06 15:41:08 -0700 | [diff] [blame] | 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 | |
Paul Walmsley | 571efa0 | 2012-05-29 15:26:40 +0530 | [diff] [blame] | 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 */ |
Rajendra Nayak | cb26867 | 2012-11-06 15:41:08 -0700 | [diff] [blame] | 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 | }; |