mirror-linux/include/linux/mfd
Linus Walleij 813c2aee51 ARM/pxa/mfd/power/sound: Switch Tosa to GPIO descriptors
The Tosa device (Sharp SL-6000) has a mishmash driver set-up
for the Toshiba TC6393xb MFD that includes a battery charger
and touchscreen and has some kind of relationship to the SoC
sound driver for the AC97 codec. Other devices define a chip
like this but seem only half-implemented, not really handling
battery charging etc.

This patch switches the Toshiba MFD device to provide GPIO
descriptors to the battery charger and SoC codec. As a result
some descriptors need to be moved out of the Tosa boardfile
and new one added: all SoC GPIO resources to these drivers
now comes from the main boardfile, while the MFD provide
GPIOs for its portions.

As a result we can request one GPIO from our own GPIO chip
and drop two hairy callbacks into the board file.

This platform badly needs to have its drivers split up and
converted to device tree probing to handle this quite complex
relationship in an orderly manner. I just do my best in solving
the GPIO descriptor part of the puzzle. Please don't ask me
to fix everything that is wrong with these driver to todays
standards, I am just trying to fix one aspect. I do try to
use modern devres resource management and handle deferred
probe using new functions where appropriate.

Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: Dirk Opfer <dirk@opfer-online.de>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Daniel Mack <daniel@zonque.org>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Reviewed-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-05-07 22:55:33 +02:00
..
abx500 mfd/power: ab8500: Push algorithm to power supply code 2021-03-22 14:55:51 +00: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
da9055 mfd: da9055: pdata.h: Drop a duplicated word 2020-08-13 07:49:59 +01:00
da9062
da9063 mfd: da9063: Add support for latest EA silicon revision 2021-11-05 14:40:05 +00:00
da9150
madera docs: update pin-control.rst references 2021-05-20 13:44:14 -06:00
mt6323
mt6358 mfd: Add support for the MediaTek MT6366 PMIC 2022-03-07 14:59:44 +00:00
mt6359 mfd: Add support for the MediaTek MT6359 PMIC 2021-06-01 16:44:23 +01:00
mt6359p regulator: mt6359: Add support for MT6359P regulator 2021-06-01 16:44:36 +01:00
mt6397 mfd: Add support for the MediaTek MT6366 PMIC 2022-03-07 14:59:44 +00:00
pcf50633
samsung mfd: sec: Remove unused platform data members 2021-06-02 10:51:18 +01:00
syscon soc: xilinx: vcu: add missing register NUM_CORE 2020-12-09 19:36:33 +01: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
wm8994 mfd: wm8994: Fix comment spelling 2020-03-17 20:48:41 +01:00
88pm80x.h
88pm860x.h
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
adp5520.h
altera-a10sr.h
altera-sysmgr.h
as3711.h
as3722.h
asic3.h
atmel-hlcdc.h
axp20x.h mfd/bus: sunxi-rsb: Make .remove() callback return void 2021-01-15 13:23:36 +00:00
bcm590xx.h
bcm2835-pm.h
bd9571mwv.h mfd: bd9571mwv: Add support for BD9574MWF 2021-01-14 13:05:55 +00:00
core.h mfd: core: Remove support for dangling device properties 2021-04-14 16:06:14 +01:00
da8xx-cfgchip.h
da903x.h
davinci_voicecodec.h
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 function 2022-03-23 14:51:51 +00:00
dln2.h
dm355evm_msp.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: hisilicon: Use the correct HiSilicon copyright 2021-06-02 10:50:04 +01:00
hi6421-pmic.h mfd: Replace HTTP links with HTTPS ones 2020-08-13 07:50:59 +01:00
htc-pasic3.h
idt8a340_reg.h ptp: clockmatrix: use rsmu driver to access i2c/spi bus 2021-09-27 12:16:48 +01: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-m10-bmc.h mfd: intel-m10-bmc: Add support for MAX10 BMC Secure Updates 2021-04-14 16:06:57 +01:00
intel_pmc_bxt.h platform/x86: intel_pmc_ipc: Convert to MFD 2020-04-24 11:18:44 +01:00
intel_soc_pmic.h mfd: intel_soc_pmic_chtwc: Add cht_wc_model data to struct intel_soc_pmic 2022-02-01 14:55:12 +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
ipaq-micro.h
iqs62x.h mfd: iqs62x: Provide device revision to sub-devices 2022-02-14 13:07:22 +00:00
janz.h
kempld.h
khadas-mcu.h mfd: Add support for the Khadas System control Microcontroller 2020-06-18 11:23:16 +01:00
lm3533.h
lochnagar.h
lochnagar1_regs.h
lochnagar2_regs.h
lp873x.h mfd: Replace HTTP links with HTTPS ones 2020-08-13 07:50:59 +01:00
lp3943.h
lp8788-isink.h
lp8788.h
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
max8907.h
max8925.h
max8997-private.h
max8997.h mfd: max8997: Replace 8998 with 8997 2021-04-14 16:06:38 +01:00
max8998-private.h
max8998.h regulator: max8998: Add charger regulator 2020-05-22 13:11:05 +01:00
max14577-private.h
max14577.h
max77620.h mfd: max77620: Do not allocate IRQs upfront 2019-11-11 08:45:02 +00:00
max77650.h
max77686-private.h rtc: max77686: Rename day-of-month defines 2022-03-07 13:54:24 +00: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: Add driver for Maxim MAX77714 PMIC 2022-03-07 13:54:44 +00:00
max77843-private.h
mc13xxx.h
mc13783.h
mc13892.h
mcp.h
menelaus.h
motorola-cpcap.h
mp2629.h iio: adc: mp2629: Add support for mp2629 ADC driver 2020-05-26 10:41:47 +01:00
mxs-lradc.h
ntxec.h mfd: ntxec: Change return type of ntxec_reg8 from __be16 to u16 2021-12-29 13:41:20 +00:00
palmas.h
qcom_rpm.h
rave-sp.h
rc5t583.h
rdc321x.h
retu.h
rk808.h mfd: rk808: Add reboot support to rk808.c 2022-03-08 09:44:05 +00:00
rn5t618.h mfd: rn5t618: Do not cache various USB related registers 2021-04-14 16:06:18 +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: Add Renesas Synchronization Management Unit (SMU) support 2021-07-13 12:20:44 +01:00
rt5033-private.h regulator: rt5033: Use linear ranges to map all voltage selection 2021-07-11 23:50:39 +01:00
rt5033.h
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
si476x-reports.h
sky81452.h backlight: sky81452: Privatize platform data 2020-07-01 10:40:11 +01:00
sta2x11-mfd.h
stm32-lptimer.h counter: stm32-lptimer-cnt: Provide defines for clock polarities 2021-10-17 10:52:29 +01:00
stm32-timers.h counter: stm32-timer-cnt: Provide defines for slave mode selection 2021-10-17 10:52:46 +01:00
stmfx.h mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt 2020-05-26 10:51:21 +01:00
stmpe.h
stpmic1.h
stw481x.h
sun4i-gpadc.h
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 syscon_regmap_lookup_by_phandle_optional() function. 2020-11-19 08:30:11 +00:00
t7l66xb.h
tc3589x.h gpio: tc35894: Disable Direct KBD interrupts to enable gpio irq 2020-09-09 11:33:07 +02:00
tc6387xb.h
tc6393xb.h ARM/pxa/mfd/power/sound: Switch Tosa to GPIO descriptors 2022-05-07 22:55:33 +02:00
ti-lmu-register.h
ti-lmu.h
ti_am335x_tscadc.h mfd: ti_am335x_tscadc: Drop the CNTRLREG_TSC_8WIRE macro 2021-11-29 13:17:00 +00:00
tmio.h mmc: tmio: set max_busy_timeout 2020-12-04 13:28:25 +01:00
tps6105x.h
tps6507x.h
tps6586x.h
tps65010.h
tps65086.h mfd: Replace HTTP links with HTTPS ones 2020-08-13 07:50:59 +01:00
tps65090.h
tps65217.h mfd: Replace HTTP links with HTTPS ones 2020-08-13 07:50:59 +01:00
tps65218.h mfd: Replace HTTP links with HTTPS ones 2020-08-13 07:50:59 +01:00
tps65910.h mfd: tps65910: Remove unused pointers 2020-11-19 08:34:22 +00:00
tps65912.h mfd: tps65912: Make tps65912_device_exit() return void 2021-11-05 14:40:26 +00:00
tps68470.h clk: Introduce clk-tps68470 driver 2021-12-15 20:12:07 -08:00
twl.h mfd: twl: Remove unused inline function twl4030charger_usb_en() 2021-04-14 16:06:52 +01:00
twl4030-audio.h
twl6040.h
ucb1x00.h
viperboard.h
wl1273-core.h
wm97xx.h
wm8400-audio.h
wm8400-private.h
wm8400.h