linux/drivers/mfd
Krzysztof Kozlowski aee2a57c74 mfd: max77836: Add MAX77836 support to max14577 driver
Add Maxim 77836 support to max14577 driver. The chipsets have same MUIC
component so the extcon, charger and regulators are almost the same. The
MAX77836 however has also PMIC and Fuel Gauge.

The MAX77836 uses three I2C slave addresses and has additional interrupts
(related to PMIC and Fuel Gauge). It has also Interrupt Source register,
just like MAX77686 and MAX77693.

The MAX77836 PMIC's TOPSYS and INTSRC interrupts are reported in the
PMIC block. The PMIC block has different I2C slave address and uses own
regmap so another regmap_irq_chip is needed.

Since we have two regmap_irq_chip, use shared interrupts on MAX77836.

This patch adds additional defines and functions to the max14577 MFD core
driver so the driver will handle both chipsets. Also this patch replaces
"0x1 << N" with BIT(N) in defines for register masks.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2014-04-23 14:08:54 +01:00
..
88pm80x.c mfd: 88pm80x: Change chip id definition and detection 2013-06-18 09:41:10 +02:00
88pm800.c mfd: 88pm800: Fix I2C device resource leak if probe fails 2014-03-19 08:58:15 +00:00
88pm805.c mfd: marvell: Constify struct mfd_cell where possible 2014-01-06 09:13:26 +00:00
88pm860x-core.c mfd: 88pm860x: Fix possible NULL pointer dereference on i2c_new_dummy error 2014-03-19 08:58:11 +00:00
88pm860x-i2c.c mfd: Convert struct i2c_msg initialization to C99 format 2012-09-21 23:40:34 +02:00
aat2870-core.c mfd: aat2870: Fix sparse error 2013-10-23 16:20:44 +01:00
ab3100-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ab3100-otp.c mfd: ab3100-otp: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
ab8500-core.c mfd: dbx500/abx500: root out hardcoded IRQ assignments 2014-03-04 08:58:11 +08:00
ab8500-debugfs.c mfd: ab8500-debugfs: Move dereference after check for NULL 2014-01-06 09:13:17 +00:00
ab8500-gpadc.c mfd: ab8500-gpadc: Add CONFIG_PM_SLEEP to suspend/resume 2013-08-14 18:52:51 +01:00
ab8500-sysctrl.c mfd: ab8500-sysctrl: Let sysctrl driver work without pdata 2013-05-21 23:23:21 +02:00
abx500-core.c mfd: abx500-core: Convert to managed resources for allocating memory 2013-06-13 12:11:41 +02: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: Use new regmap features for manual register patch 2014-02-26 08:58:42 +09:00
arizona-i2c.c mfd: arizona: Include linux/of.h header 2013-10-23 16:22:06 +01:00
arizona-irq.c mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
arizona-spi.c mfd: arizona: Include linux/of.h header 2013-10-23 16:22:06 +01:00
arizona.h mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
as3711.c mfd: as3711: Include linux/of.h header 2013-10-23 16:22:03 +01:00
as3722.c mfd: as3722: Make FUSE7_REG readable 2014-03-19 08:58:37 +00:00
asic3.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
bcm590xx.c mfd: bcm590xx: Fix type argument for module device table 2014-03-19 09:00:05 +00:00
cros_ec_i2c.c mfd: cros ec: i2c: Use consistent function names 2014-01-21 08:13:35 +00:00
cros_ec_spi.c mfd: cros ec: spi: Add delay for raising CS 2014-01-21 08:28:06 +00:00
cros_ec.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
cs5535-mfd.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
da903x.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
da9052-core.c mfd: da9052: Fix volatile register definition ommissions 2014-03-19 08:58:13 +00:00
da9052-i2c.c mfd: da9052: Add new DA9053 BC chip variant 2014-03-19 08:58:25 +00:00
da9052-irq.c mfd: da9052: Introduce da9052-irq.c 2012-11-20 12:21:10 +01:00
da9052-spi.c mfd: da9052: Add new DA9053 BC chip variant 2014-03-19 08:58:25 +00:00
da9055-core.c mfd: dialog: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00: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 production silicon variant code 2014-03-19 08:58:19 +00:00
da9063-i2c.c mfd: da9063: Add Dialog DA9063 core driver 2013-08-20 03:15:52 +02:00
da9063-irq.c mfd: da9063: Add IRQ support 2013-08-20 03:16:00 +02:00
davinci_voicecodec.c mfd: davinci_voicecodec: Provide a regmap for register I/O 2013-09-02 10:27:49 +02:00
db8500-prcmu.c mfd: dbx500/abx500: root out hardcoded IRQ assignments 2014-03-04 08:58:11 +08:00
dbx500-prcmu-regs.h mfd: dbx500: Remove any mention of the BML8580CLK 2013-09-26 11:04:16 +02:00
dm355evm_msp.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ezx-pcap.c mfd: ezx-pcap: Drop devm_free_irq of devm_ allocated irq 2013-10-23 16:21:17 +01:00
htc-egpio.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
htc-i2cpld.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
htc-pasic3.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
intel_msic.c mfd: intel: Constify struct mfd_cell where possible 2014-01-06 09:13:28 +00: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 mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
Kconfig mfd: max77836: Add MAX77836 support to max14577 driver 2014-04-23 14:08:54 +01:00
kempld-core.c mfd: kempld-core: Fix potential hang-up during boot 2014-03-20 15:58:25 +00:00
lm3533-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
lm3533-ctrlbank.c
lp3943.c mfd: Add LP3943 MFD driver 2014-01-21 08:27:59 +00:00
lp8788-irq.c mfd: Add lp8788 mfd driver 2012-09-23 20:51:34 +02:00
lp8788.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
lpc_ich.c mfd: lpc_ich: Add support for Intel Bay Trail SoC 2014-03-19 09:00:05 +00:00
lpc_sch.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
Makefile mfd: Remove obsolete ti-ssp driver 2014-03-19 09:00:07 +00:00
max8907.c mfd: maxim: Constify struct mfd_cell where possible 2014-01-06 09:13:27 +00:00
max8925-core.c mfd: maxim: Constify struct mfd_cell where possible 2014-01-06 09:13:27 +00:00
max8925-i2c.c mfd: max8925: Fix possible NULL pointer dereference on i2c_new_dummy error 2014-03-19 08:58:10 +00:00
max8997-irq.c
max8997.c mfd: max8997: Fix possible NULL pointer dereference on i2c_new_dummy error 2014-03-19 08:58:08 +00:00
max8998-irq.c mfd: max8998: Add irq domain support 2013-06-30 23:29:44 +02:00
max8998.c mfd: max8998: Fix possible NULL pointer dereference on i2c_new_dummy error 2014-03-19 08:58:09 +00:00
max14577.c mfd: max77836: Add MAX77836 support to max14577 driver 2014-04-23 14:08:54 +01:00
max77686-irq.c
max77686.c mfd: max77686: Fix possible NULL pointer dereference on i2c_new_dummy error 2014-03-19 08:58:09 +00:00
max77693-irq.c mfd: max77693: Fix up bug of wrong interrupt number 2013-11-04 09:41:19 +01:00
max77693.c mfd: max77693: Fix possible NULL pointer dereference on i2c_new_dummy error 2014-03-19 08:58:12 +00:00
mc13xxx-core.c mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mc13xxx-i2c.c mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mc13xxx-spi.c mfd: mc13xxx: Add missing spi_setup() 2014-03-19 08:58:35 +00:00
mc13xxx.h mfd: mc13xxx: Simplify probe() & remove() 2014-01-21 08:28:10 +00:00
mcp-core.c
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: Use devm_*() functions 2013-08-20 08:51:32 +01:00
mfd-core.c mfd: Revert "mfd: Always assign of_node in mfd_add_device()" 2014-01-21 08:28:14 +00:00
omap-usb-host.c mfd: omap-usb-host: Use clock names as per function for reference clocks 2014-03-13 22:25:45 +00:00
omap-usb-tll.c mfd: omap-usb-tll: Fix cppcheck sizeof warning 2014-03-13 22:21:48 +00:00
omap-usb.h mfd: omap-usb-tll: Move configuration code to omap_tll_init() 2013-04-09 09:46:23 +02:00
palmas.c mfd: palmas: Remove redundant of_match_ptr 2013-10-23 16:22:01 +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: Correct device name for pcf50633 regulator 2013-12-02 17:58:58 +00:00
pcf50633-gpio.c
pcf50633-irq.c
pm8921-core.c mfd: pm8921: Fixup probe() error path when irq invalid 2014-03-19 08:58:39 +00:00
rc5t583-irq.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
rc5t583.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
rdc321x-southbridge.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
retu-mfd.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
rtl8411.c mfd: rtsx: Fix sparse non static symbol warning 2014-01-21 08:28:14 +00:00
rts5209.c mfd: mmc: rtsx: Change default tx phase 2013-08-30 14:24:07 +02:00
rts5227.c For the 3.12 merge window we have one new driver for the DA9063 PMIC 2013-09-07 20:14:19 -07:00
rts5229.c mfd: mmc: rtsx: Change default tx phase 2013-08-30 14:24:07 +02:00
rts5249.c mfd: rtsx: Modify rts5249_optimize_phy 2013-10-23 16:20:59 +01:00
rtsx_pcr.c mmc: rtsx: add support for pre_req and post_req 2014-02-22 13:34:20 -05:00
rtsx_pcr.h mfd: rtsx: Add support for card reader rtl8402 2014-01-21 08:28:11 +00:00
rtsx_usb.c mfd: Add realtek USB card reader driver 2014-03-19 08:58:18 +00:00
sec-core.c mfd: sec-core: Fix uninitialized 'regmap_rtc' on S2MPA01 2014-03-20 15:57:23 +00:00
sec-irq.c mfd: sec: Add support for S2MPS14 2014-03-18 10:50:09 +00:00
si476x-cmd.c mfd: si476x: Use get_unaligned_be16() for unaligned be16 loads 2013-05-16 19:15:07 +02:00
si476x-i2c.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
si476x-prop.c mfd: si476x: Add chip properties handling code 2013-04-19 18:37:59 +02:00
sm501.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
smsc-ece1099.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
ssbi.c mfd: ssbi: Mark match table const 2014-01-21 08:28:08 +00:00
sta2x11-mfd.c mfd: sta2x11-mfd: Use named constants for pci_power_t values 2014-01-21 08:29:00 +00:00
stmpe-i2c.c mfd: support stmpe1801 18 bits enhanced port expander 2013-04-09 14:15:58 +02:00
stmpe-spi.c mfd: stmpe: Use spi_get_drvdata() 2013-04-09 12:18:16 +02:00
stmpe.c mfd: stmpe: Trivial: Remove unnecessary semicolon 2014-03-19 08:58:07 +00:00
stmpe.h mfd: stmicro: Constify struct mfd_cell where possible 2014-01-06 09:13:24 +00:00
stw481x.c mfd: stw481x: Check the return value of devm_regmap_init_i2c 2014-03-19 08:58:17 +00:00
syscon.c mfd: syscon: Simplify syscon_match_pdevname() 2014-03-19 08:58:41 +00:00
t7l66xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tc3589x.c mfd: tc3589x: Reform device tree probing 2014-03-19 08:58:05 +00:00
tc6387xb.c mfd: toshiba: Constify struct mfd_cell where possible 2014-01-06 09:13:26 +00:00
tc6393xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Use devm_ioremap_resource() 2014-03-19 08:58:13 +00: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: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tps6507x.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
tps6586x.c mfd: tps6586x: Add version detection 2014-01-21 08:28:01 +00:00
tps65010.c mfd: tps65010: Use devm_*() functions 2013-08-20 08:51:48 +01:00
tps65090.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
tps65217.c mfd: tps65217: Naturalise cross-architecture discrepancies 2014-02-19 13:30:30 +00:00
tps65218.c mfd: tps65218: Add driver for the TPS65218 PMIC 2014-03-19 08:58:06 +00:00
tps65910.c mfd: tps65910: Fix regmap_irq_chip_data leak on mfd_add_devices fail 2014-03-19 09:06:10 +00:00
tps65911-comparator.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
tps65912-core.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
tps65912-i2c.c mfd: tps65912: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
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: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
tps80031.c mfd: ti: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
twl4030-audio.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl4030-irq.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
twl4030-power.c mfd: twl4030-power: Staticize local functions 2013-08-01 09:55:33 +01:00
twl6030-irq.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
twl6040.c mfd: twl6040: Check for error when reading revision register 2014-03-19 08:58:27 +00:00
twl-core.c mfd: twl-core: Fix accessibility of some twl4030 audio registers 2014-03-19 08:58:43 +00:00
twl-core.h
ucb1x00-assabet.c
ucb1x00-core.c mfd: ucb1x00-core: Use SIMPLE_DEV_PM_OPS macro 2014-03-19 08:58:33 +00:00
ucb1x00-ts.c
ucb1400_core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
vexpress-config.c mfd: vexpress: Staticize vexpress_config_bridges 2014-03-19 08:58:38 +00:00
vexpress-sysreg.c mfd: vexpress-sysreg: Initialize 'site' variable 2014-03-19 08:58:15 +00:00
viperboard.c mfd: Constify struct mfd_cell where possible 2014-01-06 09:13:29 +00:00
vx855.c mfd: Remove DEFINE_PCI_DEVICE_TABLE macro 2014-01-21 08:27:45 +00:00
wl1273-core.c mfd: wl1273: Use devm_*() functions 2013-08-20 08:51:58 +01:00
wm831x-auxadc.c
wm831x-core.c mfd: wolfson: Constify struct mfd_cell where possible 2014-01-06 09:13:25 +00:00
wm831x-i2c.c mfd: wm831x: Use PM ops for shutdown 2014-01-21 08:27:51 +00:00
wm831x-irq.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm831x-otp.c
wm831x-spi.c mfd: wm831x: Use PM ops for shutdown 2014-01-21 08:27:51 +00:00
wm5102-tables.c == Changes to existing drivers == 2014-04-07 10:24:18 -07:00
wm5110-tables.c mfd: wm5110: Correct default for HEADPHONE_DETECT_1 2014-03-31 13:33:04 +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: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8350-irq.c mfd: Delete non-required instances of include <linux/init.h> 2014-03-19 08:58:07 +00:00
wm8350-regmap.c
wm8400-core.c mfd: wm8400-core: Remove unnecessary goto 2014-03-19 08:58:19 +00:00
wm8994-core.c mfd: wm8994-core: Naturalise cross-architecture discrepancies 2014-02-19 13:30:27 +00:00
wm8994-irq.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8994-regmap.c mfd: wm8994: Implement support for WM1811 devices with higher cust_ids 2012-09-14 09:52:11 +02:00
wm8994.h
wm8997-tables.c mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00