static int mscan_set_mode(struct net_device *dev, u8 mode)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        int ret = 0;
        int i;
        u8 canctl1;
 static int mscan_start(struct net_device *dev)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        u8 canrflg;
        int err;
 
        struct mscan_priv *priv = netdev_priv(dev);
 
        if (priv->type == MSCAN_TYPE_MPC5121) {
-               struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+               struct mscan_regs __iomem *regs = priv->reg_base;
 
                priv->can.state = CAN_STATE_ERROR_ACTIVE;
                WARN(!(in_8(®s->canmisc) & MSCAN_BOHOLD),
 {
        struct can_frame *frame = (struct can_frame *)skb->data;
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        int i, rtr, buf_id;
        u32 can_id;
 
 static void mscan_get_rx_frame(struct net_device *dev, struct can_frame *frame)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        u32 can_id;
        int i;
 
                                u8 canrflg)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        struct net_device_stats *stats = &dev->stats;
        enum can_state old_state;
 
 {
        struct mscan_priv *priv = container_of(napi, struct mscan_priv, napi);
        struct net_device *dev = napi->dev;
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        struct net_device_stats *stats = &dev->stats;
        int npackets = 0;
        int ret = 1;
 {
        struct net_device *dev = (struct net_device *)dev_id;
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        struct net_device_stats *stats = &dev->stats;
        u8 cantier, cantflg, canrflg;
        irqreturn_t ret = IRQ_NONE;
 static int mscan_do_set_bittiming(struct net_device *dev)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        struct can_bittiming *bt = &priv->can.bittiming;
        u8 btr0, btr1;
 
 {
        int ret;
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
 
        /* common open */
        ret = open_candev(dev);
 static int mscan_close(struct net_device *dev)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
 
        netif_stop_queue(dev);
        napi_disable(&priv->napi);
 int register_mscandev(struct net_device *dev, int mscan_clksrc)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        u8 ctl1;
 
        ctl1 = in_8(®s->canctl1);
 void unregister_mscandev(struct net_device *dev)
 {
        struct mscan_priv *priv = netdev_priv(dev);
-       struct mscan_regs *regs = (struct mscan_regs *)priv->reg_base;
+       struct mscan_regs __iomem *regs = priv->reg_base;
        mscan_set_mode(dev, MSCAN_INIT_MODE);
        clrbits8(®s->canctl1, MSCAN_CANE);
        unregister_candev(dev);