RTEMS  5.1
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
32 extern "C" {
33 #endif /* __cplusplus */
34 
35 static inline void mpc55xx_watchdog_clear()
36 {
37  PPC_SET_SPECIAL_PURPOSE_REGISTER( BOOKE_TSR, BOOKE_TSR_WIS);
38 }
39 
40 static 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 
49 static 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 
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 */
Definition: status.h:89
Definition: status.h:47
#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
#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
#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
General purpose assembler macros, linker command file support and some inline functions for direct re...
#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
rtems_status_code
Classic API Status.
Definition: status.h:43