The key here is that the CLOCK_CONTROL register is missing bit 2 (0x0000fa03) which should be set for the clock to be visible on the bus.
The problem comes from the fact that in our design (PCW), this controller is configured with the optional Card Detect pin as not used. In our design, the pin is used as a GPO. Up until recently, it was unclaimed in linux so it stayed as input. This wasn't supposed to matter until our development catches up to this pin and properly configures it as output.
Regardless of what anyone does or doesn't do with the pin though, this FSBL line should definitely not to this unconditionnaly:
I have lost 2 weeks on this issue mainly because I wasn't familiar with MMC/SD/SDIO and also because sdhci.c wasn't reporting the error of the bit not sticking. I intend to submit a patch for sdhci to help future integrators. But the problem in FSBL is more complicated and out of my reach.
For the moment, I have created a patch and a bbappend in my layer to apply it, which simply removes the write to IOU_SLCR_SD_CDN_CTRL line just before the handoff.