summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitja Makarov <vitja.makarov@gmail.com>2009-09-04 09:36:53 +0000
committerVitja Makarov <vitja.makarov@gmail.com>2009-09-04 09:36:53 +0000
commitb5e39c15a55b3e46643bf3b46bb6c664b6cb50a4 (patch)
treefa4e817f39612c213e76f006f227341abd1d978c
parent4b4e5e9265a976a7e33ee305690481bb74a1a292 (diff)
downloadrockbox-b5e39c15a55b3e46643bf3b46bb6c664b6cb50a4.tar.gz
rockbox-b5e39c15a55b3e46643bf3b46bb6c664b6cb50a4.zip
iaudio7: Implement udelay, mostly based on D2 port, except Z-clock initialization
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22620 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/tuner/lv24020lp.c7
-rw-r--r--firmware/target/arm/tcc77x/system-target.h9
-rw-r--r--firmware/target/arm/tcc77x/system-tcc77x.c8
3 files changed, 17 insertions, 7 deletions
diff --git a/firmware/drivers/tuner/lv24020lp.c b/firmware/drivers/tuner/lv24020lp.c
index c6d396aca4..ab37ab8124 100644
--- a/firmware/drivers/tuner/lv24020lp.c
+++ b/firmware/drivers/tuner/lv24020lp.c
@@ -82,13 +82,6 @@ static int fd_log = -1;
82#define FM_CLOCK_PIN 5 82#define FM_CLOCK_PIN 5
83#define FM_DATA_PIN 6 83#define FM_DATA_PIN 6
84#define FM_NRW_PIN 7 84#define FM_NRW_PIN 7
85/* Remove hack when i7 has udelay */
86static void udelay(int usecs)
87{
88 while (usecs--)
89 asm("nop;nop;");
90}
91
92#elif defined(COWON_D2) 85#elif defined(COWON_D2)
93#define TUNER_GPIO_OUTPUT_EN GPIOC_DIR 86#define TUNER_GPIO_OUTPUT_EN GPIOC_DIR
94#define TUNER_GPIO_OUTPUT_VAL GPIOC 87#define TUNER_GPIO_OUTPUT_VAL GPIOC
diff --git a/firmware/target/arm/tcc77x/system-target.h b/firmware/target/arm/tcc77x/system-target.h
index 16cfb9127d..55dd52ef47 100644
--- a/firmware/target/arm/tcc77x/system-target.h
+++ b/firmware/target/arm/tcc77x/system-target.h
@@ -34,4 +34,13 @@
34#define inw(a) (*(volatile unsigned short *) (a)) 34#define inw(a) (*(volatile unsigned short *) (a))
35#define outw(a,b) (*(volatile unsigned short *) (b) = (a)) 35#define outw(a,b) (*(volatile unsigned short *) (b) = (a))
36 36
37/* TC32 is configured to 1MHz in clock_init() */
38#define USEC_TIMER TC32MCNT
39
40static inline void udelay(unsigned usecs)
41{
42 unsigned stop = USEC_TIMER + usecs;
43 while (TIME_BEFORE(USEC_TIMER, stop));
44}
45
37#endif /* SYSTEM_TARGET_H */ 46#endif /* SYSTEM_TARGET_H */
diff --git a/firmware/target/arm/tcc77x/system-tcc77x.c b/firmware/target/arm/tcc77x/system-tcc77x.c
index 90e53afb14..29227b52a3 100644
--- a/firmware/target/arm/tcc77x/system-tcc77x.c
+++ b/firmware/target/arm/tcc77x/system-tcc77x.c
@@ -187,6 +187,14 @@ static void clock_init(void)
187 "nop \n\t" 187 "nop \n\t"
188 "nop \n\t" 188 "nop \n\t"
189 ); 189 );
190
191 /* Enable Z-Clock */
192 PCLKCFG5 |= (1<<31) | (4<<28); /* Timer Z-Clock enable, XIN direct*/
193
194 /* Set TC32 timer to be our USEC_TIMER (Xin divided by 12 = 1MHz) */
195 TC32MCNT = 0;
196 TC32LDV = 0;
197 TC32EN = (1<<24) | 11;
190} 198}
191 199
192static void cpu_init(void) 200static void cpu_init(void)