mbox series

[v2,0/5] Add rpmcc and rpmpd for SM4250/6115

Message ID 20210627185927.695411-1-iskren.chernev@gmail.com
Headers show
Series Add rpmcc and rpmpd for SM4250/6115 | expand

Message

Iskren Chernev June 27, 2021, 6:59 p.m. UTC
This patch adds support for the RPM clocks and power domains on QCom SM4250 and
SM6115, codename bengal. The rpmcc code is converted from downstream code
(OnePlus repo [1]), and the rpmpd is converted from downstream DT extracted
from OnePlus Nord N100.

The downstream code has additional voter clocks, which let consumers vote and
the driver to select the highest desired clock rate for a given (real) parent
clock [2]. I might port that as well in the near future, let me know if there
is a more elegant solution.

[1]: https://github.com/OnePlusOSS/android_kernel_oneplus_sm4250
[2]: https://source.codeaurora.org/quic/server/kernel/commit/?h=v4.9.137&id=6a4951a8308c5729ae8e502787cb705477c94251

v1: https://lkml.org/lkml/2021/6/22/1171

Changes from v1:
- remove 4250 compatible, both platforms will share one dtsi
- reuse existing clocks as per a0384ecfe2aa ("clk: qcom: smd-rpm: De-duplicate identical entries")

Iskren Chernev (5):
  dt-bindings: soc: qcom: smd-rpm: Add SM6115 compatible
  dt-bindings: clock: qcom: rpmcc: Document SM6115 compatible
  clk: qcom: smd: Add support for SM6115 rpm clocks
  dt-bindings: power: rpmpd: Add SM6115 to rpmpd binding
  drivers: soc: qcom: rpmpd: Add SM6115 RPM Power Domains

 .../devicetree/bindings/clock/qcom,rpmcc.txt  |  1 +
 .../devicetree/bindings/power/qcom,rpmpd.yaml |  1 +
 .../bindings/soc/qcom/qcom,smd-rpm.yaml       |  1 +
 drivers/clk/qcom/clk-smd-rpm.c                | 54 +++++++++++++++++++
 drivers/soc/qcom/rpmpd.c                      | 28 ++++++++++
 drivers/soc/qcom/smd-rpm.c                    |  1 +
 include/dt-bindings/clock/qcom,rpmcc.h        | 10 ++++
 include/dt-bindings/power/qcom-rpmpd.h        | 10 ++++
 include/linux/soc/qcom/smd-rpm.h              |  1 +
 9 files changed, 107 insertions(+)


base-commit: 8702f95941c215501826ea8743a8b64b83479209
prerequisite-patch-id: 07d651c82e8f1fd3069d1a03fad5b529d8756a66
prerequisite-patch-id: 5767ec002a675cd486a56663d422a267f0d51a8a
prerequisite-patch-id: 2f407fff6d711a8c0610be7166b19174253d2bba
prerequisite-patch-id: 28e53420187ed7a994ea8b6531b42fb1756f69a6
--
2.32.0

Comments

Stephen Boyd July 27, 2021, 9:40 p.m. UTC | #1
Quoting Iskren Chernev (2021-06-27 11:59:25)
> diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c
> index bc0be1d4be5f..dfdd4f20f5fd 100644
> --- a/drivers/soc/qcom/smd-rpm.c
> +++ b/drivers/soc/qcom/smd-rpm.c
> @@ -242,6 +242,7 @@ static const struct of_device_id qcom_smd_rpm_of_match[] = {
>         { .compatible = "qcom,rpm-msm8996" },
>         { .compatible = "qcom,rpm-msm8998" },
>         { .compatible = "qcom,rpm-sdm660" },
> +       { .compatible = "qcom,rpm-sm6115" },
>         { .compatible = "qcom,rpm-sm6125" },
>         { .compatible = "qcom,rpm-qcs404" },
>         {}

Does this hunk need to be part of this patch?