提交 39f3be72 编写于 作者: W Wim Van Sebroeck

[WATCHDOG] i6300esb: fix unlock register with

Before you can read or write from the i6300esb memeory mapped registers,
you need to unlock these. This is done by writing the magic numbers 0x80
and 0x86 to the reload register. The size of the reload register is 32bit
though.

Also binary 11 is hex 0x03 and not 0x11.
Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
上级 c1bf3acf
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
/* Config register bits */ /* Config register bits */
#define ESB_WDT_REBOOT (0x01 << 5) /* Enable reboot on timeout */ #define ESB_WDT_REBOOT (0x01 << 5) /* Enable reboot on timeout */
#define ESB_WDT_FREQ (0x01 << 2) /* Decrement frequency */ #define ESB_WDT_FREQ (0x01 << 2) /* Decrement frequency */
#define ESB_WDT_INTTYPE (0x11 << 0) /* Interrupt type on timer1 timeout */ #define ESB_WDT_INTTYPE (0x03 << 0) /* Interrupt type on timer1 timeout */
/* Reload register bits */ /* Reload register bits */
#define ESB_WDT_TIMEOUT (0x01 << 9) /* Watchdog timed out */ #define ESB_WDT_TIMEOUT (0x01 << 9) /* Watchdog timed out */
...@@ -111,8 +111,8 @@ MODULE_PARM_DESC(nowayout, ...@@ -111,8 +111,8 @@ MODULE_PARM_DESC(nowayout,
*/ */
static inline void esb_unlock_registers(void) static inline void esb_unlock_registers(void)
{ {
writeb(ESB_UNLOCK1, ESB_RELOAD_REG); writew(ESB_UNLOCK1, ESB_RELOAD_REG);
writeb(ESB_UNLOCK2, ESB_RELOAD_REG); writew(ESB_UNLOCK2, ESB_RELOAD_REG);
} }
static int esb_timer_start(void) static int esb_timer_start(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册