twx-linux/include/linux/mfd
Peter Griffin b45fd493da mfd: syscon: Add of_syscon_register_regmap() API
[ Upstream commit 769cb63166d90f1fadafa4352f180cbd96b6cb77 ]

The of_syscon_register_regmap() API allows an externally created regmap
to be registered with syscon. This regmap can then be returned to client
drivers using the syscon_regmap_lookup_by_phandle() APIs.

The API is used by platforms where mmio access to the syscon registers is
not possible, and a underlying soc driver like exynos-pmu provides a SoC
specific regmap that can issue a SMC or hypervisor call to write the
register.

This approach keeps the SoC complexities out of syscon, but allows common
drivers such as  syscon-poweroff, syscon-reboot and friends that are used
by many SoCs already to be re-used.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Will McVicker <willmcvicker@google.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240621115544.1655458-2-peter.griffin@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
Stable-dep-of: 805f7aaf7fee ("mfd: syscon: Fix race in device_node_get_regmap()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-02-08 09:51:57 +01:00
..
abx500
arizona
atc260x
da9052
da9055
da9062
da9063
da9150
madera
mt6323
mt6331
mt6332
mt6357
mt6358
mt6359
mt6359p
mt6397
pcf50633
samsung
syscon
wcd934x
wm831x
wm8350
wm8994
88pm80x.h
88pm860x.h
aat2870.h
abx500.h
ac100.h
adp5520.h
altera-a10sr.h
altera-sysmgr.h
as3711.h
as3722.h
atmel-hlcdc.h
axp20x.h
bcm590xx.h
bcm2835-pm.h
bd9571mwv.h
core.h
cs42l43-regs.h
cs42l43.h
da8xx-cfgchip.h
da903x.h
davinci_voicecodec.h
db8500-prcmu.h
dbx500-prcmu.h
dln2.h
ds1wm.h
ezx-pcap.h
gsc.h
hi655x-pmic.h
hi6421-pmic.h
idt8a340_reg.h
idt82p33_reg.h
imx25-tsadc.h
ingenic-tcu.h
intel_pmc_bxt.h
intel_soc_pmic_bxtwc.h
intel_soc_pmic_mrfld.h
intel_soc_pmic.h
intel-m10-bmc.h
ipaq-micro.h
iqs62x.h
janz.h
kempld.h
khadas-mcu.h
lm3533.h
lochnagar1_regs.h
lochnagar2_regs.h
lochnagar.h
lp873x.h
lp3943.h
lp8788-isink.h
lp8788.h
lp87565.h
lpc_ich.h
max5970.h
max8907.h
max8925.h
max8997-private.h
max8997.h
max8998-private.h
max8998.h
max14577-private.h
max14577.h
max77541.h
max77620.h
max77650.h
max77686-private.h
max77686.h
max77693-common.h
max77693-private.h
max77693.h
max77714.h
max77843-private.h
mc13xxx.h
mc13783.h
mc13892.h
mcp.h
menelaus.h
motorola-cpcap.h
mp2629.h
mxs-lradc.h
ntxec.h
ocelot.h
palmas.h
qcom_rpm.h
rave-sp.h
rc5t583.h
rdc321x.h
retu.h
rk808.h
rn5t618.h
rohm-bd718x7.h
rohm-bd957x.h
rohm-bd71815.h
rohm-bd71828.h
rohm-generic.h
rohm-shared.h
rsmu.h
rt5033-private.h
rt5033.h
rz-mtu3.h
sc27xx-pmic.h
si476x-core.h
si476x-platform.h
si476x-reports.h
sky81452.h
sta2x11-mfd.h
stm32-lptimer.h
stm32-timers.h
stmfx.h
stmpe.h
stpmic1.h
stw481x.h
sun4i-gpadc.h
sy7636a.h
syscon.h
tc3589x.h
ti_am335x_tscadc.h
ti-lmu-register.h
ti-lmu.h
tmio.h
tps6105x.h
tps6507x.h
tps6586x.h
tps6594.h
tps65010.h
tps65086.h
tps65090.h
tps65217.h
tps65218.h
tps65219.h
tps65910.h
tps65912.h
tps68470.h
twl4030-audio.h
twl6040.h
twl.h
ucb1x00.h
viperboard.h
wl1273-core.h
wm97xx.h
wm8400-audio.h
wm8400-private.h
wm8400.h