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

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: 805f7aaf7f ("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 mfd: ab8500: Remove unused extern declarations 2023-08-18 21:48:05 +01:00
arizona mfd: wm8998: Remove some unused registers 2019-11-11 08:45:02 +00:00
atc260x mfd: Add MFD driver for ATC260x PMICs 2021-03-10 11:10:23 +00:00
da9052 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
da9055 mfd: da9055: pdata.h: Drop a duplicated word 2020-08-13 07:49:59 +01:00
da9062 regulator: da9061/62: Adjust LDO voltage selection minimum value 2019-06-20 13:07:19 +01:00
da9063 regulator: da9063: add voltage monitoring registers 2023-04-12 12:52:09 +01:00
da9150 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
madera docs: update pin-control.rst references 2021-05-20 13:44:14 -06:00
mt6323 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mt6331 mfd: mt6397: Add basic support for MT6331+MT6332 PMIC 2022-07-19 10:54:41 +01:00
mt6332 mfd: mt6397: Add basic support for MT6331+MT6332 PMIC 2022-07-19 10:54:41 +01:00
mt6357 mfd: mt6397-core: Add MT6357 PMIC support 2022-07-19 10:54:39 +01:00
mt6358 mfd: Add support for the MediaTek MT6366 PMIC 2022-03-07 14:59:44 +00:00
mt6359 mfd: mt6359: Add missing defines necessary for mtk-pmic-keys support 2022-04-26 19:23:05 +01:00
mt6359p regulator: mt6359: Add support for MT6359P regulator 2021-06-01 16:44:36 +01:00
mt6397 mfd: mt6397: Add basic support for MT6331+MT6332 PMIC 2022-07-19 10:54:41 +01:00
pcf50633 mfd: pcf50633: Remove #ifdef guards for PM related functions 2022-12-07 13:28:11 +00:00
samsung rtc: s5m: Drop S5M8763 support 2023-04-26 11:40:26 +01:00
syscon clk: imx6ul: add ethernet refclock mux support 2023-01-31 14:45:17 +02:00
wcd934x ASoC: codecs: wcd934x: add mbhc support 2021-06-04 15:29:01 +01:00
wm831x watchdog: wm831x_wdt: Remove GPIO handling 2020-03-18 11:15:24 +01:00
wm8350 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm8994 mfd: wm8994: Fix comment spelling 2020-03-17 20:48:41 +01:00
88pm80x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
88pm860x.h mfd: 88pm860x: Remove unused extern declarations 2023-08-18 21:48:05 +01:00
aat2870.h mfd: aat2870: No need to check return value of debugfs_create functions 2019-08-12 07:27:40 +01:00
abx500.h mfd/power: ab8500: Push data to power supply code 2021-03-22 14:56:02 +00:00
ac100.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
adp5520.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
altera-a10sr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
altera-sysmgr.h mfd: altera-sysmgr: Add SOCFPGA System Manager 2019-04-02 07:37:45 +01:00
as3711.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 312 2019-06-05 17:37:04 +02:00
as3722.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
atmel-hlcdc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
axp20x.h mfd: axp20x: Add support for AXP192 2023-06-15 09:19:37 +01:00
bcm590xx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
bcm2835-pm.h mfd: bcm2835-pm: Add support for BCM2711 2022-07-04 11:42:20 +01:00
bd9571mwv.h mfd: bd9571mwv: Add support for BD9574MWF 2021-01-14 13:05:55 +00:00
core.h mfd: core: Un-constify mfd_cell.of_reg 2023-11-20 11:59:23 +01:00
cs42l43-regs.h mfd: cs42l43: Add support for cs42l43 core driver 2023-08-17 12:06:11 +01:00
cs42l43.h mfd: cs42l43: Add support for cs42l43 core driver 2023-08-17 12:06:11 +01:00
da8xx-cfgchip.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
da903x.h
davinci_voicecodec.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
db8500-prcmu.h mfd: dbx500-prcmu: Use true and false for bool variable 2021-04-14 16:03:16 +01:00
dbx500-prcmu.h mfd: db8500-prcmu: Remove unused inline functions 2023-08-18 21:48:03 +01:00
dln2.h
ds1wm.h
ezx-pcap.h
gsc.h mfd: Add Gateworks System Controller core driver 2020-05-20 10:28:57 +01:00
hi655x-pmic.h mfd: hi655x-pmic: Convert to devm_platform_ioremap_resource() 2023-08-18 21:48:00 +01:00
hi6421-pmic.h mfd: Replace HTTP links with HTTPS ones 2020-08-13 07:50:59 +01:00
idt8a340_reg.h ptp: ptp_clockmatrix: Add PTP_CLK_REQ_EXTTS support 2022-05-17 17:49:04 -07:00
idt82p33_reg.h ptp: idt82p33: use rsmu driver to access i2c/spi bus 2022-03-09 19:50:57 -08:00
imx25-tsadc.h
ingenic-tcu.h
intel_pmc_bxt.h platform/x86: intel_pmc_ipc: Convert to MFD 2020-04-24 11:18:44 +01:00
intel_soc_pmic_bxtwc.h
intel_soc_pmic_mrfld.h mfd: Add support for Merrifield Basin Cove PMIC 2019-09-02 11:09:03 +01:00
intel_soc_pmic.h mfd: intel_soc_pmic_chtwc: Add Lenovo Yoga Tab 3 X90F to intel_cht_wc_models 2023-02-04 13:03:27 +00:00
intel-m10-bmc.h mfd: intel-m10-bmc: Manage access to MAX 10 fw handshake registers 2023-06-15 09:19:36 +01:00
ipaq-micro.h mfd: ipaq-micro: Fix spelling mistake of "receive{d}" 2022-07-19 10:54:41 +01:00
iqs62x.h mfd: iqs62x: Provide device revision to sub-devices 2022-02-14 13:07:22 +00:00
janz.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
kempld.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 424 2019-06-05 17:37:15 +02:00
khadas-mcu.h mfd: Add support for the Khadas System control Microcontroller 2020-06-18 11:23:16 +01:00
lm3533.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
lochnagar.h
lochnagar1_regs.h
lochnagar2_regs.h
lp873x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
lp3943.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788-isink.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp8788.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lp87565.h mfd: lp87565: Handle optional reset pin 2021-06-02 10:50:00 +01:00
lpc_ich.h mtd: spi-nor: intel-spi: Convert to SPI MEM 2022-02-14 12:53:09 +00:00
max5970.h mfd: max5970: Rename driver and remove wildcard 2023-06-02 09:09:45 +01:00
max8907.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8925.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
max8997-private.h
max8997.h Input: max8997 - convert to modern way to get a reference to a PWM 2022-11-17 22:19:14 -08:00
max8998-private.h
max8998.h regulator: max8998: Add charger regulator 2020-05-22 13:11:05 +01:00
max14577-private.h
max14577.h
max77541.h mfd: max77541: Add ADI MAX77541/MAX77540 PMIC Support 2023-06-21 18:16:18 +01:00
max77620.h mfd: max77620: Do not allocate IRQs upfront 2019-11-11 08:45:02 +00:00
max77650.h mfd: Add new driver for MAX77650 PMIC 2019-05-08 12:06:21 +01:00
max77686-private.h mfd: max77686: Remove unused extern declarations 2023-08-18 21:48:04 +01:00
max77686.h
max77693-common.h
max77693-private.h mfd: max77693-private: Drop a duplicated word 2020-08-13 07:50:01 +01:00
max77693.h
max77714.h mfd: max77714: Update Luca Ceresoli's e-mail address 2022-07-19 10:54:38 +01:00
max77843-private.h
mc13xxx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mc13783.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mc13892.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mcp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 178 2019-05-30 11:29:19 -07:00
menelaus.h
motorola-cpcap.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mp2629.h iio: adc: mp2629: Add support for mp2629 ADC driver 2020-05-26 10:41:47 +01:00
mxs-lradc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
ntxec.h mfd: ntxec: Add version number for EC in Tolino Vision 2023-02-22 11:42:29 +00:00
ocelot.h mfd: ocelot: Add helper to get regmap from a resource 2022-09-09 07:54:25 +01:00
palmas.h iio: adc: palmas: remove adc_wakeupX_data 2023-04-13 11:37:21 +01:00
qcom_rpm.h
rave-sp.h
rc5t583.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
rdc321x.h
retu.h
rk808.h mfd: rk8xx: Add rk806 support 2023-05-15 16:20:22 +01:00
rn5t618.h watchdog: rn5t618: add support for read out bootstatus 2022-11-19 15:30:40 +01:00
rohm-bd718x7.h mfd: bd718x7: simplify by cleaning unnecessary device data 2021-04-14 10:17:53 +01:00
rohm-bd957x.h mfd: bd9576: Add safety limit/monitoring registers 2021-03-10 10:59:03 +00:00
rohm-bd71815.h mfd: Support for ROHM BD71815 PMIC core 2021-04-14 10:19:08 +01:00
rohm-bd71828.h regulator: Fixes for v5.14 2021-06-08 09:41:16 -07:00
rohm-generic.h - New Device Support 2022-01-11 12:22:06 -08:00
rohm-shared.h rtc: bd70528: add BD71828 support 2020-01-24 07:23:06 +00:00
rsmu.h mfd: rsmu: Support 32-bit address space 2023-04-26 11:40:34 +01:00
rt5033-private.h mfd: rt5033: Apply preparatory changes before adding rt5033-charger driver 2023-06-08 18:16:57 +01:00
rt5033.h power: supply: rt5033_battery: Move struct rt5033_battery to battery driver 2023-06-08 18:17:38 +01:00
rz-mtu3.h mfd: rz-mtu3: Link time dependencies 2023-08-18 21:48:04 +01:00
sc27xx-pmic.h mfd: sc27xx: Add USB charger type detection support 2020-03-30 07:35:28 +01:00
si476x-core.h mfd: si476x-core.h: Fix "regulator" spelling in comment 2020-11-27 13:18:53 +00:00
si476x-platform.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285 2019-06-05 17:36:37 +02:00
si476x-reports.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285 2019-06-05 17:36:37 +02:00
sky81452.h backlight: sky81452: Privatize platform data 2020-07-01 10:40:11 +01:00
sta2x11-mfd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
stm32-lptimer.h counter: stm32-lptimer-cnt: Provide defines for clock polarities 2021-10-17 10:52:29 +01:00
stm32-timers.h pwm: stm32: Enforce settings for PWM capture 2023-04-06 16:35:01 +02:00
stmfx.h mfd: stmfx: Remove #ifdef guards for PM related functions 2022-12-07 13:28:13 +00:00
stmpe.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 464 2019-06-19 17:09:10 +02:00
stpmic1.h mfd: stpmic1: Fixup main control register and bits naming 2023-06-15 09:19:39 +01:00
stw481x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
sun4i-gpadc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sy7636a.h mfd: simple-mfd-i2c: Enable support for the silergy,sy7636a 2022-02-08 09:27:22 +00:00
syscon.h mfd: syscon: Add of_syscon_register_regmap() API 2025-02-08 09:51:57 +01:00
tc3589x.h gpio: tc35894: Disable Direct KBD interrupts to enable gpio irq 2020-09-09 11:33:07 +02:00
ti_am335x_tscadc.h mfd: ti_am335x_tscadc: Drop the CNTRLREG_TSC_8WIRE macro 2021-11-29 13:17:00 +00:00
ti-lmu-register.h LED updates for 5.3-rc1 2019-07-09 08:59:39 -07:00
ti-lmu.h LED updates for 5.3-rc1 2019-07-09 08:59:39 -07:00
tmio.h mfd: Remove toshiba tmio drivers 2023-02-22 11:42:29 +00:00
tps6105x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
tps6507x.h
tps6586x.h
tps6594.h mfd: tps6594: Add driver for TI TPS6594 PMIC 2023-05-18 16:06:14 +01:00
tps65010.h ARM/mfd/gpio: Fixup TPS65010 regression on OMAP1 OSK1 2023-05-24 15:01:22 +02:00
tps65086.h regulator: tps65086: Select dedicated regulator config for chip variant 2023-08-18 22:06:52 +01:00
tps65090.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
tps65217.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
tps65218.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
tps65219.h mfd: tps65219: Add driver for TI TPS65219 PMIC 2022-12-07 13:28:15 +00:00
tps65910.h mfd: tps65910: Remove unused pointers 2020-11-19 08:34:22 +00:00
tps65912.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
tps68470.h clk: Introduce clk-tps68470 driver 2021-12-15 20:12:07 -08:00
twl.h ARM/gpio: Push OMAP2 quirk down into TWL4030 driver 2023-05-24 15:01:55 +02:00
twl4030-audio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
twl6040.h mfd: twl6040: Drop twl6040_platform_data and associated definitions 2022-12-07 13:28:07 +00:00
ucb1x00.h gpiolib: split linux/gpio/driver.h out of linux/gpio.h 2023-03-06 12:33:01 +02:00
viperboard.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wl1273-core.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
wm97xx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wm8400-audio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
wm8400-private.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
wm8400.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00