提交 79e90dd5 编写于 作者: L Lennert Buytenhek 提交者: Lennert Buytenhek

[ARM] Orion: nuke orion5x_{read,write}

Nuke the Orion-specific orion5x_{read,write} wrappers.
Signed-off-by: NLennert Buytenhek <buytenh@marvell.com>
上级 0e3bc050
...@@ -94,16 +94,16 @@ static void __init setup_cpu_win(int win, u32 base, u32 size, ...@@ -94,16 +94,16 @@ static void __init setup_cpu_win(int win, u32 base, u32 size,
return; return;
} }
orion5x_write(CPU_WIN_BASE(win), base & 0xffff0000); writel(base & 0xffff0000, CPU_WIN_BASE(win));
orion5x_write(CPU_WIN_CTRL(win), writel(((size - 1) & 0xffff0000) | (attr << 8) | (target << 4) | 1,
((size - 1) & 0xffff0000) | (attr << 8) | (target << 4) | 1); CPU_WIN_CTRL(win));
if (orion5x_cpu_win_can_remap(win)) { if (orion5x_cpu_win_can_remap(win)) {
if (remap < 0) if (remap < 0)
remap = base; remap = base;
orion5x_write(CPU_WIN_REMAP_LO(win), remap & 0xffff0000); writel(remap & 0xffff0000, CPU_WIN_REMAP_LO(win));
orion5x_write(CPU_WIN_REMAP_HI(win), 0); writel(0, CPU_WIN_REMAP_HI(win));
} }
} }
...@@ -116,11 +116,11 @@ void __init orion5x_setup_cpu_mbus_bridge(void) ...@@ -116,11 +116,11 @@ void __init orion5x_setup_cpu_mbus_bridge(void)
* First, disable and clear windows. * First, disable and clear windows.
*/ */
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
orion5x_write(CPU_WIN_BASE(i), 0); writel(0, CPU_WIN_BASE(i));
orion5x_write(CPU_WIN_CTRL(i), 0); writel(0, CPU_WIN_CTRL(i));
if (orion5x_cpu_win_can_remap(i)) { if (orion5x_cpu_win_can_remap(i)) {
orion5x_write(CPU_WIN_REMAP_LO(i), 0); writel(0, CPU_WIN_REMAP_LO(i));
orion5x_write(CPU_WIN_REMAP_HI(i), 0); writel(0, CPU_WIN_REMAP_HI(i));
} }
} }
......
...@@ -330,7 +330,7 @@ static void __init db88f5281_init(void) ...@@ -330,7 +330,7 @@ static void __init db88f5281_init(void)
orion5x_init(); orion5x_init();
orion5x_mpp_conf(db88f5281_mpp_modes); orion5x_mpp_conf(db88f5281_mpp_modes);
orion5x_write(MPP_DEV_CTRL, 0); /* DEV_D[31:16] */ writel(0, MPP_DEV_CTRL); /* DEV_D[31:16] */
/* /*
* Configure peripherals. * Configure peripherals.
......
...@@ -269,7 +269,7 @@ static void __init dns323_init(void) ...@@ -269,7 +269,7 @@ static void __init dns323_init(void)
orion5x_init(); orion5x_init();
orion5x_mpp_conf(dns323_mpp_modes); orion5x_mpp_conf(dns323_mpp_modes);
orion5x_write(MPP_DEV_CTRL, 0); /* DEV_D[31:16] */ writel(0, MPP_DEV_CTRL); /* DEV_D[31:16] */
/* /*
* Configure peripherals. * Configure peripherals.
......
...@@ -96,10 +96,10 @@ int gpio_get_value(unsigned pin) ...@@ -96,10 +96,10 @@ int gpio_get_value(unsigned pin)
{ {
int val, mask = 1 << pin; int val, mask = 1 << pin;
if (orion5x_read(GPIO_IO_CONF) & mask) if (readl(GPIO_IO_CONF) & mask)
val = orion5x_read(GPIO_DATA_IN) ^ orion5x_read(GPIO_IN_POL); val = readl(GPIO_DATA_IN) ^ readl(GPIO_IN_POL);
else else
val = orion5x_read(GPIO_OUT); val = readl(GPIO_OUT);
return val & mask; return val & mask;
} }
...@@ -191,39 +191,39 @@ void gpio_display(void) ...@@ -191,39 +191,39 @@ void gpio_display(void)
printk("GPIO, free\n"); printk("GPIO, free\n");
} else { } else {
printk("GPIO, used by %s, ", gpio_label[i]); printk("GPIO, used by %s, ", gpio_label[i]);
if (orion5x_read(GPIO_IO_CONF) & (1 << i)) { if (readl(GPIO_IO_CONF) & (1 << i)) {
printk("input, active %s, level %s, edge %s\n", printk("input, active %s, level %s, edge %s\n",
((orion5x_read(GPIO_IN_POL) >> i) & 1) ? "low" : "high", ((readl(GPIO_IN_POL) >> i) & 1) ? "low" : "high",
((orion5x_read(GPIO_LEVEL_MASK) >> i) & 1) ? "enabled" : "masked", ((readl(GPIO_LEVEL_MASK) >> i) & 1) ? "enabled" : "masked",
((orion5x_read(GPIO_EDGE_MASK) >> i) & 1) ? "enabled" : "masked"); ((readl(GPIO_EDGE_MASK) >> i) & 1) ? "enabled" : "masked");
} else { } else {
printk("output, val=%d\n", (orion5x_read(GPIO_OUT) >> i) & 1); printk("output, val=%d\n", (readl(GPIO_OUT) >> i) & 1);
} }
} }
} }
printk(KERN_DEBUG "MPP_0_7_CTRL (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "MPP_0_7_CTRL (0x%08x) = 0x%08x\n",
MPP_0_7_CTRL, orion5x_read(MPP_0_7_CTRL)); MPP_0_7_CTRL, readl(MPP_0_7_CTRL));
printk(KERN_DEBUG "MPP_8_15_CTRL (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "MPP_8_15_CTRL (0x%08x) = 0x%08x\n",
MPP_8_15_CTRL, orion5x_read(MPP_8_15_CTRL)); MPP_8_15_CTRL, readl(MPP_8_15_CTRL));
printk(KERN_DEBUG "MPP_16_19_CTRL (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "MPP_16_19_CTRL (0x%08x) = 0x%08x\n",
MPP_16_19_CTRL, orion5x_read(MPP_16_19_CTRL)); MPP_16_19_CTRL, readl(MPP_16_19_CTRL));
printk(KERN_DEBUG "MPP_DEV_CTRL (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "MPP_DEV_CTRL (0x%08x) = 0x%08x\n",
MPP_DEV_CTRL, orion5x_read(MPP_DEV_CTRL)); MPP_DEV_CTRL, readl(MPP_DEV_CTRL));
printk(KERN_DEBUG "GPIO_OUT (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_OUT (0x%08x) = 0x%08x\n",
GPIO_OUT, orion5x_read(GPIO_OUT)); GPIO_OUT, readl(GPIO_OUT));
printk(KERN_DEBUG "GPIO_IO_CONF (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_IO_CONF (0x%08x) = 0x%08x\n",
GPIO_IO_CONF, orion5x_read(GPIO_IO_CONF)); GPIO_IO_CONF, readl(GPIO_IO_CONF));
printk(KERN_DEBUG "GPIO_BLINK_EN (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_BLINK_EN (0x%08x) = 0x%08x\n",
GPIO_BLINK_EN, orion5x_read(GPIO_BLINK_EN)); GPIO_BLINK_EN, readl(GPIO_BLINK_EN));
printk(KERN_DEBUG "GPIO_IN_POL (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_IN_POL (0x%08x) = 0x%08x\n",
GPIO_IN_POL, orion5x_read(GPIO_IN_POL)); GPIO_IN_POL, readl(GPIO_IN_POL));
printk(KERN_DEBUG "GPIO_DATA_IN (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_DATA_IN (0x%08x) = 0x%08x\n",
GPIO_DATA_IN, orion5x_read(GPIO_DATA_IN)); GPIO_DATA_IN, readl(GPIO_DATA_IN));
printk(KERN_DEBUG "GPIO_LEVEL_MASK (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_LEVEL_MASK (0x%08x) = 0x%08x\n",
GPIO_LEVEL_MASK, orion5x_read(GPIO_LEVEL_MASK)); GPIO_LEVEL_MASK, readl(GPIO_LEVEL_MASK));
printk(KERN_DEBUG "GPIO_EDGE_CAUSE (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_EDGE_CAUSE (0x%08x) = 0x%08x\n",
GPIO_EDGE_CAUSE, orion5x_read(GPIO_EDGE_CAUSE)); GPIO_EDGE_CAUSE, readl(GPIO_EDGE_CAUSE));
printk(KERN_DEBUG "GPIO_EDGE_MASK (0x%08x) = 0x%08x\n", printk(KERN_DEBUG "GPIO_EDGE_MASK (0x%08x) = 0x%08x\n",
GPIO_EDGE_MASK, orion5x_read(GPIO_EDGE_MASK)); GPIO_EDGE_MASK, readl(GPIO_EDGE_MASK));
} }
...@@ -82,7 +82,7 @@ static int orion5x_gpio_set_irq_type(u32 irq, u32 type) ...@@ -82,7 +82,7 @@ static int orion5x_gpio_set_irq_type(u32 irq, u32 type)
int pin = irq_to_gpio(irq); int pin = irq_to_gpio(irq);
struct irq_desc *desc; struct irq_desc *desc;
if ((orion5x_read(GPIO_IO_CONF) & (1 << pin)) == 0) { if ((readl(GPIO_IO_CONF) & (1 << pin)) == 0) {
printk(KERN_ERR "orion5x_gpio_set_irq_type failed " printk(KERN_ERR "orion5x_gpio_set_irq_type failed "
"(irq %d, pin %d).\n", irq, pin); "(irq %d, pin %d).\n", irq, pin);
return -EINVAL; return -EINVAL;
...@@ -117,7 +117,7 @@ static int orion5x_gpio_set_irq_type(u32 irq, u32 type) ...@@ -117,7 +117,7 @@ static int orion5x_gpio_set_irq_type(u32 irq, u32 type)
/* /*
* set initial polarity based on current input level * set initial polarity based on current input level
*/ */
if ((orion5x_read(GPIO_IN_POL) ^ orion5x_read(GPIO_DATA_IN)) if ((readl(GPIO_IN_POL) ^ readl(GPIO_DATA_IN))
& (1 << pin)) & (1 << pin))
orion5x_setbits(GPIO_IN_POL, (1 << pin)); /* falling */ orion5x_setbits(GPIO_IN_POL, (1 << pin)); /* falling */
else else
...@@ -149,8 +149,8 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -149,8 +149,8 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
BUG_ON(irq < IRQ_ORION5X_GPIO_0_7 || irq > IRQ_ORION5X_GPIO_24_31); BUG_ON(irq < IRQ_ORION5X_GPIO_0_7 || irq > IRQ_ORION5X_GPIO_24_31);
offs = (irq - IRQ_ORION5X_GPIO_0_7) * 8; offs = (irq - IRQ_ORION5X_GPIO_0_7) * 8;
cause = (orion5x_read(GPIO_DATA_IN) & orion5x_read(GPIO_LEVEL_MASK)) | cause = (readl(GPIO_DATA_IN) & readl(GPIO_LEVEL_MASK)) |
(orion5x_read(GPIO_EDGE_CAUSE) & orion5x_read(GPIO_EDGE_MASK)); (readl(GPIO_EDGE_CAUSE) & readl(GPIO_EDGE_MASK));
for (pin = offs; pin < offs + 8; pin++) { for (pin = offs; pin < offs + 8; pin++) {
if (cause & (1 << pin)) { if (cause & (1 << pin)) {
...@@ -158,9 +158,9 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) ...@@ -158,9 +158,9 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
desc = irq_desc + irq; desc = irq_desc + irq;
if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) { if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) {
/* Swap polarity (race with GPIO line) */ /* Swap polarity (race with GPIO line) */
u32 polarity = orion5x_read(GPIO_IN_POL); u32 polarity = readl(GPIO_IN_POL);
polarity ^= 1 << pin; polarity ^= 1 << pin;
orion5x_write(GPIO_IN_POL, polarity); writel(polarity, GPIO_IN_POL);
} }
desc_handle_irq(irq, desc); desc_handle_irq(irq, desc);
} }
...@@ -175,9 +175,9 @@ static void __init orion5x_init_gpio_irq(void) ...@@ -175,9 +175,9 @@ static void __init orion5x_init_gpio_irq(void)
/* /*
* Mask and clear GPIO IRQ interrupts * Mask and clear GPIO IRQ interrupts
*/ */
orion5x_write(GPIO_LEVEL_MASK, 0x0); writel(0x0, GPIO_LEVEL_MASK);
orion5x_write(GPIO_EDGE_MASK, 0x0); writel(0x0, GPIO_EDGE_MASK);
orion5x_write(GPIO_EDGE_CAUSE, 0x0); writel(0x0, GPIO_EDGE_CAUSE);
/* /*
* Register chained level handlers for GPIO IRQs by default. * Register chained level handlers for GPIO IRQs by default.
......
...@@ -268,7 +268,7 @@ static DEFINE_SPINLOCK(orion5x_pci_lock); ...@@ -268,7 +268,7 @@ static DEFINE_SPINLOCK(orion5x_pci_lock);
static int orion5x_pci_local_bus_nr(void) static int orion5x_pci_local_bus_nr(void)
{ {
u32 conf = orion5x_read(PCI_P2P_CONF); u32 conf = readl(PCI_P2P_CONF);
return((conf & PCI_P2P_BUS_MASK) >> PCI_P2P_BUS_OFFS); return((conf & PCI_P2P_BUS_MASK) >> PCI_P2P_BUS_OFFS);
} }
...@@ -278,11 +278,11 @@ static int orion5x_pci_hw_rd_conf(int bus, int dev, u32 func, ...@@ -278,11 +278,11 @@ static int orion5x_pci_hw_rd_conf(int bus, int dev, u32 func,
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&orion5x_pci_lock, flags); spin_lock_irqsave(&orion5x_pci_lock, flags);
orion5x_write(PCI_CONF_ADDR, PCI_CONF_BUS(bus) | writel(PCI_CONF_BUS(bus) |
PCI_CONF_DEV(dev) | PCI_CONF_REG(where) | PCI_CONF_DEV(dev) | PCI_CONF_REG(where) |
PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN); PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN, PCI_CONF_ADDR);
*val = orion5x_read(PCI_CONF_DATA); *val = readl(PCI_CONF_DATA);
if (size == 1) if (size == 1)
*val = (*val >> (8*(where & 0x3))) & 0xff; *val = (*val >> (8*(where & 0x3))) & 0xff;
...@@ -302,9 +302,9 @@ static int orion5x_pci_hw_wr_conf(int bus, int dev, u32 func, ...@@ -302,9 +302,9 @@ static int orion5x_pci_hw_wr_conf(int bus, int dev, u32 func,
spin_lock_irqsave(&orion5x_pci_lock, flags); spin_lock_irqsave(&orion5x_pci_lock, flags);
orion5x_write(PCI_CONF_ADDR, PCI_CONF_BUS(bus) | writel(PCI_CONF_BUS(bus) |
PCI_CONF_DEV(dev) | PCI_CONF_REG(where) | PCI_CONF_DEV(dev) | PCI_CONF_REG(where) |
PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN); PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN, PCI_CONF_ADDR);
if (size == 4) { if (size == 4) {
__raw_writel(val, PCI_CONF_DATA); __raw_writel(val, PCI_CONF_DATA);
...@@ -355,9 +355,9 @@ static struct pci_ops pci_ops = { ...@@ -355,9 +355,9 @@ static struct pci_ops pci_ops = {
static void __init orion5x_pci_set_bus_nr(int nr) static void __init orion5x_pci_set_bus_nr(int nr)
{ {
u32 p2p = orion5x_read(PCI_P2P_CONF); u32 p2p = readl(PCI_P2P_CONF);
if (orion5x_read(PCI_MODE) & PCI_MODE_PCIX) { if (readl(PCI_MODE) & PCI_MODE_PCIX) {
/* /*
* PCI-X mode * PCI-X mode
*/ */
...@@ -374,7 +374,7 @@ static void __init orion5x_pci_set_bus_nr(int nr) ...@@ -374,7 +374,7 @@ static void __init orion5x_pci_set_bus_nr(int nr)
*/ */
p2p &= ~PCI_P2P_BUS_MASK; p2p &= ~PCI_P2P_BUS_MASK;
p2p |= (nr << PCI_P2P_BUS_OFFS); p2p |= (nr << PCI_P2P_BUS_OFFS);
orion5x_write(PCI_P2P_CONF, p2p); writel(p2p, PCI_P2P_CONF);
} }
} }
...@@ -401,7 +401,7 @@ static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram) ...@@ -401,7 +401,7 @@ static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram)
* First, disable windows. * First, disable windows.
*/ */
win_enable = 0xffffffff; win_enable = 0xffffffff;
orion5x_write(PCI_BAR_ENABLE, win_enable); writel(win_enable, PCI_BAR_ENABLE);
/* /*
* Setup windows for DDR banks. * Setup windows for DDR banks.
...@@ -427,10 +427,10 @@ static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram) ...@@ -427,10 +427,10 @@ static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram)
*/ */
reg = PCI_CONF_REG_BAR_HI_CS(cs->cs_index); reg = PCI_CONF_REG_BAR_HI_CS(cs->cs_index);
orion5x_pci_hw_wr_conf(bus, 0, func, reg, 4, 0); orion5x_pci_hw_wr_conf(bus, 0, func, reg, 4, 0);
orion5x_write(PCI_BAR_SIZE_DDR_CS(cs->cs_index), writel((cs->size - 1) & 0xfffff000,
(cs->size - 1) & 0xfffff000); PCI_BAR_SIZE_DDR_CS(cs->cs_index));
orion5x_write(PCI_BAR_REMAP_DDR_CS(cs->cs_index), writel(cs->base & 0xfffff000,
cs->base & 0xfffff000); PCI_BAR_REMAP_DDR_CS(cs->cs_index));
/* /*
* Enable decode window for this chip select. * Enable decode window for this chip select.
...@@ -441,7 +441,7 @@ static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram) ...@@ -441,7 +441,7 @@ static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram)
/* /*
* Re-enable decode windows. * Re-enable decode windows.
*/ */
orion5x_write(PCI_BAR_ENABLE, win_enable); writel(win_enable, PCI_BAR_ENABLE);
/* /*
* Disable automatic update of address remaping when writing to BARs. * Disable automatic update of address remaping when writing to BARs.
......
...@@ -52,15 +52,12 @@ static inline void __iomem *__io(unsigned long addr) ...@@ -52,15 +52,12 @@ static inline void __iomem *__io(unsigned long addr)
/***************************************************************************** /*****************************************************************************
* Helpers to access Orion registers * Helpers to access Orion registers
****************************************************************************/ ****************************************************************************/
#define orion5x_read(r) __raw_readl(r)
#define orion5x_write(r, val) __raw_writel(val, r)
/* /*
* These are not preempt-safe. Locks, if needed, must be taken * These are not preempt-safe. Locks, if needed, must be taken
* care of by the caller. * care of by the caller.
*/ */
#define orion5x_setbits(r, mask) orion5x_write((r), orion5x_read(r) | (mask)) #define orion5x_setbits(r, mask) writel(readl(r) | (mask), (r))
#define orion5x_clrbits(r, mask) orion5x_write((r), orion5x_read(r) & ~(mask)) #define orion5x_clrbits(r, mask) writel(readl(r) & ~(mask), (r))
#endif #endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册