linux/drivers/mfd
Charles Keepax 91c739359a mfd: arizona: Correct handling of device tree gpio defaults
When setting GPIO defaults we are required to make a distinction
between writing 0x0000 to the registers and leaving them untouched.

When we receive between 0x0000 and 0xFFFF (inclusive) from either
Platform Data or Device Tree, we should write the provided
configuration to the device. Conversely, when we receive >0xFFFF we
should leave the device configuration at its default setting.

This patch fixes a bug and ensures that configuration 0x0000 isn't
mistakenly written when the intention was to keep the default one.

Reported-by: Heather Lomond <heather.lomond@wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2013-10-23 16:21:44 +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 potential NULL pdata dereference 2013-09-02 10:59:57 +02:00
88pm805.c mfd: 88pm805: Fix potential NULL pdata dereference 2013-09-02 11:00:16 +02:00
88pm860x-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01: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: ab8500-core: Add AB8500 external regulators as MFD devices 2013-06-13 10:52:00 +01:00
ab8500-debugfs.c mfd: ab8500-debugfs: Apply a check for -ENOMEM after allocating memory for event name 2013-09-02 10:22:44 +01: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: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
arizona-core.c mfd: arizona: Correct handling of device tree gpio defaults 2013-10-23 16:21:44 +01:00
arizona-i2c.c mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
arizona-irq.c mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
arizona-spi.c mfd: Add device tree bindings for Arizona class devices 2013-05-20 08:13:36 -05:00
arizona.h mfd: arizona: Integrate wm8997 into Arizona mfd 2013-06-18 00:49:52 +02:00
as3711.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
asic3.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
cros_ec_i2c.c mfd: Add ChromeOS EC I2C driver 2013-04-05 11:20:13 +02:00
cros_ec_spi.c mfd: cros_ec_spi: Use %z to format pointer differences 2013-05-16 19:14:06 +02:00
cros_ec.c mfd: cros_ec: Convert to managed resources for allocating memory 2013-06-13 12:11:42 +02:00
cs5535-mfd.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
da903x.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
da9052-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
da9052-i2c.c mfd: da9052: Avoid multiwrite mode due to silicon errata 2013-10-23 16:20:32 +01:00
da9052-irq.c mfd: da9052: Introduce da9052-irq.c 2012-11-20 12:21:10 +01:00
da9052-spi.c mfd: da9052: Use spi_get_drvdata() and spi_set_drvdata() 2013-04-09 12:18:16 +02:00
da9055-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
da9055-i2c.c mfd: Update DA9055 i2c device id name 2013-07-31 02:02:54 +02:00
da9063-core.c mfd: da9063: Add IRQ support 2013-08-20 03:16:00 +02: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 For the 3.12 merge window we have one new driver for the DA9063 PMIC 2013-09-07 20:14:19 -07:00
dbx500-prcmu-regs.h For the 3.11 merge we only have one new MFD driver for the Kontron PLD. 2013-07-10 11:10:27 -07: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: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
intel_msic.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
janz-cmodio.c mfd: janz-cmodio: Convert to managed resources for allocating memory 2013-06-13 12:11:44 +02:00
jz4740-adc.c mfd: jz4740-adc: Use clk_prepare_enable/clk_disable_unprepare 2013-06-11 19:36:59 +02:00
Kconfig mfd: Add STw481x driver 2013-10-23 16:21:12 +01:00
kempld-core.c mfd: Add support for COMe-bHL6 and COMe-cTH6 to Kontron PLD driver 2013-08-14 18:53:19 +01:00
lm3533-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
lm3533-ctrlbank.c
lp8788-irq.c mfd: Add lp8788 mfd driver 2012-09-23 20:51:34 +02:00
lp8788.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
lpc_ich.c mfd: lpc_ich: Remove unnecessary pci_set_drvdata() 2013-10-23 16:20:52 +01:00
lpc_sch.c mfd: lpc_sch: Accomodate partial population of the MFD devices 2013-02-14 00:26:45 +01:00
Makefile mfd: Add STw481x driver 2013-10-23 16:21:12 +01:00
max8907.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
max8925-core.c mfd: max8925: Fix onkey driver irq base 2013-02-14 00:23:00 +01:00
max8925-i2c.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
max8997-irq.c
max8997.c mfd: max8997: Use devm_*() functions 2013-08-20 08:51:13 +01:00
max8998-irq.c mfd: max8998: Add irq domain support 2013-06-30 23:29:44 +02:00
max8998.c mfd: max8998: Use devm_*() functions 2013-08-20 08:51:23 +01:00
max77686-irq.c mfd: Allow to specify max77686 interrupt through DT or platform file also 2012-07-09 15:13:42 +02:00
max77686.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
max77693-irq.c mfd: MAX77693: Fix interrupt handling bug 2012-09-16 00:32:57 +02:00
max77693.c mfd: max77693: Added device tree support 2013-10-23 16:21:29 +01:00
mc13xxx-core.c mfd: mc13xxx: Don't require lock for simple register I/O 2013-10-23 16:21:22 +01:00
mc13xxx-i2c.c mfd: mc12xx-i2c: rtsx_pcr: ti-ssp: Remove redundant dev_set_drvdata 2013-10-23 16:21:07 +01:00
mc13xxx-spi.c mfd: mc13xxx: Move SPI erratum workaround into SPI I/O function 2013-10-23 16:21:24 +01:00
mc13xxx.h mfd: mc13xxx: Add support for mc34708 2012-11-06 23:14:08 +01:00
mcp-core.c
mcp-sa11x0.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
menelaus.c mfd: menelaus: Use devm_*() functions 2013-08-20 08:51:32 +01:00
mfd-core.c mfd: core: Copy DMA mask and params from parent 2013-08-14 18:55:38 +01:00
omap-usb-host.c mfd: omap-usb-host: Staticize usbhs_driver_name 2013-09-02 10:22:27 +01:00
omap-usb-tll.c mfd: omap-usb-tll: Convert to devm_ioremap_resource() 2013-04-09 15:01:31 +02: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: Fix resource leak of i2c_dummy devices 2013-10-23 16:21:39 +01:00
pcf50633-adc.c mfd: pcf50633-adc: Use devm_*() functions 2013-08-20 09:27:35 +01:00
pcf50633-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
pcf50633-gpio.c
pcf50633-irq.c
pm8xxx-irq.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
pm8921-core.c mfd: pm8921: Use devm_*() functions 2013-08-20 08:51:04 +01:00
rc5t583-irq.c mfd: rc5t583: Fix array subscript is above array bounds 2012-11-26 12:10:51 +01:00
rc5t583.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
rdc321x-southbridge.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
retu-mfd.c mfd: retu: Add Tahvo support 2013-04-19 00:45:20 +02:00
rtl8411.c mfd: mmc: rtsx: Change default tx phase 2013-08-30 14:24:07 +02: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 mfd: mc12xx-i2c: rtsx_pcr: ti-ssp: Remove redundant dev_set_drvdata 2013-10-23 16:21:07 +01:00
rtsx_pcr.h mfd: rtsx: Copyright modifications 2013-08-20 10:22:01 +02:00
sec-core.c mfd: sec: Add clock cell for s2mps11 2013-08-14 18:53:15 +01:00
sec-irq.c mfd: sec: Fix reg_offset for interrupt registers 2012-11-26 00:35:08 +01: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: sm501: Remove unnecessary pci_set_drvdata() 2013-10-23 16:20:54 +01:00
smsc-ece1099.c mfd: smsc: Add support for smsc gpio io/keypad driver 2012-10-01 15:27:48 +02:00
ssbi.c mfd: ssbi: Use devm_* and simplify code 2013-06-18 09:41:15 +02:00
sta2x11-mfd.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01: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: Staticise stmpe_of_probe() 2013-07-31 13:01:45 +01:00
stmpe.h mfd: support stmpe1801 18 bits enhanced port expander 2013-04-09 14:15:58 +02:00
stw481x.c mfd: Add STw481x driver 2013-10-23 16:21:12 +01:00
syscon.c For the 3.12 merge window we have one new driver for the DA9063 PMIC 2013-09-07 20:14:19 -07:00
t7l66xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tc3589x.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tc6387xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tc6393xb.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: Restore clock divider on resume 2013-10-23 16:21:14 +01:00
ti-ssp.c mfd: mc12xx-i2c: rtsx_pcr: ti-ssp: Remove redundant dev_set_drvdata 2013-10-23 16:21:07 +01:00
timberdale.c mfd: timberdale: Remove unnecessary pci_set_drvdata() 2013-10-23 16:20:56 +01:00
timberdale.h
tmio_core.c
tps6105x.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tps6507x.c mfd: tps6507x: Add DT support 2013-02-14 00:22:54 +01:00
tps6586x.c mfd: tps6586x: Implement irq_set_wake 2013-10-23 16:20:39 +01:00
tps65010.c mfd: tps65010: Use devm_*() functions 2013-08-20 08:51:48 +01:00
tps65090.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tps65217.c This is the MFD patch set for the 3.8 merge window. 2012-12-16 18:55:20 -08:00
tps65910.c This is the MFD patch set for the 3.8 merge window. 2012-12-16 18:55:20 -08:00
tps65911-comparator.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
tps65912-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
tps65912-i2c.c mfd: tps65912: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
tps65912-irq.c
tps65912-spi.c mfd: tps65912: Convert to managed resources for allocating memory 2013-06-13 12:11:39 +02:00
tps80031.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl4030-audio.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl4030-irq.c For the 3.11 merge we only have one new MFD driver for the Kontron PLD. 2013-07-10 11:10:27 -07:00
twl4030-madc.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl4030-power.c mfd: twl4030-power: Staticize local functions 2013-08-01 09:55:33 +01:00
twl6030-irq.c mfd: twl6030-irq: Add interrupt mapping table for the twl6032 2013-08-20 10:19:38 +02:00
twl6040.c mfd: twl6040: Drop devm_free_irq of devm_ allocated irq 2013-10-23 16:21:19 +01:00
twl-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
twl-core.h
ucb1x00-assabet.c
ucb1x00-core.c mfd: ucb1x00-core: Fix error return code in ucb1x00_probe() 2013-10-23 16:20:49 +01: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: Handle pending config transactions 2013-04-26 16:10:03 +02:00
vexpress-sysreg.c mfd: vexpress: Make the driver optional for arm and arm64 2013-06-19 11:32:00 +02:00
viperboard.c mfd: viperboard: Do version query in dma memory 2012-11-26 11:48:56 +01:00
vx855.c mfd: remove use of __devexit 2012-11-28 12:22:27 -08:00
wl1273-core.c mfd: wl1273: Use devm_*() functions 2013-08-20 08:51:58 +01:00
wm831x-auxadc.c
wm831x-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm831x-i2c.c
wm831x-irq.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm831x-otp.c mfd: wm831x: Feed the device UUID into device_add_randomness() 2012-07-19 10:38:31 -04:00
wm831x-spi.c mfd: wm831x: Remove erronious bits per word set 2013-07-31 13:00:53 +01:00
wm5102-tables.c mfd: wm5102: Expose DRE control registers 2013-06-12 18:06:49 +01:00
wm5110-tables.c mfd: wm5110: Update noise gate default to match the patch file 2013-10-23 16:21:04 +01:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c mfd: Use dev_get_platdata() 2013-07-31 13:01:29 +01:00
wm8994-core.c mfd: wm8994: Inline register I/O functions 2013-10-23 16:20:37 +01: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