Add opp-level to indicate PCIe data rates and also define OPP enteries
for each link width and data rate.
Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sm8450.dtsi | 41 +++++++++++++++++++++++++++++-------
1 file changed, 33 insertions(+), 8 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index 33574ad706b915136546c7f92c7cd0b8a0d62b7e..d7f8706ca4949e253a4102474c92b393a345262f 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -2052,6 +2052,7 @@ opp-2500000 {
opp-hz = /bits/ 64 <2500000>;
required-opps = <&rpmhpd_opp_low_svs>;
opp-peak-kBps = <250000 1>;
+ opp-level = <1>;
};
/* GEN 2 x1 */
@@ -2059,6 +2060,7 @@ opp-5000000 {
opp-hz = /bits/ 64 <5000000>;
required-opps = <&rpmhpd_opp_low_svs>;
opp-peak-kBps = <500000 1>;
+ opp-level = <2>;
};
/* GEN 3 x1 */
@@ -2066,6 +2068,7 @@ opp-8000000 {
opp-hz = /bits/ 64 <8000000>;
required-opps = <&rpmhpd_opp_nom>;
opp-peak-kBps = <984500 1>;
+ opp-level = <3>;
};
};
@@ -2210,45 +2213,67 @@ pcie1_opp_table: opp-table {
compatible = "operating-points-v2";
/* GEN 1 x1 */
- opp-2500000 {
+ opp-2500000-1 {
opp-hz = /bits/ 64 <2500000>;
required-opps = <&rpmhpd_opp_low_svs>;
opp-peak-kBps = <250000 1>;
+ opp-level = <1>;
};
- /* GEN 1 x2 and GEN 2 x1 */
- opp-5000000 {
+ /* GEN 1 x2 */
+ opp-5000000-1 {
+ opp-hz = /bits/ 64 <5000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ opp-peak-kBps = <500000 1>;
+ opp-level = <1>;
+ };
+
+ /* GEN 2 x1 */
+ opp-5000000-2 {
opp-hz = /bits/ 64 <5000000>;
required-opps = <&rpmhpd_opp_low_svs>;
opp-peak-kBps = <500000 1>;
+ opp-level = <2>;
};
/* GEN 2 x2 */
- opp-10000000 {
+ opp-10000000-2 {
opp-hz = /bits/ 64 <10000000>;
required-opps = <&rpmhpd_opp_low_svs>;
opp-peak-kBps = <1000000 1>;
+ opp-level = <2>;
};
/* GEN 3 x1 */
- opp-8000000 {
+ opp-8000000-3 {
opp-hz = /bits/ 64 <8000000>;
required-opps = <&rpmhpd_opp_nom>;
opp-peak-kBps = <984500 1>;
+ opp-level = <3>;
+ };
+
+ /* GEN 3 x2 */
+ opp-16000000-3 {
+ opp-hz = /bits/ 64 <16000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <1969000 1>;
+ opp-level = <3>;
};
- /* GEN 3 x2 and GEN 4 x1 */
- opp-16000000 {
+ /* GEN 4 x1 */
+ opp-16000000-4 {
opp-hz = /bits/ 64 <16000000>;
required-opps = <&rpmhpd_opp_nom>;
opp-peak-kBps = <1969000 1>;
+ opp-level = <4>;
};
/* GEN 4 x2 */
- opp-32000000 {
+ opp-32000000-4 {
opp-hz = /bits/ 64 <32000000>;
required-opps = <&rpmhpd_opp_nom>;
opp-peak-kBps = <3938000 1>;
+ opp-level = <4>;
};
};
--
2.34.1
On 18-08-25, 13:52, Krishna Chaitanya Chundru wrote:
> @@ -2210,45 +2213,67 @@ pcie1_opp_table: opp-table {
> compatible = "operating-points-v2";
>
> /* GEN 1 x1 */
> - opp-2500000 {
> + opp-2500000-1 {
Why mention -1 here when there is only one entry with this freq value
?
> opp-hz = /bits/ 64 <2500000>;
> required-opps = <&rpmhpd_opp_low_svs>;
> opp-peak-kBps = <250000 1>;
> + opp-level = <1>;
> };
>
> - /* GEN 1 x2 and GEN 2 x1 */
> - opp-5000000 {
> + /* GEN 1 x2 */
> + opp-5000000-1 {
> + opp-hz = /bits/ 64 <5000000>;
> + required-opps = <&rpmhpd_opp_low_svs>;
> + opp-peak-kBps = <500000 1>;
> + opp-level = <1>;
> + };
> +
> + /* GEN 2 x1 */
> + opp-5000000-2 {
> opp-hz = /bits/ 64 <5000000>;
> required-opps = <&rpmhpd_opp_low_svs>;
> opp-peak-kBps = <500000 1>;
> + opp-level = <2>;
> };
This looks okay.
>
> /* GEN 2 x2 */
> - opp-10000000 {
> + opp-10000000-2 {
Why -2 here ?
> opp-hz = /bits/ 64 <10000000>;
> required-opps = <&rpmhpd_opp_low_svs>;
> opp-peak-kBps = <1000000 1>;
> + opp-level = <2>;
> };
>
> /* GEN 3 x1 */
> - opp-8000000 {
> + opp-8000000-3 {
same.
> opp-hz = /bits/ 64 <8000000>;
> required-opps = <&rpmhpd_opp_nom>;
> opp-peak-kBps = <984500 1>;
> + opp-level = <3>;
> + };
> +
> + /* GEN 3 x2 */
> + opp-16000000-3 {
Shouldn't this be opp-16000000-1 only ? This is the first occurrence
16000000.
> + opp-hz = /bits/ 64 <16000000>;
> + required-opps = <&rpmhpd_opp_nom>;
> + opp-peak-kBps = <1969000 1>;
> + opp-level = <3>;
> };
>
> - /* GEN 3 x2 and GEN 4 x1 */
> - opp-16000000 {
> + /* GEN 4 x1 */
> + opp-16000000-4 {
opp-16000000-2 ?
--
viresh
On 8/18/2025 2:32 PM, Viresh Kumar wrote:
> On 18-08-25, 13:52, Krishna Chaitanya Chundru wrote:
>> @@ -2210,45 +2213,67 @@ pcie1_opp_table: opp-table {
>> compatible = "operating-points-v2";
>>
>> /* GEN 1 x1 */
>> - opp-2500000 {
>> + opp-2500000-1 {
>
> Why mention -1 here when there is only one entry with this freq value
> ?
>
>> opp-hz = /bits/ 64 <2500000>;
>> required-opps = <&rpmhpd_opp_low_svs>;
>> opp-peak-kBps = <250000 1>;
>> + opp-level = <1>;
>> };
>>
>> - /* GEN 1 x2 and GEN 2 x1 */
>> - opp-5000000 {
>> + /* GEN 1 x2 */
>> + opp-5000000-1 {
>> + opp-hz = /bits/ 64 <5000000>;
>> + required-opps = <&rpmhpd_opp_low_svs>;
>> + opp-peak-kBps = <500000 1>;
>> + opp-level = <1>;
>> + };
>> +
>> + /* GEN 2 x1 */
>> + opp-5000000-2 {
>> opp-hz = /bits/ 64 <5000000>;
>> required-opps = <&rpmhpd_opp_low_svs>;
>> opp-peak-kBps = <500000 1>;
>> + opp-level = <2>;
>> };
>
> This looks okay.
>
>>
>> /* GEN 2 x2 */
>> - opp-10000000 {
>> + opp-10000000-2 {
>
> Why -2 here ?
>
>> opp-hz = /bits/ 64 <10000000>;
>> required-opps = <&rpmhpd_opp_low_svs>;
>> opp-peak-kBps = <1000000 1>;
>> + opp-level = <2>;
>> };
>>
>> /* GEN 3 x1 */
>> - opp-8000000 {
>> + opp-8000000-3 {
>
> same.
>
>> opp-hz = /bits/ 64 <8000000>;
>> required-opps = <&rpmhpd_opp_nom>;
>> opp-peak-kBps = <984500 1>;
>> + opp-level = <3>;
>> + };
>> +
>> + /* GEN 3 x2 */
>> + opp-16000000-3 {
>
> Shouldn't this be opp-16000000-1 only ? This is the first occurrence
> 16000000.
>
>> + opp-hz = /bits/ 64 <16000000>;
>> + required-opps = <&rpmhpd_opp_nom>;
>> + opp-peak-kBps = <1969000 1>;
>> + opp-level = <3>;
>> };
>>
>> - /* GEN 3 x2 and GEN 4 x1 */
>> - opp-16000000 {
>> + /* GEN 4 x1 */
>> + opp-16000000-4 {
>
> opp-16000000-2 ?
I tried to add the level as prefix as that will indicate the PCIe date
rate also instead of 1, 2 to make more aligned with the PCIe
representations. I will update this in the commit text in my next
series.
- Krishna Chaitanya.
>
On 18-08-25, 14:37, Krishna Chaitanya Chundru wrote: > I tried to add the level as prefix as that will indicate the PCIe date > rate also instead of 1, 2 to make more aligned with the PCIe > representations. I will update this in the commit text in my next > series. Okay, I will let the DT maintainers confirm if that is okay or not. -- viresh
© 2016 - 2026 Red Hat, Inc.