remarkable-linux/drivers/mfd
Pankaj Dubey bdb0066df9 mfd: syscon: Decouple syscon interface from platform devices
Currently a syscon entity can be only registered directly through a
platform device that binds to a dedicated syscon driver. However in
certain use cases it is desirable to make a device used with another
driver a syscon interface provider.

For example, certain SoCs (e.g. Exynos) contain system controller
blocks which perform various functions such as power domain control,
CPU power management, low power mode control, but in addition contain
certain IP integration glue, such as various signal masks,
coprocessor power control, etc. In such case, there is a need to have
a dedicated driver for such system controller but also share registers
with other drivers. The latter is where the syscon interface is helpful.

In case of DT based platforms, this patch decouples syscon object from
syscon platform driver, and allows to create syscon objects first time
when it is required by calling of syscon_regmap_lookup_by APIs and keep
a list of such syscon objects along with syscon provider device_nodes
and regmap handles.

For non-DT based platforms, this patch keeps syscon platform driver
structure so that syscon can be probed and such non-DT based drivers
can use syscon_regmap_lookup_by_pdev API and access regmap handles.
Once all users of "syscon_regmap_lookup_by_pdev" migrated to DT based,
we can completely remove platform driver of syscon, and keep only helper
functions to get regmap handles.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Suggested-by: Tomasz Figa <tomasz.figa@gmail.com>
Tested-by: Vivek Gautam <gautam.vivek@samsung.com>
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2014-11-25 16:18:41 +00:00
..
88pm80x.c
88pm800.c mfd: 88pm800: Fix I2C device resource leak if probe fails 2014-03-19 08:58:15 +00:00
88pm805.c mfd: 88pm805: msleep(1ms ~ 20ms) may not do what the caller intends 2014-07-09 16:38:02 +01:00
88pm860x-core.c mfd: 88pm860x-core: Repair formatting issues 2014-07-09 16:38:03 +01:00
88pm860x-i2c.c mfd: 88pm860x-i2c: Fix variable length array Sparse warning 2014-09-26 08:15:45 +01:00
aat2870-core.c mfd: aat2870-core: Stop using obsolte simple_strtoul() 2014-07-09 16:38:04 +01:00
ab3100-core.c mfd: ab3100-core: Correct code sytle problems 2014-07-09 16:38:05 +01:00
ab3100-otp.c
ab8500-core.c mfd: ab8500-core: Use 'ifdef' for config options 2014-08-20 13:28:02 +01:00
ab8500-debugfs.c mfd: ab8500-debugfs: BIG clean-up 2014-07-21 16:54:25 +01:00
ab8500-gpadc.c
ab8500-sysctrl.c
abx500-core.c mfd: abx500-core: Remove unused function abx500_dump_all_banks() 2014-06-03 08:11:51 +01:00
adp5520.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
arizona-core.c mfd: arizona: Correct mask to allow setting micbias external cap 2014-09-26 08:24:05 +01:00
arizona-i2c.c mfd: arizona: Rid data size incompatibility warn when building for 64bit 2014-07-09 16:38:01 +01:00
arizona-irq.c mfd: arizona: Use handle_simple_irq for IRQ dispatch chip 2014-09-26 08:23:55 +01:00
arizona-spi.c mfd: arizona: Rid data size incompatibility warn when building for 64bit 2014-07-09 16:38:01 +01:00
arizona.h mfd: wm5110: Add new interrupt register definitions 2014-07-28 11:01:42 +01:00
as3711.c mfd: as3711: Make of_device_id array const 2014-06-03 08:11:38 +01:00
as3722.c mfd: as3722: Make FUSE7_REG readable 2014-03-19 08:58:37 +00:00
asic3.c driver:gpio remove all usage of gpio_remove retval in driver 2014-09-18 11:03:10 -07:00
axp20x.c Immutable branch between MFD, Regulator and Clk, due for v3.19 2014-11-25 16:18:03 +00:00
bcm590xx.c Changes to existing drivers: 2014-06-06 12:08:39 -07:00
cros_ec.c mfd: cros_ec: wait for completion of commands that return IN_PROGRESS 2014-10-06 21:30:16 +01:00
cros_ec_i2c.c mfd: cros_ec: Use the proper size when looking at the cros_ec_i2c result 2014-07-09 16:38:21 +01:00
cros_ec_spi.c mfd: cros_ec: move locking into cros_ec_cmd_xfer 2014-10-06 21:29:50 +01:00
cs5535-mfd.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
da903x.c
da9052-core.c mfd: da9052: Avoid setting read_flag_mask for da9052-i2c driver 2014-09-26 08:15:54 +01:00
da9052-i2c.c mfd: da9052-i2c: Remove duplicate test for I2C_FUNC_SMBUS_BYTE_DATA functionality 2014-09-26 08:15:41 +01:00
da9052-irq.c
da9052-spi.c mfd: da9052: Avoid setting read_flag_mask for da9052-i2c driver 2014-09-26 08:15:54 +01:00
da9055-core.c devicetree: Dialog Semiconductor consolidate existing vendor prefixes to standardise on 'dlg' 2014-08-29 09:26:29 +01:00
da9055-i2c.c mfd: da9055: Add DT support for PMIC 2014-03-19 08:58:39 +00:00
da9063-core.c mfd: da9063: Add support for AD silicon variant 2014-07-28 08:09:25 +01:00
da9063-i2c.c mfd: da9063: Add support for AD silicon variant 2014-07-28 08:09:25 +01:00
da9063-irq.c
davinci_voicecodec.c
db8500-prcmu.c mfd: db8500-prcmu: Remove check for CONFIG_DBX500_PRCMU_DEBUG 2014-06-03 08:11:53 +01:00
dbx500-prcmu-regs.h
dln2.c mfd: dln2: A couple endian fixes 2014-11-19 17:12:59 +00:00
dm355evm_msp.c mfd: dm355evm_msp: Fix checkpatch error: insert space after ',' 2014-07-22 13:17:06 +01:00
ezx-pcap.c mfd: ezx-pcap: Repair coding style errors picked up with checkpatch 2014-07-25 15:31:02 +01:00
hi6421-pmic-core.c mfd: Add HI6421 PMIC Core driver 2014-09-26 08:23:43 +01:00
htc-egpio.c
htc-i2cpld.c Changes to existing drivers: 2014-10-15 06:58:16 +02:00
htc-pasic3.c
intel_msic.c mfd: fix comment 2014-06-19 15:23:36 +02:00
intel_soc_pmic_core.c mfd: intel_soc_pmic: Add CONFIG_PM_SLEEP check for suspend_fn/resume_fn 2014-09-26 08:23:52 +01:00
intel_soc_pmic_core.h mfd: intel_soc_pmic: Core driver 2014-06-17 15:59:20 +01:00
intel_soc_pmic_crc.c mfd: intel_soc_pmic: Crystal Cove support 2014-06-17 15:59:38 +01:00
ipaq-micro.c mfd: ipaq-micro: Fix coding style errors/warnings reported by checkpatch 2014-07-25 15:31:45 +01:00
janz-cmodio.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
jz4740-adc.c
Kconfig Immutable branch between MFD, Regulator and Clk, due for v3.19 2014-11-25 16:18:03 +00:00
kempld-core.c mfd: kempld-core: Correct a variety of checkpatch warnings 2014-07-25 15:31:45 +01:00
lm3533-core.c
lm3533-ctrlbank.c
lp3943.c mfd: lp3943: Make mfd_cell array const 2014-06-03 08:11:36 +01:00
lp8788-irq.c mfd: lp8788-irq: Fix 'missing blank line after declarations' warning 2014-07-25 15:31:39 +01:00
lp8788.c
lpc_ich.c mfd: lpc_ich: Add Device IDs for Intel 9 Series PCH 2014-09-26 08:15:44 +01:00
lpc_sch.c mfd: lpc_sch: Remove FSF address 2014-09-26 08:15:59 +01:00
Makefile mfd: Add support for Diolan DLN-2 devices 2014-11-10 16:30:05 +00:00
max8907.c mfd: max8907: Make of_device_id array const 2014-06-03 08:11:32 +01:00
max8925-core.c mfd: max8925-core: Fix 'missing blank line after declarations' warning 2014-07-25 15:31:41 +01:00
max8925-i2c.c mfd: max8925-i2c: Fix variable length array Sparse warning 2014-09-26 08:15:46 +01:00
max8997-irq.c
max8997.c mfd: max8997: Make of_device_id array const 2014-06-03 08:11:30 +01:00
max8998-irq.c
max8998.c mfd: max8998: Make of_device_id array const 2014-06-03 08:11:34 +01:00
max14577.c mfd: max14577: Don't pass IRQ domain to mfd_add_devices 2014-09-26 08:23:54 +01:00
max77686.c mfd: max77686: Remove check which is always true 2014-09-26 08:15:32 +01:00
max77693.c mfd: max77693: Add haptic of_compatible in mfd_cell 2014-11-25 16:18:40 +00:00
mc13xxx-core.c mfd: mc13xxx: Configure WDI reset 2014-09-26 08:23:50 +01:00
mc13xxx-i2c.c
mc13xxx-spi.c mfd: mc13xxx: Add missing spi_setup() 2014-03-19 08:58:35 +00:00
mc13xxx.h mfd: mc13xxx: Use regmap irq framework for interrupts 2014-07-09 14:58:10 +01:00
mcp-core.c mfd: mcp-core: Fix 'blank line after declarations' warning 2014-07-22 13:17:02 +01:00
mcp-sa11x0.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
menelaus.c mfd: menelaus: Fix error return code 2014-09-26 08:15:41 +01:00
menf21bmc.c mfd: menf21bmc: Introduce MEN 14F021P00 BMC MFD Core driver 2014-09-24 13:30:16 +01:00
mfd-core.c mfd: Add ACPI support 2014-09-26 08:24:05 +01:00
omap-usb-host.c mfd: omap-usb-host: Fix %d confusingly prefixed with 0x in format string 2014-08-20 13:26:52 +01:00
omap-usb-tll.c mfd: omap-usb-tll: Fix cppcheck sizeof warning 2014-03-13 22:21:48 +00:00
omap-usb.h
palmas.c regulator: palmas: add driver data and modularize the probe 2014-06-23 12:30:56 +01:00
pcf50633-adc.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
pcf50633-core.c mfd: pcf50633: Use sprintf directly 2014-09-26 08:23:49 +01:00
pcf50633-gpio.c
pcf50633-irq.c
pm8921-core.c mfd: pm8921-core: Remove unused variable 2014-07-09 14:58:09 +01:00
qcom-spmi-pmic.c mfd: Add support for Qualcomm SPMI PMICs 2014-09-26 08:24:00 +01:00
rc5t583-irq.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
rc5t583.c
rdc321x-southbridge.c mfd: rdc321x: Fix off-by-one for ngpio setting 2014-06-03 08:11:17 +01:00
retu-mfd.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
rk808.c mfd: rk808: Add register caching 2014-09-26 08:23:56 +01:00
rn5t618.c mfd: Add Ricoh RN5T618 PMIC core driver 2014-09-26 08:15:51 +01:00
rtl8411.c
rts5209.c
rts5227.c
rts5229.c
rts5249.c
rtsx_pcr.c mfd: rtsx_pcr: Fix MSI enable error handling 2014-09-26 08:23:52 +01:00
rtsx_pcr.h
rtsx_usb.c mfd: rtsx_usb: Fix decimal printf format specifiers prefixed with 0x 2014-09-26 08:15:38 +01:00
sec-core.c regulator: s2mps11: Add support S2MPS13 regulator device 2014-11-25 15:55:06 +00:00
sec-irq.c mfd: sec-core: Add support for S2MPS13 device 2014-11-25 15:55:01 +00:00
si476x-cmd.c mfd: si476x-cmd: Remedy checkpatch style complains 2014-07-25 15:31:44 +01:00
si476x-i2c.c
si476x-prop.c
sm501.c Changes to existing drivers: 2014-10-15 06:58:16 +02:00
smsc-ece1099.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
ssbi.c
sta2x11-mfd.c
stmpe-i2c.c mfd: stmpe: Rid data size incompatibility warn when building for 64bit 2014-07-09 16:37:55 +01:00
stmpe-spi.c
stmpe.c mfd: stmpe: Support gpio over irq under device tree 2014-09-26 08:23:53 +01:00
stmpe.h mfd: stmpe: Rid data size incompatibility warn when building for 64bit 2014-07-09 16:37:55 +01:00
stw481x.c mfd: stw481x: Check the return value of devm_regmap_init_i2c 2014-03-19 08:58:17 +00:00
sun6i-prcm.c mfd: sun6i-prcm: Add support for Allwinner A23 PRCM 2014-07-21 16:54:25 +01:00
syscon.c mfd: syscon: Decouple syscon interface from platform devices 2014-11-25 16:18:41 +00:00
t7l66xb.c
tc3589x.c mfd: tc3589x: Translate onecell, not twocell 2014-07-09 14:58:01 +01:00
tc6387xb.c mfd: tc6387xb: Remove unnecessary braces and correct style warnings 2014-07-25 15:31:43 +01:00
tc6393xb.c driver:gpio remove all usage of gpio_remove retval in driver 2014-09-18 11:03:10 -07:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Update logic in CTRL register for 5-wire TS 2014-09-26 08:24:03 +01:00
timberdale.c mfd: timberdale: Use pci_enable_msix_exact() instead of pci_enable_msix() 2014-03-19 08:58:34 +00:00
timberdale.h
tmio_core.c
tps6105x.c mfd: tps6105x: Use managed resources when allocating memory 2014-07-25 15:31:47 +01:00
tps6507x.c mfd: tps6507x: Make of_device_id array const 2014-06-03 08:11:27 +01:00
tps6586x.c mfd: tps6586x: Make of_device_id array const 2014-06-03 08:11:28 +01:00
tps65010.c
tps65090.c mfd: tps65090: Stop caching most registers 2014-04-23 12:32:19 +01:00
tps65217.c mfd: tps65217: Add compatible string for subdevices 2014-11-25 16:18:38 +00:00
tps65218.c mfd: tps65218: Terminate of match table 2014-06-03 08:11:54 +01:00
tps65910.c mfd: tps65910: Work around silicon erratum SWCZ010 2014-09-26 08:15:48 +01:00
tps65911-comparator.c
tps65912-core.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
tps65912-i2c.c
tps65912-irq.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
tps65912-spi.c mfd: tps65912-spi: Remove unused variable 2014-07-28 08:10:06 +01:00
tps80031.c
twl-core.c Immutable branch between MFD and Extcon due for v3.16 merge-window. 2014-06-03 08:08:40 +01:00
twl-core.h
twl4030-audio.c
twl4030-irq.c mfd: twl4030-irq: Check return value from twl_i2c_write() - warn() on failure 2014-09-26 08:15:34 +01:00
twl4030-power.c Changes to existing drivers: 2014-10-15 06:58:16 +02:00
twl6030-irq.c mfd: twl6030-irq: Extinguish coding style warnings 2014-07-25 15:31:42 +01:00
twl6040.c mfd: twl6040: Fix error return code 2014-09-26 08:15:37 +01:00
ucb1x00-assabet.c
ucb1x00-core.c driver:gpio remove all usage of gpio_remove retval in driver 2014-09-18 11:03:10 -07:00
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c ARM: vexpress: move HBI check to sysreg driver 2014-05-15 17:02:21 +01:00
viperboard.c
vx855.c
wl1273-core.c
wm831x-auxadc.c
wm831x-core.c
wm831x-i2c.c
wm831x-irq.c
wm831x-otp.c
wm831x-spi.c
wm5102-tables.c mfd: arizona: Add ASYNC_SAMPLE_RATE_2 registers 2014-09-26 08:15:52 +01:00
wm5110-tables.c mfd: arizona: Add ASYNC_SAMPLE_RATE_2 registers 2014-09-26 08:15:52 +01:00
wm8350-core.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
wm8350-gpio.c
wm8350-i2c.c mfd: wm8350-i2c: Replace spaces with tabs 2014-07-25 15:31:42 +01:00
wm8350-irq.c mfd: wm8350-irq: Fix 'line over 80 chars' warning 2014-07-22 13:17:05 +01:00
wm8350-regmap.c
wm8400-core.c mfd: wm8400-core: Make mfd_cell array const 2014-06-03 08:11:34 +01:00
wm8994-core.c mfd: wm8994-core: Naturalise cross-architecture discrepancies 2014-02-19 13:30:27 +00:00
wm8994-irq.c mfd: wm8994: Export symbols ready for built-in => modular build 2014-09-26 08:15:35 +01:00
wm8994-regmap.c mfd: wm8994: Export symbols ready for built-in => modular build 2014-09-26 08:15:35 +01:00
wm8994.h
wm8997-tables.c mfd: arizona: Rename thermal shutdown interrupt 2014-07-28 08:10:47 +01:00