RTEMS: bsps/powerpc/mpc55xxevb/include/mpc55xx/watchdog.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
watchdog.h
Go to the documentation of this file.
1
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 */
rtems_status_code
rtems_status_code
Classic API Status.
Definition: status.h:43
RTEMS_SUCCESSFUL
@ RTEMS_SUCCESSFUL
Definition: status.h:47
RTEMS_INVALID_NUMBER
@ RTEMS_INVALID_NUMBER
Definition: status.h:89
PPC_SET_SPECIAL_PURPOSE_REGISTER
#define PPC_SET_SPECIAL_PURPOSE_REGISTER(spr, val)
Sets the Special Purpose Register with number spr to the value in val.
Definition: powerpc-utility.h:576
PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS
#define PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS(spr, bits)
Sets in the Special Purpose Register with number spr all bits which are set in bits.
Definition: powerpc-utility.h:591
PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS
#define PPC_CLEAR_SPECIAL_PURPOSE_REGISTER_BITS(spr, bits)
Clears in the Special Purpose Register with number spr all bits which are set in bits.
Definition: powerpc-utility.h:630
PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS_MASKED
#define PPC_SET_SPECIAL_PURPOSE_REGISTER_BITS_MASKED(spr, bits, mask)
Sets in the Special Purpose Register with number spr all bits which are set in bits....
Definition: powerpc-utility.h:610
powerpc-utility.h
General purpose assembler macros, linker command file support and some inline functions for direct re...
rtems.h