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