source: rtems/bsps/powerpc/mpc55xxevb/include/mpc55xx/watchdog.h @ 3b68442

5
Last change on this file since 3b68442 was 3b68442, checked in by Sebastian Huber <sebastian.huber@…>, on 03/07/19 at 09:42:32

bsps/powerpc: Move mpc55xx header files

They are only used by this BSP.

  • Property mode set to 100644
File size: 1.3 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup mpc55xx
5 *
6 * @brief Header file for the watchdog timer.
7 */
8
9/*
10 * Copyright (c) 2008
11 * Embedded Brains GmbH
12 * Obere Lagerstr. 30
13 * D-82178 Puchheim
14 * Germany
15 * rtems@embedded-brains.de
16 *
17 * The license and distribution terms for this file may be
18 * found in the file LICENSE in this distribution or at
19 * http://www.rtems.org/license/LICENSE.
20 */
21
22#ifndef LIBCPU_POWERPC_MPC55XX_WATCHDOG_H
23#define LIBCPU_POWERPC_MPC55XX_WATCHDOG_H
24
25#include <stdbool.h>
26
27#include <rtems.h>
28
29#include <libcpu/powerpc-utility.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif /* __cplusplus */
34
35static inline void mpc55xx_watchdog_clear()
36{
37        PPC_SET_SPECIAL_PURPOSE_REGISTER( BOOKE_TSR, BOOKE_TSR_WIS);
38}
39
40static inline void mpc55xx_watchdog_enable_interrupt( bool enable)
41{
42        if (enable) {
43                PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS( BOOKE_TCR, BOOKE_TCR_WIE);
44        } else {
45                PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS( BOOKE_TCR, BOOKE_TCR_WIE);
46        }
47}
48
49static inline rtems_status_code mpc55xx_watchdog_set_time_base_bit( uint32_t bit)
50{
51        if (bit > 63) {
52                return RTEMS_INVALID_NUMBER;
53        }
54
55        PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS_MASKED(
56                BOOKE_TCR,
57                BOOKE_TCR_WP( bit) | BOOKE_TCR_WPEXT( bit >> 2),
58                BOOKE_TCR_WP_MASK | BOOKE_TCR_WPEXT_MASK
59        );
60
61        return RTEMS_SUCCESSFUL;
62}
63
64#ifdef __cplusplus
65}
66#endif /* __cplusplus */
67
68#endif /* LIBCPU_POWERPC_MPC55XX_WATCHDOG_H */
Note: See TracBrowser for help on using the repository browser.