Thanks Yuri,
1. These clocks being internal, does that mean customers should not use the corresponding bitgroups as their function is undocumented?
The manual tuning procedure in the Linux driver does adjust DLY_CELL_SET_PRE (i.e. CLK_PRE), but not CLK_POST and CLK_OUT though.
I had another look at Figure 10-36, but don't see those clocks documented. I suppose CLK(output) might be CLK_OUT, but what about CLK_PRE and CLK_POST then?
You mention the PRE and POST dividers on Figure 5-15. but the bitgroups in uSDHCx_CLK_TUNE_CTRL_STATUS are specifically delay cells, not dividers. Maybe I'm misunderstanding what you're saying.
2. Sorry I'm not sure I follow this. The RM talks about two distinct delay lines (reference and slave), and describes how to configure the delay or number of taps for each one. But Figure 10-54 only shows one delay line. So if the reference delay line signifies an input, and the slave delay line an output, then is it really a single (i.e. one) delay line that can be configured through uSDHCx_STROBE_DLL_STATUS?
It just doesn't make sense to me to refer to an input or an output as a delay line. So if I configure the reference delay line for 10 taps, and the slave delay line for 20, would that introduce a total delay of 30 taps between ipp_card_clk_in and ipp_card_clk_in_dll?
3. We are familiar with the tuning procedure (which is in fact described in the Simplified Host Controller A2 spec, and in greater detail than Appendix D).
What we don't understand is the function of the TUNING_WINDOW bitgroup.
In SD spec parlance, the tuning window is the (measured) timing interval where communications with the card succeed, i.e. it is inherent to the hardware design and not something one might change by writing to a register in the host controller.