I corrected and tested it. A few words of explanation:
The 7i92 inputs are controlled by a short to ground. If none of the axis selection inputs is shorted to ground, then none of the axis moves, if one or several, the selected axes move.
I added the line "setp mux4.0.in3 0"
If both coefficient selection signals are shorted to ground, the axis will move, but at zero speed, so the effect will be the same as if no axis was selected. (You can change it to "setp mux4.0.in0 0", then there will be no movement when no selection input is shorted to ground).
I did this to have a wider selection of supported switches. It is possible that someone will have, for example, four axes and a four-position switch, then they would not be able to select the "no axis" option, which is necessary.
It is also worth mentioning how to control two inputs with a single-section switch.
You need to use diodes (anode for the input of the mesa, cathode for the switch). Then, a short circuit to ground of one input does not affect the status of the other inputs. I won't describe it in detail, if someone needs it, they will find it.
Code:
loadrt mux4
addf mux4.0 servo-thread
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp axis.x.jog-vel-mode 1
setp axis.y.jog-vel-mode 1
setp axis.z.jog-vel-mode 0
setp joint.0.jog-vel-mode 1
setp joint.1.jog-vel-mode 1
setp joint.2.jog-vel-mode 0
# The Axis select inputs
net mpg-x joint.0.jog-enable axis.x.jog-enable <= hm2_7i92.0.gpio.033.in_not
net mpg-y joint.1.jog-enable axis.y.jog-enable <= hm2_7i92.0.gpio.032.in_not
net mpg-z joint.2.jog-enable axis.z.jog-enable <= hm2_7i92.0.gpio.031.in_not
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= hm2_7i92.0.gpio.030.in_not
net scale2 mux4.0.sel1 <= hm2_7i92.0.gpio.029.in_not
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.025
setp mux4.0.in1 0.0025
setp mux4.0.in2 0.00025
setp mux4.0.in3 0
# The output from the mux4 is sent to each axis jog scale
net mpg-scale mux4.0.out => axis.x.jog-scale axis.y.jog-scale axis.z.jog-scale
net mpg-scale => joint.0.jog-scale joint.1.jog-scale joint.2.jog-scale
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-counts hm2_7i92.0.encoder.00.count => axis.x.jog-counts axis.y.jog-counts axis.z.jog-counts
net encoder-counts => joint.0.jog-counts joint.1.jog-counts joint.2.jog-counts