SoftPwm: don't prescribe the fixed-point type of control input, work with any type