The thermostat can also fail as in not close fully which will cause long warm up time, the ecu monitors ect and expects the engine to fully warm up in a given time frame.
It can also be caused by a malfunctioning coolant temperature sensor, you can pull the pid to see if its at 85-90c with engine idling normally after 4 minutes of warm up time. (You can also rudimentary test it by touching the upper hose pipe on cold engine and waiting till warm up, as soon the valve opens the pipe starts getting very hot while checking the scan tool to see the temperature range, also can be checked by running heater in cabin, you should get plenty heat blowing with the engine warmed up)
The thermostat failing causing overheating is a case of jammed closed, quite rare on these.
The code is very simple, its telling you that the timer for warmup has passed and engine is still cold, there are only two things to check here as they affect temperature, one is the thermostat and the other is the temperature sensor itself sending wrong information to ecu. The temperature gauge has its own input so dont rely on that alone.