This source file includes following definitions.
- sa1100_pcmcia_mecr_bs
- sa1100_pcmcia_cmd_time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #if !defined(_PCMCIA_SA1100_H)
34 # define _PCMCIA_SA1100_H
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 #define MECR_SOCKET_0_SHIFT (0)
59 #define MECR_SOCKET_1_SHIFT (16)
60
61 #define MECR_BS_MASK (0x1f)
62 #define MECR_FAST_MODE_MASK (0x01)
63
64 #define MECR_BSIO_SHIFT (0)
65 #define MECR_BSA_SHIFT (5)
66 #define MECR_BSM_SHIFT (10)
67 #define MECR_FAST_SHIFT (15)
68
69 #define MECR_SET(mecr, sock, shift, mask, bs) \
70 ((mecr)=((mecr)&~(((mask)<<(shift))<<\
71 ((sock)==0?MECR_SOCKET_0_SHIFT:MECR_SOCKET_1_SHIFT)))|\
72 (((bs)<<(shift))<<((sock)==0?MECR_SOCKET_0_SHIFT:MECR_SOCKET_1_SHIFT)))
73
74 #define MECR_GET(mecr, sock, shift, mask) \
75 ((((mecr)>>(((sock)==0)?MECR_SOCKET_0_SHIFT:MECR_SOCKET_1_SHIFT))>>\
76 (shift))&(mask))
77
78 #define MECR_BSIO_SET(mecr, sock, bs) \
79 MECR_SET((mecr), (sock), MECR_BSIO_SHIFT, MECR_BS_MASK, (bs))
80
81 #define MECR_BSIO_GET(mecr, sock) \
82 MECR_GET((mecr), (sock), MECR_BSIO_SHIFT, MECR_BS_MASK)
83
84 #define MECR_BSA_SET(mecr, sock, bs) \
85 MECR_SET((mecr), (sock), MECR_BSA_SHIFT, MECR_BS_MASK, (bs))
86
87 #define MECR_BSA_GET(mecr, sock) \
88 MECR_GET((mecr), (sock), MECR_BSA_SHIFT, MECR_BS_MASK)
89
90 #define MECR_BSM_SET(mecr, sock, bs) \
91 MECR_SET((mecr), (sock), MECR_BSM_SHIFT, MECR_BS_MASK, (bs))
92
93 #define MECR_BSM_GET(mecr, sock) \
94 MECR_GET((mecr), (sock), MECR_BSM_SHIFT, MECR_BS_MASK)
95
96 #define MECR_FAST_SET(mecr, sock, fast) \
97 MECR_SET((mecr), (sock), MECR_FAST_SHIFT, MECR_FAST_MODE_MASK, (fast))
98
99 #define MECR_FAST_GET(mecr, sock) \
100 MECR_GET((mecr), (sock), MECR_FAST_SHIFT, MECR_FAST_MODE_MASK)
101
102
103
104
105
106 static inline unsigned int sa1100_pcmcia_mecr_bs(unsigned int pcmcia_cycle_ns,
107 unsigned int cpu_clock_khz){
108 unsigned int t = ((pcmcia_cycle_ns * cpu_clock_khz) / 6) - 1000000;
109 return (t / 1000000) + (((t % 1000000) == 0) ? 0 : 1);
110 }
111
112
113
114
115 static inline unsigned int sa1100_pcmcia_cmd_time(unsigned int cpu_clock_khz,
116 unsigned int pcmcia_mecr_bs){
117 return (((10000000 * 2) / cpu_clock_khz) * (3 * (pcmcia_mecr_bs + 1))) / 10;
118 }
119
120
121 int sa11xx_drv_pcmcia_add_one(struct soc_pcmcia_socket *skt);
122 void sa11xx_drv_pcmcia_ops(struct pcmcia_low_level *ops);
123 extern int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops, int first, int nr);
124
125 #endif