[PATCH v4 2/2] phy: amlogic: Add G12A Analog MIPI D-PHY driver

Neil Armstrong narmstrong at baylibre.com
Tue Jul 5 00:20:11 PDT 2022


On 27/06/2022 00:21, Martin Blumenstingl wrote:
> Hi Neil,
> 
> On Thu, Jun 16, 2022 at 3:39 PM Neil Armstrong <narmstrong at baylibre.com> wrote:
>>
>> The Amlogic G12A SoCs embeds an Analog MIPI D-PHY used to communicate with DSI
>> panels.
>>
>> Signed-off-by: Neil Armstrong <narmstrong at baylibre.com>
>> ---
>>   drivers/phy/amlogic/Kconfig                   |  12 ++
>>   drivers/phy/amlogic/Makefile                  |   1 +
>>   .../amlogic/phy-meson-g12a-mipi-dphy-analog.c | 177 ++++++++++++++++++
>>   3 files changed, 190 insertions(+)
>>   create mode 100644 drivers/phy/amlogic/phy-meson-g12a-mipi-dphy-analog.c
>>
>> diff --git a/drivers/phy/amlogic/Kconfig b/drivers/phy/amlogic/Kconfig
>> index 486ca23aba32..e4d1170efd54 100644
>> --- a/drivers/phy/amlogic/Kconfig
>> +++ b/drivers/phy/amlogic/Kconfig
>> @@ -59,6 +59,18 @@ config PHY_MESON_G12A_USB3_PCIE
>>            in Meson G12A SoCs.
>>            If unsure, say N.
>>
>> +config PHY_MESON_G12A_MIPI_DPHY_ANALOG
>> +       tristate "Meson G12A MIPI Analog DPHY driver"
>> +       default ARCH_MESON
>> +       depends on OF && (ARCH_MESON || COMPILE_TEST)
>> +       select GENERIC_PHY
>> +       select REGMAP_MMIO
> I think this should be "select MFD_SYSCON" as we're not using
> REGMAP_MMIO directly
> 
> [...]
>> +       /* Get the hhi system controller node */
>> +       map = syscon_node_to_regmap(of_get_parent(dev->of_node));
> I just reviewed a patch that adds of_node_put() for the node returned
> by of_get_parent() (after (syscon_node_to_regmap() has been used).
> I think we need the same here
> 
>> +       if (IS_ERR(map)) {
>> +               dev_err(dev,
>> +                       "failed to get HHI regmap\n");
>> +               return PTR_ERR(map);
> to simplify we can use:
>      return dev_err_probe(dev, PTR_ERR(map), "failed to get HHI regmap\n");
> doesn't make much difference for this one though, but...
> 
> [...]
>> +       priv->phy = devm_phy_create(dev, np, &phy_g12a_mipi_dphy_analog_ops);
>> +       if (IS_ERR(priv->phy)) {
>> +               ret = PTR_ERR(priv->phy);
>> +               if (ret != -EPROBE_DEFER)
>> +                       dev_err(dev, "failed to create PHY\n");
>> +               return ret;
> here dev_err_probe() would simplify the code a lot
> 
> [...]
>> +static const struct of_device_id phy_g12a_mipi_dphy_analog_of_match[] = {
>> +       {
>> +               .compatible = "amlogic,g12a-mipi-dphy-analog",
>> +       },
>> +       { /* sentinel */ },
> super nit-pick: no comma here
> 
> 
> Best regards,
> Martin

Thanks,
will fix all that.

Neil




More information about the linux-amlogic mailing list