blob: 15d3a9efdec25ee130476bd19bf6672cf162ab0f [file] [log] [blame]
Simon Hormana6558c22011-03-24 07:04:37 +00001#ifndef MMC_MACKEREL_H
2#define MMC_MACKEREL_H
Simon Hormanf45b1142011-01-11 04:01:08 +01003
4#define PORT0CR (void __iomem *)0xe6051000
5#define PORT1CR (void __iomem *)0xe6051001
6#define PORT2CR (void __iomem *)0xe6051002
7#define PORT159CR (void __iomem *)0xe605009f
8
9#define PORTR031_000DR (void __iomem *)0xe6055000
10#define PORTL159_128DR (void __iomem *)0xe6054010
11
Simon Hormana6558c22011-03-24 07:04:37 +000012static inline void mmc_init_progress(void)
Simon Hormanf45b1142011-01-11 04:01:08 +010013{
14 /* Initialise LEDS0-3
15 * registers: PORT0CR-PORT2CR,PORT159CR (LED0-LED3 Control)
16 * value: 0x10 - enable output
17 */
18 __raw_writeb(0x10, PORT0CR);
19 __raw_writeb(0x10, PORT1CR);
20 __raw_writeb(0x10, PORT2CR);
21 __raw_writeb(0x10, PORT159CR);
22}
23
Simon Hormana6558c22011-03-24 07:04:37 +000024static inline void mmc_update_progress(int n)
Simon Hormanf45b1142011-01-11 04:01:08 +010025{
26 unsigned a = 0, b = 0;
27
28 if (n < 3)
29 a = 1 << n;
30 else
31 b = 1 << 31;
32
33 __raw_writel((__raw_readl(PORTR031_000DR) & ~0x7) | a,
34 PORTR031_000DR);
35 __raw_writel((__raw_readl(PORTL159_128DR) & ~(1 << 31)) | b,
36 PORTL159_128DR);
37}
Simon Hormana6558c22011-03-24 07:04:37 +000038#endif /* MMC_MACKEREL_H */