blob: db3b615ffbab351fce0e377c3ce167b8177d9f07 [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001/*
2 * Common header file for blackfin family of processors.
3 *
4 */
5
6#ifndef _BLACKFIN_H_
7#define _BLACKFIN_H_
8
Mike Frysingerdf30b112007-06-11 17:47:27 +08009#define LO(con32) ((con32) & 0xFFFF)
10#define lo(con32) ((con32) & 0xFFFF)
11#define HI(con32) (((con32) >> 16) & 0xFFFF)
12#define hi(con32) (((con32) >> 16) & 0xFFFF)
13
Bryan Wu1394f032007-05-06 14:50:22 -070014#include <asm/mach/blackfin.h>
15#include <asm/bfin-global.h>
16
17#ifndef __ASSEMBLY__
18
19/* SSYNC implementation for C file */
20#if defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
21static inline void SSYNC (void)
22{
23 int _tmp;
24 __asm__ __volatile__ ("cli %0;\n\t"
25 "nop;nop;\n\t"
26 "ssync;\n\t"
27 "sti %0;\n\t"
28 :"=d"(_tmp):);
29}
30#elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
31static inline void SSYNC (void)
32{
33 int _tmp;
34 __asm__ __volatile__ ("cli %0;\n\t"
35 "ssync;\n\t"
36 "sti %0;\n\t"
37 :"=d"(_tmp):);
38}
39#elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
40static inline void SSYNC (void)
41{
42 __builtin_bfin_ssync();
43}
44#elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
45static inline void SSYNC (void)
46{
47 __asm__ __volatile__ ("ssync;\n\t");
48}
49#endif
50
51/* CSYNC implementation for C file */
52#if defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
53static inline void CSYNC (void)
54{
55 int _tmp;
56 __asm__ __volatile__ ("cli %0;\n\t"
57 "nop;nop;\n\t"
58 "csync;\n\t"
59 "sti %0;\n\t"
60 :"=d"(_tmp):);
61}
62#elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
63static inline void CSYNC (void)
64{
65 int _tmp;
66 __asm__ __volatile__ ("cli %0;\n\t"
67 "csync;\n\t"
68 "sti %0;\n\t"
69 :"=d"(_tmp):);
70}
71#elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
72static inline void CSYNC (void)
73{
74 __builtin_bfin_csync();
75}
76#elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
77static inline void CSYNC (void)
78{
79 __asm__ __volatile__ ("csync;\n\t");
80}
81#endif
82
83#endif /* __ASSEMBLY__ */
84
85#endif /* _BLACKFIN_H_ */