diff options
author | Ben Dooks <ben@simtec.co.uk> | 2009-07-30 18:23:37 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-07-30 18:22:55 -0400 |
commit | 140780ab5a2bc04ccff77337c3a27f3b44182a91 (patch) | |
tree | 719cc3986597f78ee9197404e31738b484de11c7 /arch/arm/plat-s3c24xx/include | |
parent | 25400036867fa7a135fca17810555400d176acaa (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.h | 52 |
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 | */ | ||
63 | struct 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 | |||
45 | union s3c_iobank { | 80 | union 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 | ||
175 | extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg); | 211 | extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg); |
176 | 212 | ||
213 | /* S3C2412 compatible routines */ | ||
214 | |||
215 | extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg, | ||
216 | struct s3c_iotimings *timings); | ||
217 | |||
218 | extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg, | ||
219 | struct s3c_iotimings *timings); | ||
220 | |||
221 | extern int s3c2412_iotiming_calc(struct s3c_cpufreq_config *cfg, | ||
222 | struct s3c_iotimings *iot); | ||
223 | |||
224 | extern 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 |