rt1305_reset(rt1305->regmap);
        rt1305_calibrate(rt1305);
 
-       return snd_soc_register_component(&i2c->dev, &soc_component_dev_rt1305,
+       return devm_snd_soc_register_component(&i2c->dev,
+                       &soc_component_dev_rt1305,
                        rt1305_dai, ARRAY_SIZE(rt1305_dai));
 }
 
-static int rt1305_i2c_remove(struct i2c_client *i2c)
-{
-       snd_soc_unregister_component(&i2c->dev);
-
-       return 0;
-}
-
 static void rt1305_i2c_shutdown(struct i2c_client *client)
 {
        struct rt1305_priv *rt1305 = i2c_get_clientdata(client);
 #endif
        },
        .probe = rt1305_i2c_probe,
-       .remove   = rt1305_i2c_remove,
        .shutdown = rt1305_i2c_shutdown,
        .id_table = rt1305_i2c_id,
 };