Deleted Added
full compact
timer.c (247463) timer.c (251371)
1/*-
2 * Copyright (c) 2006 Benno Rice.
3 * Copyright (C) 2007-2008 MARVELL INTERNATIONAL LTD.
4 * All rights reserved.
5 *
6 * Adapted to Marvell SoC by Semihalf.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 15 unchanged lines hidden (view full) ---

24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * from: FreeBSD: //depot/projects/arm/src/sys/arm/xscale/pxa2x0/pxa2x0_timer.c, rev 1
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2006 Benno Rice.
3 * Copyright (C) 2007-2008 MARVELL INTERNATIONAL LTD.
4 * All rights reserved.
5 *
6 * Adapted to Marvell SoC by Semihalf.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 15 unchanged lines hidden (view full) ---

24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * from: FreeBSD: //depot/projects/arm/src/sys/arm/xscale/pxa2x0/pxa2x0_timer.c, rev 1
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sys/arm/mv/timer.c 247463 2013-02-28 13:46:03Z mav $");
32__FBSDID("$FreeBSD: head/sys/arm/mv/timer.c 251371 2013-06-04 09:33:03Z gber $");
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/bus.h>
37#include <sys/kernel.h>
38#include <sys/module.h>
39#include <sys/malloc.h>
40#include <sys/rman.h>

--- 10 unchanged lines hidden (view full) ---

51
52#include <dev/ofw/ofw_bus.h>
53#include <dev/ofw/ofw_bus_subr.h>
54
55#define INITIAL_TIMECOUNTER (0xffffffff)
56#define MAX_WATCHDOG_TICKS (0xffffffff)
57
58#if defined(SOC_MV_ARMADAXP)
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/bus.h>
37#include <sys/kernel.h>
38#include <sys/module.h>
39#include <sys/malloc.h>
40#include <sys/rman.h>

--- 10 unchanged lines hidden (view full) ---

51
52#include <dev/ofw/ofw_bus.h>
53#include <dev/ofw/ofw_bus_subr.h>
54
55#define INITIAL_TIMECOUNTER (0xffffffff)
56#define MAX_WATCHDOG_TICKS (0xffffffff)
57
58#if defined(SOC_MV_ARMADAXP)
59#define MV_CLOCK_SRC get_l2clk()
59#define MV_CLOCK_SRC 25000000 /* Timers' 25MHz mode */
60#else
61#define MV_CLOCK_SRC get_tclk()
62#endif
63
64struct mv_timer_softc {
65 struct resource * timer_res[2];
66 bus_space_tag_t timer_bst;
67 bus_space_handle_t timer_bsh;

--- 250 unchanged lines hidden (view full) ---

318
319 val = read_cpu_ctrl(RSTOUTn_MASK);
320 val |= WD_RST_OUT_EN;
321 write_cpu_ctrl(RSTOUTn_MASK, val);
322#endif
323
324 val = mv_get_timer_control();
325 val |= CPU_TIMER_WD_EN | CPU_TIMER_WD_AUTO;
60#else
61#define MV_CLOCK_SRC get_tclk()
62#endif
63
64struct mv_timer_softc {
65 struct resource * timer_res[2];
66 bus_space_tag_t timer_bst;
67 bus_space_handle_t timer_bsh;

--- 250 unchanged lines hidden (view full) ---

318
319 val = read_cpu_ctrl(RSTOUTn_MASK);
320 val |= WD_RST_OUT_EN;
321 write_cpu_ctrl(RSTOUTn_MASK, val);
322#endif
323
324 val = mv_get_timer_control();
325 val |= CPU_TIMER_WD_EN | CPU_TIMER_WD_AUTO;
326#if defined(SOC_MV_ARMADAXP)
327 val |= CPU_TIMER_WD_25MHZ_EN;
328#endif
326 mv_set_timer_control(val);
327}
328
329static void
330mv_watchdog_disable(void)
331{
332 uint32_t val, irq_cause;
333#if !defined(SOC_MV_ARMADAXP)

--- 101 unchanged lines hidden (view full) ---

435{
436 uint32_t val;
437
438 mv_set_timer_rel(1, INITIAL_TIMECOUNTER);
439 mv_set_timer(1, INITIAL_TIMECOUNTER);
440 val = mv_get_timer_control();
441 val &= ~(CPU_TIMER0_EN | CPU_TIMER0_AUTO);
442 val |= CPU_TIMER1_EN | CPU_TIMER1_AUTO;
329 mv_set_timer_control(val);
330}
331
332static void
333mv_watchdog_disable(void)
334{
335 uint32_t val, irq_cause;
336#if !defined(SOC_MV_ARMADAXP)

--- 101 unchanged lines hidden (view full) ---

438{
439 uint32_t val;
440
441 mv_set_timer_rel(1, INITIAL_TIMECOUNTER);
442 mv_set_timer(1, INITIAL_TIMECOUNTER);
443 val = mv_get_timer_control();
444 val &= ~(CPU_TIMER0_EN | CPU_TIMER0_AUTO);
445 val |= CPU_TIMER1_EN | CPU_TIMER1_AUTO;
446#if defined(SOC_MV_ARMADAXP)
447 /* Enable 25MHz mode */
448 val |= CPU_TIMER0_25MHZ_EN | CPU_TIMER1_25MHZ_EN;
449#endif
443 mv_set_timer_control(val);
444 timers_initialized = 1;
445}
450 mv_set_timer_control(val);
451 timers_initialized = 1;
452}