diff --git a/drivers/i2c/busses/i2c-rpmsg-imx.c b/drivers/i2c/busses/i2c-rpmsg-imx.c
index 9d0561f8cb194106db32b88f5a70ed26ae810129..06e705271172f19499c1ad4da41fc8b89593589b 100644
--- a/drivers/i2c/busses/i2c-rpmsg-imx.c
+++ b/drivers/i2c/busses/i2c-rpmsg-imx.c
@@ -379,6 +379,9 @@ static int i2c_rpbus_probe(struct platform_device *pdev)
 	struct i2c_adapter *adapter;
 	int ret;
 
+	if (!i2c_rpmsg.rpdev)
+		return -EPROBE_DEFER;
+
 	rdata = devm_kzalloc(&pdev->dev, sizeof(*rdata), GFP_KERNEL);
 	if (!rdata)
 		return -ENOMEM;