Re: [PATCH v3 4/5] arm64: dts: qcom: purwa: Override Iris clocks and operating points

From: Dmitry Baryshkov

Date: Thu Mar 19 2026 - 06:23:43 EST


On Thu, Mar 19, 2026 at 05:23:56PM +0800, Wangao Wang wrote:
> The Iris block on X1P differs from SM8550/X1E in its clock configuration
> and requires a dedicated OPP table. The node inherited from the X1E cannot
> be reused directly, and the fallback compatible "qcom,sm8550-iris" cannot
> be applied.
>
> Override the inherited clocks, clock-names, and operating points, and
> replaces them with the X1P42100-specific definitions. A new OPP table
> is provided to support the correct performance levels on this platform.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Signed-off-by: Wangao Wang <wangao.wang@xxxxxxxxxxxxxxxx>
> ---
> arch/arm64/boot/dts/qcom/purwa.dtsi | 53 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 53 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/purwa.dtsi b/arch/arm64/boot/dts/qcom/purwa.dtsi
> index 46ffe5353f3d2fe20e70fa8373c2591863708c61..9db77fc734021ae2986ec6a231b1f6f5461e6688 100644
> --- a/arch/arm64/boot/dts/qcom/purwa.dtsi
> +++ b/arch/arm64/boot/dts/qcom/purwa.dtsi
> @@ -153,6 +153,59 @@ &gpucc {
> compatible = "qcom,x1p42100-gpucc";
> };
>
> +&iris {
> + /delete-node/ opp-table;

Use /delete-node/ &iris_opp_table; at the top of the file.

> +};
> +
> +&iris {
> + compatible = "qcom,x1p42100-iris";
> +
> + clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
> + <&videocc VIDEO_CC_MVS0C_CLK>,
> + <&videocc VIDEO_CC_MVS0_CLK>,
> + <&videocc VIDEO_CC_MVS0_BSE_CLK>;
> + clock-names = "iface",
> + "core",
> + "vcodec0_core",
> + "vcodec0_bse";
> +
> + operating-points-v2 = <&iris_opp_table_x1p42100>;
> +
> + iris_opp_table_x1p42100: opp-table {
> + compatible = "operating-points-v2";
> +
> + opp-210000000 {
> + opp-hz = /bits/ 64 <210000000 105000000>;
> + required-opps = <&rpmhpd_opp_low_svs>,

rpmhpd_opp_low_svs_d1

> + <&rpmhpd_opp_low_svs>;
> + };
> +
> + opp-300000000 {
> + opp-hz = /bits/ 64 <300000000 150000000>;
> + required-opps = <&rpmhpd_opp_svs>,

rpmhpd_opp_low_svs_d1

> + <&rpmhpd_opp_svs>;
> + };
> +
> + opp-335000000 {
> + opp-hz = /bits/ 64 <335000000 167500000>;
> + required-opps = <&rpmhpd_opp_svs_l1>,

rpmhpd_opp_svs

> + <&rpmhpd_opp_svs_l1>;
> + };
> +
> + opp-424000000 {
> + opp-hz = /bits/ 64 <424000000 212000000>;
> + required-opps = <&rpmhpd_opp_nom>,

rpmhpd_opp_svs

> + <&rpmhpd_opp_nom>;
> + };
> +
> + opp-500000000 {
> + opp-hz = /bits/ 64 <500000000 250000000>;
> + required-opps = <&rpmhpd_opp_turbo>,

rpmhpd_opp_svs

> + <&rpmhpd_opp_turbo>;
> + };
> + };
> +};
> +
> /* PCIe3 has half the lanes compared to X1E80100 */
> &pcie3 {
> num-lanes = <4>;
>
> --
> 2.43.0
>

--
With best wishes
Dmitry