ipa->modem_route_count = data->modem_route_count;
        init_completion(&ipa->completion);
 
-       ret = ipa_reg_init(ipa);
+       ret = ipa_reg_init(ipa, pdev);
        if (ret)
                goto err_kfree_ipa;
 
 
  * Copyright (C) 2019-2023 Linaro Ltd.
  */
 
+#include <linux/platform_device.h>
 #include <linux/io.h>
 
 #include "ipa.h"
        }
 }
 
-int ipa_reg_init(struct ipa *ipa)
+int ipa_reg_init(struct ipa *ipa, struct platform_device *pdev)
 {
-       struct device *dev = &ipa->pdev->dev;
+       struct device *dev = &pdev->dev;
        const struct regs *regs;
        struct resource *res;
 
                return -EINVAL;
 
        /* Setup IPA register memory  */
-       res = platform_get_resource_byname(ipa->pdev, IORESOURCE_MEM,
-                                          "ipa-reg");
+       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ipa-reg");
        if (!res) {
                dev_err(dev, "DT error getting \"ipa-reg\" memory property\n");
                return -ENODEV;
 
 #include "ipa_version.h"
 #include "reg.h"
 
+struct platform_device;
+
 struct ipa;
 
 /**
 
 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id);
 
-int ipa_reg_init(struct ipa *ipa);
+int ipa_reg_init(struct ipa *ipa, struct platform_device *pdev);
 void ipa_reg_exit(struct ipa *ipa);
 
 #endif /* _IPA_REG_H_ */