[PATCH 1/4] PCI: of: Add of_pci_clkreq_present()

Shawn Lin shawn.lin at rock-chips.com
Wed Oct 22 02:17:12 PDT 2025


在 2025/10/22 星期三 0:16, Frank Li 写道:
> On Tue, Oct 21, 2025 at 03:48:24PM +0800, Shawn Lin wrote:
>> of_pci_clkreq_present() is used by host drivers to decide whether the clkreq#
>> is properly connected and could enable L1.1/L1.2 support.
>>
>> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
>> ---
>>   drivers/pci/of.c  | 18 ++++++++++++++++++
>>   drivers/pci/pci.h |  6 ++++++
>>   2 files changed, 24 insertions(+)
>>
>> diff --git a/drivers/pci/of.c b/drivers/pci/of.c
>> index 3579265f1198..52c6d365083b 100644
>> --- a/drivers/pci/of.c
>> +++ b/drivers/pci/of.c
>> @@ -1010,3 +1010,21 @@ int of_pci_get_equalization_presets(struct device *dev,
>>   	return 0;
>>   }
>>   EXPORT_SYMBOL_GPL(of_pci_get_equalization_presets);
>> +
>> +/**
>> + * of_pci_clkreq_present() - Check if the "supports-clkreq" is present
>> + * @np: Device tree node
>> + *
>> + * If the property is present, it means CLKREQ# is properly connected
>> + * and the hardware is ready to support L1.1/L1.2
>> + *
>> + * Return: true if the property is available, false otherwise.
>> + */
>> +bool of_pci_clkreq_present(struct device_node *np)
>> +{
>> +	if (!np)
>> +		return false;
>> +
>> +	return of_property_present(np, "supports-clkreq");
>> +}
>> +EXPORT_SYMBOL_GPL(of_pci_clkreq_present);
> 
> This helper function is quite small. I suggest direct put inline function
> into pci.h to keep simple.

Sounds reasonable, will wait for other comments and fix your comment
together in V2.

> 
> static inline bool of_pci_clkreq_present(struct device_node *np)
> {
> 	return np && of_property_present(np, "supports-clkreq");
> }
> 
> Frank
> 
>> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
>> index 4492b809094b..2421e39e6e48 100644
>> --- a/drivers/pci/pci.h
>> +++ b/drivers/pci/pci.h
>> @@ -1061,6 +1061,7 @@ bool of_pci_supply_present(struct device_node *np);
>>   int of_pci_get_equalization_presets(struct device *dev,
>>   				    struct pci_eq_presets *presets,
>>   				    int num_lanes);
>> +bool of_pci_clkreq_present(struct device_node *np);
>>   #else
>>   static inline int
>>   of_get_pci_domain_nr(struct device_node *node)
>> @@ -1106,6 +1107,11 @@ static inline bool of_pci_supply_present(struct device_node *np)
>>   	return false;
>>   }
>>
>> +static inline bool of_pci_clkreq_present(struct device_node *np)
>> +{
>> +	return false;
>> +}
>> +
>>   static inline int of_pci_get_equalization_presets(struct device *dev,
>>   						  struct pci_eq_presets *presets,
>>   						  int num_lanes)
>> --
>> 2.43.0
>>
> 
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
> 




More information about the Linux-rockchip mailing list