summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/arizona-spi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-06 13:23:50 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-06 13:23:50 -0500
commitbc914532a08892b30954030a0ba68f8534c67f76 (patch)
tree5e98212add9bbdc31860877ef9ff6860479b7a00 /drivers/mfd/arizona-spi.c
parent54727e6e950aacd14ec9cd4260e9fe498322828c (diff)
parent271bb1773b1eeff6153f1bba16ff0cff23f064b6 (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.c23
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