On 8/26/20 4:29 PM, Heinrich Schuchardt wrote: > readl() and writel() expect void *. Do not pass an integer value. > > Remove unused include asm/arch/timer.h. > > Signed-off-by: Heinrich Schuchardt <[email protected]> > Reviewed-by: Bin Meng <[email protected]> > --- > v2: > correct typo in commit message > --- > drivers/timer/dw-apb-timer.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/timer/dw-apb-timer.c b/drivers/timer/dw-apb-timer.c > index 35271b20c8..c8be4417fd 100644 > --- a/drivers/timer/dw-apb-timer.c > +++ b/drivers/timer/dw-apb-timer.c > @@ -14,7 +14,6 @@ > #include <dm/device_compat.h> > > #include <asm/io.h> > -#include <asm/arch/timer.h> > > #define DW_APB_LOAD_VAL 0x0 > #define DW_APB_CURR_VAL 0x4 > @@ -34,7 +33,7 @@ static int dw_apb_timer_get_count(struct udevice *dev, u64 > *count) > * requires the count to be incrementing. Invert the > * result. > */ > - *count = timer_conv_64(~readl(priv->regs + DW_APB_CURR_VAL)); > + *count = timer_conv_64(~readl((void *)(priv->regs + DW_APB_CURR_VAL)));
How about changing the type of priv.regs to void * and using dev_read_addr_ptr instead of dev_read_addr in probe? > > return 0; > } > @@ -61,8 +60,8 @@ static int dw_apb_timer_probe(struct udevice *dev) > clk_free(&clk); > > /* init timer */ > - writel(0xffffffff, priv->regs + DW_APB_LOAD_VAL); > - writel(0xffffffff, priv->regs + DW_APB_CURR_VAL); > + writel(0xffffffff, (void *)(priv->regs + DW_APB_LOAD_VAL)); > + writel(0xffffffff, (void *)(priv->regs + DW_APB_CURR_VAL)); > setbits_le32(priv->regs + DW_APB_CTRL, 0x3); > > return 0; > -- > 2.27.0 >

