Commit 9db6ce4e authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'mfd-fixes-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull mfd fixes from Lee Jones:

 - Fix failed reads due to enabled IRQs when suspended; twl-core

 - Fix driver registration when using DT; sprd-sc27xx-spi

 - Fix `make allyesconfig` on x86_64; SUN6I_PRCM

* tag 'mfd-fixes-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
  mfd: sun6i-prcm: Allow to compile with COMPILE_TEST
  mfd: sc27xx: Use SoC compatible string for PMIC devices
  mfd: twl-core: Disable IRQ while suspended
parents 145f47c7 a05a2e79
...@@ -1246,7 +1246,7 @@ config MFD_STA2X11 ...@@ -1246,7 +1246,7 @@ config MFD_STA2X11
config MFD_SUN6I_PRCM config MFD_SUN6I_PRCM
bool "Allwinner A31 PRCM controller" bool "Allwinner A31 PRCM controller"
depends on ARCH_SUNXI depends on ARCH_SUNXI || COMPILE_TEST
select MFD_CORE select MFD_CORE
help help
Support for the PRCM (Power/Reset/Clock Management) unit available Support for the PRCM (Power/Reset/Clock Management) unit available
......
...@@ -53,67 +53,67 @@ static const struct sprd_pmic_data sc2731_data = { ...@@ -53,67 +53,67 @@ static const struct sprd_pmic_data sc2731_data = {
static const struct mfd_cell sprd_pmic_devs[] = { static const struct mfd_cell sprd_pmic_devs[] = {
{ {
.name = "sc27xx-wdt", .name = "sc27xx-wdt",
.of_compatible = "sprd,sc27xx-wdt", .of_compatible = "sprd,sc2731-wdt",
}, { }, {
.name = "sc27xx-rtc", .name = "sc27xx-rtc",
.of_compatible = "sprd,sc27xx-rtc", .of_compatible = "sprd,sc2731-rtc",
}, { }, {
.name = "sc27xx-charger", .name = "sc27xx-charger",
.of_compatible = "sprd,sc27xx-charger", .of_compatible = "sprd,sc2731-charger",
}, { }, {
.name = "sc27xx-chg-timer", .name = "sc27xx-chg-timer",
.of_compatible = "sprd,sc27xx-chg-timer", .of_compatible = "sprd,sc2731-chg-timer",
}, { }, {
.name = "sc27xx-fast-chg", .name = "sc27xx-fast-chg",
.of_compatible = "sprd,sc27xx-fast-chg", .of_compatible = "sprd,sc2731-fast-chg",
}, { }, {
.name = "sc27xx-chg-wdt", .name = "sc27xx-chg-wdt",
.of_compatible = "sprd,sc27xx-chg-wdt", .of_compatible = "sprd,sc2731-chg-wdt",
}, { }, {
.name = "sc27xx-typec", .name = "sc27xx-typec",
.of_compatible = "sprd,sc27xx-typec", .of_compatible = "sprd,sc2731-typec",
}, { }, {
.name = "sc27xx-flash", .name = "sc27xx-flash",
.of_compatible = "sprd,sc27xx-flash", .of_compatible = "sprd,sc2731-flash",
}, { }, {
.name = "sc27xx-eic", .name = "sc27xx-eic",
.of_compatible = "sprd,sc27xx-eic", .of_compatible = "sprd,sc2731-eic",
}, { }, {
.name = "sc27xx-efuse", .name = "sc27xx-efuse",
.of_compatible = "sprd,sc27xx-efuse", .of_compatible = "sprd,sc2731-efuse",
}, { }, {
.name = "sc27xx-thermal", .name = "sc27xx-thermal",
.of_compatible = "sprd,sc27xx-thermal", .of_compatible = "sprd,sc2731-thermal",
}, { }, {
.name = "sc27xx-adc", .name = "sc27xx-adc",
.of_compatible = "sprd,sc27xx-adc", .of_compatible = "sprd,sc2731-adc",
}, { }, {
.name = "sc27xx-audio-codec", .name = "sc27xx-audio-codec",
.of_compatible = "sprd,sc27xx-audio-codec", .of_compatible = "sprd,sc2731-audio-codec",
}, { }, {
.name = "sc27xx-regulator", .name = "sc27xx-regulator",
.of_compatible = "sprd,sc27xx-regulator", .of_compatible = "sprd,sc2731-regulator",
}, { }, {
.name = "sc27xx-vibrator", .name = "sc27xx-vibrator",
.of_compatible = "sprd,sc27xx-vibrator", .of_compatible = "sprd,sc2731-vibrator",
}, { }, {
.name = "sc27xx-keypad-led", .name = "sc27xx-keypad-led",
.of_compatible = "sprd,sc27xx-keypad-led", .of_compatible = "sprd,sc2731-keypad-led",
}, { }, {
.name = "sc27xx-bltc", .name = "sc27xx-bltc",
.of_compatible = "sprd,sc27xx-bltc", .of_compatible = "sprd,sc2731-bltc",
}, { }, {
.name = "sc27xx-fgu", .name = "sc27xx-fgu",
.of_compatible = "sprd,sc27xx-fgu", .of_compatible = "sprd,sc2731-fgu",
}, { }, {
.name = "sc27xx-7sreset", .name = "sc27xx-7sreset",
.of_compatible = "sprd,sc27xx-7sreset", .of_compatible = "sprd,sc2731-7sreset",
}, { }, {
.name = "sc27xx-poweroff", .name = "sc27xx-poweroff",
.of_compatible = "sprd,sc27xx-poweroff", .of_compatible = "sprd,sc2731-poweroff",
}, { }, {
.name = "sc27xx-syscon", .name = "sc27xx-syscon",
.of_compatible = "sprd,sc27xx-syscon", .of_compatible = "sprd,sc2731-syscon",
}, },
}; };
......
...@@ -1245,6 +1245,28 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) ...@@ -1245,6 +1245,28 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
return status; return status;
} }
static int __maybe_unused twl_suspend(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
if (client->irq)
disable_irq(client->irq);
return 0;
}
static int __maybe_unused twl_resume(struct device *dev)
{
struct i2c_client *client = to_i2c_client(dev);
if (client->irq)
enable_irq(client->irq);
return 0;
}
static SIMPLE_DEV_PM_OPS(twl_dev_pm_ops, twl_suspend, twl_resume);
static const struct i2c_device_id twl_ids[] = { static const struct i2c_device_id twl_ids[] = {
{ "twl4030", TWL4030_VAUX2 }, /* "Triton 2" */ { "twl4030", TWL4030_VAUX2 }, /* "Triton 2" */
{ "twl5030", 0 }, /* T2 updated */ { "twl5030", 0 }, /* T2 updated */
...@@ -1262,6 +1284,7 @@ static const struct i2c_device_id twl_ids[] = { ...@@ -1262,6 +1284,7 @@ static const struct i2c_device_id twl_ids[] = {
/* One Client Driver , 4 Clients */ /* One Client Driver , 4 Clients */
static struct i2c_driver twl_driver = { static struct i2c_driver twl_driver = {
.driver.name = DRIVER_NAME, .driver.name = DRIVER_NAME,
.driver.pm = &twl_dev_pm_ops,
.id_table = twl_ids, .id_table = twl_ids,
.probe = twl_probe, .probe = twl_probe,
.remove = twl_remove, .remove = twl_remove,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment