diff options
author | David Lechner <david@lechnology.com> | 2018-01-06 22:10:15 -0500 |
---|---|---|
committer | Sekhar Nori <nsekhar@ti.com> | 2018-02-19 05:55:15 -0500 |
commit | 94f2e94514e5dea6677b4379efd3479105519bdc (patch) | |
tree | 8a349e5a86204d4514507b8238dc4c54283a8c8c | |
parent | bdec5a6b57896da81bc47262868468717a06bb69 (diff) |
ARM: davinci: remove watchdog reset
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>
-rw-r--r-- | arch/arm/mach-davinci/board-da830-evm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-da850-evm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm355-evm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm355-leopard.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm365-evm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm644x-evm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-dm646x-evm.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-mityomapl138.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-neuros-osd2.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-omapl138-hawk.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-sffsdr.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/clock.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-davinci/da8xx-dt.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/devices-da8xx.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-davinci/devices.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/common.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/da8xx.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/time.c | 57 |
18 files changed, 1 insertions, 94 deletions
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c index f960cbef6538..d3ee02c12014 100644 --- a/arch/arm/mach-davinci/board-da830-evm.c +++ b/arch/arm/mach-davinci/board-da830-evm.c | |||
@@ -638,5 +638,4 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") | |||
638 | .init_machine = da830_evm_init, | 638 | .init_machine = da830_evm_init, |
639 | .init_late = davinci_init_late, | 639 | .init_late = davinci_init_late, |
640 | .dma_zone_size = SZ_128M, | 640 | .dma_zone_size = SZ_128M, |
641 | .restart = da8xx_restart, | ||
642 | MACHINE_END | 641 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 26bdb10a8927..b3a764feae11 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -1481,6 +1481,5 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") | |||
1481 | .init_machine = da850_evm_init, | 1481 | .init_machine = da850_evm_init, |
1482 | .init_late = davinci_init_late, | 1482 | .init_late = davinci_init_late, |
1483 | .dma_zone_size = SZ_128M, | 1483 | .dma_zone_size = SZ_128M, |
1484 | .restart = da8xx_restart, | ||
1485 | .reserve = da8xx_rproc_reserve_cma, | 1484 | .reserve = da8xx_rproc_reserve_cma, |
1486 | MACHINE_END | 1485 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index e457f299cd44..29dbfc944e02 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
@@ -431,5 +431,4 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") | |||
431 | .init_machine = dm355_evm_init, | 431 | .init_machine = dm355_evm_init, |
432 | .init_late = davinci_init_late, | 432 | .init_late = davinci_init_late, |
433 | .dma_zone_size = SZ_128M, | 433 | .dma_zone_size = SZ_128M, |
434 | .restart = davinci_restart, | ||
435 | MACHINE_END | 434 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c index be997243447b..1e7e9b8f3bae 100644 --- a/arch/arm/mach-davinci/board-dm355-leopard.c +++ b/arch/arm/mach-davinci/board-dm355-leopard.c | |||
@@ -275,5 +275,4 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") | |||
275 | .init_machine = dm355_leopard_init, | 275 | .init_machine = dm355_leopard_init, |
276 | .init_late = davinci_init_late, | 276 | .init_late = davinci_init_late, |
277 | .dma_zone_size = SZ_128M, | 277 | .dma_zone_size = SZ_128M, |
278 | .restart = davinci_restart, | ||
279 | MACHINE_END | 278 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index e75741fb2c1d..17b2c29f4053 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
@@ -778,6 +778,5 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") | |||
778 | .init_machine = dm365_evm_init, | 778 | .init_machine = dm365_evm_init, |
779 | .init_late = davinci_init_late, | 779 | .init_late = davinci_init_late, |
780 | .dma_zone_size = SZ_128M, | 780 | .dma_zone_size = SZ_128M, |
781 | .restart = davinci_restart, | ||
782 | MACHINE_END | 781 | MACHINE_END |
783 | 782 | ||
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index 85e6fb33b1ee..35e1274183e1 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
@@ -832,5 +832,4 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") | |||
832 | .init_machine = davinci_evm_init, | 832 | .init_machine = davinci_evm_init, |
833 | .init_late = davinci_init_late, | 833 | .init_late = davinci_init_late, |
834 | .dma_zone_size = SZ_128M, | 834 | .dma_zone_size = SZ_128M, |
835 | .restart = davinci_restart, | ||
836 | MACHINE_END | 835 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index cb0a41e83582..003bbe5c24fd 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -801,7 +801,6 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | |||
801 | .init_machine = evm_init, | 801 | .init_machine = evm_init, |
802 | .init_late = davinci_init_late, | 802 | .init_late = davinci_init_late, |
803 | .dma_zone_size = SZ_128M, | 803 | .dma_zone_size = SZ_128M, |
804 | .restart = davinci_restart, | ||
805 | MACHINE_END | 804 | MACHINE_END |
806 | 805 | ||
807 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | 806 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") |
@@ -812,6 +811,5 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | |||
812 | .init_machine = evm_init, | 811 | .init_machine = evm_init, |
813 | .init_late = davinci_init_late, | 812 | .init_late = davinci_init_late, |
814 | .dma_zone_size = SZ_128M, | 813 | .dma_zone_size = SZ_128M, |
815 | .restart = davinci_restart, | ||
816 | MACHINE_END | 814 | MACHINE_END |
817 | 815 | ||
diff --git a/arch/arm/mach-davinci/board-mityomapl138.c b/arch/arm/mach-davinci/board-mityomapl138.c index 9e7388ba413c..72748e5df43c 100644 --- a/arch/arm/mach-davinci/board-mityomapl138.c +++ b/arch/arm/mach-davinci/board-mityomapl138.c | |||
@@ -570,5 +570,4 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") | |||
570 | .init_machine = mityomapl138_init, | 570 | .init_machine = mityomapl138_init, |
571 | .init_late = davinci_init_late, | 571 | .init_late = davinci_init_late, |
572 | .dma_zone_size = SZ_128M, | 572 | .dma_zone_size = SZ_128M, |
573 | .restart = da8xx_restart, | ||
574 | MACHINE_END | 573 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c index 4da210a1a110..51a3ae19d765 100644 --- a/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/arch/arm/mach-davinci/board-neuros-osd2.c | |||
@@ -231,5 +231,4 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2") | |||
231 | .init_machine = davinci_ntosd2_init, | 231 | .init_machine = davinci_ntosd2_init, |
232 | .init_late = davinci_init_late, | 232 | .init_late = davinci_init_late, |
233 | .dma_zone_size = SZ_128M, | 233 | .dma_zone_size = SZ_128M, |
234 | .restart = davinci_restart, | ||
235 | MACHINE_END | 234 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index baab7eb61632..ae37bc46bc8c 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c | |||
@@ -334,6 +334,5 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") | |||
334 | .init_machine = omapl138_hawk_init, | 334 | .init_machine = omapl138_hawk_init, |
335 | .init_late = davinci_init_late, | 335 | .init_late = davinci_init_late, |
336 | .dma_zone_size = SZ_128M, | 336 | .dma_zone_size = SZ_128M, |
337 | .restart = da8xx_restart, | ||
338 | .reserve = da8xx_rproc_reserve_cma, | 337 | .reserve = da8xx_rproc_reserve_cma, |
339 | MACHINE_END | 338 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c index d85accf7f760..1f02d4ec6144 100644 --- a/arch/arm/mach-davinci/board-sffsdr.c +++ b/arch/arm/mach-davinci/board-sffsdr.c | |||
@@ -154,5 +154,4 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR") | |||
154 | .init_machine = davinci_sffsdr_init, | 154 | .init_machine = davinci_sffsdr_init, |
155 | .init_late = davinci_init_late, | 155 | .init_late = davinci_init_late, |
156 | .dma_zone_size = SZ_128M, | 156 | .dma_zone_size = SZ_128M, |
157 | .restart = davinci_restart, | ||
158 | MACHINE_END | 157 | MACHINE_END |
diff --git a/arch/arm/mach-davinci/clock.h b/arch/arm/mach-davinci/clock.h index fa2b83752e03..d7894d5aaa25 100644 --- a/arch/arm/mach-davinci/clock.h +++ b/arch/arm/mach-davinci/clock.h | |||
@@ -135,9 +135,6 @@ int davinci_clk_reset(struct clk *clk, bool reset); | |||
135 | void davinci_clk_enable(struct clk *clk); | 135 | void davinci_clk_enable(struct clk *clk); |
136 | void davinci_clk_disable(struct clk *clk); | 136 | void davinci_clk_disable(struct clk *clk); |
137 | 137 | ||
138 | extern struct platform_device davinci_wdt_device; | ||
139 | extern void davinci_watchdog_reset(struct platform_device *); | ||
140 | |||
141 | #endif | 138 | #endif |
142 | 139 | ||
143 | #endif | 140 | #endif |
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c index f06db6700ab2..779e8ce887c3 100644 --- a/arch/arm/mach-davinci/da8xx-dt.c +++ b/arch/arm/mach-davinci/da8xx-dt.c | |||
@@ -100,7 +100,6 @@ DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x") | |||
100 | .init_machine = da850_init_machine, | 100 | .init_machine = da850_init_machine, |
101 | .dt_compat = da850_boards_compat, | 101 | .dt_compat = da850_boards_compat, |
102 | .init_late = davinci_init_late, | 102 | .init_late = davinci_init_late, |
103 | .restart = da8xx_restart, | ||
104 | MACHINE_END | 103 | MACHINE_END |
105 | 104 | ||
106 | #endif | 105 | #endif |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index 166bf29b1296..24422ba07cc7 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
@@ -370,19 +370,6 @@ static struct platform_device da8xx_wdt_device = { | |||
370 | .resource = da8xx_watchdog_resources, | 370 | .resource = da8xx_watchdog_resources, |
371 | }; | 371 | }; |
372 | 372 | ||
373 | void da8xx_restart(enum reboot_mode mode, const char *cmd) | ||
374 | { | ||
375 | struct device *dev; | ||
376 | |||
377 | dev = bus_find_device_by_name(&platform_bus_type, NULL, "davinci-wdt"); | ||
378 | if (!dev) { | ||
379 | pr_err("%s: failed to find watchdog device\n", __func__); | ||
380 | return; | ||
381 | } | ||
382 | |||
383 | davinci_watchdog_reset(to_platform_device(dev)); | ||
384 | } | ||
385 | |||
386 | int __init da8xx_register_watchdog(void) | 373 | int __init da8xx_register_watchdog(void) |
387 | { | 374 | { |
388 | return platform_device_register(&da8xx_wdt_device); | 375 | return platform_device_register(&da8xx_wdt_device); |
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c index 3ae70f2909b0..0edda4093e47 100644 --- a/arch/arm/mach-davinci/devices.c +++ b/arch/arm/mach-davinci/devices.c | |||
@@ -282,18 +282,13 @@ static struct resource wdt_resources[] = { | |||
282 | }, | 282 | }, |
283 | }; | 283 | }; |
284 | 284 | ||
285 | struct platform_device davinci_wdt_device = { | 285 | static struct platform_device davinci_wdt_device = { |
286 | .name = "davinci-wdt", | 286 | .name = "davinci-wdt", |
287 | .id = -1, | 287 | .id = -1, |
288 | .num_resources = ARRAY_SIZE(wdt_resources), | 288 | .num_resources = ARRAY_SIZE(wdt_resources), |
289 | .resource = wdt_resources, | 289 | .resource = wdt_resources, |
290 | }; | 290 | }; |
291 | 291 | ||
292 | void davinci_restart(enum reboot_mode mode, const char *cmd) | ||
293 | { | ||
294 | davinci_watchdog_reset(&davinci_wdt_device); | ||
295 | } | ||
296 | |||
297 | int davinci_init_wdt(void) | 292 | int davinci_init_wdt(void) |
298 | { | 293 | { |
299 | return platform_device_register(&davinci_wdt_device); | 294 | return platform_device_register(&davinci_wdt_device); |
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h index 433a008ff796..19b9346e147e 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h | |||
@@ -81,7 +81,6 @@ extern struct davinci_soc_info davinci_soc_info; | |||
81 | 81 | ||
82 | extern void davinci_common_init(const struct davinci_soc_info *soc_info); | 82 | extern void davinci_common_init(const struct davinci_soc_info *soc_info); |
83 | extern void davinci_init_ide(void); | 83 | extern void davinci_init_ide(void); |
84 | void davinci_restart(enum reboot_mode mode, const char *cmd); | ||
85 | void davinci_init_late(void); | 84 | void davinci_init_late(void); |
86 | 85 | ||
87 | #ifdef CONFIG_DAVINCI_RESET_CLOCKS | 86 | #ifdef CONFIG_DAVINCI_RESET_CLOCKS |
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index 03f37ef4297f..fe2d77654c06 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h | |||
@@ -119,7 +119,6 @@ int da850_register_vpif_display | |||
119 | (struct vpif_display_config *display_config); | 119 | (struct vpif_display_config *display_config); |
120 | int da850_register_vpif_capture | 120 | int da850_register_vpif_capture |
121 | (struct vpif_capture_config *capture_config); | 121 | (struct vpif_capture_config *capture_config); |
122 | void da8xx_restart(enum reboot_mode mode, const char *cmd); | ||
123 | void da8xx_rproc_reserve_cma(void); | 122 | void da8xx_rproc_reserve_cma(void); |
124 | int da8xx_register_rproc(void); | 123 | int da8xx_register_rproc(void); |
125 | int da850_register_gpio(void); | 124 | int da850_register_gpio(void); |
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c index 034f865fe78e..1bb991ad9c1e 100644 --- a/arch/arm/mach-davinci/time.c +++ b/arch/arm/mach-davinci/time.c | |||
@@ -80,13 +80,6 @@ enum { | |||
80 | #define TGCR_UNRESET 0x1 | 80 | #define TGCR_UNRESET 0x1 |
81 | #define TGCR_RESET_MASK 0x3 | 81 | #define TGCR_RESET_MASK 0x3 |
82 | 82 | ||
83 | #define WDTCR_WDEN_SHIFT 14 | ||
84 | #define WDTCR_WDEN_DISABLE 0x0 | ||
85 | #define WDTCR_WDEN_ENABLE 0x1 | ||
86 | #define WDTCR_WDKEY_SHIFT 16 | ||
87 | #define WDTCR_WDKEY_SEQ0 0xa5c6 | ||
88 | #define WDTCR_WDKEY_SEQ1 0xda7e | ||
89 | |||
90 | struct timer_s { | 83 | struct timer_s { |
91 | char *name; | 84 | char *name; |
92 | unsigned int id; | 85 | unsigned int id; |
@@ -409,53 +402,3 @@ void __init davinci_timer_init(void) | |||
409 | for (i=0; i< ARRAY_SIZE(timers); i++) | 402 | for (i=0; i< ARRAY_SIZE(timers); i++) |
410 | timer32_config(&timers[i]); | 403 | timer32_config(&timers[i]); |
411 | } | 404 | } |
412 | |||
413 | /* reset board using watchdog timer */ | ||
414 | void davinci_watchdog_reset(struct platform_device *pdev) | ||
415 | { | ||
416 | u32 tgcr, wdtcr; | ||
417 | void __iomem *base; | ||
418 | struct clk *wd_clk; | ||
419 | |||
420 | base = ioremap(pdev->resource[0].start, SZ_4K); | ||
421 | if (WARN_ON(!base)) | ||
422 | return; | ||
423 | |||
424 | wd_clk = clk_get(&pdev->dev, NULL); | ||
425 | if (WARN_ON(IS_ERR(wd_clk))) | ||
426 | return; | ||
427 | clk_prepare_enable(wd_clk); | ||
428 | |||
429 | /* disable, internal clock source */ | ||
430 | __raw_writel(0, base + TCR); | ||
431 | |||
432 | /* reset timer, set mode to 64-bit watchdog, and unreset */ | ||
433 | tgcr = 0; | ||
434 | __raw_writel(tgcr, base + TGCR); | ||
435 | tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT; | ||
436 | tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) | | ||
437 | (TGCR_UNRESET << TGCR_TIM34RS_SHIFT); | ||
438 | __raw_writel(tgcr, base + TGCR); | ||
439 | |||
440 | /* clear counter and period regs */ | ||
441 | __raw_writel(0, base + TIM12); | ||
442 | __raw_writel(0, base + TIM34); | ||
443 | __raw_writel(0, base + PRD12); | ||
444 | __raw_writel(0, base + PRD34); | ||
445 | |||
446 | /* put watchdog in pre-active state */ | ||
447 | wdtcr = __raw_readl(base + WDTCR); | ||
448 | wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) | | ||
449 | (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT); | ||
450 | __raw_writel(wdtcr, base + WDTCR); | ||
451 | |||
452 | /* put watchdog in active state */ | ||
453 | wdtcr = (WDTCR_WDKEY_SEQ1 << WDTCR_WDKEY_SHIFT) | | ||
454 | (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT); | ||
455 | __raw_writel(wdtcr, base + WDTCR); | ||
456 | |||
457 | /* write an invalid value to the WDKEY field to trigger | ||
458 | * a watchdog reset */ | ||
459 | wdtcr = 0x00004000; | ||
460 | __raw_writel(wdtcr, base + WDTCR); | ||
461 | } | ||