- Some of the register writes were already done in the generic tuning code. Remove them.
- Increase the polling timeout. The previous value is probably fine, but since timeouts are treated as fatal error giving it 200ms won't hurt.
- Rework the HS400 switching code. Make sure that the switch happens at the right time. Reset the DLL0 block. We need to do that if u-boot has previously configured the controller in HS400 mode.
- Check current timing before tuning. The tuning devmethod is always called, even for timings that don't require the tuning procedure.
- Rework software tuning routine code. Use inner formula for clock divider calculation, as previous one was incorrect.
- Implement custom re-tune procedure.
Co-authored-by: Hubert Mazur <hum@semihalf.com>