1. Made the connection between CNS3xxx SOCs(ARCH_CNS3xxx) and MPcore watchdog since the CNS3xxx SOCs have ARM11 MPcore CPU. 2. Enable mpcore_watchdog option as module to default configuration at arch/arm/configs/cns3420vb_defconfig. Signed-off-by: Tommy Lin --- arch/arm/Kconfig | 1 + arch/arm/configs/cns3420vb_defconfig | 2 ++ arch/arm/mach-cns3xxx/cns3420vb.c | 22 ++++++++++++++++++++++ 3 files changed, 25 insertions(+), 0 deletions(-) --- a/arch/arm/configs/cns3420vb_defconfig +++ b/arch/arm/configs/cns3420vb_defconfig @@ -56,6 +56,8 @@ CONFIG_LEGACY_PTY_COUNT=16 # CONFIG_HW_RANDOM is not set # CONFIG_HWMON is not set # CONFIG_VGA_CONSOLE is not set +CONFIG_WATCHDOG=y +CONFIG_MPCORE_WATCHDOG=m # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set CONFIG_MMC=y --- a/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/arch/arm/mach-cns3xxx/cns3420vb.c @@ -206,10 +206,32 @@ static struct platform_device cns3xxx_us }, }; +/* Watchdog */ +static struct resource cns3xxx_watchdog_resources[] = { + [0] = { + .start = CNS3XXX_TC11MP_TWD_BASE, + .end = CNS3XXX_TC11MP_TWD_BASE + PAGE_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_LOCALWDOG, + .end = IRQ_LOCALWDOG, + .flags = IORESOURCE_IRQ, + } +}; + +static struct platform_device cns3xxx_watchdog_device = { + .name = "mpcore_wdt", + .id = -1, + .num_resources = ARRAY_SIZE(cns3xxx_watchdog_resources), + .resource = cns3xxx_watchdog_resources, +}; + /* * Initialization */ static struct platform_device *cns3420_pdevs[] __initdata = { + &cns3xxx_watchdog_device, &cns3420_nor_pdev, &cns3xxx_usb_ehci_device, &cns3xxx_usb_ohci_device,