blob: 98ed2d85d509d6c85f4b1cd4c21edae6c6e486ca [file] [log] [blame]
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001/*
Matt Wagantall2dd3f972013-01-08 12:03:43 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
Matt Wagantalle9b715a2012-01-04 18:16:14 -08003 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
Steve Mucklef132c6c2012-06-06 18:30:57 -070014#include <linux/module.h>
Matt Wagantalle9b715a2012-01-04 18:16:14 -080015#include <linux/platform_device.h>
16#include <linux/of.h>
Matt Wagantalld591bf22012-06-29 11:20:53 -070017#include <mach/rpm-regulator-smd.h>
Matt Wagantalle9b715a2012-01-04 18:16:14 -080018#include <mach/msm_bus_board.h>
19#include <mach/msm_bus.h>
20#include <mach/socinfo.h>
21
22#include "acpuclock.h"
23#include "acpuclock-krait.h"
24
25/* Corner type vreg VDD values */
Matt Wagantallf06e3572012-07-27 12:45:24 -070026#define LVL_NONE RPM_REGULATOR_CORNER_NONE
Matt Wagantalld591bf22012-06-29 11:20:53 -070027#define LVL_LOW RPM_REGULATOR_CORNER_SVS_SOC
28#define LVL_NOM RPM_REGULATOR_CORNER_NORMAL
29#define LVL_HIGH RPM_REGULATOR_CORNER_SUPER_TURBO
Matt Wagantalle9b715a2012-01-04 18:16:14 -080030
Matt Wagantall1f3762d2012-06-08 19:08:48 -070031static struct hfpll_data hfpll_data __initdata = {
Matt Wagantalle9b715a2012-01-04 18:16:14 -080032 .mode_offset = 0x00,
33 .l_offset = 0x04,
34 .m_offset = 0x08,
35 .n_offset = 0x0C,
Matt Wagantalla77b7f32012-07-18 16:32:01 -070036 .has_user_reg = true,
37 .user_offset = 0x10,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080038 .config_offset = 0x14,
Matt Wagantalla77b7f32012-07-18 16:32:01 -070039 .user_val = 0x8,
Matt Wagantall0f6e7b22012-09-26 23:36:18 -070040 .user_vco_mask = BIT(20),
Matt Wagantalla77b7f32012-07-18 16:32:01 -070041 .config_val = 0x04D0405D,
Matt Wagantall3c51b5d2013-04-06 12:34:20 -070042 .has_lock_status = true,
43 .status_offset = 0x1C,
Matt Wagantalla77b7f32012-07-18 16:32:01 -070044 .low_vco_l_max = 65,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080045 .low_vdd_l_max = 52,
Matt Wagantall87465f52012-07-23 22:03:06 -070046 .nom_vdd_l_max = 104,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080047 .vdd[HFPLL_VDD_NONE] = LVL_NONE,
48 .vdd[HFPLL_VDD_LOW] = LVL_LOW,
49 .vdd[HFPLL_VDD_NOM] = LVL_NOM,
Matt Wagantall87465f52012-07-23 22:03:06 -070050 .vdd[HFPLL_VDD_HIGH] = LVL_HIGH,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080051};
52
Matt Wagantall1f3762d2012-06-08 19:08:48 -070053static struct scalable scalable[] __initdata = {
Matt Wagantalle9b715a2012-01-04 18:16:14 -080054 [CPU0] = {
55 .hfpll_phys_base = 0xF908A000,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080056 .l2cpmr_iaddr = 0x4501,
Matt Wagantall6cd5d752012-09-27 19:56:57 -070057 .sec_clk_sel = 2,
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -080058 .vreg[VREG_CORE] = { "krait0", 1100000 },
Matt Wagantall75473eb2012-05-31 15:23:22 -070059 .vreg[VREG_MEM] = { "krait0_mem", 1050000 },
Matt Wagantalld591bf22012-06-29 11:20:53 -070060 .vreg[VREG_DIG] = { "krait0_dig", LVL_HIGH },
David Collinsaba4b9b2012-11-28 17:18:24 -080061 .vreg[VREG_HFPLL_A] = { "krait0_hfpll", 1800000 },
Matt Wagantalle9b715a2012-01-04 18:16:14 -080062 },
63 [CPU1] = {
64 .hfpll_phys_base = 0xF909A000,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080065 .l2cpmr_iaddr = 0x5501,
Matt Wagantall6cd5d752012-09-27 19:56:57 -070066 .sec_clk_sel = 2,
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -080067 .vreg[VREG_CORE] = { "krait1", 1100000 },
Matt Wagantall75473eb2012-05-31 15:23:22 -070068 .vreg[VREG_MEM] = { "krait1_mem", 1050000 },
Matt Wagantalld591bf22012-06-29 11:20:53 -070069 .vreg[VREG_DIG] = { "krait1_dig", LVL_HIGH },
David Collinsaba4b9b2012-11-28 17:18:24 -080070 .vreg[VREG_HFPLL_A] = { "krait1_hfpll", 1800000 },
Matt Wagantalle9b715a2012-01-04 18:16:14 -080071 },
72 [CPU2] = {
73 .hfpll_phys_base = 0xF90AA000,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080074 .l2cpmr_iaddr = 0x6501,
Matt Wagantall6cd5d752012-09-27 19:56:57 -070075 .sec_clk_sel = 2,
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -080076 .vreg[VREG_CORE] = { "krait2", 1100000 },
Matt Wagantall75473eb2012-05-31 15:23:22 -070077 .vreg[VREG_MEM] = { "krait2_mem", 1050000 },
Matt Wagantalld591bf22012-06-29 11:20:53 -070078 .vreg[VREG_DIG] = { "krait2_dig", LVL_HIGH },
David Collinsaba4b9b2012-11-28 17:18:24 -080079 .vreg[VREG_HFPLL_A] = { "krait2_hfpll", 1800000 },
Matt Wagantalle9b715a2012-01-04 18:16:14 -080080 },
81 [CPU3] = {
82 .hfpll_phys_base = 0xF90BA000,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080083 .l2cpmr_iaddr = 0x7501,
Matt Wagantall6cd5d752012-09-27 19:56:57 -070084 .sec_clk_sel = 2,
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -080085 .vreg[VREG_CORE] = { "krait3", 1100000 },
Matt Wagantall75473eb2012-05-31 15:23:22 -070086 .vreg[VREG_MEM] = { "krait3_mem", 1050000 },
Matt Wagantalld591bf22012-06-29 11:20:53 -070087 .vreg[VREG_DIG] = { "krait3_dig", LVL_HIGH },
David Collinsaba4b9b2012-11-28 17:18:24 -080088 .vreg[VREG_HFPLL_A] = { "krait3_hfpll", 1800000 },
Matt Wagantalle9b715a2012-01-04 18:16:14 -080089 },
90 [L2] = {
91 .hfpll_phys_base = 0xF9016000,
Matt Wagantalle9b715a2012-01-04 18:16:14 -080092 .l2cpmr_iaddr = 0x0500,
Matt Wagantall6cd5d752012-09-27 19:56:57 -070093 .sec_clk_sel = 2,
David Collinsaba4b9b2012-11-28 17:18:24 -080094 .vreg[VREG_HFPLL_A] = { "l2_hfpll", 1800000 },
Matt Wagantalle9b715a2012-01-04 18:16:14 -080095 },
96};
97
Matt Wagantall63ac3882013-03-07 16:51:14 -080098static struct msm_bus_paths bw_level_tbl_v1[] __initdata = {
Matt Wagantall545cd3e2012-12-07 13:07:16 -080099 [0] = BW_MBPS(600), /* At least 75 MHz on bus. */
100 [1] = BW_MBPS(800), /* At least 100 MHz on bus. */
101 [2] = BW_MBPS(1200), /* At least 150 MHz on bus. */
102 [3] = BW_MBPS(1600), /* At least 200 MHz on bus. */
103 [4] = BW_MBPS(2224), /* At least 278 MHz on bus. */
104 [5] = BW_MBPS(3200), /* At least 400 MHz on bus. */
105 [6] = BW_MBPS(4448), /* At least 556 MHz on bus. */
106 [7] = BW_MBPS(6400), /* At least 800 MHz on bus. */
Matt Wagantalle9b715a2012-01-04 18:16:14 -0800107};
108
Matt Wagantall29b7b472013-03-07 17:09:58 -0800109static struct l2_level l2_freq_tbl_v1[] __initdata = {
Matt Wagantall2dd3f972013-01-08 12:03:43 -0800110 [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 950000, 0 },
111 [1] = { { 345600, HFPLL, 2, 36 }, LVL_NOM, 950000, 1 },
112 [2] = { { 422400, HFPLL, 2, 44 }, LVL_NOM, 950000, 1 },
113 [3] = { { 499200, HFPLL, 2, 52 }, LVL_NOM, 950000, 2 },
Matt Wagantalld20d0942013-01-30 14:09:53 -0800114 [4] = { { 576000, HFPLL, 1, 30 }, LVL_NOM, 950000, 3 },
Matt Wagantall2dd3f972013-01-08 12:03:43 -0800115 [5] = { { 652800, HFPLL, 1, 34 }, LVL_NOM, 950000, 3 },
116 [6] = { { 729600, HFPLL, 1, 38 }, LVL_NOM, 950000, 3 },
Matt Wagantalld20d0942013-01-30 14:09:53 -0800117 [7] = { { 806400, HFPLL, 1, 42 }, LVL_HIGH, 1050000, 4 },
Matt Wagantall545cd3e2012-12-07 13:07:16 -0800118 [8] = { { 883200, HFPLL, 1, 46 }, LVL_HIGH, 1050000, 4 },
119 [9] = { { 960000, HFPLL, 1, 50 }, LVL_HIGH, 1050000, 4 },
Matt Wagantalld20d0942013-01-30 14:09:53 -0800120 [10] = { { 1036800, HFPLL, 1, 54 }, LVL_HIGH, 1050000, 5 },
Matt Wagantall545cd3e2012-12-07 13:07:16 -0800121 [11] = { { 1113600, HFPLL, 1, 58 }, LVL_HIGH, 1050000, 5 },
Matt Wagantalld20d0942013-01-30 14:09:53 -0800122 [12] = { { 1190400, HFPLL, 1, 62 }, LVL_HIGH, 1050000, 6 },
Matt Wagantall545cd3e2012-12-07 13:07:16 -0800123 [13] = { { 1267200, HFPLL, 1, 66 }, LVL_HIGH, 1050000, 6 },
Matt Wagantalld20d0942013-01-30 14:09:53 -0800124 [14] = { { 1344000, HFPLL, 1, 70 }, LVL_HIGH, 1050000, 7 },
Matt Wagantall545cd3e2012-12-07 13:07:16 -0800125 [15] = { { 1420800, HFPLL, 1, 74 }, LVL_HIGH, 1050000, 7 },
126 [16] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 7 },
Stephen Boyd791bca92012-09-11 21:08:13 -0700127 { }
Matt Wagantalle9b715a2012-01-04 18:16:14 -0800128};
129
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800130static struct acpu_level acpu_freq_tbl_v1_pvs0[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700131 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 825000, 73 },
132 { 0, { 345600, HFPLL, 2, 36 }, L2(3), 825000, 85 },
133 { 1, { 422400, HFPLL, 2, 44 }, L2(3), 825000, 104 },
134 { 0, { 499200, HFPLL, 2, 52 }, L2(6), 825000, 124 },
135 { 1, { 576000, HFPLL, 1, 30 }, L2(6), 825000, 144 },
136 { 1, { 652800, HFPLL, 1, 34 }, L2(7), 825000, 165 },
137 { 1, { 729600, HFPLL, 1, 38 }, L2(7), 825000, 186 },
138 { 0, { 806400, HFPLL, 1, 42 }, L2(10), 835000, 208 },
139 { 1, { 883200, HFPLL, 1, 46 }, L2(10), 845000, 229 },
140 { 0, { 960000, HFPLL, 1, 50 }, L2(10), 860000, 252 },
141 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 880000, 275 },
142 { 0, { 1113600, HFPLL, 1, 58 }, L2(12), 905000, 298 },
143 { 0, { 1190400, HFPLL, 1, 62 }, L2(12), 920000, 321 },
144 { 0, { 1267200, HFPLL, 1, 66 }, L2(12), 940000, 346 },
145 { 1, { 1344000, HFPLL, 1, 70 }, L2(12), 960000, 371 },
146 { 0, { 1420800, HFPLL, 1, 74 }, L2(16), 980000, 397 },
147 { 0, { 1497600, HFPLL, 1, 78 }, L2(16), 995000, 423 },
148 { 0, { 1574400, HFPLL, 1, 82 }, L2(16), 1015000, 450 },
149 { 0, { 1651200, HFPLL, 1, 86 }, L2(16), 1030000, 477 },
150 { 1, { 1728000, HFPLL, 1, 90 }, L2(16), 1050000, 506 },
Matt Wagantalle9b715a2012-01-04 18:16:14 -0800151 { 0, { 0 } }
152};
153
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800154static struct acpu_level acpu_freq_tbl_v1_pvs1[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700155 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 825000, 73 },
156 { 0, { 345600, HFPLL, 2, 36 }, L2(3), 825000, 85 },
157 { 1, { 422400, HFPLL, 2, 44 }, L2(3), 825000, 104 },
158 { 0, { 499200, HFPLL, 2, 52 }, L2(6), 825000, 124 },
159 { 1, { 576000, HFPLL, 1, 30 }, L2(6), 825000, 144 },
160 { 1, { 652800, HFPLL, 1, 34 }, L2(7), 825000, 165 },
161 { 1, { 729600, HFPLL, 1, 38 }, L2(7), 825000, 186 },
162 { 0, { 806400, HFPLL, 1, 42 }, L2(10), 835000, 208 },
163 { 1, { 883200, HFPLL, 1, 46 }, L2(10), 845000, 229 },
164 { 0, { 960000, HFPLL, 1, 50 }, L2(10), 860000, 252 },
165 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 880000, 275 },
166 { 0, { 1113600, HFPLL, 1, 58 }, L2(12), 905000, 298 },
167 { 0, { 1190400, HFPLL, 1, 62 }, L2(12), 920000, 321 },
168 { 0, { 1267200, HFPLL, 1, 66 }, L2(12), 940000, 346 },
169 { 1, { 1344000, HFPLL, 1, 70 }, L2(12), 960000, 371 },
170 { 0, { 1420800, HFPLL, 1, 74 }, L2(16), 980000, 397 },
171 { 0, { 1497600, HFPLL, 1, 78 }, L2(16), 995000, 423 },
172 { 0, { 1574400, HFPLL, 1, 82 }, L2(16), 1015000, 450 },
173 { 0, { 1651200, HFPLL, 1, 86 }, L2(16), 1030000, 477 },
174 { 1, { 1728000, HFPLL, 1, 90 }, L2(16), 1050000, 506 },
Matt Wagantall7b14d282013-01-15 14:49:34 -0800175 { 0, { 0 } }
176};
177
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800178static struct acpu_level acpu_freq_tbl_v1_pvs2[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700179 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 825000, 73 },
180 { 0, { 345600, HFPLL, 2, 36 }, L2(3), 825000, 85 },
181 { 1, { 422400, HFPLL, 2, 44 }, L2(3), 825000, 104 },
182 { 0, { 499200, HFPLL, 2, 52 }, L2(6), 825000, 124 },
183 { 1, { 576000, HFPLL, 1, 30 }, L2(6), 825000, 144 },
184 { 1, { 652800, HFPLL, 1, 34 }, L2(7), 825000, 165 },
185 { 1, { 729600, HFPLL, 1, 38 }, L2(7), 825000, 186 },
186 { 0, { 806400, HFPLL, 1, 42 }, L2(10), 825000, 208 },
187 { 1, { 883200, HFPLL, 1, 46 }, L2(10), 825000, 229 },
188 { 0, { 960000, HFPLL, 1, 50 }, L2(10), 835000, 252 },
189 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 855000, 275 },
190 { 0, { 1113600, HFPLL, 1, 58 }, L2(12), 875000, 298 },
191 { 0, { 1190400, HFPLL, 1, 62 }, L2(12), 895000, 321 },
192 { 0, { 1267200, HFPLL, 1, 66 }, L2(12), 915000, 346 },
193 { 1, { 1344000, HFPLL, 1, 70 }, L2(12), 930000, 371 },
194 { 0, { 1420800, HFPLL, 1, 74 }, L2(16), 945000, 397 },
195 { 0, { 1497600, HFPLL, 1, 78 }, L2(16), 960000, 423 },
196 { 0, { 1574400, HFPLL, 1, 82 }, L2(16), 975000, 450 },
197 { 0, { 1651200, HFPLL, 1, 86 }, L2(16), 990000, 477 },
198 { 1, { 1728000, HFPLL, 1, 90 }, L2(16), 1000000, 506 },
Matt Wagantall7b14d282013-01-15 14:49:34 -0800199 { 0, { 0 } }
200};
201
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800202static struct acpu_level acpu_freq_tbl_v1_pvs3[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700203 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 825000, 73 },
204 { 0, { 345600, HFPLL, 2, 36 }, L2(3), 825000, 85 },
205 { 1, { 422400, HFPLL, 2, 44 }, L2(3), 825000, 104 },
206 { 0, { 499200, HFPLL, 2, 52 }, L2(6), 825000, 124 },
207 { 1, { 576000, HFPLL, 1, 30 }, L2(6), 825000, 144 },
208 { 1, { 652800, HFPLL, 1, 34 }, L2(7), 825000, 165 },
209 { 1, { 729600, HFPLL, 1, 38 }, L2(7), 825000, 186 },
210 { 0, { 806400, HFPLL, 1, 42 }, L2(10), 825000, 208 },
211 { 1, { 883200, HFPLL, 1, 46 }, L2(10), 825000, 229 },
212 { 0, { 960000, HFPLL, 1, 50 }, L2(10), 835000, 252 },
213 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 855000, 275 },
214 { 0, { 1113600, HFPLL, 1, 58 }, L2(12), 875000, 298 },
215 { 0, { 1190400, HFPLL, 1, 62 }, L2(12), 895000, 321 },
216 { 0, { 1267200, HFPLL, 1, 66 }, L2(12), 915000, 346 },
217 { 1, { 1344000, HFPLL, 1, 70 }, L2(12), 930000, 371 },
218 { 0, { 1420800, HFPLL, 1, 74 }, L2(16), 945000, 397 },
219 { 0, { 1497600, HFPLL, 1, 78 }, L2(16), 960000, 423 },
220 { 0, { 1574400, HFPLL, 1, 82 }, L2(16), 975000, 450 },
221 { 0, { 1651200, HFPLL, 1, 86 }, L2(16), 990000, 477 },
222 { 1, { 1728000, HFPLL, 1, 90 }, L2(16), 1000000, 506 },
Matt Wagantall7b14d282013-01-15 14:49:34 -0800223 { 0, { 0 } }
224};
225
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800226static struct acpu_level acpu_freq_tbl_v1_pvs4[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700227 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 825000, 73 },
228 { 0, { 345600, HFPLL, 2, 36 }, L2(3), 825000, 85 },
229 { 1, { 422400, HFPLL, 2, 44 }, L2(3), 825000, 104 },
230 { 0, { 499200, HFPLL, 2, 52 }, L2(6), 825000, 124 },
231 { 1, { 576000, HFPLL, 1, 30 }, L2(6), 825000, 144 },
232 { 1, { 652800, HFPLL, 1, 34 }, L2(7), 825000, 165 },
233 { 1, { 729600, HFPLL, 1, 38 }, L2(7), 825000, 186 },
234 { 0, { 806400, HFPLL, 1, 42 }, L2(10), 825000, 208 },
235 { 1, { 883200, HFPLL, 1, 46 }, L2(10), 825000, 229 },
236 { 0, { 960000, HFPLL, 1, 50 }, L2(10), 825000, 252 },
237 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 825000, 275 },
238 { 0, { 1113600, HFPLL, 1, 58 }, L2(12), 835000, 298 },
239 { 0, { 1190400, HFPLL, 1, 62 }, L2(12), 855000, 321 },
240 { 0, { 1267200, HFPLL, 1, 66 }, L2(12), 870000, 346 },
241 { 1, { 1344000, HFPLL, 1, 70 }, L2(12), 885000, 371 },
242 { 0, { 1420800, HFPLL, 1, 74 }, L2(16), 900000, 397 },
243 { 0, { 1497600, HFPLL, 1, 78 }, L2(16), 910000, 423 },
244 { 0, { 1574400, HFPLL, 1, 82 }, L2(16), 925000, 450 },
245 { 0, { 1651200, HFPLL, 1, 86 }, L2(16), 940000, 477 },
246 { 1, { 1728000, HFPLL, 1, 90 }, L2(16), 950000, 506 },
Matt Wagantall7b14d282013-01-15 14:49:34 -0800247 { 0, { 0 } }
248};
249
Matt Wagantall63ac3882013-03-07 16:51:14 -0800250static struct msm_bus_paths bw_level_tbl_v2[] __initdata = {
251 [0] = BW_MBPS(600), /* At least 75 MHz on bus. */
252 [1] = BW_MBPS(800), /* At least 100 MHz on bus. */
253 [2] = BW_MBPS(1200), /* At least 150 MHz on bus. */
254 [3] = BW_MBPS(1600), /* At least 200 MHz on bus. */
255 [4] = BW_MBPS(2456), /* At least 307 MHz on bus. */
256 [5] = BW_MBPS(3680), /* At least 460 MHz on bus. */
257 [6] = BW_MBPS(4912), /* At least 614 MHz on bus. */
258 [7] = BW_MBPS(6400), /* At least 800 MHz on bus. */
259 [8] = BW_MBPS(7448), /* At least 931 MHz on bus. */
260};
261
Matt Wagantall29b7b472013-03-07 17:09:58 -0800262static struct l2_level l2_freq_tbl_v2[] __initdata = {
263 [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 950000, 0 },
Matt Wagantall6f2dcea2013-03-22 14:57:44 -0700264 [1] = { { 345600, HFPLL, 2, 36 }, LVL_LOW, 950000, 1 },
Matt Wagantall17df6732013-04-03 19:26:32 -0700265 [2] = { { 422400, HFPLL, 2, 44 }, LVL_LOW, 950000, 2 },
266 [3] = { { 499200, HFPLL, 2, 52 }, LVL_LOW, 950000, 3 },
267 [4] = { { 576000, HFPLL, 1, 30 }, LVL_LOW, 950000, 4 },
268 [5] = { { 652800, HFPLL, 1, 34 }, LVL_NOM, 950000, 4 },
269 [6] = { { 729600, HFPLL, 1, 38 }, LVL_NOM, 950000, 4 },
Matt Wagantall6f2dcea2013-03-22 14:57:44 -0700270 [7] = { { 806400, HFPLL, 1, 42 }, LVL_NOM, 950000, 4 },
Matt Wagantall17df6732013-04-03 19:26:32 -0700271 [8] = { { 883200, HFPLL, 1, 46 }, LVL_NOM, 950000, 5 },
272 [9] = { { 960000, HFPLL, 1, 50 }, LVL_NOM, 950000, 5 },
273 [10] = { { 1036800, HFPLL, 1, 54 }, LVL_NOM, 950000, 6 },
274 [11] = { { 1113600, HFPLL, 1, 58 }, LVL_HIGH, 1050000, 6 },
Matt Wagantall29b7b472013-03-07 17:09:58 -0800275 [12] = { { 1190400, HFPLL, 1, 62 }, LVL_HIGH, 1050000, 6 },
Matt Wagantall17df6732013-04-03 19:26:32 -0700276 [13] = { { 1267200, HFPLL, 1, 66 }, LVL_HIGH, 1050000, 7 },
Matt Wagantall29b7b472013-03-07 17:09:58 -0800277 [14] = { { 1344000, HFPLL, 1, 70 }, LVL_HIGH, 1050000, 7 },
278 [15] = { { 1420800, HFPLL, 1, 74 }, LVL_HIGH, 1050000, 7 },
279 [16] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 7 },
Matt Wagantall17df6732013-04-03 19:26:32 -0700280 [17] = { { 1574400, HFPLL, 1, 82 }, LVL_HIGH, 1050000, 7 },
281 [18] = { { 1651200, HFPLL, 1, 86 }, LVL_HIGH, 1050000, 7 },
Matt Wagantall63ac3882013-03-07 16:51:14 -0800282 [19] = { { 1728000, HFPLL, 1, 90 }, LVL_HIGH, 1050000, 8 },
Matt Wagantall29b7b472013-03-07 17:09:58 -0800283 { }
284};
285
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800286static struct acpu_level acpu_freq_tbl_2g_pvs0[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700287 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 815000, 73 },
288 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 825000, 85 },
289 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 835000, 104 },
290 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 845000, 124 },
291 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 855000, 144 },
292 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 865000, 165 },
293 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 875000, 186 },
294 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 890000, 208 },
295 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 900000, 229 },
296 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 915000, 252 },
297 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 925000, 275 },
298 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 940000, 298 },
299 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 950000, 321 },
300 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 965000, 346 },
301 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 980000, 371 },
302 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 995000, 397 },
303 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 1010000, 423 },
304 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 1025000, 450 },
305 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 1040000, 477 },
306 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 1055000, 506 },
307 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1070000, 536 },
308 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1085000, 567 },
309 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1100000, 598 },
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800310 { 0, { 0 } }
311};
312
Matt Wagantalld33ed482013-03-12 16:54:59 -0700313static struct acpu_level acpu_freq_tbl_2g_pvs1[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700314 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 800000, 73 },
315 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 810000, 85 },
316 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 820000, 104 },
317 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 830000, 124 },
318 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 840000, 144 },
319 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 850000, 165 },
320 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 860000, 186 },
321 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 875000, 208 },
322 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 885000, 229 },
323 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 895000, 252 },
324 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 910000, 275 },
325 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 920000, 298 },
326 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 930000, 321 },
327 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 945000, 346 },
328 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 960000, 371 },
329 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 975000, 397 },
330 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 990000, 423 },
331 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 1005000, 450 },
332 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 1020000, 477 },
333 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 1030000, 506 },
334 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1045000, 536 },
335 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1060000, 567 },
336 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1075000, 598 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700337 { 0, { 0 } }
338};
339
340static struct acpu_level acpu_freq_tbl_2g_pvs2[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700341 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 785000, 73 },
342 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 795000, 85 },
343 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 805000, 104 },
344 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 815000, 124 },
345 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 825000, 144 },
346 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 835000, 165 },
347 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 845000, 186 },
348 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 855000, 208 },
349 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 865000, 229 },
350 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 875000, 252 },
351 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 890000, 275 },
352 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 900000, 298 },
353 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 910000, 321 },
354 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 925000, 346 },
355 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 940000, 371 },
356 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 955000, 397 },
357 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 970000, 423 },
358 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 980000, 450 },
359 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 995000, 477 },
360 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 1005000, 506 },
361 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1020000, 536 },
362 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1035000, 567 },
363 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1050000, 598 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700364 { 0, { 0 } }
365};
366
367static struct acpu_level acpu_freq_tbl_2g_pvs3[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700368 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 73 },
369 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 780000, 85 },
370 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 790000, 104 },
371 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 800000, 124 },
372 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 810000, 144 },
373 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 820000, 165 },
374 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 830000, 186 },
375 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 840000, 208 },
376 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 850000, 229 },
377 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 860000, 252 },
378 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 875000, 275 },
379 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 885000, 298 },
380 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 895000, 321 },
381 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 910000, 346 },
382 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 925000, 371 },
383 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 935000, 397 },
384 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 950000, 423 },
385 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 960000, 450 },
386 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 970000, 477 },
387 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 985000, 506 },
388 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 995000, 536 },
389 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1010000, 567 },
390 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1025000, 598 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700391 { 0, { 0 } }
392};
393
394static struct acpu_level acpu_freq_tbl_2g_pvs4[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700395 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 73 },
396 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 85 },
397 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 780000, 104 },
398 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 790000, 124 },
399 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 800000, 144 },
400 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 810000, 165 },
401 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 820000, 186 },
402 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 830000, 208 },
403 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 840000, 229 },
404 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 850000, 252 },
405 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 860000, 275 },
406 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 870000, 298 },
407 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 880000, 321 },
408 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 895000, 346 },
409 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 910000, 371 },
410 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 920000, 397 },
411 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 930000, 423 },
412 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 940000, 450 },
413 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 950000, 477 },
414 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 960000, 506 },
415 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 975000, 536 },
416 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 985000, 567 },
417 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1000000, 598 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700418 { 0, { 0 } }
419};
420
421static struct acpu_level acpu_freq_tbl_2g_pvs5[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700422 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 750000, 73 },
423 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 760000, 85 },
424 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 770000, 104 },
425 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 780000, 124 },
426 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 790000, 144 },
427 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 800000, 165 },
428 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 810000, 186 },
429 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 820000, 208 },
430 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 830000, 229 },
431 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 840000, 252 },
432 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 850000, 275 },
433 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 860000, 298 },
434 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 870000, 321 },
435 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 880000, 346 },
436 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 890000, 371 },
437 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 900000, 397 },
438 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 910000, 423 },
439 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 920000, 450 },
440 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 930000, 477 },
441 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 940000, 506 },
442 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 955000, 536 },
443 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 965000, 567 },
444 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 975000, 598 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700445 { 0, { 0 } }
446};
447
448static struct acpu_level acpu_freq_tbl_2g_pvs6[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700449 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 750000, 73 },
450 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 750000, 85 },
451 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 760000, 104 },
452 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 770000, 124 },
453 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 780000, 144 },
454 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 790000, 165 },
455 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 800000, 186 },
456 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 810000, 208 },
457 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 820000, 229 },
458 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 830000, 252 },
459 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 840000, 275 },
460 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 850000, 298 },
461 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 860000, 321 },
462 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 870000, 346 },
463 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 875000, 371 },
464 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 885000, 397 },
465 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 895000, 423 },
466 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 905000, 450 },
467 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 915000, 477 },
468 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 920000, 506 },
469 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 930000, 536 },
470 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 940000, 567 },
471 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 950000, 598 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700472 { 0, { 0 } }
473};
474
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700475static struct acpu_level acpu_freq_tbl_2p2g_pvs0[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700476 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 800000, 72 },
477 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 800000, 83 },
478 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 805000, 102 },
479 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 815000, 121 },
480 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 825000, 141 },
481 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 835000, 161 },
482 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 845000, 181 },
483 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 855000, 202 },
484 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 865000, 223 },
485 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 875000, 245 },
486 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 890000, 267 },
487 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 900000, 289 },
488 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 915000, 313 },
489 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 925000, 336 },
490 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 940000, 360 },
491 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 950000, 383 },
492 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 965000, 409 },
493 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 980000, 435 },
494 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 995000, 461 },
495 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 1010000, 488 },
496 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1025000, 516 },
497 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1040000, 543 },
498 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1055000, 573 },
499 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1070000, 604 },
500 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1085000, 636 },
501 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 1100000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700502 { 0, { 0 } }
503};
504
505static struct acpu_level acpu_freq_tbl_2p2g_pvs1[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700506 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 800000, 72 },
507 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 800000, 83 },
508 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 800000, 102 },
509 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 800000, 121 },
510 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 810000, 141 },
511 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 820000, 161 },
512 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 830000, 181 },
513 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 840000, 202 },
514 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 850000, 223 },
515 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 860000, 245 },
516 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 875000, 267 },
517 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 885000, 289 },
518 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 895000, 313 },
519 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 910000, 336 },
520 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 920000, 360 },
521 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 930000, 383 },
522 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 945000, 409 },
523 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 960000, 435 },
524 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 975000, 461 },
525 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 990000, 488 },
526 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1005000, 516 },
527 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1020000, 543 },
528 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1030000, 573 },
529 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1045000, 604 },
530 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1060000, 636 },
531 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 1075000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700532 { 0, { 0 } }
533};
534
535static struct acpu_level acpu_freq_tbl_2p2g_pvs2[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700536 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 72 },
537 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 83 },
538 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 775000, 102 },
539 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 785000, 121 },
540 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 795000, 141 },
541 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 805000, 161 },
542 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 815000, 181 },
543 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 825000, 202 },
544 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 835000, 223 },
545 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 845000, 245 },
546 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 855000, 267 },
547 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 865000, 289 },
548 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 875000, 313 },
549 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 890000, 336 },
550 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 900000, 360 },
551 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 910000, 383 },
552 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 925000, 409 },
553 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 940000, 435 },
554 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 955000, 461 },
555 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 970000, 488 },
556 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 980000, 516 },
557 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 995000, 543 },
558 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1005000, 573 },
559 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1020000, 604 },
560 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1035000, 636 },
561 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 1050000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700562 { 0, { 0 } }
563};
564
565static struct acpu_level acpu_freq_tbl_2p2g_pvs3[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700566 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 72 },
567 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 83 },
568 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 775000, 102 },
569 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 775000, 121 },
570 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 780000, 141 },
571 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 790000, 161 },
572 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 800000, 181 },
573 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 810000, 202 },
574 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 820000, 223 },
575 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 830000, 245 },
576 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 840000, 267 },
577 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 850000, 289 },
578 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 860000, 313 },
579 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 875000, 336 },
580 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 885000, 360 },
581 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 895000, 383 },
582 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 910000, 409 },
583 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 925000, 435 },
584 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 935000, 461 },
585 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 950000, 488 },
586 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 960000, 516 },
587 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 970000, 543 },
588 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 985000, 573 },
589 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 995000, 604 },
590 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1010000, 636 },
591 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 1025000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700592 { 0, { 0 } }
593};
594
595static struct acpu_level acpu_freq_tbl_2p2g_pvs4[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700596 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 72 },
597 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 83 },
598 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 775000, 102 },
599 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 775000, 121 },
600 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 775000, 141 },
601 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 780000, 161 },
602 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 790000, 181 },
603 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 800000, 202 },
604 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 810000, 223 },
605 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 820000, 245 },
606 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 830000, 267 },
607 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 840000, 289 },
608 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 850000, 313 },
609 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 860000, 336 },
610 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 870000, 360 },
611 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 880000, 383 },
612 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 895000, 409 },
613 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 910000, 435 },
614 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 920000, 461 },
615 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 930000, 488 },
616 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 940000, 516 },
617 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 950000, 543 },
618 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 960000, 573 },
619 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 975000, 604 },
620 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 985000, 636 },
621 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 1000000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700622 { 0, { 0 } }
623};
624
625static struct acpu_level acpu_freq_tbl_2p2g_pvs5[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700626 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 750000, 72 },
627 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 750000, 83 },
628 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 750000, 102 },
629 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 750000, 121 },
630 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 760000, 141 },
631 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 770000, 161 },
632 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 780000, 181 },
633 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 790000, 202 },
634 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 800000, 223 },
635 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 810000, 245 },
636 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 820000, 267 },
637 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 830000, 289 },
638 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 840000, 313 },
639 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 850000, 336 },
640 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 860000, 360 },
641 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 870000, 383 },
642 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 880000, 409 },
643 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 890000, 435 },
644 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 900000, 461 },
645 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 910000, 488 },
646 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 920000, 516 },
647 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 930000, 543 },
648 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 940000, 573 },
649 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 955000, 604 },
650 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 965000, 636 },
651 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 975000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700652 { 0, { 0 } }
653};
654
655static struct acpu_level acpu_freq_tbl_2p2g_pvs6[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700656 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 750000, 72 },
657 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 750000, 83 },
658 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 750000, 102 },
659 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 750000, 121 },
660 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 750000, 141 },
661 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 760000, 161 },
662 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 770000, 181 },
663 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 780000, 202 },
664 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 790000, 223 },
665 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 800000, 245 },
666 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 810000, 267 },
667 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 820000, 289 },
668 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 830000, 313 },
669 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 840000, 336 },
670 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 850000, 360 },
671 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 860000, 383 },
672 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 870000, 409 },
673 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 875000, 435 },
674 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 885000, 461 },
675 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 895000, 488 },
676 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 905000, 516 },
677 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 915000, 543 },
678 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 920000, 573 },
679 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 930000, 604 },
680 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 940000, 636 },
681 { 1, { 2150400, HFPLL, 1, 112 }, L2(19), 950000, 656 },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700682 { 0, { 0 } }
683};
684
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800685static struct acpu_level acpu_freq_tbl_2p3g_pvs0[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700686 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 800000, 72 },
687 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 800000, 83 },
688 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 800000, 101 },
689 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 805000, 120 },
690 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 815000, 139 },
691 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 825000, 159 },
692 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 835000, 180 },
693 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 845000, 200 },
694 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 855000, 221 },
695 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 865000, 242 },
696 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 875000, 264 },
697 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 890000, 287 },
698 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 900000, 308 },
699 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 915000, 333 },
700 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 925000, 356 },
701 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 940000, 380 },
702 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 950000, 404 },
703 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 965000, 430 },
704 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 980000, 456 },
705 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 995000, 482 },
706 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1010000, 510 },
707 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1025000, 538 },
708 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1040000, 565 },
709 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1055000, 596 },
710 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1070000, 627 },
711 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1085000, 659 },
712 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1100000, 691 },
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800713 { 0, { 0 } }
714};
715
Matt Wagantalld33ed482013-03-12 16:54:59 -0700716static struct acpu_level acpu_freq_tbl_2p3g_pvs1[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700717 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 800000, 72 },
718 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 800000, 83 },
719 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 800000, 101 },
720 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 800000, 120 },
721 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 800000, 139 },
722 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 810000, 159 },
723 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 820000, 180 },
724 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 830000, 200 },
725 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 840000, 221 },
726 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 850000, 242 },
727 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 860000, 264 },
728 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 875000, 287 },
729 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 885000, 308 },
730 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 895000, 333 },
731 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 910000, 356 },
732 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 920000, 380 },
733 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 930000, 404 },
734 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 945000, 430 },
735 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 960000, 456 },
736 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 975000, 482 },
737 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 990000, 510 },
738 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1005000, 538 },
739 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1020000, 565 },
740 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1030000, 596 },
741 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1045000, 627 },
742 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1060000, 659 },
743 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1075000, 691 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700744 { 0, { 0 } }
745};
746
747static struct acpu_level acpu_freq_tbl_2p3g_pvs2[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700748 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 72 },
749 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 83 },
750 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 775000, 101 },
751 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 775000, 120 },
752 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 785000, 139 },
753 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 795000, 159 },
754 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 805000, 180 },
755 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 815000, 200 },
756 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 825000, 221 },
757 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 835000, 242 },
758 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 845000, 264 },
759 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 855000, 287 },
760 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 865000, 308 },
761 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 875000, 333 },
762 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 890000, 356 },
763 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 900000, 380 },
764 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 910000, 404 },
765 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 925000, 430 },
766 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 940000, 456 },
767 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 955000, 482 },
768 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 970000, 510 },
769 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 980000, 538 },
770 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 995000, 565 },
771 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1005000, 596 },
772 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1020000, 627 },
773 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1035000, 659 },
774 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1050000, 691 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700775 { 0, { 0 } }
776};
777
778static struct acpu_level acpu_freq_tbl_2p3g_pvs3[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700779 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 72 },
780 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 83 },
781 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 775000, 101 },
782 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 775000, 120 },
783 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 775000, 139 },
784 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 780000, 159 },
785 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 790000, 180 },
786 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 800000, 200 },
787 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 810000, 221 },
788 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 820000, 242 },
789 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 830000, 264 },
790 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 840000, 287 },
791 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 850000, 308 },
792 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 860000, 333 },
793 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 875000, 356 },
794 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 885000, 380 },
795 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 895000, 404 },
796 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 910000, 430 },
797 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 925000, 456 },
798 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 935000, 482 },
799 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 950000, 510 },
800 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 960000, 538 },
801 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 970000, 565 },
802 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 985000, 596 },
803 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 995000, 627 },
804 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1010000, 659 },
805 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1025000, 691 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700806 { 0, { 0 } }
807};
808
809static struct acpu_level acpu_freq_tbl_2p3g_pvs4[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700810 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 775000, 72 },
811 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 775000, 83 },
812 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 775000, 101 },
813 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 775000, 120 },
814 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 775000, 139 },
815 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 775000, 159 },
816 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 780000, 180 },
817 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 790000, 200 },
818 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 800000, 221 },
819 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 810000, 242 },
820 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 820000, 264 },
821 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 830000, 287 },
822 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 840000, 308 },
823 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 850000, 333 },
824 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 860000, 356 },
825 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 870000, 380 },
826 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 880000, 404 },
827 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 895000, 430 },
828 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 910000, 456 },
829 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 920000, 482 },
830 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 930000, 510 },
831 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 940000, 538 },
832 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 950000, 565 },
833 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 960000, 596 },
834 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 975000, 627 },
835 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 985000, 659 },
836 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1000000, 691 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700837 { 0, { 0 } }
838};
839
840static struct acpu_level acpu_freq_tbl_2p3g_pvs5[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700841 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 750000, 72 },
842 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 750000, 83 },
843 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 750000, 101 },
844 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 750000, 120 },
845 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 750000, 139 },
846 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 760000, 159 },
847 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 770000, 180 },
848 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 780000, 200 },
849 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 790000, 221 },
850 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 800000, 242 },
851 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 810000, 264 },
852 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 820000, 287 },
853 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 830000, 308 },
854 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 840000, 333 },
855 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 850000, 356 },
856 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 860000, 380 },
857 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 870000, 404 },
858 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 880000, 430 },
859 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 890000, 456 },
860 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 900000, 482 },
861 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 910000, 510 },
862 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 920000, 538 },
863 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 930000, 565 },
864 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 940000, 596 },
865 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 955000, 627 },
866 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 965000, 659 },
867 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 975000, 691 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700868 { 0, { 0 } }
869};
870
871static struct acpu_level acpu_freq_tbl_2p3g_pvs6[] __initdata = {
Patrick Cain92f4fa12013-04-22 16:23:19 -0700872 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 750000, 72 },
873 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 750000, 83 },
874 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 750000, 101 },
875 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 750000, 120 },
876 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 750000, 139 },
877 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 750000, 159 },
878 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 760000, 180 },
879 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 770000, 200 },
880 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 780000, 221 },
881 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 790000, 242 },
882 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 800000, 264 },
883 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 810000, 287 },
884 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 820000, 308 },
885 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 830000, 333 },
886 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 840000, 356 },
887 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 850000, 380 },
888 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 860000, 404 },
889 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 870000, 430 },
890 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 875000, 456 },
891 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 885000, 482 },
892 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 895000, 510 },
893 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 905000, 538 },
894 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 915000, 565 },
895 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 920000, 596 },
896 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 930000, 627 },
897 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 940000, 659 },
898 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 950000, 691 },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700899 { 0, { 0 } }
900};
901
Junjie Wu56fe0542013-06-17 11:34:26 -0700902static struct acpu_level acpu_freq_tbl_v3_pvs0[] __initdata = {
903 { 1, { 300000, PLL_0, 0, 0 }, L2(0), 800000, 999 },
904 { 0, { 345600, HFPLL, 2, 36 }, L2(1), 800000, 999 },
905 { 1, { 422400, HFPLL, 2, 44 }, L2(2), 800000, 999 },
906 { 0, { 499200, HFPLL, 2, 52 }, L2(2), 805000, 999 },
907 { 0, { 576000, HFPLL, 1, 30 }, L2(3), 815000, 999 },
908 { 1, { 652800, HFPLL, 1, 34 }, L2(3), 825000, 999 },
909 { 1, { 729600, HFPLL, 1, 38 }, L2(4), 835000, 999 },
910 { 0, { 806400, HFPLL, 1, 42 }, L2(4), 845000, 999 },
911 { 1, { 883200, HFPLL, 1, 46 }, L2(4), 855000, 999 },
912 { 1, { 960000, HFPLL, 1, 50 }, L2(9), 865000, 999 },
913 { 1, { 1036800, HFPLL, 1, 54 }, L2(10), 875000, 999 },
914 { 0, { 1113600, HFPLL, 1, 58 }, L2(10), 890000, 999 },
915 { 1, { 1190400, HFPLL, 1, 62 }, L2(10), 900000, 999 },
916 { 1, { 1267200, HFPLL, 1, 66 }, L2(13), 915000, 999 },
917 { 0, { 1344000, HFPLL, 1, 70 }, L2(14), 925000, 999 },
918 { 0, { 1420800, HFPLL, 1, 74 }, L2(15), 940000, 999 },
919 { 1, { 1497600, HFPLL, 1, 78 }, L2(16), 950000, 999 },
920 { 1, { 1574400, HFPLL, 1, 82 }, L2(17), 965000, 999 },
921 { 0, { 1651200, HFPLL, 1, 86 }, L2(17), 980000, 999 },
922 { 1, { 1728000, HFPLL, 1, 90 }, L2(18), 995000, 999 },
923 { 0, { 1804800, HFPLL, 1, 94 }, L2(18), 1010000, 999 },
924 { 0, { 1881600, HFPLL, 1, 98 }, L2(18), 1025000, 999 },
925 { 1, { 1958400, HFPLL, 1, 102 }, L2(19), 1040000, 999 },
926 { 0, { 2035200, HFPLL, 1, 106 }, L2(19), 1055000, 999 },
927 { 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1070000, 999 },
928 { 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1085000, 999 },
929 { 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1100000, 999 },
930 /* higher frequencies aren't available for bring up */
931 { 0, { 0 } }
932};
933
934
Matt Wagantall75135922013-02-19 21:07:38 -0800935static struct pvs_table pvs_v1[NUM_SPEED_BINS][NUM_PVS] __initdata = {
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800936 /* 8974v1 1.7GHz Parts */
937 [0][0] = { acpu_freq_tbl_v1_pvs0, sizeof(acpu_freq_tbl_v1_pvs0) },
938 [0][1] = { acpu_freq_tbl_v1_pvs1, sizeof(acpu_freq_tbl_v1_pvs1) },
939 [0][2] = { acpu_freq_tbl_v1_pvs2, sizeof(acpu_freq_tbl_v1_pvs2) },
940 [0][3] = { acpu_freq_tbl_v1_pvs3, sizeof(acpu_freq_tbl_v1_pvs3) },
941 [0][4] = { acpu_freq_tbl_v1_pvs4, sizeof(acpu_freq_tbl_v1_pvs4) },
Matt Wagantall75135922013-02-19 21:07:38 -0800942};
943
944static struct pvs_table pvs_v2[NUM_SPEED_BINS][NUM_PVS] __initdata = {
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800945 /* 8974v2 2.0GHz Parts */
946 [0][0] = { acpu_freq_tbl_2g_pvs0, sizeof(acpu_freq_tbl_2g_pvs0) },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700947 [0][1] = { acpu_freq_tbl_2g_pvs1, sizeof(acpu_freq_tbl_2g_pvs1) },
948 [0][2] = { acpu_freq_tbl_2g_pvs2, sizeof(acpu_freq_tbl_2g_pvs2) },
949 [0][3] = { acpu_freq_tbl_2g_pvs3, sizeof(acpu_freq_tbl_2g_pvs3) },
950 [0][4] = { acpu_freq_tbl_2g_pvs4, sizeof(acpu_freq_tbl_2g_pvs4) },
951 [0][5] = { acpu_freq_tbl_2g_pvs5, sizeof(acpu_freq_tbl_2g_pvs5) },
952 [0][6] = { acpu_freq_tbl_2g_pvs6, sizeof(acpu_freq_tbl_2g_pvs6) },
953 [0][7] = { acpu_freq_tbl_2g_pvs6, sizeof(acpu_freq_tbl_2g_pvs6) },
Matt Wagantallc8c0c3b2013-02-25 20:19:17 -0800954
955 /* 8974v2 2.3GHz Parts */
956 [1][0] = { acpu_freq_tbl_2p3g_pvs0, sizeof(acpu_freq_tbl_2p3g_pvs0) },
Matt Wagantalld33ed482013-03-12 16:54:59 -0700957 [1][1] = { acpu_freq_tbl_2p3g_pvs1, sizeof(acpu_freq_tbl_2p3g_pvs1) },
958 [1][2] = { acpu_freq_tbl_2p3g_pvs2, sizeof(acpu_freq_tbl_2p3g_pvs2) },
959 [1][3] = { acpu_freq_tbl_2p3g_pvs3, sizeof(acpu_freq_tbl_2p3g_pvs3) },
960 [1][4] = { acpu_freq_tbl_2p3g_pvs4, sizeof(acpu_freq_tbl_2p3g_pvs4) },
961 [1][5] = { acpu_freq_tbl_2p3g_pvs5, sizeof(acpu_freq_tbl_2p3g_pvs5) },
962 [1][6] = { acpu_freq_tbl_2p3g_pvs6, sizeof(acpu_freq_tbl_2p3g_pvs6) },
963 [1][7] = { acpu_freq_tbl_2p3g_pvs6, sizeof(acpu_freq_tbl_2p3g_pvs6) },
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700964
Junjie Wu56fe0542013-06-17 11:34:26 -0700965 /* 8974v2 2.2GHz Parts */
Matt Wagantallf169c7c2013-04-01 20:48:28 -0700966 [2][0] = { acpu_freq_tbl_2p2g_pvs0, sizeof(acpu_freq_tbl_2p2g_pvs0) },
967 [2][1] = { acpu_freq_tbl_2p2g_pvs1, sizeof(acpu_freq_tbl_2p2g_pvs1) },
968 [2][2] = { acpu_freq_tbl_2p2g_pvs2, sizeof(acpu_freq_tbl_2p2g_pvs2) },
969 [2][3] = { acpu_freq_tbl_2p2g_pvs3, sizeof(acpu_freq_tbl_2p2g_pvs3) },
970 [2][4] = { acpu_freq_tbl_2p2g_pvs4, sizeof(acpu_freq_tbl_2p2g_pvs4) },
971 [2][5] = { acpu_freq_tbl_2p2g_pvs5, sizeof(acpu_freq_tbl_2p2g_pvs5) },
972 [2][6] = { acpu_freq_tbl_2p2g_pvs6, sizeof(acpu_freq_tbl_2p2g_pvs6) },
973 [2][7] = { acpu_freq_tbl_2p2g_pvs6, sizeof(acpu_freq_tbl_2p2g_pvs6) },
974
Junjie Wu56fe0542013-06-17 11:34:26 -0700975 /* 8974v3 Bringup */
976 [3][0] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
977 [3][1] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
978 [3][2] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
979 [3][3] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
980 [3][4] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
981 [3][5] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
982 [3][6] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
983 [3][7] = { acpu_freq_tbl_v3_pvs0, sizeof(acpu_freq_tbl_v3_pvs0) },
984
Matt Wagantall1f3762d2012-06-08 19:08:48 -0700985};
986
Matt Wagantall63ac3882013-03-07 16:51:14 -0800987static struct msm_bus_scale_pdata bus_scale_data __initdata = {
988 .usecase = bw_level_tbl_v2,
989 .num_usecases = ARRAY_SIZE(bw_level_tbl_v2),
990 .active_only = 1,
991 .name = "acpuclk-8974",
992};
993
Matt Wagantall1f3762d2012-06-08 19:08:48 -0700994static struct acpuclk_krait_params acpuclk_8974_params __initdata = {
Matt Wagantalle9b715a2012-01-04 18:16:14 -0800995 .scalable = scalable,
Matt Wagantall1f3762d2012-06-08 19:08:48 -0700996 .scalable_size = sizeof(scalable),
997 .hfpll_data = &hfpll_data,
Matt Wagantall75135922013-02-19 21:07:38 -0800998 .pvs_tables = pvs_v2,
Matt Wagantall29b7b472013-03-07 17:09:58 -0800999 .l2_freq_tbl = l2_freq_tbl_v2,
1000 .l2_freq_tbl_size = sizeof(l2_freq_tbl_v2),
Matt Wagantall1f3762d2012-06-08 19:08:48 -07001001 .bus_scale = &bus_scale_data,
Matt Wagantallee2b4372012-09-17 17:51:06 -07001002 .pte_efuse_phys = 0xFC4B80B0,
Matt Wagantallf9a4d322013-01-14 18:01:24 -08001003 .get_bin_info = get_krait_bin_format_b,
Matt Wagantallb7c231b2012-07-24 18:40:17 -07001004 .stby_khz = 300000,
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001005};
1006
Matt Wagantall75135922013-02-19 21:07:38 -08001007static void __init apply_v1_l2_workaround(void)
Matt Wagantall2dd3f972013-01-08 12:03:43 -08001008{
1009 static struct l2_level resticted_l2_tbl[] __initdata = {
1010 [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 1050000, 0 },
1011 [1] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 7 },
1012 { }
1013 };
1014 struct acpu_level *l;
1015 int s, p;
1016
1017 for (s = 0; s < NUM_SPEED_BINS; s++)
1018 for (p = 0; p < NUM_PVS; p++)
Matt Wagantall75135922013-02-19 21:07:38 -08001019 for (l = pvs_v1[s][p].table; l && l->speed.khz; l++)
Matt Wagantall2dd3f972013-01-08 12:03:43 -08001020 l->l2_level = l->l2_level > 5 ? 1 : 0;
1021
1022 acpuclk_8974_params.l2_freq_tbl = resticted_l2_tbl;
1023 acpuclk_8974_params.l2_freq_tbl_size = sizeof(resticted_l2_tbl);
1024}
1025
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001026static int __init acpuclk_8974_probe(struct platform_device *pdev)
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001027{
Matt Wagantall75135922013-02-19 21:07:38 -08001028 if (SOCINFO_VERSION_MAJOR(socinfo_get_version()) == 1) {
1029 acpuclk_8974_params.pvs_tables = pvs_v1;
Matt Wagantall29b7b472013-03-07 17:09:58 -08001030 acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v1;
Matt Wagantall63ac3882013-03-07 16:51:14 -08001031 bus_scale_data.usecase = bw_level_tbl_v1;
1032 bus_scale_data.num_usecases = ARRAY_SIZE(bw_level_tbl_v1);
Matt Wagantall29b7b472013-03-07 17:09:58 -08001033 acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v1);
1034
1035 /*
1036 * 8974 hardware revisions older than v1.2 may experience L2
1037 * parity errors when running at some performance points between
1038 * 300MHz and 1497.6MHz (non-inclusive), or when vdd_mx is less
1039 * than 1.05V. Restrict L2 operation to safe performance points
1040 * on these devices.
1041 */
Matt Wagantall75135922013-02-19 21:07:38 -08001042 if (SOCINFO_VERSION_MINOR(socinfo_get_version()) < 2)
1043 apply_v1_l2_workaround();
1044 }
Matt Wagantall2dd3f972013-01-08 12:03:43 -08001045
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001046 return acpuclk_krait_init(&pdev->dev, &acpuclk_8974_params);
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001047}
1048
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001049static struct of_device_id acpuclk_8974_match_table[] = {
1050 { .compatible = "qcom,acpuclk-8974" },
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001051 {}
1052};
1053
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001054static struct platform_driver acpuclk_8974_driver = {
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001055 .driver = {
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001056 .name = "acpuclk-8974",
1057 .of_match_table = acpuclk_8974_match_table,
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001058 .owner = THIS_MODULE,
1059 },
1060};
1061
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001062static int __init acpuclk_8974_init(void)
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001063{
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001064 return platform_driver_probe(&acpuclk_8974_driver,
1065 acpuclk_8974_probe);
Matt Wagantalle9b715a2012-01-04 18:16:14 -08001066}
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -07001067device_initcall(acpuclk_8974_init);