i.MX31: Busy wait for a couple microseconds at most then sleep until next tick when...
[kugel-rb.git] / firmware / target / arm / imx31 / gigabeat-s / system-target.h
blob4449b570f790918fdf50e39bfab859fa7d05cbd2
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2007 by Greg White
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
21 #ifndef SYSTEM_TARGET_H
22 #define SYSTEM_TARGET_H
24 #include "system-arm.h"
25 #include "mmu-arm.h"
27 /* High enough for most tasks but low enough for reduced voltage */
28 #define CPUFREQ_DEFAULT 264000000
29 /* Still quite powerful, minimum possible frequency */
30 #define CPUFREQ_NORMAL 132000000
31 /* Overdrive mode */
32 #define CPUFREQ_MAX 528000000
34 static inline void udelay(unsigned long usecs)
36 unsigned long stop = GPTCNT + usecs;
37 while (TIME_BEFORE(GPTCNT, stop));
40 static inline unsigned long usec_timer(void)
42 return GPTCNT;
45 void watchdog_init(unsigned int half_seconds);
46 void watchdog_service(void);
48 void gpt_start(void);
49 void gpt_stop(void);
51 unsigned int iim_system_rev(void);
53 /* Prepare for transition to (new) firmware */
54 void system_prepare_fw_start(void);
55 void tick_stop(void);
56 void kernel_device_init(void);
57 void system_halt(void);
59 /* Handle some audio lockout related tasks */
60 void kernel_audio_locking(bool locking);
62 #define KDEV_INIT
64 struct ARM_REGS {
65 int r0;
66 int r1;
67 int r2;
68 int r3;
69 int r4;
70 int r5;
71 int r6;
72 int r7;
73 int r8;
74 int r9;
75 int r10;
76 int r11;
77 int r12;
78 int sp;
79 int lr;
80 int pc;
81 int cpsr;
82 } regs;
84 void dumpregs(void);
86 #endif /* SYSTEM_TARGET_H */