An MCU GPIO's slew rates may be increased, or decreased, and this allows setting the maximum GPIO switching speed. But how is it implemented on hardware level?
I know that those outputs are implemented with the use of FETs, and their "switching" speeds are constant values not depending on current, as it is the case with BJTs, so the option to increase current is not on the table. How come we have 2, 3, 4 voltage frequency modes for a GPIO? Are different output circuits implemented for different frequency modes for the same pin?