292{
293 int ret;
294 Mc33972 *chip = reinterpret_cast<Mc33972*>(p);
295
296 chRegSetThreadName(DRIVER_NAME);
297
298
299 do {
300 ret = chip->chip_init();
301 if (ret) {
302 chThdSleepMilliseconds(1000);
303 continue;
304 }
305
308
309 while(1) {
310 msg_t msg = chSemWaitTimeout(&chip->wake, TIME_MS2I(MC33972_POLL_INTERVAL_MS));
311
312 if ((chip->cfg == NULL) ||
315 continue;
316
317 if (msg == MSG_TIMEOUT) {
318
319 ret = chip->update_status();
320 } else {
321
322
323 ret = chip->update_pullups();
324 }
325
326 if (ret) {
327
328 }
329 }
330}