ramips: add watchdog device for RT305x

SVN-Revision: 25127
master
Gabor Juhos 14 years ago
parent 16366feafb
commit 42e36cf732
  1. 5
      target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x_regs.h
  2. 28
      target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c
  3. 1
      target/linux/ramips/files/arch/mips/ralink/rt305x/devices.h

@ -62,6 +62,11 @@
#define SYSTEM_CONFIG_CPUCLK_MASK 0x1
#define SYSTEM_CONFIG_CPUCLK_320 0x0
#define SYSTEM_CONFIG_CPUCLK_384 0x1
#define SYSTEM_CONFIG_SRAM_CS0_MODE_SHIFT 2
#define SYSTEM_CONFIG_SRAM_CS0_MODE_MASK 0x3
#define SYSTEM_CONFIG_SRAM_CS0_MODE_NORMAL 0
#define SYSTEM_CONFIG_SRAM_CS0_MODE_WDT 1
#define SYSTEM_CONFIG_SRAM_CS0_MODE_BTCOEX 2
#define RT305X_GPIO_MODE_I2C BIT(0)
#define RT305X_GPIO_MODE_SPI BIT(1)

@ -189,3 +189,31 @@ void __init rt305x_register_wifi(void)
{
platform_device_register(&rt305x_wifi_device);
}
static struct resource rt305x_wdt_resources[] = {
{
.start = RT305X_TIMER_BASE,
.end = RT305X_TIMER_BASE + RT305X_TIMER_SIZE - 1,
.flags = IORESOURCE_MEM,
},
};
static struct platform_device rt305x_wdt_device = {
.name = "ramips-wdt",
.id = -1,
.resource = rt305x_wdt_resources,
.num_resources = ARRAY_SIZE(rt305x_wdt_resources),
};
void __init rt305x_register_wdt(void)
{
u32 t;
/* enable WDT reset output on pin SRAM_CS_N */
t = rt305x_sysc_rr(SYSC_REG_SYSTEM_CONFIG);
t |= SYSTEM_CONFIG_SRAM_CS0_MODE_WDT <<
SYSTEM_CONFIG_SRAM_CS0_MODE_SHIFT;
rt305x_sysc_wr(t, SYSC_REG_SYSTEM_CONFIG);
platform_device_register(&rt305x_wdt_device);
}

@ -20,6 +20,7 @@ extern struct rt305x_esw_platform_data rt305x_esw_data;
void rt305x_register_flash(unsigned int id, struct physmap_flash_data *pdata);
void rt305x_register_ethernet(void);
void rt305x_register_wifi(void);
void rt305x_register_wdt(void);
#endif /* __RT305X_DEVICES_H */

Loading…
Cancel
Save