This series expands on commit 22447a99c97e ("drivers/soc/litex: add LiteX
SoC Controller driver"), adding support for handling both 8- and 32-bit
LiteX CSR (MMIO) subregisters, on both 32- and 64-bit CPUs.

Notes v4:
        - improved "eloquence" of some 3/3 commit blurb paragraphs
        - fixed instance of "disgusting" comment style :)
        - litex_[get|set]_reg() now using size_t for 'reg_size' argument
        - slightly tighter shift calculation in litex_set_reg()

Notes v3:
        - split into smaller, more self-explanatory patches
        - more detailed commit blurb for "main payload" (3/3) patch
        - eliminate compiler warning on 32-bit architectures

Notes v2:
        - fix typo (s/u32/u64/) in litex_read64().

Notes v1:
        - LITEX_SUBREG_SIZE now provided by Kconfig.
        - it's not LITEX_REG_SIZE, but rather LITEX_SUBREG_ALIGN!
        - move litex_[get|set]_reg() to include/linux/litex.h and mark
          them as "static inline";
        - redo litex_[read|write][8|16|32|64]() using litex_[get|set]_reg()
          (compiler should produce code as efficient as hardcoded shifts,
           but also automatically matching LITEX_SUBREG_SIZE).

Gabriel Somlo (3):
  drivers/soc/litex: move generic accessors to litex.h
  drivers/soc/litex: separate MMIO from subregister offset calculation
  drivers/soc/litex: support 32-bit subregisters, 64-bit CPUs

 drivers/soc/litex/Kconfig          |  12 +++
 drivers/soc/litex/litex_soc_ctrl.c |  76 +--------------
 include/linux/litex.h              | 151 +++++++++++++++++++----------
 3 files changed, 115 insertions(+), 124 deletions(-)

-- 
2.26.2

Reply via email to