Thread (2 messages) 2 messages, 2 authors, 2026-01-19

Re: [PATCH v5 5/8] clk: amlogic: Add A5 clock peripherals controller driver

From: Chuan Liu <hidden>
Date: 2026-01-19 12:17:12
Also in: linux-amlogic, linux-clk, linux-devicetree, lkml

Hi Jerome,

On 1/14/2026 5:25 PM, Jerome Brunet wrote:
[ EXTERNAL EMAIL ]

On jeu. 08 janv. 2026 at 14:08, Chuan Liu via B4 Relay [off-list ref] wrote:
quoted
+static struct clk_regmap a5_rtc_clk = {
+     .data = &(struct clk_regmap_mux_data) {
+             .offset = RTC_CTRL,
+             .mask = 0x3,
+             .shift = 0,
+     },
+     .hw.init = &(struct clk_init_data) {
+             .name = "rtc_clk",
+             .ops = &clk_regmap_mux_ops,
+             .parent_data = a5_rtc_clk_parents,
+             .num_parents = ARRAY_SIZE(a5_rtc_clk_parents),
+             .flags = CLK_SET_RATE_NO_REPARENT,
+     },
+};
+
+#define A5_PCLK(_name, _reg, _bit, _pdata, _flags)                   \
+struct clk_regmap a5_##_name = {                                     \
+     .data = &(struct clk_regmap_gate_data) {                        \
+             .offset = (_reg),                                       \
+             .bit_idx = (_bit),                                      \
+     },                                                              \
+     .hw.init = &(struct clk_init_data) {                            \
+             .name = #_name,                                         \
+             .ops = &clk_regmap_gate_ops,                            \
+             .parent_data = (_pdata),                                \
+             .num_parents = 1,                                       \
+             .flags = (_flags),                                      \
+     },                                                              \
+}
I wonder why I bothered reviewing v4 ...
Regarding the comment you made on V4, my understanding is that you were 
just teasing ... In the next revision, I will change this part to use a 
unified macro.

We may also consider adjusting the "MESON_PCLK" macro later by removing 
the SoC prefix from the clock name, so that it is consistent with the 
naming style used by "MESON_COMP_SEL" / "MESON_COMP_DIV".
quoted
+
+static const struct clk_parent_data a5_sys_pclk_parents = { .fw_name = "sysclk" };
+
+#define A5_SYS_PCLK(_name, _reg, _bit, _flags) \
+     A5_PCLK(_name, _reg, _bit, &a5_sys_pclk_parents, _flags)
+
+static A5_SYS_PCLK(sys_reset_ctrl,   SYS_CLK_EN0_REG0, 1, 0);
+static A5_SYS_PCLK(sys_pwr_ctrl,     SYS_CLK_EN0_REG0, 3, 0);
+static A5_SYS_PCLK(sys_pad_ctrl,     SYS_CLK_EN0_REG0, 4, 0);
+static A5_SYS_PCLK(sys_ctrl,         SYS_CLK_EN0_REG0, 5, 0);
+static A5_SYS_PCLK(sys_ts_pll,               SYS_CLK_EN0_REG0, 6, 0);
+
[...]
quoted
+
+static struct clk_regmap a5_gen = {
+     .data = &(struct clk_regmap_gate_data) {
+             .offset = GEN_CLK_CTRL,
+             .bit_idx = 11,
+     },
+     .hw.init = &(struct clk_init_data) {
+             .name = "gen",
+             .ops = &clk_regmap_gate_ops,
+             .parent_hws = (const struct clk_hw *[]) {
+                     &a5_gen_div.hw
+             },
+             .num_parents = 1,
+             .flags = CLK_SET_RATE_PARENT,
+     },
+};
+
+#define A5_COMP_SEL(_name, _reg, _shift, _mask, _pdata, _table) \
+     MESON_COMP_SEL(a5_, _name, _reg, _shift, _mask, _pdata, _table, 0, 0)
+
+#define A5_COMP_DIV(_name, _reg, _shift, _width) \
+     MESON_COMP_DIV(a5_, _name, _reg, _shift, _width, 0, CLK_SET_RATE_PARENT)
+
+#define A5_COMP_GATE(_name, _reg, _bit, _iflags) \
+     MESON_COMP_GATE(a5_, _name, _reg, _bit, CLK_SET_RATE_PARENT | (_iflags))
+
At the top. like C3 and T7
Except for A5_COMP_SEL, which differs slightly from T7 due to the 
additional "_table" parameter, the other macros are consistent with T7.

I also asked for your feedback on this in V4 and received your 
confirmation. Is there anything here that still needs to be updated?

[...]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help