Maybe it is not actually entering HIDOFF mode.
Under what circumstances will a call to
fail to enter HIDOFF?
There is a key-scan feature that periodically sniffs GPIO:P0. If P0 is detected low, the device assumes a key is pressed. Since further (key-scan) processing would typically get performed next, the attempt to enter HIDOFF is intentionally aborted.
Customers who are power sensitive and desire to enter HIDOFF, may want to only connect a 10K Ohm pullup to GPIO:P0 so key-scan takes no action.
If you have any circuitry attached to P0, please try moving it to another GPIO to test this theory.
Also, you could test at the application level if the HIDOFF request got aborted, by registering for its callback. Please see this forum posting: How to enter HIDOFF? How to detect if the request is not honored?
Thank you, Shawn. This was indeed the problem.