SMI_CR1
ctrlreg1 = readl(dev->io_base + SMI_CR1);
writel(ctrlreg1 & ~(SW_MODE | WB_MODE), dev->io_base + SMI_CR1);
writel(ctrlreg1, dev->io_base + SMI_CR1);
writel(val, dev->io_base + SMI_CR1);
ctrlreg1 = readl(dev->io_base + SMI_CR1);
writel(ctrlreg1 & ~SW_MODE, dev->io_base + SMI_CR1);
writel(ctrlreg1, dev->io_base + SMI_CR1);
ctrlreg1 = readl(dev->io_base + SMI_CR1);
writel((ctrlreg1 | SW_MODE) & ~WB_MODE, dev->io_base + SMI_CR1);
writel(ctrlreg1, dev->io_base + SMI_CR1);
ctrlreg1 = val = readl(dev->io_base + SMI_CR1);
writel(val, dev->io_base + SMI_CR1);
writel(ctrlreg1, dev->io_base + SMI_CR1);
ctrlreg1 = readl(dev->io_base + SMI_CR1);
writel((ctrlreg1 | WB_MODE) & ~SW_MODE, dev->io_base + SMI_CR1);
writel(ctrlreg1, dev->io_base + SMI_CR1);
val = readl(dev->io_base + SMI_CR1);
writel(val | SW_MODE, dev->io_base + SMI_CR1);
val = readl(dev->io_base + SMI_CR1);
writel(val & ~SW_MODE, dev->io_base + SMI_CR1);