* [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support
@ 2026-02-18 10:20 Ronald Claveau
2026-02-18 10:21 ` Krzysztof Kozlowski
0 siblings, 1 reply; 6+ messages in thread
From: Ronald Claveau @ 2026-02-18 10:20 UTC (permalink / raw)
To: linux-amlogic
Cc: Ronald Claveau, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-clk, devicetree,
linux-kernel
Add SYS PLL for the clock controller of the Amlogic T7 SoC family.
Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
index 32c4b62037de..0cda8edfa7cd 100644
--- a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
+++ b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
@@ -224,5 +224,12 @@
#define CLKID_SYS_PWM_AO_CD 215
#define CLKID_SYS_PWM_AO_EF 216
#define CLKID_SYS_PWM_AO_GH 217
+#define CLKID_SYS_A_SEL 218
+#define CLKID_SYS_A_DIV 219
+#define CLKID_SYS_A 220
+#define CLKID_SYS_B_SEL 221
+#define CLKID_SYS_B_DIV 222
+#define CLKID_SYS_B 223
+#define CLKID_SYS 224
#endif /* __T7_PERIPHERALS_CLKC_H */
--
2.49.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support
2026-02-18 10:20 [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support Ronald Claveau
@ 2026-02-18 10:21 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-18 10:21 UTC (permalink / raw)
To: Ronald Claveau, linux-amlogic
Cc: Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-clk, devicetree, linux-kernel
On 18/02/2026 11:20, Ronald Claveau wrote:
> Add SYS PLL for the clock controller of the Amlogic T7 SoC family.
>
> Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
> ---
> include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
Same problems.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/7] drivers: clk: meson: Add Amlogic T7 fix pll support
@ 2026-02-18 10:17 Ronald Claveau
2026-02-18 11:01 ` [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys " Ronald Claveau
0 siblings, 1 reply; 6+ messages in thread
From: Ronald Claveau @ 2026-02-18 10:17 UTC (permalink / raw)
To: linux-amlogic
Cc: Ronald Claveau, Neil Armstrong, Jerome Brunet, Michael Turquette,
Stephen Boyd, Kevin Hilman, Martin Blumenstingl, linux-clk,
linux-arm-kernel, linux-kernel
Add PLL for the clock controller of the Amlogic T7 SoC family.
Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
drivers/clk/meson/t7-pll.c | 257 +++++++++++++++++++++++++++++++++++++
1 file changed, 257 insertions(+)
diff --git a/drivers/clk/meson/t7-pll.c b/drivers/clk/meson/t7-pll.c
index 0a622f45fa36..3dd3aca50b7c 100644
--- a/drivers/clk/meson/t7-pll.c
+++ b/drivers/clk/meson/t7-pll.c
@@ -71,6 +71,15 @@
#define MCLK_PLL_CNTL4 0x10
#define MCLK_PLL_STS 0x14
+#define FPLL_CTRL0 0x00
+#define FPLL_CTRL1 0x04
+#define FPLL_CTRL2 0x08
+#define FPLL_CTRL3 0x0c
+#define FPLL_CTRL4 0x10
+#define FPLL_CTRL5 0x14
+#define FPLL_CTRL6 0x18
+#define FPLL_STS 0x1c
+
static const struct pll_mult_range t7_media_pll_mult_range = {
.min = 125,
.max = 250,
@@ -1047,6 +1056,253 @@ static const struct meson_clkc_data t7_mclk_data = {
},
};
+static struct clk_regmap t7_fpll_dco = {
+ .data = &(struct meson_clk_pll_data){
+ .en = {
+ .reg_off = FPLL_CTRL0,
+ .shift = 28,
+ .width = 1,
+ },
+ .m = {
+ .reg_off = FPLL_CTRL0,
+ .shift = 0,
+ .width = 8,
+ },
+ .n = {
+ .reg_off = FPLL_CTRL0,
+ .shift = 10,
+ .width = 5,
+ },
+ .frac = {
+ .reg_off = FPLL_CTRL1,
+ .shift = 0,
+ .width = 17,
+ },
+ .l = {
+ .reg_off = FPLL_CTRL0,
+ .shift = 31,
+ .width = 1,
+ },
+ .rst = {
+ .reg_off = FPLL_CTRL0,
+ .shift = 29,
+ .width = 1,
+ },
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fpll_dco",
+ .ops = &meson_clk_pll_ro_ops,
+ .parent_data = &(const struct clk_parent_data) {
+ .fw_name = "xtal",
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fpll = {
+ .data = &(struct clk_regmap_div_data){
+ .offset = FPLL_CTRL0,
+ .shift = 16,
+ .width = 2,
+ .flags = CLK_DIVIDER_POWER_OF_TWO,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fpll",
+ .ops = &clk_regmap_divider_ro_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fpll_dco.hw
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_fixed_factor t7_fdiv2_div = {
+ .mult = 1,
+ .div = 2,
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv2_div",
+ .ops = &clk_fixed_factor_ops,
+ .parent_hws = (const struct clk_hw *[]) { &t7_fpll.hw },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fdiv2 = {
+ .data = &(struct clk_regmap_gate_data){
+ .offset = FPLL_CTRL1,
+ .bit_idx = 24,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv2",
+ .ops = &clk_regmap_gate_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fdiv2_div.hw
+ },
+ .num_parents = 1,
+ .flags = CLK_IS_CRITICAL,
+ },
+};
+
+static struct clk_fixed_factor t7_fdiv2p5_div = {
+ .mult = 2,
+ .div = 5,
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv2p5_div",
+ .ops = &clk_fixed_factor_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fpll.hw
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fdiv2p5 = {
+ .data = &(struct clk_regmap_gate_data){
+ .offset = FPLL_CTRL1,
+ .bit_idx = 25,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv2p5",
+ .ops = &clk_regmap_gate_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fdiv2p5_div.hw
+ },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_fixed_factor t7_fdiv3_div = {
+ .mult = 1,
+ .div = 3,
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv3_div",
+ .ops = &clk_fixed_factor_ops,
+ .parent_hws = (const struct clk_hw *[]) { &t7_fpll.hw },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fdiv3 = {
+ .data = &(struct clk_regmap_gate_data){
+ .offset = FPLL_CTRL1,
+ .bit_idx = 20,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv3",
+ .ops = &clk_regmap_gate_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fdiv3_div.hw
+ },
+ .num_parents = 1,
+ .flags = CLK_IS_CRITICAL,
+ },
+};
+
+static struct clk_fixed_factor t7_fdiv4_div = {
+ .mult = 1,
+ .div = 4,
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv4_div",
+ .ops = &clk_fixed_factor_ops,
+ .parent_hws = (const struct clk_hw *[]) { &t7_fpll.hw },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fdiv4 = {
+ .data = &(struct clk_regmap_gate_data){
+ .offset = FPLL_CTRL1,
+ .bit_idx = 21,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv4",
+ .ops = &clk_regmap_gate_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fdiv4_div.hw
+ },
+ .num_parents = 1,
+ .flags = CLK_IS_CRITICAL,
+ },
+};
+
+static struct clk_fixed_factor t7_fdiv5_div = {
+ .mult = 1,
+ .div = 5,
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv5_div",
+ .ops = &clk_fixed_factor_ops,
+ .parent_hws = (const struct clk_hw *[]) { &t7_fpll.hw },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fdiv5 = {
+ .data = &(struct clk_regmap_gate_data){
+ .offset = FPLL_CTRL1,
+ .bit_idx = 22,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv5",
+ .ops = &clk_regmap_gate_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fdiv5_div.hw
+ },
+ .num_parents = 1,
+ .flags = CLK_IS_CRITICAL,
+ },
+};
+
+static struct clk_fixed_factor t7_fdiv7_div = {
+ .mult = 1,
+ .div = 7,
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv7_div",
+ .ops = &clk_fixed_factor_ops,
+ .parent_hws = (const struct clk_hw *[]) { &t7_fpll.hw },
+ .num_parents = 1,
+ },
+};
+
+static struct clk_regmap t7_fdiv7 = {
+ .data = &(struct clk_regmap_gate_data){
+ .offset = FPLL_CTRL1,
+ .bit_idx = 23,
+ },
+ .hw.init = &(struct clk_init_data){
+ .name = "fdiv7",
+ .ops = &clk_regmap_gate_ops,
+ .parent_hws = (const struct clk_hw *[]) {
+ &t7_fdiv7_div.hw
+ },
+ .num_parents = 1,
+ .flags = CLK_IS_CRITICAL,
+ },
+};
+
+static struct clk_hw *t7_fpll_hw_clks[] = {
+ [CLKID_FPLL_DCO] = &t7_fpll_dco.hw,
+ [CLKID_FPLL] = &t7_fpll.hw,
+ [CLKID_FDIV2_DIV] = &t7_fdiv2_div.hw,
+ [CLKID_FDIV2] = &t7_fdiv2.hw,
+ [CLKID_FDIV2P5_DIV] = &t7_fdiv2p5_div.hw,
+ [CLKID_FDIV2P5] = &t7_fdiv2p5.hw,
+ [CLKID_FDIV3_DIV] = &t7_fdiv3_div.hw,
+ [CLKID_FDIV3] = &t7_fdiv3.hw,
+ [CLKID_FDIV4_DIV] = &t7_fdiv4_div.hw,
+ [CLKID_FDIV4] = &t7_fdiv4.hw,
+ [CLKID_FDIV5_DIV] = &t7_fdiv5_div.hw,
+ [CLKID_FDIV5] = &t7_fdiv5.hw,
+ [CLKID_FDIV7_DIV] = &t7_fdiv7_div.hw,
+ [CLKID_FDIV7] = &t7_fdiv7.hw,
+};
+
+static const struct meson_clkc_data t7_fpll_data = {
+ .hw_clks = {
+ .hws = t7_fpll_hw_clks,
+ .num = ARRAY_SIZE(t7_fpll_hw_clks),
+ },
+};
+
static const struct of_device_id t7_pll_clkc_match_table[] = {
{ .compatible = "amlogic,t7-gp0-pll", .data = &t7_gp0_data, },
{ .compatible = "amlogic,t7-gp1-pll", .data = &t7_gp1_data, },
@@ -1055,6 +1311,7 @@ static const struct of_device_id t7_pll_clkc_match_table[] = {
{ .compatible = "amlogic,t7-mpll", .data = &t7_mpll_data, },
{ .compatible = "amlogic,t7-hdmi-pll", .data = &t7_hdmi_data, },
{ .compatible = "amlogic,t7-mclk-pll", .data = &t7_mclk_data, },
+ { .compatible = "amlogic,t7-fpll", .data = &t7_fpll_data, },
{}
};
MODULE_DEVICE_TABLE(of, t7_pll_clkc_match_table);
--
2.49.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support
2026-02-18 10:17 [PATCH 1/7] drivers: clk: meson: Add Amlogic T7 fix " Ronald Claveau
@ 2026-02-18 11:01 ` Ronald Claveau
2026-02-18 11:10 ` Ferass El Hafidi
2026-02-18 19:18 ` Krzysztof Kozlowski
0 siblings, 2 replies; 6+ messages in thread
From: Ronald Claveau @ 2026-02-18 11:01 UTC (permalink / raw)
To: linux-amlogic
Cc: Ronald Claveau, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-clk, devicetree,
linux-kernel
Add SYS PLL for the clock controller of the Amlogic T7 SoC family.
Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
---
include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
index 32c4b62037de..0cda8edfa7cd 100644
--- a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
+++ b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
@@ -224,5 +224,12 @@
#define CLKID_SYS_PWM_AO_CD 215
#define CLKID_SYS_PWM_AO_EF 216
#define CLKID_SYS_PWM_AO_GH 217
+#define CLKID_SYS_A_SEL 218
+#define CLKID_SYS_A_DIV 219
+#define CLKID_SYS_A 220
+#define CLKID_SYS_B_SEL 221
+#define CLKID_SYS_B_DIV 222
+#define CLKID_SYS_B 223
+#define CLKID_SYS 224
#endif /* __T7_PERIPHERALS_CLKC_H */
--
2.49.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support
2026-02-18 11:01 ` [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys " Ronald Claveau
@ 2026-02-18 11:10 ` Ferass El Hafidi
2026-02-18 17:32 ` Ronald Claveau
2026-02-18 19:18 ` Krzysztof Kozlowski
1 sibling, 1 reply; 6+ messages in thread
From: Ferass El Hafidi @ 2026-02-18 11:10 UTC (permalink / raw)
To: linux-amlogic, Ronald Claveau
Cc: Ronald Claveau, Michael Turquette, Stephen Boyd, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-clk, devicetree,
linux-kernel
Hi,
On Wed, 18 Feb 2026 11:01, Ronald Claveau <linux-kernel-dev@aliel.fr> wrote:
>Add SYS PLL for the clock controller of the Amlogic T7 SoC family.
Your commit description is almost the same on every patch in the series.
Probably having a more specific description per commit would be much more
useful, for reviewers to better understand your commit.
There are documentation pages on how to write informative commit messages
at [1] and [2], but in summary, your description should talk about *what*
is being done and (provided that makes sense), *why*.
You also have multiple commits with the exact same commit message
("dt-bindings: clk: meson: Add Amlogic T7 sys pll support"), did you
mean to squash them all into one? (You can do so with `git rebase -i`.)
It probably also would make sense to add a cover letter, which would describe
overall what you goal is with this patch series, and on a high level
(doesn't have to be too detailled, because you'd describe these in more
detail in the respective commit messages themselves) what each patch does.
This once again helps people reviewing your code to understand what problem
you're trying to solve.
[1]: https://docs.kernel.org/process/submitting-patches.html#explanation-body
[2]: https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
Best regards,
Ferass
[PS: sorry if this email was sent twice, my email client did something
strange]
>
>Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
>---
> include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
>diff --git a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
>index 32c4b62037de..0cda8edfa7cd 100644
>--- a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
>+++ b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
>@@ -224,5 +224,12 @@
> #define CLKID_SYS_PWM_AO_CD 215
> #define CLKID_SYS_PWM_AO_EF 216
> #define CLKID_SYS_PWM_AO_GH 217
>+#define CLKID_SYS_A_SEL 218
>+#define CLKID_SYS_A_DIV 219
>+#define CLKID_SYS_A 220
>+#define CLKID_SYS_B_SEL 221
>+#define CLKID_SYS_B_DIV 222
>+#define CLKID_SYS_B 223
>+#define CLKID_SYS 224
>
> #endif /* __T7_PERIPHERALS_CLKC_H */
>--
>2.49.0
>
>
>_______________________________________________
>linux-amlogic mailing list
>linux-amlogic@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support
2026-02-18 11:10 ` Ferass El Hafidi
@ 2026-02-18 17:32 ` Ronald Claveau
0 siblings, 0 replies; 6+ messages in thread
From: Ronald Claveau @ 2026-02-18 17:32 UTC (permalink / raw)
To: Ferass El Hafidi, linux-amlogic
Cc: Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-clk, devicetree, linux-kernel
On 2/18/26 12:10 PM, Ferass El Hafidi wrote:
> Hi,
>
> On Wed, 18 Feb 2026 11:01, Ronald Claveau <linux-kernel-dev@aliel.fr>
> wrote:
>> Add SYS PLL for the clock controller of the Amlogic T7 SoC family.
>
> Your commit description is almost the same on every patch in the series.
> Probably having a more specific description per commit would be much more
> useful, for reviewers to better understand your commit.
>
> There are documentation pages on how to write informative commit messages
> at [1] and [2], but in summary, your description should talk about *what*
> is being done and (provided that makes sense), *why*.
>
> You also have multiple commits with the exact same commit message
> ("dt-bindings: clk: meson: Add Amlogic T7 sys pll support"), did you
> mean to squash them all into one? (You can do so with `git rebase -i`.)
>
> It probably also would make sense to add a cover letter, which would
> describe
> overall what you goal is with this patch series, and on a high level
> (doesn't have to be too detailled, because you'd describe these in more
> detail in the respective commit messages themselves) what each patch does.
> This once again helps people reviewing your code to understand what problem
> you're trying to solve.
>
> [1]: https://docs.kernel.org/process/submitting-
> patches.html#explanation-body
> [2]: https://docs.kernel.org/process/submitting-patches.html#describe-
> your-changes
>
Thanks for your help Ferass, I definitely will.
I think I have misread this part of the doc :
"The Documentation/ and include/dt-bindings/ portion of the patch should
be a separate patch."
If I am allowed to combine the header and yaml doc in the same commit, I
will do so.
Best regards,
Ronald
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support
2026-02-18 11:01 ` [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys " Ronald Claveau
2026-02-18 11:10 ` Ferass El Hafidi
@ 2026-02-18 19:18 ` Krzysztof Kozlowski
1 sibling, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-18 19:18 UTC (permalink / raw)
To: Ronald Claveau, linux-amlogic
Cc: Michael Turquette, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-clk, devicetree, linux-kernel
On 18/02/2026 12:01, Ronald Claveau wrote:
> Add SYS PLL for the clock controller of the Amlogic T7 SoC family.
You already sent v1 and received feedback. Implement that one.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-02-18 19:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-18 10:20 [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys pll support Ronald Claveau
2026-02-18 10:21 ` Krzysztof Kozlowski
-- strict thread matches above, loose matches on Subject: below --
2026-02-18 10:17 [PATCH 1/7] drivers: clk: meson: Add Amlogic T7 fix " Ronald Claveau
2026-02-18 11:01 ` [PATCH 5/7] dt-bindings: clk: meson: Add Amlogic T7 sys " Ronald Claveau
2026-02-18 11:10 ` Ferass El Hafidi
2026-02-18 17:32 ` Ronald Claveau
2026-02-18 19:18 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox