aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c24xx/include
diff options
context:
space:
mode:
authorBen Dooks <ben@simtec.co.uk>2009-07-30 18:23:37 -0400
committerBen Dooks <ben-linux@fluff.org>2009-07-30 18:22:55 -0400
commit140780ab5a2bc04ccff77337c3a27f3b44182a91 (patch)
tree719cc3986597f78ee9197404e31738b484de11c7 /arch/arm/plat-s3c24xx/include
parent25400036867fa7a135fca17810555400d176acaa (diff)
ARM: S3C24XX: CPUFREQ: S3C2412/S3C2443 IO timing support
Add IO bank timing support for S3C2412/S3C2443. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-s3c24xx/include')
-rw-r--r--arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h52
1 files changed, 51 insertions, 1 deletions
diff --git a/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h b/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h
index 7938fb0bc387..f02b3c06c1e0 100644
--- a/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h
+++ b/arch/arm/plat-s3c24xx/include/plat/cpu-freq-core.h
@@ -42,8 +42,44 @@ struct s3c2410_iobank_timing {
42 unsigned char nwait_en; /* nWait enabled for bank. */ 42 unsigned char nwait_en; /* nWait enabled for bank. */
43}; 43};
44 44
45/**
46 * struct s3c2412_iobank_timing - io timings for PL092 (S3C2412) style IO
47 * @idcy: The idle cycle time between transactions.
48 * @wstrd: nCS release to end of read cycle.
49 * @wstwr: nCS release to end of write cycle.
50 * @wstoen: nCS assertion to nOE assertion time.
51 * @wstwen: nCS assertion to nWE assertion time.
52 * @wstbrd: Burst ready delay.
53 * @smbidcyr: Register cache for smbidcyr value.
54 * @smbwstrd: Register cache for smbwstrd value.
55 * @smbwstwr: Register cache for smbwstwr value.
56 * @smbwstoen: Register cache for smbwstoen value.
57 * @smbwstwen: Register cache for smbwstwen value.
58 * @smbwstbrd: Register cache for smbwstbrd value.
59 *
60 * Timing information for a IO bank on an S3C2412 or similar system which
61 * uses a PL093 block.
62 */
63struct s3c2412_iobank_timing {
64 unsigned int idcy;
65 unsigned int wstrd;
66 unsigned int wstwr;
67 unsigned int wstoen;
68 unsigned int wstwen;
69 unsigned int wstbrd;
70
71 /* register cache */
72 unsigned char smbidcyr;
73 unsigned char smbwstrd;
74 unsigned char smbwstwr;
75 unsigned char smbwstoen;
76 unsigned char smbwstwen;
77 unsigned char smbwstbrd;
78};
79
45union s3c_iobank { 80union s3c_iobank {
46 struct s3c2410_iobank_timing *io_2410; 81 struct s3c2410_iobank_timing *io_2410;
82 struct s3c2412_iobank_timing *io_2412;
47}; 83};
48 84
49/** 85/**
@@ -174,6 +210,20 @@ extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg,
174 210
175extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg); 211extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg);
176 212
213/* S3C2412 compatible routines */
214
215extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg,
216 struct s3c_iotimings *timings);
217
218extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg,
219 struct s3c_iotimings *timings);
220
221extern int s3c2412_iotiming_calc(struct s3c_cpufreq_config *cfg,
222 struct s3c_iotimings *iot);
223
224extern void s3c2412_iotiming_set(struct s3c_cpufreq_config *cfg,
225 struct s3c_iotimings *iot);
226
177#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUG 227#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUG
178#define s3c_freq_dbg(x...) printk(KERN_INFO x) 228#define s3c_freq_dbg(x...) printk(KERN_INFO x)
179#else 229#else