]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ARM: davinci: remove watchdog reset
authorDavid Lechner <david@lechnology.com>
Sun, 7 Jan 2018 03:10:15 +0000 (21:10 -0600)
committerSekhar Nori <nsekhar@ti.com>
Mon, 19 Feb 2018 10:55:15 +0000 (16:25 +0530)
This removes the watchdog reset code. The reset has been moved to
drivers/watchdog/davinci_wdt.c. The watchdog driver registers the reset
with the kernel so defining a reset for each machine is no longer needed.

Signed-off-by: David Lechner <david@lechnology.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
18 files changed:
arch/arm/mach-davinci/board-da830-evm.c
arch/arm/mach-davinci/board-da850-evm.c
arch/arm/mach-davinci/board-dm355-evm.c
arch/arm/mach-davinci/board-dm355-leopard.c
arch/arm/mach-davinci/board-dm365-evm.c
arch/arm/mach-davinci/board-dm644x-evm.c
arch/arm/mach-davinci/board-dm646x-evm.c
arch/arm/mach-davinci/board-mityomapl138.c
arch/arm/mach-davinci/board-neuros-osd2.c
arch/arm/mach-davinci/board-omapl138-hawk.c
arch/arm/mach-davinci/board-sffsdr.c
arch/arm/mach-davinci/clock.h
arch/arm/mach-davinci/da8xx-dt.c
arch/arm/mach-davinci/devices-da8xx.c
arch/arm/mach-davinci/devices.c
arch/arm/mach-davinci/include/mach/common.h
arch/arm/mach-davinci/include/mach/da8xx.h
arch/arm/mach-davinci/time.c

index f960cbef6538119784f496c4b5c17998c0936ca8..d3ee02c120149041d688afcde7bb3b548a8e4338 100644 (file)
@@ -638,5 +638,4 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM")
        .init_machine   = da830_evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = da8xx_restart,
 MACHINE_END
index 26bdb10a8927b98ff526f04ded4be4a0fced050d..b3a764feae11ed4ab39d957650b2e9d488fb939e 100644 (file)
@@ -1481,6 +1481,5 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
        .init_machine   = da850_evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = da8xx_restart,
        .reserve        = da8xx_rproc_reserve_cma,
 MACHINE_END
index e457f299cd4430d359063788886d244a53d39f12..29dbfc944e02dfd7231774f4dfb03997f2aa5c36 100644 (file)
@@ -431,5 +431,4 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM")
        .init_machine = dm355_evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
index be997243447b949699fd116970ec0aacaffbf444..1e7e9b8f3baeae81eecf351b9b9261e3c378ce42 100644 (file)
@@ -275,5 +275,4 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard")
        .init_machine = dm355_leopard_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
index e75741fb2c1da095bd59ba4e0f411a6274ce6255..17b2c29f4053e3f438658a36e5c1503b0025d6af 100644 (file)
@@ -778,6 +778,5 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
        .init_machine   = dm365_evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
 
index 85e6fb33b1eed1b2235d6223ad3e6e3423bbdece..35e1274183e1d5ee8d68995db8908a2e25f124af 100644 (file)
@@ -832,5 +832,4 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM")
        .init_machine = davinci_evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
index cb0a41e835829edb14a25ddb17c28cccf9df85d2..003bbe5c24fdfa87f085cd854af9890ef31c44b6 100644 (file)
@@ -801,7 +801,6 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM")
        .init_machine = evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
 
 MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
@@ -812,6 +811,5 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
        .init_machine = evm_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
 
index 9e7388ba413ca0cd96d0069bcfe842733dee49c2..72748e5df43ceefcbb39215607118fa5243cc223 100644 (file)
@@ -570,5 +570,4 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808")
        .init_machine   = mityomapl138_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = da8xx_restart,
 MACHINE_END
index 4da210a1a1106d6f26813d4ce30812f5aaacabe0..51a3ae19d765562450e9b2400bf61903b1149555 100644 (file)
@@ -231,5 +231,4 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2")
        .init_machine = davinci_ntosd2_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
index baab7eb616321fc7232778c5e77e835546229316..ae37bc46bc8c8d7afb9ad01990050587031b1842 100644 (file)
@@ -334,6 +334,5 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
        .init_machine   = omapl138_hawk_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = da8xx_restart,
        .reserve        = da8xx_rproc_reserve_cma,
 MACHINE_END
index d85accf7f7608a367eb6361cb8da06803c8d7da8..1f02d4ec6144335bb1c289ad0b8741dc3692cfdb 100644 (file)
@@ -154,5 +154,4 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR")
        .init_machine = davinci_sffsdr_init,
        .init_late      = davinci_init_late,
        .dma_zone_size  = SZ_128M,
-       .restart        = davinci_restart,
 MACHINE_END
index fa2b83752e030a494ae3f02a09db118e463488cd..d7894d5aaa250b027d4f035369b0d3b2ec08efd2 100644 (file)
@@ -135,9 +135,6 @@ int davinci_clk_reset(struct clk *clk, bool reset);
 void davinci_clk_enable(struct clk *clk);
 void davinci_clk_disable(struct clk *clk);
 
-extern struct platform_device davinci_wdt_device;
-extern void davinci_watchdog_reset(struct platform_device *);
-
 #endif
 
 #endif
index f06db6700ab26acfa2ea7d0a9bb3ff1c626a0c9b..779e8ce887c3c00800ea67e3341e51fdaafd50e4 100644 (file)
@@ -100,7 +100,6 @@ DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x")
        .init_machine   = da850_init_machine,
        .dt_compat      = da850_boards_compat,
        .init_late      = davinci_init_late,
