diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-06 13:23:50 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-06 13:23:50 -0500 |
commit | bc914532a08892b30954030a0ba68f8534c67f76 (patch) | |
tree | 5e98212add9bbdc31860877ef9ff6860479b7a00 /drivers/mfd/arizona-spi.c | |
parent | 54727e6e950aacd14ec9cd4260e9fe498322828c (diff) | |
parent | 271bb1773b1eeff6153f1bba16ff0cff23f064b6 (diff) |
Merge tag 'mfd-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones:
"New Device Support:
- Add support for 88pm860; 88pm80x
- Add support for 24c08 EEPROM; at24
- Add support for Broxton Whiskey Cove; intel*
- Add support for RTS522A; rts5227
- Add support for I2C devices; intel_quark_i2c_gpio
New Functionality:
- Add microphone support; arizona
- Add general purpose switch support; arizona
- Add fuel-gauge support; da9150-core
- Add shutdown support; sec-core
- Add charger support; tps65217
- Add flexible serial communication unit support; atmel-flexcom
- Add power button support; axp20x
- Add led-flash support; rt5033
Core Frameworks:
- Supply a generic macro for defining Regmap IRQs
- Rework ACPI child device matching
Fix-ups:
- Use Regmap to access registers; tps6105x
- Use DEFINE_RES_IRQ_NAMED() macro; da9150
- Re-arrange device registration order; intel_quark_i2c_gpio
- Allow OF matching; cros_ec_i2c, atmel-hlcdc, hi6421-pmic, max8997, sm501
- Handle deferred probe; twl6040
- Improve accuracy of headphone detect; arizona
- Unnecessary MODULE_ALIAS() removal; bcm590xx, rt5033
- Remove unused code; htc-i2cpld, arizona, pcf50633-irq, sec-core
- Simplify code; kempld, rts5209, da903x, lm3533, da9052, arizona
- Remove #iffery; arizona
- DT binding adaptions; many
Bug Fixes:
- Fix possible NULL pointer dereference; wm831x, tps6105x
- Fix 64bit bug; intel_soc_pmic_bxtwc
- Fix signedness issue; arizona"
* tag 'mfd-for-linus-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (73 commits)
bindings: mfd: s2mps11: Add documentation for s2mps15 PMIC
mfd: sec-core: Remove unused s2mpu02-rtc and s2mpu02-clk children
extcon: arizona: Add extcon specific device tree binding document
MAINTAINERS: Add binding docs for Cirrus Logic/Wolfson Arizona devices
mfd: arizona: Remove bindings covered in new subsystem specific docs
mfd: rt5033: Add RT5033 Flash led sub device
mfd: lpss: Add Intel Broxton PCI IDs
mfd: lpss: Add Broxton ACPI IDs
mfd: arizona: Signedness bug in arizona_runtime_suspend()
mfd: axp20x: Add a cell for the power button part of the, axp288 PMICs
mfd: dt-bindings: Document pulled down WRSTBI pin on S2MPS1X
mfd: sec-core: Disable buck voltage reset on watchdog falling edge
mfd: sec-core: Dump PMIC revision to find out the HW
mfd: arizona: Use correct type ID for device tree config
mfd: arizona: Remove use of codec build config #ifdefs
mfd: arizona: Simplify adding subdevices
mfd: arizona: Downgrade type mismatch messages to dev_warn
mfd: arizona: Factor out checking of jack detection state
mfd: arizona: Factor out DCVDD isolation control
mfd: Make TPS6105X select REGMAP_I2C
...
Diffstat (limited to 'drivers/mfd/arizona-spi.c')
-rw-r--r-- | drivers/mfd/arizona-spi.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c index 03d62f7b4720..befbc89bfd34 100644 --- a/drivers/mfd/arizona-spi.c +++ b/drivers/mfd/arizona-spi.c | |||
@@ -27,7 +27,7 @@ static int arizona_spi_probe(struct spi_device *spi) | |||
27 | { | 27 | { |
28 | const struct spi_device_id *id = spi_get_device_id(spi); | 28 | const struct spi_device_id *id = spi_get_device_id(spi); |
29 | struct arizona *arizona; | 29 | struct arizona *arizona; |
30 | const struct regmap_config *regmap_config; | 30 | const struct regmap_config *regmap_config = NULL; |
31 | unsigned long type; | 31 | unsigned long type; |
32 | int ret; | 32 | int ret; |
33 | 33 | ||
@@ -37,20 +37,23 @@ static int arizona_spi_probe(struct spi_device *spi) | |||
37 | type = id->driver_data; | 37 | type = id->driver_data; |
38 | 38 | ||
39 | switch (type) { | 39 | switch (type) { |
40 | #ifdef CONFIG_MFD_WM5102 | ||
41 | case WM5102: | 40 | case WM5102: |
42 | regmap_config = &wm5102_spi_regmap; | 41 | if (IS_ENABLED(CONFIG_MFD_WM5102)) |
42 | regmap_config = &wm5102_spi_regmap; | ||
43 | break; | 43 | break; |
44 | #endif | ||
45 | #ifdef CONFIG_MFD_WM5110 | ||
46 | case WM5110: | 44 | case WM5110: |
47 | case WM8280: | 45 | case WM8280: |
48 | regmap_config = &wm5110_spi_regmap; | 46 | if (IS_ENABLED(CONFIG_MFD_WM5110)) |
47 | regmap_config = &wm5110_spi_regmap; | ||
49 | break; | 48 | break; |
50 | #endif | ||
51 | default: | 49 | default: |
52 | dev_err(&spi->dev, "Unknown device type %ld\n", | 50 | dev_err(&spi->dev, "Unknown device type %ld\n", type); |
53 | id->driver_data); | 51 | return -EINVAL; |
52 | } | ||
53 | |||
54 | if (!regmap_config) { | ||
55 | dev_err(&spi->dev, | ||
56 | "No kernel support for device type %ld\n", type); | ||
54 | return -EINVAL; | 57 | return -EINVAL; |
55 | } | 58 | } |
56 | 59 | ||
@@ -66,7 +69,7 @@ static int arizona_spi_probe(struct spi_device *spi) | |||
66 | return ret; | 69 | return ret; |
67 | } | 70 | } |
68 | 71 | ||
69 | arizona->type = id->driver_data; | 72 | arizona->type = type; |
70 | arizona->dev = &spi->dev; | 73 | arizona->dev = &spi->dev; |
71 | arizona->irq = spi->irq; | 74 | arizona->irq = spi->irq; |
72 | 75 | ||