]>
Commit | Line | Data |
---|---|---|
5a0015d6 CZ |
1 | /* |
2 | * arch/xtensa/kernel/platform.c | |
3 | * | |
4 | * Default platform functions. | |
5 | * | |
6 | * This file is subject to the terms and conditions of the GNU General Public | |
7 | * License. See the file "COPYING" in the main directory of this archive | |
8 | * for more details. | |
9 | * | |
10 | * Copyright (C) 2005 Tensilica Inc. | |
11 | * | |
12 | * Chris Zankel <[email protected]> | |
13 | */ | |
14 | ||
5a0015d6 CZ |
15 | #include <linux/types.h> |
16 | #include <linux/pci.h> | |
17 | #include <linux/time.h> | |
18 | #include <asm/platform.h> | |
19 | #include <asm/timex.h> | |
4e57b681 | 20 | #include <asm/param.h> /* HZ */ |
5a0015d6 CZ |
21 | |
22 | #define _F(r,f,a,b) \ | |
23 | r __platform_##f a b; \ | |
24 | r platform_##f a __attribute__((weak, alias("__platform_"#f))) | |
25 | ||
26 | /* | |
27 | * Default functions that are used if no platform specific function is defined. | |
28 | * (Please, refer to include/asm-xtensa/platform.h for more information) | |
29 | */ | |
30 | ||
31 | _F(void, setup, (char** cmd), { }); | |
5a0015d6 CZ |
32 | _F(void, restart, (void), { while(1); }); |
33 | _F(void, halt, (void), { while(1); }); | |
34 | _F(void, power_off, (void), { while(1); }); | |
35 | _F(void, idle, (void), { __asm__ __volatile__ ("waiti 0" ::: "memory"); }); | |
36 | _F(void, heartbeat, (void), { }); | |
37 | _F(int, pcibios_fixup, (void), { return 0; }); | |
b06c14e5 | 38 | _F(void, pcibios_init, (void), { }); |
5a0015d6 | 39 | |
288a60cf | 40 | #ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT |
5a0015d6 CZ |
41 | _F(void, calibrate_ccount, (void), |
42 | { | |
fa48cf42 | 43 | pr_err("ERROR: Cannot calibrate cpu frequency! Assuming 10MHz.\n"); |
e504c4b6 | 44 | ccount_freq = 10 * 1000000UL; |
5a0015d6 CZ |
45 | }); |
46 | #endif |