mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-30 16:18:22 -05:00
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
This commit is contained in:
@@ -1246,7 +1246,7 @@ config MFD_STA2X11
|
||||
|
||||
config MFD_SUN6I_PRCM
|
||||
bool "Allwinner A31 PRCM controller"
|
||||
depends on ARCH_SUNXI
|
||||
depends on ARCH_SUNXI || COMPILE_TEST
|
||||
select MFD_CORE
|
||||
help
|
||||
Support for the PRCM (Power/Reset/Clock Management) unit available
|
||||
|
||||
@@ -53,67 +53,67 @@ static const struct sprd_pmic_data sc2731_data = {
|
||||
static const struct mfd_cell sprd_pmic_devs[] = {
|
||||
{
|
||||
.name = "sc27xx-wdt",
|
||||
.of_compatible = "sprd,sc27xx-wdt",
|
||||
.of_compatible = "sprd,sc2731-wdt",
|
||||
}, {
|
||||
.name = "sc27xx-rtc",
|
||||
.of_compatible = "sprd,sc27xx-rtc",
|
||||
.of_compatible = "sprd,sc2731-rtc",
|
||||
}, {
|
||||
.name = "sc27xx-charger",
|
||||
.of_compatible = "sprd,sc27xx-charger",
|
||||
.of_compatible = "sprd,sc2731-charger",
|
||||
}, {
|
||||
.name = "sc27xx-chg-timer",
|
||||
.of_compatible = "sprd,sc27xx-chg-timer",
|
||||
.of_compatible = "sprd,sc2731-chg-timer",
|
||||
}, {
|
||||
.name = "sc27xx-fast-chg",
|
||||
.of_compatible = "sprd,sc27xx-fast-chg",
|
||||
.of_compatible = "sprd,sc2731-fast-chg",
|
||||
}, {
|
||||
.name = "sc27xx-chg-wdt",
|
||||
.of_compatible = "sprd,sc27xx-chg-wdt",
|
||||
.of_compatible = "sprd,sc2731-chg-wdt",
|
||||
}, {
|
||||
.name = "sc27xx-typec",
|
||||
.of_compatible = "sprd,sc27xx-typec",
|
||||
.of_compatible = "sprd,sc2731-typec",
|
||||
}, {
|
||||
.name = "sc27xx-flash",
|
||||
.of_compatible = "sprd,sc27xx-flash",
|
||||
.of_compatible = "sprd,sc2731-flash",
|
||||
}, {
|
||||
.name = "sc27xx-eic",
|
||||
.of_compatible = "sprd,sc27xx-eic",
|
||||
.of_compatible = "sprd,sc2731-eic",
|
||||
}, {
|
||||
.name = "sc27xx-efuse",
|
||||
.of_compatible = "sprd,sc27xx-efuse",
|
||||
.of_compatible = "sprd,sc2731-efuse",
|
||||
}, {
|
||||
.name = "sc27xx-thermal",
|
||||
.of_compatible = "sprd,sc27xx-thermal",
|
||||
.of_compatible = "sprd,sc2731-thermal",
|
||||
}, {
|
||||
.name = "sc27xx-adc",
|
||||
.of_compatible = "sprd,sc27xx-adc",
|
||||
.of_compatible = "sprd,sc2731-adc",
|
||||
}, {
|
||||
.name = "sc27xx-audio-codec",
|
||||
.of_compatible = "sprd,sc27xx-audio-codec",
|
||||
.of_compatible = "sprd,sc2731-audio-codec",
|
||||
}, {
|
||||
.name = "sc27xx-regulator",
|
||||
.of_compatible = "sprd,sc27xx-regulator",
|
||||
.of_compatible = "sprd,sc2731-regulator",
|
||||
}, {
|
||||
.name = "sc27xx-vibrator",
|
||||
.of_compatible = "sprd,sc27xx-vibrator",
|
||||
.of_compatible = "sprd,sc2731-vibrator",
|
||||
}, {
|
||||
.name = "sc27xx-keypad-led",
|
||||
.of_compatible = "sprd,sc27xx-keypad-led",
|
||||
.of_compatible = "sprd,sc2731-keypad-led",
|
||||
}, {
|
||||
.name = "sc27xx-bltc",
|
||||
.of_compatible = "sprd,sc27xx-bltc",
|
||||
.of_compatible = "sprd,sc2731-bltc",
|
||||
}, {
|
||||
.name = "sc27xx-fgu",
|
||||
.of_compatible = "sprd,sc27xx-fgu",
|
||||
.of_compatible = "sprd,sc2731-fgu",
|
||||
}, {
|
||||
.name = "sc27xx-7sreset",
|
||||
.of_compatible = "sprd,sc27xx-7sreset",
|
||||
.of_compatible = "sprd,sc2731-7sreset",
|
||||
}, {
|
||||
.name = "sc27xx-poweroff",
|
||||
.of_compatible = "sprd,sc27xx-poweroff",
|
||||
.of_compatible = "sprd,sc2731-poweroff",
|
||||
}, {
|
||||
.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)
|
||||
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[] = {
|
||||
{ "twl4030", TWL4030_VAUX2 }, /* "Triton 2" */
|
||||
{ "twl5030", 0 }, /* T2 updated */
|
||||
@@ -1262,6 +1284,7 @@ static const struct i2c_device_id twl_ids[] = {
|
||||
/* One Client Driver , 4 Clients */
|
||||
static struct i2c_driver twl_driver = {
|
||||
.driver.name = DRIVER_NAME,
|
||||
.driver.pm = &twl_dev_pm_ops,
|
||||
.id_table = twl_ids,
|
||||
.probe = twl_probe,
|
||||
.remove = twl_remove,
|
||||
|
||||
Reference in New Issue
Block a user