[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