add new target 'oxnas'
[openwrt/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 */