Merge tag 'rtc-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
[sfrench/cifs-2.6.git] / drivers / rtc / rtc-pcf8563.c
index c569dfe8c2ae2d8cd31623f719a4f15ad65a276e..ac159d24286dd16c1202da227a4b1353a78e204a 100644 (file)
@@ -560,7 +560,6 @@ static int pcf8563_probe(struct i2c_client *client,
        struct pcf8563 *pcf8563;
        int err;
        unsigned char buf;
-       unsigned char alm_pending;
 
        dev_dbg(&client->dev, "%s\n", __func__);
 
@@ -584,13 +583,13 @@ static int pcf8563_probe(struct i2c_client *client,
                return err;
        }
 
-       err = pcf8563_get_alarm_mode(client, NULL, &alm_pending);
-       if (err) {
-               dev_err(&client->dev, "%s: read error\n", __func__);
+       /* Clear flags and disable interrupts */
+       buf = 0;
+       err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf);
+       if (err < 0) {
+               dev_err(&client->dev, "%s: write error\n", __func__);
                return err;
        }
-       if (alm_pending)
-               pcf8563_set_alarm_mode(client, 0);
 
        pcf8563->rtc = devm_rtc_device_register(&client->dev,
                                pcf8563_driver.driver.name,
@@ -602,7 +601,7 @@ static int pcf8563_probe(struct i2c_client *client,
        if (client->irq > 0) {
                err = devm_request_threaded_irq(&client->dev, client->irq,
                                NULL, pcf8563_irq,
-                               IRQF_SHARED|IRQF_ONESHOT|IRQF_TRIGGER_FALLING,
+                               IRQF_SHARED | IRQF_ONESHOT | IRQF_TRIGGER_LOW,
                                pcf8563_driver.driver.name, client);
                if (err) {
                        dev_err(&client->dev, "unable to request IRQ %d\n",