sd->dev = csis->dev;
 
+       sd->fwnode = fwnode_graph_get_endpoint_by_id(dev_fwnode(csis->dev),
+                                                    1, 0, 0);
+       if (!sd->fwnode) {
+               dev_err(csis->dev, "Unable to retrieve endpoint for port@1\n");
+               return -ENOENT;
+       }
+
        csis->csis_fmt = &mipi_csis_formats[0];
        mipi_csis_init_cfg(sd, NULL);
 
        v4l2_async_unregister_subdev(&csis->sd);
 disable_clock:
        mipi_csis_clk_disable(csis);
+       fwnode_handle_put(csis->sd.fwnode);
        mutex_destroy(&csis->lock);
 
        return ret;
        mipi_csis_runtime_suspend(&pdev->dev);
        mipi_csis_clk_disable(csis);
        media_entity_cleanup(&csis->sd.entity);
+       fwnode_handle_put(csis->sd.fwnode);
        mutex_destroy(&csis->lock);
        pm_runtime_set_suspended(&pdev->dev);