[PATCH v1 2/2] phy: starfive: Add mipi dphy tx support
Shengyang Chen
shengyang.chen at starfivetech.com
Sun Dec 3 23:22:54 PST 2023
Hi Philipp,
Thanks for review and comment.
On 2023/11/27 21:17, Philipp Zabel wrote:
> On Fr, 2023-11-17 at 21:04 +0800, Shengyang Chen wrote:
>> Add mipi dphy tx support for the StarFive JH7110 SoC.
>> It is used to transfer DSI data.
>>
>> Signed-off-by: Shengyang Chen <shengyang.chen at starfivetech.com>
>> ---
> [...]
>> diff --git a/drivers/phy/starfive/phy-jh7110-dphy-tx.c b/drivers/phy/starfive/phy-jh7110-dphy-tx.c
>> new file mode 100644
>> index 000000000000..69aa172563e4
>> --- /dev/null
>> +++ b/drivers/phy/starfive/phy-jh7110-dphy-tx.c
>> @@ -0,0 +1,542 @@
> [...]
>> +static int stf_dphy_probe(struct platform_device *pdev)
>> +{
> [...]
>> + dphy->topsys = devm_platform_ioremap_resource(pdev, 0);
>> + if (IS_ERR(dphy->topsys)) {
>> + ret = PTR_ERR(dphy->topsys);
>> + return ret;
>
> This could be shortened to:
>
> return PTR_ERR(dphy->topsys);
>
ok, will shortened to "return PTR_ERR(dphy->topsys);"
>> + }
>> +
>> + pm_runtime_enable(&pdev->dev);
>> +
>> + dphy->mipitx_0p9 = devm_regulator_get(&pdev->dev, "mipi_0p9");
>> + if (IS_ERR(dphy->mipitx_0p9)) {
>> + ret = PTR_ERR(dphy->mipitx_0p9);
>> + return ret;
>
> Same as above.
>
ok, will fix it.
>> + }
>> +
>> + dphy->txesc_clk = devm_clk_get(&pdev->dev, "dphy_txesc");
>> + if (IS_ERR(dphy->txesc_clk)) {
>> + ret = PTR_ERR(dphy->txesc_clk);
>> + dev_err(&pdev->dev, "txesc_clk get error\n");
>> + return ret;
>
> Consider using dev_err_probe():
>
> return dev_err_probe(&pdev->dev, PTR_ERR(dphy->txesc_clk),
> "txesc_clk get error\n");
>
> And the same for the error paths below.
>
ok, it will be tried and verified. It will be used if no problem.
>> + }
>> +
>> + dphy->sys_rst = reset_control_get_exclusive(&pdev->dev, "dphy_sys");
>
> Why not devm_reset_control_get_exclusive()?
>
ok, it will be tried and verified. It will be used if no problem.
>> + if (IS_ERR(dphy->sys_rst)) {
>> + ret = PTR_ERR(dphy->sys_rst);
>> + dev_err(&pdev->dev, "sys_rst get error\n");
>> + return ret;
>> + }
>> +
>> + dphy->txbytehs_rst = reset_control_get_exclusive(&pdev->dev, "dsi_txbytehs");
>
> Same as above.
>
ok, I'll follow up on this.
>> + if (IS_ERR(dphy->txbytehs_rst)) {
>> + dev_err(&pdev->dev, "Failed to get txbytehs_rst\n");
>> + return PTR_ERR(dphy->txbytehs_rst);
>> + }
>> +
>> + dphy->phy = devm_phy_create(&pdev->dev, NULL, &stf_dphy_ops);
>> + if (IS_ERR(dphy->phy)) {
>> + ret = PTR_ERR(dphy->phy);
>> + dev_err(&pdev->dev, "Failed to create phy\n");
>> + return ret;
>> + }
>> + phy_set_drvdata(dphy->phy, dphy);
>> +
>> + phy_provider = devm_of_phy_provider_register(&pdev->dev, of_phy_simple_xlate);
>> + if (IS_ERR(phy_provider)) {
>> + ret = PTR_ERR(phy_provider);
>> + dev_err(&pdev->dev, "Failed to create phy\n");
>> + return ret;
>> + }
>> +
>> + return PTR_ERR_OR_ZERO(phy_provider);
>
> This can not be reached in the error case, so just:
>
> return 0;
>
> should suffice.
>
ok, will fix it.
>
> regards
> Philipp
thanks a lot.
Best Regards,
Shengyang
More information about the linux-phy
mailing list