Why is this digital output circuit non-linear to the load?
A better approach would be to use a high-side current mirror, which allows you to do your current sensing on the low side, vastly simplifying the circuit.



simulate this circuit &ndash; Schematic created using CircuitLab