diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c
index aa906ff..3092f7c 100644
--- a/drivers/mfd/pcf50633-core.c
+++ b/drivers/mfd/pcf50633-core.c
@@ -226,6 +226,18 @@ static int pcf50633_suspend(struct device *dev)
 	return pcf50633_irq_suspend(pcf);
 }
 
+static int pcf50633_suspend_noirq(struct device *dev)
+{
+	char buf[800]; /* 784 bytes should be enough but... */
+	ssize_t len;
+
+	len = show_dump_regs(dev, NULL, buf);
+	buf[len] = '\0';
+	printk(KERN_ERR "pcf50633_suspend_noirq: %s", buf);
+
+	return 0;
+}
+
 static int pcf50633_resume(struct device *dev)
 {
 	struct pcf50633 *pcf = dev_get_drvdata(dev);
@@ -236,6 +248,7 @@ static int pcf50633_resume(struct device *dev)
 static const struct dev_pm_ops pcf50633_pm_ops = {
 	.suspend = pcf50633_suspend,
 	.resume = pcf50633_resume,
+	.suspend_noirq = pcf50633_suspend_noirq,
 };
 
 #define PCF50633_PM_OPS (&pcf50633_pm_ops)

