TFLite weight range

I am doing QAT and then full integer conversion in TFLite. I realize that for some reason TFLite requires that 0.0 to be always in the tensor/weight’s [min, max] range. This is commented in quant_ops.py and tf.quantization.

I wonder what TFLite forces min <= 0 <= max? I have encountered cases that weights are all positive (or negative) and observed significant loss in quantization accuracy. Is there any way to work around it?