1 /*- 2 * Copyright (c) 2010 Genetec Corporation. All rights reserved. 3 * Written by Hiroyuki Bessho for Genetec Corporation. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above 11 * copyright notice, this list of conditions and the following 12 * disclaimer in the documentation and/or other materials provided 13 * with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 17 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 18 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS 19 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 22 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 */ 28 29 /* 30 * Watchdog register definitions for Freescale i.MX31 and i.MX51 31 * 32 * MCIMX31 and MCIMX31L Application Processors 33 * Reference Manual 34 * MCIMC31RM 35 * Rev. 2.3 36 * 1/2007 37 * 38 * MCIMX51 Multimedia Applications Processor 39 * Reference Manual 40 * MCIMX51RM 41 * Rev. 1 42 * 2/2010 43 */ 44 45 #ifndef IMXWDOGREG_H 46 #define IMXWDOGREG_H 47 48 #ifdef _LOCORE 49 #ifndef __BIT 50 #define __BIT(n) (1<<(n)) 51 #endif 52 #ifndef __BITS 53 #define __BITS(hi,lo) (((1<<((hi)+1))-1) & ~((1<<((lo))-1)) 54 #endif 55 #else 56 #include <sys/cdefs.h> 57 #endif 58 59 60 #define IMX_WDOG_WCR 0x0000 /* Watchdog Control Register */ 61 #define WCR_WDZST __BIT(0) /* watchdog low power */ 62 #define WCR_WDBG __BIT(1) /* watchdog debug enable */ 63 #define WCR_WDE __BIT(2) /* watchdog enable */ 64 #define WCR_WDT __BIT(3) /* timeout assertion */ 65 #define WCR_SRS __BIT(4) /* software reset signal */ 66 #define WCR_WDA __BIT(5) /* ipp_wdog* assertion */ 67 #define WCR_WDW __BIT(7) /* disable for wait */ 68 #define WCR_WT_SHIFT 8 69 #define WCR_WT_LEN 8 70 #define WCR_WT_MASK __BIT(WCR_WT_SHIFT+WCR_WT_LEN-1, WCR_WT_SHIFT) 71 /* watchdog timeout 72 0=0.5sec 0xff=128sec */ 73 74 #define IMX_WDOG_WSR 0x0002 /* Watchdog Service Register */ 75 #define WSR_MAGIC1 0x5555 /* 1st word of service sequence */ 76 #define WSR_MAGIC2 0xaaaa /* 2nd word of service sequence */ 77 78 #define IMX_WDOG_WRSR 0x0004 /* Watchdog Reset Status Register */ 79 #define WRSR_SFTW __BIT(0) /* reset is the result of a 80 * software reset */ 81 #define WRSR_TOUT __BIT(1) /* reset is the result of a 82 * WDOG timeout */ 83 /* only for i.MX31 */ 84 #define WRSR_CMON __BIT(2) 85 #define WRSR_EXT __BIT(3) 86 #define WRSR_PWR __BIT(4) 87 #define WRSR_JRST __BIT(5) 88 89 90 /* only for i.MX51 */ 91 #define IMX_WDOG_WICR 0x0006 /* Watchdog Interrupt Control Register */ 92 #define WICR_WICT_LEN 8 93 #define WICR_WICT_MASK __BITS(WICT_LEN-1,0) /* interrupt count timeout */ 94 #define WICR_WTIS __BIT(14) /* interrupt status [w1c] */ 95 #define WICR_WIE __BIT(15) /* interrupt enable */ 96 97 98 /* only for i.MX51 */ 99 #define IMX_WDOG_WMCR 0x0008 100 #define WMCR_PDE __BIT(0) /* power down enable */ 101 102 #endif 103