Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
[linux-2.6-microblaze.git] / drivers / rtc / rtc-pcf8523.c
index 2f435e5..b24c908 100644 (file)
 #define REG_OFFSET   0x0e
 #define REG_OFFSET_MODE BIT(7)
 
-struct pcf8523 {
-       struct rtc_device *rtc;
-};
-
 static int pcf8523_read(struct i2c_client *client, u8 reg, u8 *valuep)
 {
        struct i2c_msg msgs[2];
@@ -345,16 +341,12 @@ static const struct rtc_class_ops pcf8523_rtc_ops = {
 static int pcf8523_probe(struct i2c_client *client,
                         const struct i2c_device_id *id)
 {
-       struct pcf8523 *pcf;
+       struct rtc_device *rtc;
        int err;
 
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
                return -ENODEV;
 
-       pcf = devm_kzalloc(&client->dev, sizeof(*pcf), GFP_KERNEL);
-       if (!pcf)
-               return -ENOMEM;
-
        err = pcf8523_load_capacitance(client);
        if (err < 0)
                dev_warn(&client->dev, "failed to set xtal load capacitance: %d",
@@ -364,12 +356,10 @@ static int pcf8523_probe(struct i2c_client *client,
        if (err < 0)
                return err;
 
-       pcf->rtc = devm_rtc_device_register(&client->dev, DRIVER_NAME,
+       rtc = devm_rtc_device_register(&client->dev, DRIVER_NAME,
                                       &pcf8523_rtc_ops, THIS_MODULE);
-       if (IS_ERR(pcf->rtc))
-               return PTR_ERR(pcf->rtc);
-
-       i2c_set_clientdata(client, pcf);
+       if (IS_ERR(rtc))
+               return PTR_ERR(rtc);
 
        return 0;
 }