wdt_api.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Copyright (c) 2013 Qualcomm Atheros, Inc.
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted (subject to the limitations in the
  7. * disclaimer below) provided that the following conditions are met:
  8. *
  9. * * Redistributions of source code must retain the above copyright
  10. * notice, this list of conditions and the following disclaimer.
  11. *
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the
  15. * distribution.
  16. *
  17. * * Neither the name of Qualcomm Atheros nor the names of its
  18. * contributors may be used to endorse or promote products derived
  19. * from this software without specific prior written permission.
  20. *
  21. * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
  22. * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
  23. * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
  24. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  25. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  26. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  27. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  28. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  29. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  30. * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  31. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  32. * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  33. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34. */
  35. #ifndef __WDT_API_H__
  36. #define __WDT_API_H__
  37. typedef enum {
  38. WDT_ACTION_NO = 0, // bit1, bit0: 00
  39. WDT_ACTION_INTR, // bit1, bit0: 01
  40. WDT_ACTION_NMI, // bit1, bit0: 10
  41. WDT_ACTION_RESET, // bit1, bit0: 11
  42. WDT_ACTION_UNKNOWN
  43. } T_WDT_ACTION_TYPE;
  44. typedef enum {
  45. WDT_TIMEOUT = 1,
  46. WDT_ACTION,
  47. WDT_UNKNOWN
  48. } T_WDT_CMD_TYPE;
  49. typedef struct {
  50. uint32_t cmd;
  51. union {
  52. uint32_t timeout;
  53. uint32_t action;
  54. };
  55. }T_WDT_CMD;
  56. typedef enum {
  57. ENUM_WDT_BOOT = 1,
  58. ENUM_COLD_BOOT,
  59. ENUM_SUSP_BOOT,
  60. // add above here
  61. ENUM_UNKNOWN_BOOT
  62. } T_BOOT_TYPE;
  63. /*!- interface of watchdog timer
  64. *
  65. */
  66. struct wdt_api {
  67. void (* _wdt_init)(void);
  68. void (* _wdt_enable)(void);
  69. void (* _wdt_disable)(void);
  70. void (* _wdt_set)(T_WDT_CMD);
  71. void (* _wdt_task)(void);
  72. void (* _wdt_reset)(void);
  73. T_BOOT_TYPE (*_wdt_last_boot)(void);
  74. };
  75. #endif /* __WDT_API_H__ */