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

Konrad Dybcio posted 8 patches 4 days, 16 hours ago
Only 7 patches received!
.../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(-)
[RFC PATCH 0/8] Fix TCSR representation on SM8750
Posted by Konrad Dybcio 4 days, 16 hours ago
As sparked by this thread:
<20260112151725.2308971-1-mukesh.ojha@oss.qualcomm.com>

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 <konrad.dybcio@oss.qualcomm.com>
---
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 <konrad.dybcio@oss.qualcomm.com>
Re: [RFC PATCH 0/8] Fix TCSR representation on SM8750
Posted by Mukesh Ojha 4 days, 12 hours ago
On Mon, Feb 02, 2026 at 03:57:32PM +0100, Konrad Dybcio wrote:
> As sparked by this thread:
> <20260112151725.2308971-1-mukesh.ojha@oss.qualcomm.com>
> 
> 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 <konrad.dybcio@oss.qualcomm.com>

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 <konrad.dybcio@oss.qualcomm.com>
> 

-- 
-Mukesh Ojha
Re: [RFC PATCH 0/8] Fix TCSR representation on SM8750
Posted by Konrad Dybcio 3 days, 19 hours ago
On 2/2/26 7:19 PM, Mukesh Ojha wrote:
> On Mon, Feb 02, 2026 at 03:57:32PM +0100, Konrad Dybcio wrote:
>> As sparked by this thread:
>> <20260112151725.2308971-1-mukesh.ojha@oss.qualcomm.com>
>>
>> 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 <konrad.dybcio@oss.qualcomm.com>
> 
> Thanks Konrad for taking this forward, while I was also working on your
> suggestion to make tlmm a clock provider.

I was under the impression you abandoned that patch, but indeed I
should have asked first. My intention wasn't to beat you to it, but
to unblock it. Please accept my apologies.

Konrad