add new target 'oxnas'
[openwrt.git] / target / linux / oxnas / files / arch / arm / mach-oxnas / include / mach / utils.h
1 #ifndef _NAS782X_UTILS_H
2 #define _NAS782X_UTILS_H
3
4 #include <linux/io.h>
5 #include <mach/hardware.h>
6
7 static inline void oxnas_register_clear_mask(void __iomem *p, unsigned mask)
8 {
9         u32 val = readl_relaxed(p);
10
11         val &= ~mask;
12         writel_relaxed(val, p);
13 }
14
15 static inline void oxnas_register_set_mask(void __iomem *p, unsigned mask)
16 {
17         u32 val = readl_relaxed(p);
18
19         val |= mask;
20         writel_relaxed(val, p);
21 }
22
23 static inline void oxnas_register_value_mask(void __iomem *p,
24                                              unsigned mask, unsigned new_value)
25 {
26         /* TODO sanity check mask & new_value = new_value */
27         u32 val = readl_relaxed(p);
28
29         val &= ~mask;
30         val |= new_value;
31         writel_relaxed(val, p);
32 }
33
34 #endif /* _NAS782X_UTILS_H */