Thread (21 messages) 21 messages, 6 authors, 2026-02-17

Re: [RFC PATCH 0/8] Fix TCSR representation on SM8750

From: Mukesh Ojha <hidden>
Date: 2026-02-02 18:19:29
Also in: linux-arm-msm, linux-clk, linux-gpio, lkml

On Mon, Feb 02, 2026 at 03:57:32PM +0100, Konrad Dybcio wrote:
As sparked by this thread:
[ref]

The current representation of TCSR is wrong.

On platforms post and including SM8550, the TCSR had a sub-block in it,
containing gate clocks used for distributing the XO output to various
consumers. This is what we refer to as TCSR_CC upstream.

SM8750 however, is notably different. That same set of tunables had
been moved to the TLMM register space. This is made worse, as the
sm8750-tcsrcc driver consumes the qcom,sm8750-tcsr compatible.

This hardware change had been undone with the generation following
8750.

This series attempts to unwind that. It's difficult to merge, both for
bindings and functional reasons..

I think it goes without saying this breaks backwards compatibility, but
it has to be done to represent TCSR at all. The patches are ordered in
a least-destructive order..

I gave this a quick spin on (remote) hw, the UFS (one of the consumers)
still works, but more testing would be greatly appreciated.

Signed-off-by: Konrad Dybcio <redacted>
Thanks Konrad for taking this forward, while I was also working on your
suggestion to make tlmm a clock provider.
---
Konrad Dybcio (8):
      dt-bindings: Move qcom,sm8750-tcsr from clock/tcsr to mfd/tcsr
      dt-bindings: pinctrl: qcom,sm8750-tlmm: Allow clocks/clock-cells
      pinctrl: qcom: Allow exposing reference clocks living in TLMM reg space
      pinctrl: qcom: sm8750: Expose reference clocks
      arm64: dts: qcom: Remove inexistent TCSR_CC
      clk: qcom: Remove tcsrcc-sm8750
      arm64: dts: qcom: sm8750: Describe TCSR
      arm64: defconfig: Remove CONFIG_SM_TCSRCC_8750

 .../bindings/clock/qcom,sm8550-tcsr.yaml           |   2 -
 .../devicetree/bindings/mfd/qcom,tcsr.yaml         |   1 +
 .../bindings/pinctrl/qcom,sm8750-tlmm.yaml         |  12 ++
 arch/arm64/boot/dts/qcom/sm8750.dtsi               |  27 ++--
 arch/arm64/configs/defconfig                       |   1 -
 drivers/clk/qcom/Kconfig                           |   8 --
 drivers/clk/qcom/Makefile                          |   1 -
 drivers/clk/qcom/tcsrcc-sm8750.c                   | 141 ---------------------
 drivers/pinctrl/qcom/pinctrl-msm.c                 |  92 ++++++++++++++
 drivers/pinctrl/qcom/pinctrl-msm.h                 |  14 ++
 drivers/pinctrl/qcom/pinctrl-sm8750.c              |  31 +++++
 11 files changed, 163 insertions(+), 167 deletions(-)
---
base-commit: 4c87cdd0328495759f6e9f9f4e1e53ef8032a76f
change-id: 20260202-topic-8750_tcsr-e2dafc2f11d1

Best regards,
-- 
Konrad Dybcio [off-list ref]
-- 
-Mukesh Ojha
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help