-       .restart        = da8xx_restart,
 MACHINE_END
 
 #endif
index 166bf29b1296198ce45292261dd7381cae4f8a8d..24422ba07cc7695f9b3ae7621020686401a9e1cf 100644 (file)
@@ -370,19 +370,6 @@ static struct platform_device da8xx_wdt_device = {
        .resource       = da8xx_watchdog_resources,
 };
 
-void da8xx_restart(enum reboot_mode mode, const char *cmd)
-{
-       struct device *dev;
-
-       dev = bus_find_device_by_name(&platform_bus_type, NULL, "davinci-wdt");
-       if (!dev) {
-               pr_err("%s: failed to find watchdog device\n", __func__);
-               return;
-       }
-
-       davinci_watchdog_reset(to_platform_device(dev));
-}
-
 int __init da8xx_register_watchdog(void)
 {
        return platform_device_register(&da8xx_wdt_device);
index 3ae70f2909b0db1ecd7557b3014dd13c2ee9a93e..0edda4093e47d8b6f24804871a92f08660ea1dd1 100644 (file)
@@ -282,18 +282,13 @@ static struct resource wdt_resources[] = {
        },
 };
 
-struct platform_device davinci_wdt_device = {
+static struct platform_device davinci_wdt_device = {
        .name           = "davinci-wdt",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(wdt_resources),
        .resource       = wdt_resources,
 };
 
-void davinci_restart(enum reboot_mode mode, const char *cmd)
-{
-       davinci_watchdog_reset(&davinci_wdt_device);
-}
-
 int davinci_init_wdt(void)
 {
        return platform_device_register(&davinci_wdt_device);
index 433a008ff796c43c07cae0c4e5ca8920526e7199..19b9346e147eb3bee93dd2f270f38d9119585a0b 100644 (file)
@@ -81,7 +81,6 @@ extern struct davinci_soc_info davinci_soc_info;
 
 extern void davinci_common_init(const struct davinci_soc_info *soc_info);
 extern void davinci_init_ide(void);
-void davinci_restart(enum reboot_mode mode, const char *cmd);
 void davinci_init_late(void);
 
 #ifdef CONFIG_DAVINCI_RESET_CLOCKS
index 03f37ef4297f0cf960285c12a7e1cbbf2a0aded8..fe2d77654c060e276ea42316ed5233f60413c0d6 100644 (file)
@@ -119,7 +119,6 @@ int da850_register_vpif_display
                        (struct vpif_display_config *display_config);
 int da850_register_vpif_capture
                        (struct vpif_capture_config *capture_config);
-void da8xx_restart(enum reboot_mode mode, const char *cmd);
 void da8xx_rproc_reserve_cma(void);
 int da8xx_register_rproc(void);
 int da850_register_gpio(void);
index 034f865fe78e8f19b42ae941965cd98ddc971270..1bb991ad9c1ed6678b55918b66f47e26b7dc0884 100644 (file)
@@ -80,13 +80,6 @@ enum {
 #define TGCR_UNRESET                 0x1
 #define TGCR_RESET_MASK              0x3
 
-#define WDTCR_WDEN_SHIFT             14
-#define WDTCR_WDEN_DISABLE           0x0
-#define WDTCR_WDEN_ENABLE            0x1
-#define WDTCR_WDKEY_SHIFT            16
-#define WDTCR_WDKEY_SEQ0             0xa5c6
-#define WDTCR_WDKEY_SEQ1             0xda7e
-
 struct timer_s {
        char *name;
        unsigned int id;
@@ -409,53 +402,3 @@ void __init davinci_timer_init(void)
        for (i=0; i< ARRAY_SIZE(timers); i++)
                timer32_config(&timers[i]);
 }
-
-/* reset board using watchdog timer */
-void davinci_watchdog_reset(struct platform_device *pdev)
-{
-       u32 tgcr, wdtcr;
-       void __iomem *base;
-       struct clk *wd_clk;
-
-       base = ioremap(pdev->resource[0].start, SZ_4K);
-       if (WARN_ON(!base))
-               return;
-
-       wd_clk = clk_get(&pdev->dev, NULL);
-       if (WARN_ON(IS_ERR(wd_clk)))
-               return;
-       clk_prepare_enable(wd_clk);
-
-       /* disable, internal clock source */
-       __raw_writel(0, base + TCR);
-
-       /* reset timer, set mode to 64-bit watchdog, and unreset */
-       tgcr = 0;
-       __raw_writel(tgcr, base + TGCR);
-       tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT;
-       tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) |
-               (TGCR_UNRESET << TGCR_TIM34RS_SHIFT);
-       __raw_writel(tgcr, base + TGCR);
-
-       /* clear counter and period regs */
-       __raw_writel(0, base + TIM12);
-       __raw_writel(0, base + TIM34);
-       __raw_writel(0, base + PRD12);
-       __raw_writel(0, base + PRD34);
-
-       /* put watchdog in pre-active state */
-       wdtcr = __raw_readl(base + WDTCR);
-       wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) |
-               (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT);
-       __raw_writel(wdtcr, base + WDTCR);
-
-       /* put watchdog in active state */
-       wdtcr = (WDTCR_WDKEY_SEQ1 << WDTCR_WDKEY_SHIFT) |
-               (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT);
-       __raw_writel(wdtcr, base + WDTCR);
-
-       /* write an invalid value to the WDKEY field to trigger
-        * a watchdog reset */
-       wdtcr = 0x00004000;
-       __raw_writel(wdtcr, base + WDTCR);
-}