N-MOSFET driver for P-MOSFET high side switch
I saw a similar circuit from Arduino forum link:



simulate this circuit &ndash; Schematic created using CircuitLab
The D1 prevents the cross conduction, R2 is the gate resistor. At low voltages of your need, this won't work perfect. Perhaps you could change BJT with MOSFET.
Allernatively you could use a inverting CMOS buffer, like SN74LVC1G14-Q1, 74LVC1G04 ,...




simulate this circuit
Simulation SPICE (transistor not equal, because it is not in the default list) Vcc=2.5V. You can see the current of Q2 is just a spike of cca. 30mA, this is the MOSFET gate discharge current. Voltage on load is full Vcc.

Vcc=4.2V. Green - Q2 current spikes at 45mA; Blue - Q1 current spikes at 25mA/ gate charging current; Red - load voltage.

The mentioned circuit is very fast, no need for pull-ups and pull-downs, if the MCU starts with the GPIO at HiZ it won't conduct.