X-Git-Url: https://git.archive.openwrt.org/?p=openwrt.git;a=blobdiff_plain;f=target%2Flinux%2Foxnas%2Ffiles%2Farch%2Farm%2Fmach-oxnas%2Finclude%2Fmach%2Futils.h;fp=target%2Flinux%2Foxnas%2Ffiles%2Farch%2Farm%2Fmach-oxnas%2Finclude%2Fmach%2Futils.h;h=910d7019c7073de0ccf0fd2030dd6c8732d403fd;hp=0000000000000000000000000000000000000000;hb=7c8415d74cf97105b164a1b1d55f2d0dd5e46389;hpb=eb62bb28e5ff13ac50b0bbdc86585df92451cbe4 diff --git a/target/linux/oxnas/files/arch/arm/mach-oxnas/include/mach/utils.h b/target/linux/oxnas/files/arch/arm/mach-oxnas/include/mach/utils.h new file mode 100644 index 0000000000..910d7019c7 --- /dev/null +++ b/target/linux/oxnas/files/arch/arm/mach-oxnas/include/mach/utils.h @@ -0,0 +1,34 @@ +#ifndef _NAS782X_UTILS_H +#define _NAS782X_UTILS_H + +#include +#include + +static inline void oxnas_register_clear_mask(void __iomem *p, unsigned mask) +{ + u32 val = readl_relaxed(p); + + val &= ~mask; + writel_relaxed(val, p); +} + +static inline void oxnas_register_set_mask(void __iomem *p, unsigned mask) +{ + u32 val = readl_relaxed(p); + + val |= mask; + writel_relaxed(val, p); +} + +static inline void oxnas_register_value_mask(void __iomem *p, + unsigned mask, unsigned new_value) +{ + /* TODO sanity check mask & new_value = new_value */ + u32 val = readl_relaxed(p); + + val &= ~mask; + val |= new_value; + writel_relaxed(val, p); +} + +#endif /* _NAS782X_UTILS_H */