linux-stable/drivers/soc
Gabriel Somlo 51f1092283 drivers/soc/litex: support 32-bit subregisters, 64-bit CPUs
Upstream LiteX now defaults to using 32-bit CSR subregisters
(see https://github.com/enjoy-digital/litex/commit/a2b71fde).

This patch expands on commit 22447a99c9 ("drivers/soc/litex: add
LiteX SoC Controller driver"), adding support for handling both 8-
and 32-bit LiteX CSR (MMIO) subregisters, as determined by the
LITEX_SUBREG_SIZE Kconfig option.

NOTE that while LITEX_SUBREG_SIZE could theoretically be a device
tree property, defining it as a compile-time constant allows for
much better optimization of the resulting code. This is further
supported by the low expected usefulness of deploying the same
kernel across LiteX SoCs built with different CSR-Bus data widths.

Finally, the litex_[read|write][8|16|32|64]() accessors are
redefined in terms of litex_[get|set]_reg(), which, after compiler
optimization, will result in code as efficient as hardcoded shifts,
but with the added benefit of automatically matching the appropriate
LITEX_SUBREG_SIZE.

NOTE that litex_[get|set]_reg() nominally operate on 64-bit data,
but that will also be optimized by the compiler in situations where
narrower data is used from a call site.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Signed-off-by: Stafford Horne <shorne@gmail.com>
2021-01-14 09:52:54 +09:00
..
actions soc: actions: include header to fix missing prototype 2020-09-22 12:45:16 +05:30
amlogic soc: amlogic: replace devm_reset_control_array_get() 2020-11-30 16:23:11 -08:00
aspeed soc: aspeed: Enable drivers with ARCH_ASPEED 2020-11-19 23:01:36 +10:30
atmel ARM: at91: sam9x60 SiP types added to soc description 2020-10-28 21:27:39 +01:00
bcm soc: bcm: brcmstb: pm: pm-arm: Provide prototype for brcmstb_pm_s3_finish() 2020-11-03 19:25:04 -08:00
dove
fsl ARM: SoC drivers for v5.11 2020-12-16 16:38:41 -08:00
gemini
imx soc: imx: gpcv2: Use dev_err_probe() to simplify error handling 2020-08-22 20:57:57 +08:00
ixp4xx
kendryte
lantiq
litex drivers/soc/litex: support 32-bit subregisters, 64-bit CPUs 2021-01-14 09:52:54 +09:00
mediatek soc: mediatek: mmsys: Specify HAS_IOMEM dependency for MTK_MMSYS 2020-12-10 15:33:56 +01:00
qcom soc: qcom: rpmhpd: Add SDX55 power domains 2020-11-26 11:50:31 -06:00
renesas soc: renesas: rmobile-sysc: Stop using __raw_*() I/O accessors 2020-11-27 14:09:37 +01:00
rockchip soc: rockchip: io-domain: Fix error return code in rockchip_iodomain_probe() 2020-12-04 11:20:47 +01:00
samsung soc: samsung: exynos-chipid: initialize later - with arch_initcall 2020-12-05 15:12:02 +01:00
sifive
sunxi soc: sunxi: Fix compilation of sunxi_mbus 2020-11-24 11:58:33 +01:00
tegra soc/tegra: Changes for v5.11-rc1 2020-11-27 17:56:10 +01:00
ti dmaengine updates for v5.11-rc1 2020-12-17 12:52:23 -08:00
ux500
versatile soc: integrator: Drop pointless static qualifier in integrator_soc_init() 2020-08-20 08:57:05 +02:00
xilinx soc: xilinx: vcu: use vcu-settings syscon registers 2020-12-09 19:36:33 +01:00
zte
Kconfig drivers/soc/litex: add LiteX SoC Controller driver 2020-11-09 21:07:00 +09:00
Makefile OpenRISC updates for 5.11 2020-12-17 13:41:27 -08:00