@@ -112,8 +112,32 @@ static int kwx_init(struct device *arg)
112
112
/* disable interrupts */
113
113
oldLevel = irq_lock ();
114
114
115
- /* Disable the watchdog */
115
+ /* Configure or disable the watchdog */
116
+ #if defined(CONFIG_WATCHDOG )
117
+ #if defined(CONFIG_WDT_MKW4XZ_32MS )
118
+ /* 1kHz LPC clock, 2^5 cycles = 32ms */
119
+ SIM -> COPC = SIM_COPC_COPCLKSEL (00 ) | SIM_COPC_COPCLKS (0 ) | SIM_COPC_COPT (01 );
120
+ #elif defined(CONFIG_WDT_MKW4XZ_256MS )
121
+ /* 1kHz LPC clock, 2^8 cycles = 256ms */
122
+ SIM -> COPC = SIM_COPC_COPCLKSEL (00 ) | SIM_COPC_COPCLKS (0 ) | SIM_COPC_COPT (10 );
123
+ #elif defined(CONFIG_WDT_MKW4XZ_1024MS )
124
+ /* 1kHz LPC clock, 2^10 cycles = 1024ms */
125
+ SIM -> COPC = SIM_COPC_COPCLKSEL (00 ) | SIM_COPC_COPCLKS (0 ) | SIM_COPC_COPT (11 );
126
+ #elif defined(CONFIG_WDT_MKW4XZ_8192MS )
127
+ /* 1kHz LPC clock, 2^13 cycles = 8192ms */
128
+ SIM -> COPC = SIM_COPC_COPCLKSEL (00 ) | SIM_COPC_COPCLKS (1 ) | SIM_COPC_COPT (01 );
129
+ #elif defined(CONFIG_WDT_MKW4XZ_65536MS )
130
+ /* 1kHz LPC clock, 2^16 cycles = 65536ms */
131
+ SIM -> COPC = SIM_COPC_COPCLKSEL (00 ) | SIM_COPC_COPCLKS (1 ) | SIM_COPC_COPT (10 );
132
+ #elif defined(CONFIG_WDT_MKW4XZ_262144MS )
133
+ /* 1kHz LPC clock, 2^18 cycles = 262144ms */
134
+ SIM -> COPC = SIM_COPC_COPCLKSEL (00 ) | SIM_COPC_COPCLKS (1 ) | SIM_COPC_COPT (11 );
135
+ #else
136
+ #error "Unknown Watchdog Timer timeout period"
137
+ #endif
138
+ #else
116
139
SIM -> COPC = 0 ;
140
+ #endif
117
141
118
142
/* Initialize system clock to 40 MHz */
119
143
clkInit ();
0 commit comments