]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: mvebu: armada-37xx-periph: fix __iomem casts in structure init
authorBen Dooks <ben.dooks@codethink.co.uk>
Tue, 10 Mar 2026 12:36:25 +0000 (12:36 +0000)
committerStephen Boyd <sboyd@kernel.org>
Tue, 24 Mar 2026 00:17:08 +0000 (17:17 -0700)
There are a number of casts to "void __iomem *" in the initialsation
of the driver's clk information. Fix this by adding a helper macro
for the cast.

Silences a number of sparse warnings:

drivers/clk/mvebu/armada-37xx-periph.c:254:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:254:1:    expected void [noderef] __iomem *reg
drivers/clk/mvebu/armada-37xx-periph.c:254:1:    got void *
drivers/clk/mvebu/armada-37xx-periph.c:254:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:254:1:    expected void [noderef] __iomem *reg1
drivers/clk/mvebu/armada-37xx-periph.c:254:1:    got void *
drivers/clk/mvebu/armada-37xx-periph.c:254:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:254:1:    expected void [noderef] __iomem *reg2
drivers/clk/mvebu/armada-37xx-periph.c:254:1:    got void *
drivers/clk/mvebu/armada-37xx-periph.c:255:1: warning: incorrect type in initializer (different address spaces)
drivers/clk/mvebu/armada-37xx-periph.c:255:1:    expected void [noderef] __iomem *reg
drivers/clk/mvebu/armada-37xx-periph.c:255:1:    got void *
...

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/mvebu/armada-37xx-periph.c

index bd0bc8e7b1e7781c6ddeff2a00aab50e57ae30e2..3123771b9c998098b8ab1eb061bb559f1175e222 100644 (file)
@@ -126,9 +126,11 @@ static const struct clk_div_table clk_table2[] = {
 static const struct clk_ops clk_double_div_ops;
 static const struct clk_ops clk_pm_cpu_ops;
 
+#define __reg(__x) ((void __iomem __force *)(__x))
+
 #define PERIPH_GATE(_name, _bit)               \
 struct clk_gate gate_##_name = {               \
-       .reg = (void *)CLK_DIS,                 \
+       .reg = __reg(CLK_DIS),                  \
        .bit_idx = _bit,                        \
        .hw.init = &(struct clk_init_data){     \
                .ops =  &clk_gate_ops,          \
@@ -137,7 +139,7 @@ struct clk_gate gate_##_name = {            \
 
 #define PERIPH_MUX(_name, _shift)              \
 struct clk_mux mux_##_name = {                 \
-       .reg = (void *)TBG_SEL,                 \
+       .reg = __reg(TBG_SEL),                  \
        .shift = _shift,                        \
        .mask = 3,                              \
        .hw.init = &(struct clk_init_data){     \
@@ -147,8 +149,8 @@ struct clk_mux mux_##_name = {                      \
 
 #define PERIPH_DOUBLEDIV(_name, _reg1, _reg2, _shift1, _shift2)        \
 struct clk_double_div rate_##_name = {         \
-       .reg1 = (void *)_reg1,                  \
-       .reg2 = (void *)_reg2,                  \
+       .reg1 = __reg(_reg1),                   \
+       .reg2 = __reg(_reg2),                   \
        .shift1 = _shift1,                      \
        .shift2 = _shift2,                      \
        .hw.init = &(struct clk_init_data){     \
@@ -158,7 +160,7 @@ struct clk_double_div rate_##_name = {              \
 
 #define PERIPH_DIV(_name, _reg, _shift, _table)        \
 struct clk_divider rate_##_name = {            \
-       .reg = (void *)_reg,                    \
+       .reg = __reg(_reg),                     \
        .table = _table,                        \
        .shift = _shift,                        \
        .hw.init = &(struct clk_init_data){     \
@@ -168,10 +170,10 @@ struct clk_divider rate_##_name = {               \
 
 #define PERIPH_PM_CPU(_name, _shift1, _reg, _shift2)   \
 struct clk_pm_cpu muxrate_##_name = {          \
-       .reg_mux = (void *)TBG_SEL,             \
+       .reg_mux = __reg(TBG_SEL),              \
        .mask_mux = 3,                          \
        .shift_mux = _shift1,                   \
-       .reg_div = (void *)_reg,                \
+       .reg_div = __reg(_reg),                 \
        .shift_div = _shift2,                   \
        .hw.init = &(struct clk_init_data){     \
                .ops =  &clk_pm_cpu_ops,        \