hm2: don't enable the watchdog in hm2_read() and hm2_read_gpio()

There's no point, we won't write out the "enable yourself" command to
the watchdog module until hm2_write() or hm2_write_gpio(), and they also
enable the watchdog.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
hm2: write the watchdog in hm2_write_gpio()

Before this, the hm2_write_gpio() function would not enable the watchdog,
which is a bug.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
hm2: simplify how "watchdog period is short" warning is printed

Warn once if we're about to make it too short (just like before).
But use the natural code flow instead of a crazy state variable.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
hm2: simplify auto-enabling of the watchdog

Enable it once and for all in hm2_watchdog_write(), instead of in each
of its callers.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
hm2: move watchdog petting from pet_watchdog()

Watchdog petting moves to the new hm2_watchdog_prepare_tram_write()
function.  This will make the normal servo thread (when no params have
changed) fit into a single packet (for hm2_eth and hm2-spi).

Watchdog timeout recovery handling moves to hm2_watchdog_write(), since
it's an abnormal/unusual situation.

pet_watchdog() now does nothing but print a message about its own
obsolescence.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
hm2: remove pet_watchdog from the docs

This removes mention of the pet_watchdog function from all docs, and
updates some out-of-date information about the watchdog.

But we still export the pet_watchdog function to HAL, for now.  It does
nothing but complain about its own obsolescence, watchdog-petting happens
in hm2's write function now.  We should remove pet_watchdog before 2.7.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
hm2 configs: dont call pet_watchdog

It's not needed any more, the hm2 write function pets the watchdog now.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
smithy configs: dont call pet_watchdog

pet_watchdog is no longer needed, the hm2 write function pets the
watchdog now.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
smithy configs: dont call hm2 read_gpio/write_gpio

The regular hm2 read/write functions read and write everything, including
gpios, and are already called in these hal files.

The hm2 read_gpio/write_gpio functions are intended to be faster,
reduced-capability functions for use in the fast thread.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
pncconf: dont use hm2 pet_watchdog

The hm2 write function pets the watchdog now.

Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
Merge branch 'seb/master/hm2-watchdog' of https://github.com/SebKuzminsky/linuxcnc-mirror

Signed-off-by: Jeff Epler <jepler@unpythonic.net>