On 13/03/2026 09:12, Max Merchel wrote:
> 
> On 3/12/26 20:26, Krzysztof Kozlowski wrote:
>> The driver requests explicitly "reset-gpio" property, not the one with
>> "gpios" suffix but upstream Linux kernel deprecated it in 2021.
>> Existing upstream Linux kernel DTS is being changed to "reset-gpios"
>> property, thus update the driver to read that one too.
>>
>> Note that driver is probably broken already, because it parsed GPIO in
>> standard way respecting the flags and on top of that applied the
>> "reset-gpio-active-high" flag, thus "reset-gpio ACTIVE_LOW" with the
>> "reset-gpio-active-high" property would be double inverted.
>>
>> Signed-off-by: Krzysztof Kozlowski <[email protected]>
>>
>> ---
>>
>> 1. 
>> https://lore.kernel.org/linux-devicetree/20260312-dts-snps-reset-gpios-v2-12-0d5040eb4...@oss.qualcomm.com/
>> 2. See Linux kernel commit 42694f9f6407 ("dt-bindings: PCI: add 
>> snps,dw-pcie.yaml")
>> ---
>>   drivers/pci/pcie_imx.c | 22 +++++++++++++++++++---
>>   1 file changed, 19 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c
>> index 11c4ccbfc555..8d853ecf2c22 100644
>> --- a/drivers/pci/pcie_imx.c
>> +++ b/drivers/pci/pcie_imx.c
>> @@ -728,15 +728,31 @@ static int imx_pcie_dm_write_config(struct udevice 
>> *dev, pci_dev_t bdf,
>>   static int imx_pcie_dm_probe(struct udevice *dev)
>>   {
>>      struct imx_pcie_priv *priv = dev_get_priv(dev);
>> +    int ret;
>>   
>>   #if CONFIG_IS_ENABLED(DM_REGULATOR)
>>      device_get_supply_regulator(dev, "vpcie-supply", &priv->vpcie);
>>   #endif
>>   
>>      /* if PERST# valid from dt then assert it */
>> -    gpio_request_by_name(dev, "reset-gpio", 0, &priv->reset_gpio,
>> -                         GPIOD_IS_OUT);
>> -    priv->reset_active_high = dev_read_bool(dev, "reset-gpio-active-high");
>> +    ret = gpio_request_by_name(dev, "reset-gpio", 0, &priv->reset_gpio,
>> +                               GPIOD_IS_OUT);
>> +    if (!ret) {
>> +            /*
>> +             * Legacy property, invert assert logic based on
>> +             * reset-gpio-active-high. This won't work if flags are not
>> +             * matching the reset-gpio-active-high.
>> +             */
>> +            priv->reset_active_high = dev_read_bool(dev, 
>> "reset-gpio-active-high");
> 
> A warning should also be issued when using the deprecated "reset-gpio" 
> property.
> 
>              dev_warn(dev, "reset-gpio property deprecated, use 
> reset-gpios\n");
> 
Why? What would end user seeing this in their serial console do? The
deprecated property is not a mistake, it's just deprecated.

Best regards,
Krzysztof

Reply via email to