2022-12-01 09:14:42

by Chen-Yu Tsai

[permalink] [raw]
Subject: [PATCH 0/4] arm64: dts: mediatek: Fix systimer clock description

Hi,

This series fixes the clock description for the systimer block. The
systimer is fed by the main 26 MHz oscillator, and internally divides
the clock, normally by 2.

However this ended up being modeled in various incorrect ways, such as
the clock divider being in the TOPCKGEN block, or as a standalone 13 MHz
oscillator.

This series fixes the description of the systimer clock input in an ABI
compatible way, i.e. the clock rate of the input clock remains the same
at 13 MHz. The clock is now modeled as a divide-by-2 fixed factor clock
being fed by the main oscillator.

An added benefit is that in Linux the systimer no longer requires the
main SoC clk driver to do an early init dance.

Please have a look.

The next step would be to fix up the systimer driver in a backward
compatible way and have it read the divider value from hardware.


Regards
ChenYu

Chen-Yu Tsai (4):
arm64: dts: mediatek: mt8183: Fix systimer 13 MHz clock description
arm64: dts: mediatek: mt8192: Fix systimer 13 MHz clock description
arm64: dts: mediatek: mt8195: Fix systimer 13 MHz clock description
arm64: dts: mediatek: mt8186: Fix systimer 13 MHz clock description

arch/arm64/boot/dts/mediatek/mt8183.dtsi | 12 ++++++++++--
arch/arm64/boot/dts/mediatek/mt8186.dtsi | 8 +++++---
arch/arm64/boot/dts/mediatek/mt8192.dtsi | 12 ++++++++++--
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 11 ++++++++++-
4 files changed, 35 insertions(+), 8 deletions(-)

--
2.38.1.584.g0f3c55d4c2-goog


2022-12-01 09:20:30

by Chen-Yu Tsai

[permalink] [raw]
Subject: [PATCH 4/4] arm64: dts: mediatek: mt8186: Fix systimer 13 MHz clock description

The systimer block derives its 13 MHz clock by dividing the main 26 MHz
oscillator clock by 2 internally. The 13 MHz clock is not a separate
oscillator.

Fix this by making the 13 MHz clock a divide-by-2 fixed factor clock,
taking its input from the main 26 MHz oscillator.

Fixes: 2e78620b1350 ("arm64: dts: Add MediaTek MT8186 dts and evaluation board and Makefile")
Signed-off-by: Chen-Yu Tsai <[email protected]>
---
arch/arm64/boot/dts/mediatek/mt8186.dtsi | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt8186.dtsi b/arch/arm64/boot/dts/mediatek/mt8186.dtsi
index 4a2f7ad3c6f0..209f26f12dbc 100644
--- a/arch/arm64/boot/dts/mediatek/mt8186.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8186.dtsi
@@ -215,10 +215,12 @@ l3_0: l3-cache {
};
};

- clk13m: oscillator-13m {
- compatible = "fixed-clock";
+ clk13m: fixed-factor-clock-13m {
+ compatible = "fixed-factor-clock";
#clock-cells = <0>;
- clock-frequency = <13000000>;
+ clocks = <&clk26m>;
+ clock-div = <2>;
+ clock-mult = <1>;
clock-output-names = "clk13m";
};

--
2.38.1.584.g0f3c55d4c2-goog

Subject: Re: [PATCH 4/4] arm64: dts: mediatek: mt8186: Fix systimer 13 MHz clock description

Il 01/12/22 09:42, Chen-Yu Tsai ha scritto:
> The systimer block derives its 13 MHz clock by dividing the main 26 MHz
> oscillator clock by 2 internally. The 13 MHz clock is not a separate
> oscillator.
>
> Fix this by making the 13 MHz clock a divide-by-2 fixed factor clock,
> taking its input from the main 26 MHz oscillator.
>
> Fixes: 2e78620b1350 ("arm64: dts: Add MediaTek MT8186 dts and evaluation board and Makefile")
> Signed-off-by: Chen-Yu Tsai <[email protected]>

Reviewed-by: AngeloGioacchino Del Regno <[email protected]>


2022-12-16 11:37:58

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH 0/4] arm64: dts: mediatek: Fix systimer clock description



On 01/12/2022 09:42, Chen-Yu Tsai wrote:
> Hi,
>
> This series fixes the clock description for the systimer block. The
> systimer is fed by the main 26 MHz oscillator, and internally divides
> the clock, normally by 2.
>
> However this ended up being modeled in various incorrect ways, such as
> the clock divider being in the TOPCKGEN block, or as a standalone 13 MHz
> oscillator.
>
> This series fixes the description of the systimer clock input in an ABI
> compatible way, i.e. the clock rate of the input clock remains the same
> at 13 MHz. The clock is now modeled as a divide-by-2 fixed factor clock
> being fed by the main oscillator.
>
> An added benefit is that in Linux the systimer no longer requires the
> main SoC clk driver to do an early init dance.
>
> Please have a look.
>
> The next step would be to fix up the systimer driver in a backward
> compatible way and have it read the divider value from hardware.
>

Whole series applied, thanks!

>
> Regards
> ChenYu
>
> Chen-Yu Tsai (4):
> arm64: dts: mediatek: mt8183: Fix systimer 13 MHz clock description
> arm64: dts: mediatek: mt8192: Fix systimer 13 MHz clock description
> arm64: dts: mediatek: mt8195: Fix systimer 13 MHz clock description
> arm64: dts: mediatek: mt8186: Fix systimer 13 MHz clock description
>
> arch/arm64/boot/dts/mediatek/mt8183.dtsi | 12 ++++++++++--
> arch/arm64/boot/dts/mediatek/mt8186.dtsi | 8 +++++---
> arch/arm64/boot/dts/mediatek/mt8192.dtsi | 12 ++++++++++--
> arch/arm64/boot/dts/mediatek/mt8195.dtsi | 11 ++++++++++-
> 4 files changed, 35 insertions(+), 8 deletions(-)
>