Thread (2 messages) 2 messages, 2 authors, 2025-06-13

Re: [PATCH v3 6/6] clk: meson: t7: add t7 clock peripherals controller driver

From: Jian Hu <hidden>
Date: 2025-06-13 09:39:11
Also in: linux-amlogic, linux-clk, linux-devicetree, lkml

On 2025/5/14 16:00, Jerome Brunet wrote:
[ EXTERNAL EMAIL ]

On Fri 09 May 2025 at 07:48, Jian Hu [off-list ref] wrote:
quoted
Add Peripheral clock controller driver for the Amlogic T7 SoC family.

Signed-off-by: Jian Hu <redacted>
---
  drivers/clk/meson/Kconfig          |   13 +
  drivers/clk/meson/Makefile         |    1 +
  drivers/clk/meson/t7-peripherals.c | 2359 ++++++++++++++++++++++++++++
  3 files changed, 2373 insertions(+)
  create mode 100644 drivers/clk/meson/t7-peripherals.c

......

+
+static u32 t7_eth_rmii_table[] = { 0, 7 };
+
+static const struct clk_parent_data t7_eth_rmii_parents[] = {
+     { .fw_name = "fdiv2", },
+     { .fw_name = "rmii_pad", },
Are you sure about that ? check the bindings

Ok, rmii_pad is optional parent, I will update it in DT bindings.
quoted
+
+#define SPI_PWM_CLK_MUX(_name, _reg, _mask, _shift, _parent_data) {  \
+     .data = &(struct clk_regmap_mux_data) {                 \
+             .offset = _reg,                                 \
+             .mask = _mask,                                  \
+             .shift = _shift,                                \
+     },                                                      \
+     .hw.init = &(struct clk_init_data) {                    \
+             .name = #_name "_sel",                          \
+             .ops = &clk_regmap_mux_ops,                     \
+             .parent_data = _parent_data,                    \
+             .num_parents = ARRAY_SIZE(_parent_data),        \
+     },                                                      \
+}
+
+#define SPI_PWM_CLK_DIV(_name, _reg, _shift, _width, _parent) {      \
+     .data = &(struct clk_regmap_div_data) {                 \
+             .offset = _reg,                                 \
+             .shift = _shift,                                \
+             .width = _width,                                \
+     },                                                      \
+     .hw.init = &(struct clk_init_data) {                    \
+             .name = #_name "_div",                          \
+             .ops = &clk_regmap_divider_ops,                 \
+             .parent_hws = (const struct clk_hw *[]) {       \
+                     &_parent.hw                             \
+             },                                              \
+             .num_parents = 1,                               \
+             .flags = CLK_SET_RATE_PARENT,                   \
+     },                                                      \
+}
+
+#define SPI_PWM_CLK_GATE(_name, _reg, _bit, _parent) {               \
+     .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_hws = (const struct clk_hw *[]) {       \
+                     &_parent.hw                             \
+             },                                              \
+             .num_parents = 1,                               \
+             .flags = CLK_SET_RATE_PARENT,                   \
+     },                                                      \
+}
Again that something that has been repeated for way too long.
You'll wait for the clean-up to be done. If you want to help, you can
review and test the patch being sent. It may speed things up.

I want to confirm here .

you said the clean-up patch is not related to spi and pwm clocks, Right ?


I can see the regmap drop table patch [0], is it the sending patch?


[0]: 
https://patchwork.kernel.org/project/linux-amlogic/patch/20250120-amlogic-clk-drop-clk-regmap-tables-v3-0-126244146947@baylibre.com/


I will apply the regmap clean-up patch serial and verified it on T7.


If not, Please correct me.
quoted
+
+static const struct clk_parent_data t7_spicc_parents[] = {
+     { .fw_name = "xtal", },
+     { .fw_name = "sys", },
+     { .fw_name = "fdiv4", },
+     { .fw_name = "fdiv3", },
+     { .fw_name = "fdiv2", },
+     { .fw_name = "fdiv5", },
+     { .fw_name = "fdiv7", },
+     { .fw_name = "gp1", },
+};
+
......
+static struct clk_regmap t7_sys_gic = {
+     .data = &(struct clk_regmap_gate_data) {
+             .offset = CLKCTRL_SYS_CLK_EN0_REG2,
+             .bit_idx = 30,
+     },
+     .hw.init = &(struct clk_init_data){
+             .name = "t7_sys_gic",
+             .ops = &clk_regmap_gate_ops,
+             .parent_data = &(const struct clk_parent_data) {
+                     .fw_name = "sys",
+             },
+             .num_parents = 1,
+             .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
Do you really intend to for the rate of the sys pll to be set through
this clock ?

Ok, CLK_SET_RATE_PARENT is not necessary here, I will remove it.
quoted
......
--
Jerome
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help