86 #include <linux/kernel.h>
87 #include <linux/types.h>
92 #include <asm/cputype.h>
94 #include <mach/hardware.h>
111 { 59000, 0x00dc88a3, 0xcccccccf, 0xfffffffc, 0xffffffff},
112 { 73700, 0x011490a3, 0xcccccccf, 0xfffffffc, 0xffffffff},
113 { 88500, 0x014e90a3, 0xcccccccf, 0xfffffffc, 0xffffffff},
114 {103200, 0x01889923, 0xcccccccf, 0xfffffffc, 0xffffffff},
115 {118000, 0x01c29923, 0x9999998f, 0xfffffff9, 0xffffffff},
116 {132700, 0x01fb2123, 0x9999998f, 0xfffffff9, 0xffffffff},
117 {147500, 0x02352123, 0x3333330f, 0xfffffff3, 0xffffffff},
118 {162200, 0x026b29a3, 0x38e38e1f, 0xfff8e38e, 0xffffffff},
119 {176900, 0x02a329a3, 0x71c71c1f, 0xfff1c71c, 0xffffffff},
120 {191700, 0x02dd31a3, 0xe38e383f, 0xffe38e38, 0xffffffff},
121 {206400, 0x03153223, 0xc71c703f, 0xffc71c71, 0xffffffff},
122 {221200, 0x034fba23, 0xc71c703f, 0xffc71c71, 0xffffffff},
123 {235900, 0x03853a23, 0xe1e1e07f, 0xe1e1e1e1, 0xffffffe1},
124 {250700, 0x03bf3aa3, 0xc3c3c07f, 0xc3c3c3c3, 0xffffffc3},
125 {265400, 0x03f7c2a3, 0xc3c3c07f, 0xc3c3c3c3, 0xffffffc3},
126 {280200, 0x0431c2a3, 0x878780ff, 0x87878787, 0xffffff87},
130 static void sa1100_update_dram_timings(
int current_speed,
int new_speed)
135 while (settings->
speed != 0) {
136 if (new_speed == settings->
speed)
142 if (settings->
speed == 0) {
143 panic(
"%s: couldn't find dram setting for speed %d\n",
144 __func__, new_speed);
148 if (new_speed > current_speed) {
182 unsigned int target_freq,
183 unsigned int relation)
186 unsigned int new_ppcr;
209 sa1100_update_dram_timings(cur, freqs.new);
214 sa1100_update_dram_timings(cur, freqs.new);
223 if (policy->
cpu != 0)
226 policy->
cpuinfo.min_freq = 59000;
227 policy->
cpuinfo.max_freq = 287000;
235 .target = sa1100_target,
237 .init = sa1100_cpu_init,
241 static int __init sa1100_dram_init(
void)