From: Pratyush Yadav <p.yadav@ti.com> To: Mauro Carvalho Chehab <mchehab@kernel.org>, Rob Herring <robh+dt@kernel.org>, Kishon Vijay Abraham I <kishon@ti.com>, Vinod Koul <vkoul@kernel.org>, Peter Ujfalusi <peter.ujfalusi@gmail.com>, Maxime Ripard <mripard@kernel.org>, Benoit Parrot <bparrot@ti.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Alexandre Courbot <acourbot@chromium.org>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Stanimir Varbanov <stanimir.varbanov@linaro.org>, Helen Koike <helen.koike@collabora.com>, Michael Tretter <m.tretter@pengutronix.de>, Peter Chen <peter.chen@nxp.com>, Chunfeng Yun <chunfeng.yun@mediatek.com>, <linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-phy@lists.infradead.org>, <dmaengine@vger.kernel.org> Cc: Pratyush Yadav <p.yadav@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Subject: [PATCH 02/16] phy: cdns-dphy: Prepare for Rx support Date: Tue, 30 Mar 2021 23:03:34 +0530 [thread overview] Message-ID: <20210330173348.30135-3-p.yadav@ti.com> (raw) In-Reply-To: <20210330173348.30135-1-p.yadav@ti.com> The Rx programming sequence differs from the Tx programming sequence. Currently only Tx mode is supported. Move all the Tx related parts into a set of Tx-specific hooks that are then called by the main PHY framework hooks. This way when Rx support is added all that is needed to be done is to plug in the Rx hooks. The clocks "psm" and "pll_ref" are not used by the Rx path so make them optional in the probe and then check if they exist in the power_on() hook. Signed-off-by: Pratyush Yadav <p.yadav@ti.com> --- drivers/phy/cadence/cdns-dphy.c | 140 ++++++++++++++++++++++++-------- 1 file changed, 104 insertions(+), 36 deletions(-) diff --git a/drivers/phy/cadence/cdns-dphy.c b/drivers/phy/cadence/cdns-dphy.c index ba042e39cfaf..8656f2102a91 100644 --- a/drivers/phy/cadence/cdns-dphy.c +++ b/drivers/phy/cadence/cdns-dphy.c @@ -75,6 +75,11 @@ struct cdns_dphy; struct cdns_dphy_ops { int (*probe)(struct cdns_dphy *dphy); void (*remove)(struct cdns_dphy *dphy); + int (*power_on)(struct cdns_dphy *dphy); + int (*power_off)(struct cdns_dphy *dphy); + int (*validate)(struct cdns_dphy *dphy, enum phy_mode mode, int submode, + union phy_configure_opts *opts); + int (*configure)(struct cdns_dphy *dphy, union phy_configure_opts *opts); void (*set_psm_div)(struct cdns_dphy *dphy, u8 div); void (*set_clk_lane_cfg)(struct cdns_dphy *dphy, enum cdns_dphy_clk_lane_cfg cfg); @@ -86,12 +91,18 @@ struct cdns_dphy_ops { struct cdns_dphy { struct cdns_dphy_cfg cfg; void __iomem *regs; + struct device *dev; struct clk *psm_clk; struct clk *pll_ref_clk; const struct cdns_dphy_ops *ops; struct phy *phy; }; +struct cdns_dphy_driver_data { + const struct cdns_dphy_ops *tx; + const struct cdns_dphy_ops *rx; +}; + static int cdns_dsi_get_dphy_pll_cfg(struct cdns_dphy *dphy, struct cdns_dphy_cfg *cfg, struct phy_configure_opts_mipi_dphy *opts, @@ -199,20 +210,9 @@ static void cdns_dphy_ref_set_psm_div(struct cdns_dphy *dphy, u8 div) dphy->regs + DPHY_PSM_CFG); } -/* - * This is the reference implementation of DPHY hooks. Specific integration of - * this IP may have to re-implement some of them depending on how they decided - * to wire things in the SoC. - */ -static const struct cdns_dphy_ops ref_dphy_ops = { - .get_wakeup_time_ns = cdns_dphy_ref_get_wakeup_time_ns, - .set_pll_cfg = cdns_dphy_ref_set_pll_cfg, - .set_psm_div = cdns_dphy_ref_set_psm_div, -}; - -static int cdns_dphy_config_from_opts(struct phy *phy, - struct phy_configure_opts_mipi_dphy *opts, - struct cdns_dphy_cfg *cfg) +static int cdns_dphy_tx_config_from_opts(struct phy *phy, + struct phy_configure_opts_mipi_dphy *opts, + struct cdns_dphy_cfg *cfg) { struct cdns_dphy *dphy = phy_get_drvdata(phy); unsigned int dsi_hfp_ext = 0; @@ -232,24 +232,13 @@ static int cdns_dphy_config_from_opts(struct phy *phy, return 0; } -static int cdns_dphy_validate(struct phy *phy, enum phy_mode mode, int submode, - union phy_configure_opts *opts) +static int cdns_dphy_tx_configure(struct cdns_dphy *dphy, + union phy_configure_opts *opts) { struct cdns_dphy_cfg cfg = { 0 }; - - if (mode != PHY_MODE_MIPI_DPHY) - return -EINVAL; - - return cdns_dphy_config_from_opts(phy, &opts->mipi_dphy, &cfg); -} - -static int cdns_dphy_configure(struct phy *phy, union phy_configure_opts *opts) -{ - struct cdns_dphy *dphy = phy_get_drvdata(phy); - struct cdns_dphy_cfg cfg = { 0 }; int ret; - ret = cdns_dphy_config_from_opts(phy, &opts->mipi_dphy, &cfg); + ret = cdns_dphy_tx_config_from_opts(dphy->phy, &opts->mipi_dphy, &cfg); if (ret) return ret; @@ -279,9 +268,21 @@ static int cdns_dphy_configure(struct phy *phy, union phy_configure_opts *opts) return 0; } -static int cdns_dphy_power_on(struct phy *phy) +static int cdns_dphy_tx_validate(struct cdns_dphy *dphy, enum phy_mode mode, + int submode, union phy_configure_opts *opts) { - struct cdns_dphy *dphy = phy_get_drvdata(phy); + struct cdns_dphy_cfg cfg = { 0 }; + + if (submode != PHY_MIPI_DPHY_SUBMODE_TX) + return -EINVAL; + + return cdns_dphy_tx_config_from_opts(dphy->phy, &opts->mipi_dphy, &cfg); +} + +static int cdns_dphy_tx_power_on(struct cdns_dphy *dphy) +{ + if (!dphy->psm_clk || !dphy->pll_ref_clk) + return -EINVAL; clk_prepare_enable(dphy->psm_clk); clk_prepare_enable(dphy->pll_ref_clk); @@ -293,16 +294,77 @@ static int cdns_dphy_power_on(struct phy *phy) return 0; } -static int cdns_dphy_power_off(struct phy *phy) +static int cdns_dphy_tx_power_off(struct cdns_dphy *dphy) { - struct cdns_dphy *dphy = phy_get_drvdata(phy); - clk_disable_unprepare(dphy->pll_ref_clk); clk_disable_unprepare(dphy->psm_clk); return 0; } +static const struct cdns_dphy_ops tx_ref_dphy_ops = { + .power_on = cdns_dphy_tx_power_on, + .power_off = cdns_dphy_tx_power_off, + .validate = cdns_dphy_tx_validate, + .configure = cdns_dphy_tx_configure, + .get_wakeup_time_ns = cdns_dphy_ref_get_wakeup_time_ns, + .set_pll_cfg = cdns_dphy_ref_set_pll_cfg, + .set_psm_div = cdns_dphy_ref_set_psm_div, +}; + +/* + * This is the reference implementation of DPHY hooks. Specific integration of + * this IP may have to re-implement some of them depending on how they decided + * to wire things in the SoC. + */ +static const struct cdns_dphy_driver_data ref_dphy_ops = { + .tx = &tx_ref_dphy_ops, +}; + +static int cdns_dphy_validate(struct phy *phy, enum phy_mode mode, int submode, + union phy_configure_opts *opts) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (mode != PHY_MODE_MIPI_DPHY) + return -EINVAL; + + if (dphy->ops->validate) + return dphy->ops->validate(dphy, mode, submode, opts); + + return 0; +} + +static int cdns_dphy_power_on(struct phy *phy) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (dphy->ops->power_on) + return dphy->ops->power_on(dphy); + + return 0; +} + +static int cdns_dphy_power_off(struct phy *phy) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (dphy->ops->power_off) + return dphy->ops->power_off(dphy); + + return 0; +} + +static int cdns_dphy_configure(struct phy *phy, union phy_configure_opts *opts) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (dphy->ops->configure) + return dphy->ops->configure(dphy, opts); + + return 0; +} + static const struct phy_ops cdns_dphy_ops = { .configure = cdns_dphy_configure, .validate = cdns_dphy_validate, @@ -314,14 +376,20 @@ static int cdns_dphy_probe(struct platform_device *pdev) { struct phy_provider *phy_provider; struct cdns_dphy *dphy; + const struct cdns_dphy_driver_data *ddata; int ret; dphy = devm_kzalloc(&pdev->dev, sizeof(*dphy), GFP_KERNEL); if (!dphy) return -ENOMEM; dev_set_drvdata(&pdev->dev, dphy); + dphy->dev = &pdev->dev; - dphy->ops = of_device_get_match_data(&pdev->dev); + ddata = of_device_get_match_data(&pdev->dev); + if (!ddata) + return -EINVAL; + + dphy->ops = ddata->tx; if (!dphy->ops) return -EINVAL; @@ -329,11 +397,11 @@ static int cdns_dphy_probe(struct platform_device *pdev) if (IS_ERR(dphy->regs)) return PTR_ERR(dphy->regs); - dphy->psm_clk = devm_clk_get(&pdev->dev, "psm"); + dphy->psm_clk = devm_clk_get_optional(dphy->dev, "psm"); if (IS_ERR(dphy->psm_clk)) return PTR_ERR(dphy->psm_clk); - dphy->pll_ref_clk = devm_clk_get(&pdev->dev, "pll_ref"); + dphy->pll_ref_clk = devm_clk_get_optional(dphy->dev, "pll_ref"); if (IS_ERR(dphy->pll_ref_clk)) return PTR_ERR(dphy->pll_ref_clk); -- 2.30.0
WARNING: multiple messages have this Message-ID (diff)
From: Pratyush Yadav <p.yadav@ti.com> To: Mauro Carvalho Chehab <mchehab@kernel.org>, Rob Herring <robh+dt@kernel.org>, Kishon Vijay Abraham I <kishon@ti.com>, Vinod Koul <vkoul@kernel.org>, Peter Ujfalusi <peter.ujfalusi@gmail.com>, Maxime Ripard <mripard@kernel.org>, Benoit Parrot <bparrot@ti.com>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Alexandre Courbot <acourbot@chromium.org>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Stanimir Varbanov <stanimir.varbanov@linaro.org>, Helen Koike <helen.koike@collabora.com>, Michael Tretter <m.tretter@pengutronix.de>, Peter Chen <peter.chen@nxp.com>, Chunfeng Yun <chunfeng.yun@mediatek.com>, <linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-phy@lists.infradead.org>, <dmaengine@vger.kernel.org> Cc: Pratyush Yadav <p.yadav@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Subject: [PATCH 02/16] phy: cdns-dphy: Prepare for Rx support Date: Tue, 30 Mar 2021 23:03:34 +0530 [thread overview] Message-ID: <20210330173348.30135-3-p.yadav@ti.com> (raw) In-Reply-To: <20210330173348.30135-1-p.yadav@ti.com> The Rx programming sequence differs from the Tx programming sequence. Currently only Tx mode is supported. Move all the Tx related parts into a set of Tx-specific hooks that are then called by the main PHY framework hooks. This way when Rx support is added all that is needed to be done is to plug in the Rx hooks. The clocks "psm" and "pll_ref" are not used by the Rx path so make them optional in the probe and then check if they exist in the power_on() hook. Signed-off-by: Pratyush Yadav <p.yadav@ti.com> --- drivers/phy/cadence/cdns-dphy.c | 140 ++++++++++++++++++++++++-------- 1 file changed, 104 insertions(+), 36 deletions(-) diff --git a/drivers/phy/cadence/cdns-dphy.c b/drivers/phy/cadence/cdns-dphy.c index ba042e39cfaf..8656f2102a91 100644 --- a/drivers/phy/cadence/cdns-dphy.c +++ b/drivers/phy/cadence/cdns-dphy.c @@ -75,6 +75,11 @@ struct cdns_dphy; struct cdns_dphy_ops { int (*probe)(struct cdns_dphy *dphy); void (*remove)(struct cdns_dphy *dphy); + int (*power_on)(struct cdns_dphy *dphy); + int (*power_off)(struct cdns_dphy *dphy); + int (*validate)(struct cdns_dphy *dphy, enum phy_mode mode, int submode, + union phy_configure_opts *opts); + int (*configure)(struct cdns_dphy *dphy, union phy_configure_opts *opts); void (*set_psm_div)(struct cdns_dphy *dphy, u8 div); void (*set_clk_lane_cfg)(struct cdns_dphy *dphy, enum cdns_dphy_clk_lane_cfg cfg); @@ -86,12 +91,18 @@ struct cdns_dphy_ops { struct cdns_dphy { struct cdns_dphy_cfg cfg; void __iomem *regs; + struct device *dev; struct clk *psm_clk; struct clk *pll_ref_clk; const struct cdns_dphy_ops *ops; struct phy *phy; }; +struct cdns_dphy_driver_data { + const struct cdns_dphy_ops *tx; + const struct cdns_dphy_ops *rx; +}; + static int cdns_dsi_get_dphy_pll_cfg(struct cdns_dphy *dphy, struct cdns_dphy_cfg *cfg, struct phy_configure_opts_mipi_dphy *opts, @@ -199,20 +210,9 @@ static void cdns_dphy_ref_set_psm_div(struct cdns_dphy *dphy, u8 div) dphy->regs + DPHY_PSM_CFG); } -/* - * This is the reference implementation of DPHY hooks. Specific integration of - * this IP may have to re-implement some of them depending on how they decided - * to wire things in the SoC. - */ -static const struct cdns_dphy_ops ref_dphy_ops = { - .get_wakeup_time_ns = cdns_dphy_ref_get_wakeup_time_ns, - .set_pll_cfg = cdns_dphy_ref_set_pll_cfg, - .set_psm_div = cdns_dphy_ref_set_psm_div, -}; - -static int cdns_dphy_config_from_opts(struct phy *phy, - struct phy_configure_opts_mipi_dphy *opts, - struct cdns_dphy_cfg *cfg) +static int cdns_dphy_tx_config_from_opts(struct phy *phy, + struct phy_configure_opts_mipi_dphy *opts, + struct cdns_dphy_cfg *cfg) { struct cdns_dphy *dphy = phy_get_drvdata(phy); unsigned int dsi_hfp_ext = 0; @@ -232,24 +232,13 @@ static int cdns_dphy_config_from_opts(struct phy *phy, return 0; } -static int cdns_dphy_validate(struct phy *phy, enum phy_mode mode, int submode, - union phy_configure_opts *opts) +static int cdns_dphy_tx_configure(struct cdns_dphy *dphy, + union phy_configure_opts *opts) { struct cdns_dphy_cfg cfg = { 0 }; - - if (mode != PHY_MODE_MIPI_DPHY) - return -EINVAL; - - return cdns_dphy_config_from_opts(phy, &opts->mipi_dphy, &cfg); -} - -static int cdns_dphy_configure(struct phy *phy, union phy_configure_opts *opts) -{ - struct cdns_dphy *dphy = phy_get_drvdata(phy); - struct cdns_dphy_cfg cfg = { 0 }; int ret; - ret = cdns_dphy_config_from_opts(phy, &opts->mipi_dphy, &cfg); + ret = cdns_dphy_tx_config_from_opts(dphy->phy, &opts->mipi_dphy, &cfg); if (ret) return ret; @@ -279,9 +268,21 @@ static int cdns_dphy_configure(struct phy *phy, union phy_configure_opts *opts) return 0; } -static int cdns_dphy_power_on(struct phy *phy) +static int cdns_dphy_tx_validate(struct cdns_dphy *dphy, enum phy_mode mode, + int submode, union phy_configure_opts *opts) { - struct cdns_dphy *dphy = phy_get_drvdata(phy); + struct cdns_dphy_cfg cfg = { 0 }; + + if (submode != PHY_MIPI_DPHY_SUBMODE_TX) + return -EINVAL; + + return cdns_dphy_tx_config_from_opts(dphy->phy, &opts->mipi_dphy, &cfg); +} + +static int cdns_dphy_tx_power_on(struct cdns_dphy *dphy) +{ + if (!dphy->psm_clk || !dphy->pll_ref_clk) + return -EINVAL; clk_prepare_enable(dphy->psm_clk); clk_prepare_enable(dphy->pll_ref_clk); @@ -293,16 +294,77 @@ static int cdns_dphy_power_on(struct phy *phy) return 0; } -static int cdns_dphy_power_off(struct phy *phy) +static int cdns_dphy_tx_power_off(struct cdns_dphy *dphy) { - struct cdns_dphy *dphy = phy_get_drvdata(phy); - clk_disable_unprepare(dphy->pll_ref_clk); clk_disable_unprepare(dphy->psm_clk); return 0; } +static const struct cdns_dphy_ops tx_ref_dphy_ops = { + .power_on = cdns_dphy_tx_power_on, + .power_off = cdns_dphy_tx_power_off, + .validate = cdns_dphy_tx_validate, + .configure = cdns_dphy_tx_configure, + .get_wakeup_time_ns = cdns_dphy_ref_get_wakeup_time_ns, + .set_pll_cfg = cdns_dphy_ref_set_pll_cfg, + .set_psm_div = cdns_dphy_ref_set_psm_div, +}; + +/* + * This is the reference implementation of DPHY hooks. Specific integration of + * this IP may have to re-implement some of them depending on how they decided + * to wire things in the SoC. + */ +static const struct cdns_dphy_driver_data ref_dphy_ops = { + .tx = &tx_ref_dphy_ops, +}; + +static int cdns_dphy_validate(struct phy *phy, enum phy_mode mode, int submode, + union phy_configure_opts *opts) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (mode != PHY_MODE_MIPI_DPHY) + return -EINVAL; + + if (dphy->ops->validate) + return dphy->ops->validate(dphy, mode, submode, opts); + + return 0; +} + +static int cdns_dphy_power_on(struct phy *phy) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (dphy->ops->power_on) + return dphy->ops->power_on(dphy); + + return 0; +} + +static int cdns_dphy_power_off(struct phy *phy) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (dphy->ops->power_off) + return dphy->ops->power_off(dphy); + + return 0; +} + +static int cdns_dphy_configure(struct phy *phy, union phy_configure_opts *opts) +{ + struct cdns_dphy *dphy = phy_get_drvdata(phy); + + if (dphy->ops->configure) + return dphy->ops->configure(dphy, opts); + + return 0; +} + static const struct phy_ops cdns_dphy_ops = { .configure = cdns_dphy_configure, .validate = cdns_dphy_validate, @@ -314,14 +376,20 @@ static int cdns_dphy_probe(struct platform_device *pdev) { struct phy_provider *phy_provider; struct cdns_dphy *dphy; + const struct cdns_dphy_driver_data *ddata; int ret; dphy = devm_kzalloc(&pdev->dev, sizeof(*dphy), GFP_KERNEL); if (!dphy) return -ENOMEM; dev_set_drvdata(&pdev->dev, dphy); + dphy->dev = &pdev->dev; - dphy->ops = of_device_get_match_data(&pdev->dev); + ddata = of_device_get_match_data(&pdev->dev); + if (!ddata) + return -EINVAL; + + dphy->ops = ddata->tx; if (!dphy->ops) return -EINVAL; @@ -329,11 +397,11 @@ static int cdns_dphy_probe(struct platform_device *pdev) if (IS_ERR(dphy->regs)) return PTR_ERR(dphy->regs); - dphy->psm_clk = devm_clk_get(&pdev->dev, "psm"); + dphy->psm_clk = devm_clk_get_optional(dphy->dev, "psm"); if (IS_ERR(dphy->psm_clk)) return PTR_ERR(dphy->psm_clk); - dphy->pll_ref_clk = devm_clk_get(&pdev->dev, "pll_ref"); + dphy->pll_ref_clk = devm_clk_get_optional(dphy->dev, "pll_ref"); if (IS_ERR(dphy->pll_ref_clk)) return PTR_ERR(dphy->pll_ref_clk); -- 2.30.0 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2021-03-30 17:35 UTC|newest] Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-30 17:33 [PATCH 00/16] CSI2RX support on J721E Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 01/16] phy: Distinguish between Rx and Tx for MIPI D-PHY with submodes Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav [this message] 2021-03-30 17:33 ` [PATCH 02/16] phy: cdns-dphy: Prepare for Rx support Pratyush Yadav 2021-03-30 17:33 ` [PATCH 03/16] phy: cdns-dphy: Allow setting mode Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-04-02 10:38 ` Laurent Pinchart 2021-04-02 10:38 ` Laurent Pinchart 2021-04-06 18:22 ` Pratyush Yadav 2021-04-06 18:22 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 04/16] phy: cdns-dphy: Add Rx support Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 05/16] media: cadence: csi2rx: Add external DPHY support Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-31 9:24 ` Chunfeng Yun 2021-03-31 9:24 ` Chunfeng Yun 2021-04-06 18:54 ` Pratyush Yadav 2021-04-06 18:54 ` Pratyush Yadav 2021-04-08 8:13 ` Chunfeng Yun 2021-04-08 8:13 ` Chunfeng Yun 2021-04-08 8:22 ` Tomi Valkeinen 2021-04-08 8:22 ` Tomi Valkeinen 2021-03-30 17:33 ` [PATCH 06/16] media: cadence: csi2rx: Soft reset the streams before starting capture Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 07/16] media: cadence: csi2rx: Set the STOP bit when stopping a stream Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 08/16] media: cadence: csi2rx: Fix stream data configuration Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 09/16] media: cadence: csi2rx: Turn subdev power on before starting stream Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-04-02 10:55 ` Laurent Pinchart 2021-04-02 10:55 ` Laurent Pinchart 2021-04-06 17:53 ` Pratyush Yadav 2021-04-06 17:53 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 10/16] media: cadence: csi2rx: Add wrappers for subdev calls Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-04-02 10:47 ` Laurent Pinchart 2021-04-02 10:47 ` Laurent Pinchart 2021-04-06 15:11 ` Pratyush Yadav 2021-04-06 15:11 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 11/16] dmaengine: ti: k3-psil-j721e: Add entry for CSI2RX Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-04-04 13:24 ` Péter Ujfalusi 2021-04-04 13:24 ` Péter Ujfalusi 2021-04-06 15:09 ` Pratyush Yadav 2021-04-06 15:09 ` Pratyush Yadav 2021-04-06 15:33 ` Péter Ujfalusi 2021-04-06 15:33 ` Péter Ujfalusi 2021-04-06 16:55 ` Pratyush Yadav 2021-04-06 16:55 ` Pratyush Yadav 2021-04-06 17:10 ` Pratyush Yadav 2021-04-06 17:10 ` Pratyush Yadav 2021-04-06 19:13 ` Péter Ujfalusi 2021-04-06 19:13 ` Péter Ujfalusi 2021-03-30 17:33 ` [PATCH 12/16] dt-bindings: media: Add DT bindings for TI CSI2RX driver Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-31 13:40 ` Rob Herring 2021-03-31 13:40 ` Rob Herring 2021-04-01 15:52 ` Rob Herring 2021-04-01 15:52 ` Rob Herring 2021-04-02 10:01 ` Laurent Pinchart 2021-04-02 10:01 ` Laurent Pinchart 2021-04-02 10:53 ` Laurent Pinchart 2021-04-02 10:53 ` Laurent Pinchart 2021-04-06 18:15 ` Pratyush Yadav 2021-04-06 18:15 ` Pratyush Yadav 2021-04-06 18:13 ` Pratyush Yadav 2021-04-06 18:13 ` Pratyush Yadav 2021-04-06 18:00 ` Pratyush Yadav 2021-04-06 18:00 ` Pratyush Yadav 2021-04-01 15:52 ` Rob Herring 2021-04-01 15:52 ` Rob Herring 2021-03-30 17:33 ` [PATCH 13/16] media: ti-vpe: csi2rx: Add CSI2RX support Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-03-31 6:06 ` Tomi Valkeinen 2021-03-31 6:06 ` Tomi Valkeinen 2021-03-31 15:44 ` Benoit Parrot 2021-03-31 15:44 ` Benoit Parrot 2021-03-31 15:50 ` Laurent Pinchart 2021-03-31 15:50 ` Laurent Pinchart 2021-04-06 15:05 ` Pratyush Yadav 2021-04-06 15:05 ` Pratyush Yadav 2021-04-04 13:38 ` Péter Ujfalusi 2021-04-04 13:38 ` Péter Ujfalusi 2021-03-30 17:33 ` [PATCH 14/16] dt-bindings: phy: Convert Cadence DPHY binding to YAML Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-04-02 10:23 ` Laurent Pinchart 2021-04-02 10:23 ` Laurent Pinchart 2021-04-06 18:51 ` Pratyush Yadav 2021-04-06 18:51 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 15/16] dt-bindings: phy: cdns,dphy: make clocks optional Pratyush Yadav 2021-03-30 17:33 ` Pratyush Yadav 2021-04-02 10:31 ` Laurent Pinchart 2021-04-02 10:31 ` Laurent Pinchart 2021-04-06 18:48 ` Pratyush Yadav 2021-04-06 18:48 ` Pratyush Yadav 2021-03-30 17:33 ` [PATCH 16/16] dt-bindings: phy: cdns,dphy: add power-domains property Pratyush Yadav 2021-03-30 17:33 ` [PATCH 16/16] dt-bindings: phy: cdns, dphy: " Pratyush Yadav 2021-04-02 10:35 ` [PATCH 16/16] dt-bindings: phy: cdns,dphy: " Laurent Pinchart 2021-04-02 10:35 ` Laurent Pinchart 2021-04-06 18:23 ` Pratyush Yadav 2021-04-06 18:23 ` Pratyush Yadav 2021-03-31 9:33 ` [PATCH 00/16] CSI2RX support on J721E Vinod Koul 2021-03-31 9:33 ` Vinod Koul 2021-03-31 11:40 ` Pratyush Yadav 2021-03-31 11:40 ` Pratyush Yadav 2021-03-31 13:06 ` Vinod Koul 2021-03-31 13:06 ` Vinod Koul 2021-03-31 13:51 ` Pratyush Yadav 2021-03-31 13:51 ` Pratyush Yadav 2021-04-02 10:57 ` Laurent Pinchart 2021-04-02 10:57 ` Laurent Pinchart
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210330173348.30135-3-p.yadav@ti.com \ --to=p.yadav@ti.com \ --cc=acourbot@chromium.org \ --cc=bparrot@ti.com \ --cc=chunfeng.yun@mediatek.com \ --cc=devicetree@vger.kernel.org \ --cc=dmaengine@vger.kernel.org \ --cc=helen.koike@collabora.com \ --cc=hverkuil-cisco@xs4all.nl \ --cc=kishon@ti.com \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-phy@lists.infradead.org \ --cc=m.tretter@pengutronix.de \ --cc=mchehab@kernel.org \ --cc=mripard@kernel.org \ --cc=peter.chen@nxp.com \ --cc=peter.ujfalusi@gmail.com \ --cc=robh+dt@kernel.org \ --cc=stanimir.varbanov@linaro.org \ --cc=tomi.valkeinen@ideasonboard.com \ --cc=vigneshr@ti.com \ --cc=vkoul@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.