summaryrefslogtreecommitdiff
path: root/include/linux/litex.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/litex.h')
-rw-r--r--include/linux/litex.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/include/linux/litex.h b/include/linux/litex.h
index 67c1a18a7425..918bab45243c 100644
--- a/include/linux/litex.h
+++ b/include/linux/litex.h
@@ -24,11 +24,23 @@
#define LITEX_SUBREG_SIZE 0x1
#define LITEX_SUBREG_SIZE_BIT (LITEX_SUBREG_SIZE * 8)
+static inline void _write_litex_subregister(u32 val, void __iomem *addr)
+{
+ writel((u32 __force)cpu_to_le32(val), addr);
+}
+
+static inline u32 _read_litex_subregister(void __iomem *addr)
+{
+ return le32_to_cpu((__le32 __force)readl(addr));
+}
+
#define WRITE_LITEX_SUBREGISTER(val, base_offset, subreg_id) \
- writel((u32 __force)cpu_to_le32(val), base_offset + (LITEX_REG_SIZE * subreg_id))
+ _write_litex_subregister(val, (base_offset) + \
+ LITEX_REG_SIZE * (subreg_id))
#define READ_LITEX_SUBREGISTER(base_offset, subreg_id) \
- le32_to_cpu((__le32 __force)readl(base_offset + (LITEX_REG_SIZE * subreg_id)))
+ _read_litex_subregister((base_offset) + \
+ LITEX_REG_SIZE * (subreg_id))
/*
* LiteX SoC Generator, depending on the configuration, can split a single