On Mon, 28 Mar 2022 10:20, AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> wrote: >Il 28/03/22 00:39, Guillaume Ranquet ha scritto: >> From: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx> >> >> This is a new driver that supports the integrated DisplayPort phy for >> mediatek SoCs, especially the mt8195. The phy is integrated into the >> DisplayPort controller and will be created by the mtk-dp driver. This >> driver expects a struct regmap to be able to work on the same registers >> as the DisplayPort controller. It sets the device data to be the struct >> phy so that the DisplayPort controller can easily work with it. >> >> The driver does not have any devicetree bindings because the datasheet >> does not list the controller and the phy as distinct units. >> >> The interaction with the controller can be covered by the configure >> callback of the phy framework and its displayport parameters. >> >> Signed-off-by: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx> >> Signed-off-by: Guillaume Ranquet <granquet@xxxxxxxxxxxx> >> --- >> MAINTAINERS | 1 + >> drivers/phy/mediatek/Kconfig | 8 ++ >> drivers/phy/mediatek/Makefile | 1 + >> drivers/phy/mediatek/phy-mtk-dp.c | 201 ++++++++++++++++++++++++++++++ >> 4 files changed, 211 insertions(+) >> create mode 100644 drivers/phy/mediatek/phy-mtk-dp.c >> > >..snip.. > >> diff --git a/drivers/phy/mediatek/phy-mtk-dp.c b/drivers/phy/mediatek/phy-mtk-dp.c >> new file mode 100644 >> index 000000000000..e5c5494f3636 >> --- /dev/null >> +++ b/drivers/phy/mediatek/phy-mtk-dp.c > >..snip.. > >> + >> +static int mtk_dp_phy_probe(struct platform_device *pdev) >> +{ >> + struct device *dev = &pdev->dev; >> + struct mtk_dp_phy *dp_phy; >> + struct phy *phy; >> + struct regmap *regs; >> + >> + regs = syscon_regmap_lookup_by_phandle(dev->of_node, "mediatek,dp-syscon"); >> + > >Please drop this blank line > >> + if (IS_ERR(regs)) >> + return PTR_ERR(regs); >> + >> + dp_phy = devm_kzalloc(dev, sizeof(*dp_phy), GFP_KERNEL); >> + if (!dp_phy) >> + return -ENOMEM; >> + >> + dp_phy->regs = regs; >> + >> + phy = devm_phy_create(dev, NULL, &mtk_dp_phy_dev_ops); >> + > >Same here > >> + if (IS_ERR(phy)) >> + return dev_err_probe(dev, PTR_ERR(phy), "Failed to create DP PHY: %ld\n", PTR_ERR(phy)); >> + > >Using dev_err_probe automates printing the error, so the correct usage is: > >return dev_err_probe(dev, PTR_ERR(phy), "Failed to create DP PHY\n"); > >> + phy_set_drvdata(phy, dp_phy); >> + >> + return 0; >> +} >> + >> +struct platform_driver mtk_dp_phy_driver = { >> + .probe = mtk_dp_phy_probe, >> + .driver = { >> + .name = "mediatek-dp-phy", >> + }, >> +}; >> +module_platform_driver(mtk_dp_phy_driver); > >Also, in your dt-binding, you mention a compatible for this driver, but I don't see >any, here. This means that you do know what to do, so please do it. > Following the comments from rob [1], I'll revert back to using platform_device_register_data() from v8. [1] https://lore.kernel.org/linux-mediatek/YkOPB5W7uXkOc72%2F@xxxxxxxxxxxxxxxxxx/ >Regards, >Angelo > >> + >> +MODULE_AUTHOR("Markus Schneider-Pargmann <msp@xxxxxxxxxxxx>"); >> +MODULE_DESCRIPTION("MediaTek DP PHY Driver"); >> +MODULE_LICENSE("GPL"); >