On Mon Jan 13 10:01:21 2025 +0530, Bryan O'Donoghue wrote:
> Add a nop init callback to CSIPHY devices, this callback is used to add
> some HW register offset and register configuration for specific platform,
> then different platform can reuse the same CSIPHY driver. Later changes
> will enumerate with enabling code.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonog...@linaro.org>
> Signed-off-by: Depeng Shao <quic_depe...@quicinc.com>
> Reviewed-by: Vladimir Zapolskiy <vladimir.zapols...@linaro.org>
> Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c | 6 ++++++
 drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c | 6 ++++++
 drivers/media/platform/qcom/camss/camss-csiphy.c         | 4 ++++
 drivers/media/platform/qcom/camss/camss-csiphy.h         | 1 +
 4 files changed, 17 insertions(+)

---

diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c 
b/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c
index cd4a8c369234..9d67e7fa6366 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c
@@ -180,6 +180,11 @@ static irqreturn_t csiphy_isr(int irq, void *dev)
        return IRQ_HANDLED;
 }
 
+static int csiphy_init(struct csiphy_device *csiphy)
+{
+       return 0;
+}
+
 const struct csiphy_hw_ops csiphy_ops_2ph_1_0 = {
        .get_lane_mask = csiphy_get_lane_mask,
        .hw_version_read = csiphy_hw_version_read,
@@ -187,4 +192,5 @@ const struct csiphy_hw_ops csiphy_ops_2ph_1_0 = {
        .lanes_enable = csiphy_lanes_enable,
        .lanes_disable = csiphy_lanes_disable,
        .isr = csiphy_isr,
+       .init = csiphy_init,
 };
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c 
b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
index 73e4c05a9dec..b283df7634bb 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
@@ -586,6 +586,11 @@ static void csiphy_lanes_disable(struct csiphy_device 
*csiphy,
                          CSIPHY_3PH_CMN_CSI_COMMON_CTRLn(6));
 }
 
+static int csiphy_init(struct csiphy_device *csiphy)
+{
+       return 0;
+}
+
 const struct csiphy_hw_ops csiphy_ops_3ph_1_0 = {
        .get_lane_mask = csiphy_get_lane_mask,
        .hw_version_read = csiphy_hw_version_read,
@@ -593,4 +598,5 @@ const struct csiphy_hw_ops csiphy_ops_3ph_1_0 = {
        .lanes_enable = csiphy_lanes_enable,
        .lanes_disable = csiphy_lanes_disable,
        .isr = csiphy_isr,
+       .init = csiphy_init,
 };
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c 
b/drivers/media/platform/qcom/camss/camss-csiphy.c
index 3791c2d8a6cf..c053616558a7 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.c
@@ -594,6 +594,10 @@ int msm_csiphy_subdev_init(struct camss *camss,
        csiphy->cfg.combo_mode = 0;
        csiphy->res = &res->csiphy;
 
+       ret = csiphy->res->hw_ops->init(csiphy);
+       if (ret)
+               return ret;
+
        /* Memory */
 
        csiphy->base = devm_platform_ioremap_resource_byname(pdev, res->reg[0]);
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.h 
b/drivers/media/platform/qcom/camss/camss-csiphy.h
index 90cc3f976643..49393dfd5215 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.h
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.h
@@ -77,6 +77,7 @@ struct csiphy_hw_ops {
        void (*lanes_disable)(struct csiphy_device *csiphy,
                              struct csiphy_config *cfg);
        irqreturn_t (*isr)(int irq, void *dev);
+       int (*init)(struct csiphy_device *csiphy);
 };
 
 struct csiphy_subdev_resources {

Reply via email to