mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-01-12 00:10:15 +02:00
[mcs814x] use the recommended ARM I/O accessors
use {read,write}l_relaxed instead of the plain __raw_{read,write}l variants. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33330 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
555155f8ea
commit
08b17128a1
@ -54,13 +54,13 @@ static int clk_local_onoff_enable(struct clk *clk, int enable)
|
|||||||
if (!clk->enable_reg)
|
if (!clk->enable_reg)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
tmp = __raw_readl(mcs814x_sysdbg_base + clk->enable_reg);
|
tmp = readl_relaxed(mcs814x_sysdbg_base + clk->enable_reg);
|
||||||
if (!enable)
|
if (!enable)
|
||||||
tmp &= ~clk->enable_mask;
|
tmp &= ~clk->enable_mask;
|
||||||
else
|
else
|
||||||
tmp |= clk->enable_mask;
|
tmp |= clk->enable_mask;
|
||||||
|
|
||||||
__raw_writel(tmp, mcs814x_sysdbg_base + clk->enable_reg);
|
writel_relaxed(tmp, mcs814x_sysdbg_base + clk->enable_reg);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -254,7 +254,7 @@ void __init mcs814x_clk_init(void)
|
|||||||
clkdev_add_table(mcs814x_chip_clks, ARRAY_SIZE(mcs814x_chip_clks));
|
clkdev_add_table(mcs814x_chip_clks, ARRAY_SIZE(mcs814x_chip_clks));
|
||||||
|
|
||||||
/* read the bootstrap registers to know the exact clocking scheme */
|
/* read the bootstrap registers to know the exact clocking scheme */
|
||||||
bs1 = __raw_readl(mcs814x_sysdbg_base + SYSDBG_BS1);
|
bs1 = readl_relaxed(mcs814x_sysdbg_base + SYSDBG_BS1);
|
||||||
cpu_freq = (bs1 >> CPU_FREQ_SHIFT) & CPU_FREQ_MASK;
|
cpu_freq = (bs1 >> CPU_FREQ_SHIFT) & CPU_FREQ_MASK;
|
||||||
|
|
||||||
pr_info("CPU frequency: %lu (kHz)\n", cpu_freq_table[cpu_freq]);
|
pr_info("CPU frequency: %lu (kHz)\n", cpu_freq_table[cpu_freq]);
|
||||||
|
@ -67,22 +67,22 @@ static void mcs814x_eth_hardware_filter_set(u8 value)
|
|||||||
{
|
{
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
reg = __raw_readl(MCS814X_VIRT_BASE + MCS814X_DBGLED);
|
reg = readl_relaxed(MCS814X_VIRT_BASE + MCS814X_DBGLED);
|
||||||
if (value)
|
if (value)
|
||||||
reg |= 0x80;
|
reg |= 0x80;
|
||||||
else
|
else
|
||||||
reg &= ~0x80;
|
reg &= ~0x80;
|
||||||
__raw_writel(reg, MCS814X_VIRT_BASE + MCS814X_DBGLED);
|
writel_relaxed(reg, MCS814X_VIRT_BASE + MCS814X_DBGLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcs814x_eth_led_cfg_set(u8 cfg)
|
static void mcs814x_eth_led_cfg_set(u8 cfg)
|
||||||
{
|
{
|
||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
reg = __raw_readl(mcs814x_sysdbg_base + SYSDBG_BS2);
|
reg = readl_relaxed(mcs814x_sysdbg_base + SYSDBG_BS2);
|
||||||
reg &= ~LED_CFG_MASK;
|
reg &= ~LED_CFG_MASK;
|
||||||
reg |= cfg;
|
reg |= cfg;
|
||||||
__raw_writel(reg, mcs814x_sysdbg_base + SYSDBG_BS2);
|
writel_relaxed(reg, mcs814x_sysdbg_base + SYSDBG_BS2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcs814x_eth_buffer_shifting_set(u8 value)
|
static void mcs814x_eth_buffer_shifting_set(u8 value)
|
||||||
@ -134,7 +134,7 @@ void __init mcs814x_init_machine(void)
|
|||||||
u32 bs2, cpu_mode;
|
u32 bs2, cpu_mode;
|
||||||
int gpio;
|
int gpio;
|
||||||
|
|
||||||
bs2 = __raw_readl(mcs814x_sysdbg_base + SYSDBG_BS2);
|
bs2 = readl_relaxed(mcs814x_sysdbg_base + SYSDBG_BS2);
|
||||||
cpu_mode = (bs2 >> CPU_MODE_SHIFT) & CPU_MODE_MASK;
|
cpu_mode = (bs2 >> CPU_MODE_SHIFT) & CPU_MODE_MASK;
|
||||||
|
|
||||||
pr_info("CPU mode: %s\n", cpu_modes[cpu_mode].name);
|
pr_info("CPU mode: %s\n", cpu_modes[cpu_mode].name);
|
||||||
@ -161,5 +161,5 @@ void __init mcs814x_map_io(void)
|
|||||||
|
|
||||||
void mcs814x_restart(char mode, const char *cmd)
|
void mcs814x_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
__raw_writel(~(1 << 31), mcs814x_sysdbg_base);
|
writel_relaxed(~(1 << 31), mcs814x_sysdbg_base);
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ static void __init mcs814x_alloc_gc(void __iomem *base, unsigned int irq_start,
|
|||||||
IRQ_NOREQUEST, 0);
|
IRQ_NOREQUEST, 0);
|
||||||
|
|
||||||
/* Clear all interrupts */
|
/* Clear all interrupts */
|
||||||
__raw_writel(0xffffffff, base + MCS814X_IRQ_ICR);
|
writel_relaxed(0xffffffff, base + MCS814X_IRQ_ICR);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct of_device_id mcs814x_intc_ids[] = {
|
static const struct of_device_id mcs814x_intc_ids[] = {
|
||||||
|
@ -93,13 +93,13 @@ static int mcs8140_pci_host_status(void)
|
|||||||
{
|
{
|
||||||
u32 host_status;
|
u32 host_status;
|
||||||
|
|
||||||
host_status = __raw_readl(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
host_status = readl_relaxed(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
if (host_status & PCI_FATAL_ERROR) {
|
if (host_status & PCI_FATAL_ERROR) {
|
||||||
__raw_writel(host_status & 0xfffffff0,
|
writel_relaxed(host_status & 0xfffffff0,
|
||||||
mcs8140_pci_master_base + PCI_IF_CONFIG);
|
mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
/* flush write */
|
/* flush write */
|
||||||
host_status =
|
host_status =
|
||||||
__raw_readl(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
readl_relaxed(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,7 +124,7 @@ static int mcs8140_pci_read_config(struct pci_bus *bus,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
addr &= ~3;
|
addr &= ~3;
|
||||||
v = __raw_readl(addr);
|
v = readl_relaxed(addr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
@ -140,10 +140,10 @@ static int mcs8140_pci_read_config(struct pci_bus *bus,
|
|||||||
|
|
||||||
static void mcs8140_eeprom_emu_init(void)
|
static void mcs8140_eeprom_emu_init(void)
|
||||||
{
|
{
|
||||||
__raw_writel(0x0000000F, mcs8140_eeprom_emu_base + EPRM_SDRAM_FUNC0);
|
writel_relaxed(0x0000000F, mcs8140_eeprom_emu_base + EPRM_SDRAM_FUNC0);
|
||||||
__raw_writel(0x08000000, MCS8140_PCI_CFG_VIRT_BASE + 0x10);
|
writel_relaxed(0x08000000, MCS8140_PCI_CFG_VIRT_BASE + 0x10);
|
||||||
/* Set the DONE bit of the EEPROM emulator */
|
/* Set the DONE bit of the EEPROM emulator */
|
||||||
__raw_writel(0x01, mcs8140_eeprom_emu_base + EPRM_DONE);
|
writel_relaxed(0x01, mcs8140_eeprom_emu_base + EPRM_DONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mcs8140_pci_write_config(struct pci_bus *bus,
|
static int mcs8140_pci_write_config(struct pci_bus *bus,
|
||||||
@ -161,7 +161,7 @@ static int mcs8140_pci_write_config(struct pci_bus *bus,
|
|||||||
__raw_writew((u16)val, addr);
|
__raw_writew((u16)val, addr);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
__raw_writel(val, addr);
|
writel_relaxed(val, addr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -260,7 +260,7 @@ int __init pci_mcs8140_setup(int nr, struct pci_sys_data *sys)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
val = __raw_readl(MCS8140_PCI_CFG_VIRT_BASE);
|
val = readl_relaxed(MCS8140_PCI_CFG_VIRT_BASE);
|
||||||
if (val != MCS8140_PCI_DEVICE_ID) {
|
if (val != MCS8140_PCI_DEVICE_ID) {
|
||||||
pr_err("cannot find MCS8140 PCI Core: %08x\n", val);
|
pr_err("cannot find MCS8140 PCI Core: %08x\n", val);
|
||||||
ret = -EIO;
|
ret = -EIO;
|
||||||
@ -269,11 +269,11 @@ int __init pci_mcs8140_setup(int nr, struct pci_sys_data *sys)
|
|||||||
|
|
||||||
pr_info("MCS8140 PCI core found\n");
|
pr_info("MCS8140 PCI core found\n");
|
||||||
|
|
||||||
val = __raw_readl(MCS8140_PCI_CFG_VIRT_BASE + PCI_COMMAND);
|
val = readl_relaxed(MCS8140_PCI_CFG_VIRT_BASE + PCI_COMMAND);
|
||||||
/* Added to support wireless cards */
|
/* Added to support wireless cards */
|
||||||
__raw_writel(0, MCS8140_PCI_CFG_VIRT_BASE + 0x40);
|
writel_relaxed(0, MCS8140_PCI_CFG_VIRT_BASE + 0x40);
|
||||||
__raw_writel(val | 0x147, MCS8140_PCI_CFG_VIRT_BASE + PCI_COMMAND);
|
writel_relaxed(val | 0x147, MCS8140_PCI_CFG_VIRT_BASE + PCI_COMMAND);
|
||||||
val = __raw_readl(MCS8140_PCI_CFG_VIRT_BASE + PCI_COMMAND);
|
val = readl_relaxed(MCS8140_PCI_CFG_VIRT_BASE + PCI_COMMAND);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
@ -302,14 +302,14 @@ static irqreturn_t mcs8140_pci_abort_interrupt(int irq, void *dummy)
|
|||||||
{
|
{
|
||||||
u32 word;
|
u32 word;
|
||||||
|
|
||||||
word = __raw_readl(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
word = readl_relaxed(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
if (!(word & (1 << 24)))
|
if (!(word & (1 << 24)))
|
||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
|
|
||||||
__raw_writel(word & 0xfffffff0,
|
writel_relaxed(word & 0xfffffff0,
|
||||||
mcs8140_pci_master_base + PCI_IF_CONFIG);
|
mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
/* flush write */
|
/* flush write */
|
||||||
word = __raw_readl(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
word = readl_relaxed(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
@ -319,12 +319,12 @@ static int mcs8140_pci_abort_irq_init(int irq)
|
|||||||
u32 word;
|
u32 word;
|
||||||
|
|
||||||
/* Enable Interrupt in PCI Master Core */
|
/* Enable Interrupt in PCI Master Core */
|
||||||
word = __raw_readl(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
word = readl_relaxed(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
word |= (1 << 24);
|
word |= (1 << 24);
|
||||||
__raw_writel(word, mcs8140_pci_master_base + PCI_IF_CONFIG);
|
writel_relaxed(word, mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
|
|
||||||
/* flush write */
|
/* flush write */
|
||||||
word = __raw_readl(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
word = readl_relaxed(mcs8140_pci_master_base + PCI_IF_CONFIG);
|
||||||
|
|
||||||
return request_irq(irq, mcs8140_pci_abort_interrupt, 0,
|
return request_irq(irq, mcs8140_pci_abort_interrupt, 0,
|
||||||
"PCI abort", NULL);
|
"PCI abort", NULL);
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
/* Timer block registers */
|
/* Timer block registers */
|
||||||
#define TIMER_VAL 0x00
|
#define TIMER_VAL 0x00
|
||||||
#define TIMER_CTL 0x04
|
#define TIMER_CTL 0x04
|
||||||
|
#define TIMER_CTL_EN 0x01
|
||||||
|
#define TIMER_CTL_DBG 0x02
|
||||||
|
|
||||||
static u32 last_reload;
|
static u32 last_reload;
|
||||||
static u32 timer_correct;
|
static u32 timer_correct;
|
||||||
@ -40,7 +42,7 @@ static inline unsigned long ticks2usecs(u32 x)
|
|||||||
*/
|
*/
|
||||||
static unsigned long mcs814x_gettimeoffset(void)
|
static unsigned long mcs814x_gettimeoffset(void)
|
||||||
{
|
{
|
||||||
u32 ticks = __raw_readl(mcs814x_timer_base + TIMER_VAL);
|
u32 ticks = readl_relaxed(mcs814x_timer_base + TIMER_VAL);
|
||||||
|
|
||||||
if (ticks < last_reload)
|
if (ticks < last_reload)
|
||||||
return ticks2usecs(ticks + (u32)(0xffffffff - last_reload));
|
return ticks2usecs(ticks + (u32)(0xffffffff - last_reload));
|
||||||
@ -51,7 +53,7 @@ static unsigned long mcs814x_gettimeoffset(void)
|
|||||||
|
|
||||||
static irqreturn_t mcs814x_timer_interrupt(int irq, void *dev_id)
|
static irqreturn_t mcs814x_timer_interrupt(int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
u32 count = __raw_readl(mcs814x_timer_base + TIMER_VAL);
|
u32 count = readl_relaxed(mcs814x_timer_base + TIMER_VAL);
|
||||||
|
|
||||||
/* take into account delay up to this moment */
|
/* take into account delay up to this moment */
|
||||||
last_reload = count + timer_correct + timer_reload_value;
|
last_reload = count + timer_correct + timer_reload_value;
|
||||||
@ -60,9 +62,9 @@ static irqreturn_t mcs814x_timer_interrupt(int irq, void *dev_id)
|
|||||||
last_reload = timer_reload_value;
|
last_reload = timer_reload_value;
|
||||||
} else {
|
} else {
|
||||||
if (timer_correct == 0)
|
if (timer_correct == 0)
|
||||||
timer_correct = __raw_readl(mcs814x_timer_base + TIMER_VAL) - count;
|
timer_correct = readl_relaxed(mcs814x_timer_base + TIMER_VAL) - count;
|
||||||
}
|
}
|
||||||
__raw_writel(last_reload, mcs814x_timer_base + TIMER_VAL);
|
writel_relaxed(last_reload, mcs814x_timer_base + TIMER_VAL);
|
||||||
|
|
||||||
timer_tick();
|
timer_tick();
|
||||||
|
|
||||||
@ -118,13 +120,14 @@ static void __init mcs814x_timer_init(void)
|
|||||||
timer_reload_value = 0xffffffff - (clock_rate / HZ);
|
timer_reload_value = 0xffffffff - (clock_rate / HZ);
|
||||||
|
|
||||||
/* disable timer */
|
/* disable timer */
|
||||||
__raw_writel(0, mcs814x_timer_base + TIMER_CTL);
|
writel_relaxed(~TIMER_CTL_EN, mcs814x_timer_base + TIMER_CTL);
|
||||||
__raw_writel(timer_reload_value, mcs814x_timer_base + TIMER_VAL);
|
writel_relaxed(timer_reload_value, mcs814x_timer_base + TIMER_VAL);
|
||||||
last_reload = timer_reload_value;
|
last_reload = timer_reload_value;
|
||||||
|
|
||||||
setup_irq(mcs814x_timer_irq.irq, &mcs814x_timer_irq);
|
setup_irq(mcs814x_timer_irq.irq, &mcs814x_timer_irq);
|
||||||
/* enable timer, stop timer in debug mode */
|
/* enable timer, stop timer in debug mode */
|
||||||
__raw_writel(0x03, mcs814x_timer_base + TIMER_CTL);
|
writel_relaxed(TIMER_CTL_EN | TIMER_CTL_DBG,
|
||||||
|
mcs814x_timer_base + TIMER_CTL);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer mcs814x_timer = {
|
struct sys_timer mcs814x_timer = {
|
||||||
|
@ -28,7 +28,7 @@ static int mcs814x_rng_data_read(struct hwrng *rng, u32 *buffer)
|
|||||||
{
|
{
|
||||||
struct mcs814x_rng_priv *priv = (struct mcs814x_rng_priv *)rng->priv;
|
struct mcs814x_rng_priv *priv = (struct mcs814x_rng_priv *)rng->priv;
|
||||||
|
|
||||||
*buffer = __raw_readl(priv->regs + RND);
|
*buffer = readl_relaxed(priv->regs + RND);
|
||||||
|
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ static int mcs814x_gpio_get(struct gpio_chip *chip, unsigned offset)
|
|||||||
{
|
{
|
||||||
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
||||||
|
|
||||||
return __raw_readl(mcs814x->regs + GPIO_PIN) & (1 << offset);
|
return readl_relaxed(mcs814x->regs + GPIO_PIN) & (1 << offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcs814x_gpio_set(struct gpio_chip *chip,
|
static void mcs814x_gpio_set(struct gpio_chip *chip,
|
||||||
@ -39,12 +39,12 @@ static void mcs814x_gpio_set(struct gpio_chip *chip,
|
|||||||
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
||||||
u32 mask;
|
u32 mask;
|
||||||
|
|
||||||
mask = __raw_readl(mcs814x->regs + GPIO_PIN);
|
mask = readl_relaxed(mcs814x->regs + GPIO_PIN);
|
||||||
if (value)
|
if (value)
|
||||||
mask |= (1 << offset);
|
mask |= (1 << offset);
|
||||||
else
|
else
|
||||||
mask &= ~(1 << offset);
|
mask &= ~(1 << offset);
|
||||||
__raw_writel(mask, mcs814x->regs + GPIO_PIN);
|
writel_relaxed(mask, mcs814x->regs + GPIO_PIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mcs814x_gpio_direction_output(struct gpio_chip *chip,
|
static int mcs814x_gpio_direction_output(struct gpio_chip *chip,
|
||||||
@ -53,9 +53,9 @@ static int mcs814x_gpio_direction_output(struct gpio_chip *chip,
|
|||||||
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
||||||
u32 mask;
|
u32 mask;
|
||||||
|
|
||||||
mask = __raw_readl(mcs814x->regs + GPIO_DIR);
|
mask = readl_relaxed(mcs814x->regs + GPIO_DIR);
|
||||||
mask &= ~(1 << offset);
|
mask &= ~(1 << offset);
|
||||||
__raw_writel(mask, mcs814x->regs + GPIO_DIR);
|
writel_relaxed(mask, mcs814x->regs + GPIO_DIR);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -66,9 +66,9 @@ static int mcs814x_gpio_direction_input(struct gpio_chip *chip,
|
|||||||
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
struct mcs814x_gpio_chip *mcs814x = to_mcs814x_gpio_chip(chip);
|
||||||
u32 mask;
|
u32 mask;
|
||||||
|
|
||||||
mask = __raw_readl(mcs814x->regs + GPIO_DIR);
|
mask = readl_relaxed(mcs814x->regs + GPIO_DIR);
|
||||||
mask |= (1 << offset);
|
mask |= (1 << offset);
|
||||||
__raw_writel(mask, mcs814x->regs + GPIO_DIR);
|
writel_relaxed(mask, mcs814x->regs + GPIO_DIR);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@
|
|||||||
|
|
||||||
static inline u32 nuport_mac_readl(void __iomem *reg)
|
static inline u32 nuport_mac_readl(void __iomem *reg)
|
||||||
{
|
{
|
||||||
return __raw_readl(reg);
|
return readl_relaxed(reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline u8 nuport_mac_readb(void __iomem *reg)
|
static inline u8 nuport_mac_readb(void __iomem *reg)
|
||||||
@ -122,12 +122,12 @@ static inline u8 nuport_mac_readb(void __iomem *reg)
|
|||||||
|
|
||||||
static inline void nuport_mac_writel(u32 value, void __iomem *reg)
|
static inline void nuport_mac_writel(u32 value, void __iomem *reg)
|
||||||
{
|
{
|
||||||
__raw_writel(value, reg);
|
writel_relaxed(value, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void nuport_mac_writeb(u8 value, void __iomem *reg)
|
static inline void nuport_mac_writeb(u8 value, void __iomem *reg)
|
||||||
{
|
{
|
||||||
__raw_writel(value, reg);
|
writel_relaxed(value, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* MAC private data */
|
/* MAC private data */
|
||||||
|
@ -49,9 +49,9 @@ static int mcs814x_wdt_start(struct watchdog_device *dev)
|
|||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
spin_lock(&wdt->lock);
|
spin_lock(&wdt->lock);
|
||||||
reg = __raw_readl(wdt->regs + WDT_CTRL);
|
reg = readl_relaxed(wdt->regs + WDT_CTRL);
|
||||||
reg |= WDT_CTRL_EN;
|
reg |= WDT_CTRL_EN;
|
||||||
__raw_writel(reg, wdt->regs + WDT_CTRL);
|
writel_relaxed(reg, wdt->regs + WDT_CTRL);
|
||||||
spin_unlock(&wdt->lock);
|
spin_unlock(&wdt->lock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -63,9 +63,9 @@ static int mcs814x_wdt_stop(struct watchdog_device *dev)
|
|||||||
u32 reg;
|
u32 reg;
|
||||||
|
|
||||||
spin_lock(&wdt->lock);
|
spin_lock(&wdt->lock);
|
||||||
reg = __raw_readl(wdt->regs + WDT_CTRL);
|
reg = readl_relaxed(wdt->regs + WDT_CTRL);
|
||||||
reg &= ~WDT_CTRL_EN;
|
reg &= ~WDT_CTRL_EN;
|
||||||
__raw_writel(reg, wdt->regs + WDT_CTRL);
|
writel_relaxed(reg, wdt->regs + WDT_CTRL);
|
||||||
spin_unlock(&wdt->lock);
|
spin_unlock(&wdt->lock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -80,7 +80,7 @@ static int mcs814x_wdt_set_timeout(struct watchdog_device *dev,
|
|||||||
/* watchdog counts upward and rollover (0xfffffff -> 0)
|
/* watchdog counts upward and rollover (0xfffffff -> 0)
|
||||||
* triggers the reboot
|
* triggers the reboot
|
||||||
*/
|
*/
|
||||||
__raw_writel(WDT_MAX_VALUE - (new_timeout * clk_get_rate(wdt->clk)),
|
writel_relaxed(WDT_MAX_VALUE - (new_timeout * clk_get_rate(wdt->clk)),
|
||||||
wdt->regs + WDT_COUNT);
|
wdt->regs + WDT_COUNT);
|
||||||
spin_unlock(&wdt->lock);
|
spin_unlock(&wdt->lock);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user