diff options
author | Gabriel Somlo <gsomlo@gmail.com> | 2021-01-12 12:31:41 -0500 |
---|---|---|
committer | Stafford Horne <shorne@gmail.com> | 2021-01-14 09:52:54 +0900 |
commit | b5d3061ea2e691ab1fa6465fce3c59d9d10357de (patch) | |
tree | 4f469c5c595971af888e486e3374baafc0045f70 /include/linux/litex.h | |
parent | 9d93a9e8aab3f82b6742dd034a6a81d4025cd82e (diff) | |
download | linux-next-b5d3061ea2e691ab1fa6465fce3c59d9d10357de.tar.gz |
drivers/soc/litex: separate MMIO from subregister offset calculation
Separate MMIO (read/write) access into _[read|write]_litex_subregister()
static inline functions, leaving existing "READ|WRITE" macros to handle
calculation of the subregister offset only.
NOTE: this is a non-functional change.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Signed-off-by: Stafford Horne <shorne@gmail.com>
Diffstat (limited to 'include/linux/litex.h')
-rw-r--r-- | include/linux/litex.h | 16 |
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 |