struct aspeed_gpio {
        struct gpio_chip chip;
        struct irq_chip irqc;
-       spinlock_t lock;
+       raw_spinlock_t lock;
        void __iomem *base;
        int irq;
        const struct aspeed_gpio_config *config;
        unsigned long flags;
        bool copro;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
        copro = aspeed_gpio_copro_request(gpio, offset);
 
        __aspeed_gpio_set(gc, offset, val);
 
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 }
 
 static int aspeed_gpio_dir_in(struct gpio_chip *gc, unsigned int offset)
        if (!have_input(gpio, offset))
                return -ENOTSUPP;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        reg = ioread32(addr);
        reg &= ~GPIO_BIT(offset);
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
 
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        return 0;
 }
        if (!have_output(gpio, offset))
                return -ENOTSUPP;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        reg = ioread32(addr);
        reg |= GPIO_BIT(offset);
 
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        return 0;
 }
        if (!have_output(gpio, offset))
                return GPIO_LINE_DIRECTION_IN;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        val = ioread32(bank_reg(gpio, bank, reg_dir)) & GPIO_BIT(offset);
 
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        return val ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
 }
 
        status_addr = bank_reg(gpio, bank, reg_irq_status);
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
        copro = aspeed_gpio_copro_request(gpio, offset);
 
        iowrite32(bit, status_addr);
 
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 }
 
 static void aspeed_gpio_irq_set_mask(struct irq_data *d, bool set)
 
        addr = bank_reg(gpio, bank, reg_irq_enable);
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
        copro = aspeed_gpio_copro_request(gpio, offset);
 
        reg = ioread32(addr);
 
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 }
 
 static void aspeed_gpio_irq_mask(struct irq_data *d)
                return -EINVAL;
        }
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
        copro = aspeed_gpio_copro_request(gpio, offset);
 
        addr = bank_reg(gpio, bank, reg_irq_type0);
 
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        irq_set_handler_locked(d, handler);
 
 
        treg = bank_reg(gpio, to_bank(offset), reg_tolerance);
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
        copro = aspeed_gpio_copro_request(gpio, offset);
 
        val = readl(treg);
 
        if (copro)
                aspeed_gpio_copro_release(gpio, offset);
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        return 0;
 }
                return rc;
        }
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        if (timer_allocation_registered(gpio, offset)) {
                rc = unregister_allocated_timer(gpio, offset);
        configure_timer(gpio, offset, i);
 
 out:
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        return rc;
 }
        unsigned long flags;
        int rc;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        rc = unregister_allocated_timer(gpio, offset);
        if (!rc)
                configure_timer(gpio, offset, 0);
 
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
 
        return rc;
 }
                return -EINVAL;
        bindex = offset >> 3;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        /* Sanity check, this shouldn't happen */
        if (gpio->cf_copro_bankmap[bindex] == 0xff) {
        if (bit)
                *bit = GPIO_OFFSET(offset);
  bail:
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
        return rc;
 }
 EXPORT_SYMBOL_GPL(aspeed_gpio_copro_grab_gpio);
                return -EINVAL;
        bindex = offset >> 3;
 
-       spin_lock_irqsave(&gpio->lock, flags);
+       raw_spin_lock_irqsave(&gpio->lock, flags);
 
        /* Sanity check, this shouldn't happen */
        if (gpio->cf_copro_bankmap[bindex] == 0) {
                aspeed_gpio_change_cmd_source(gpio, bank, bindex,
                                              GPIO_CMDSRC_ARM);
  bail:
-       spin_unlock_irqrestore(&gpio->lock, flags);
+       raw_spin_unlock_irqrestore(&gpio->lock, flags);
        return rc;
 }
 EXPORT_SYMBOL_GPL(aspeed_gpio_copro_release_gpio);
        if (IS_ERR(gpio->base))
                return PTR_ERR(gpio->base);
 
-       spin_lock_init(&gpio->lock);
+       raw_spin_lock_init(&gpio->lock);
 
        gpio_id = of_match_node(aspeed_gpio_of_table, pdev->dev.of_node);
        if (!gpio_id)