Other Parts Discussed in Thread: AM5728
Tool/software: Linux
Hi,
In u-boot's pad configuration for the 572x, the pad configuration registers appear to be written in two separate steps/stages, first the primary pad configurations, followed by the "delta array" pad configurations. These two arrays appear in mux_data.h, and the pad IO configurations appears to be done in two separate stages in recalibrate_iodelay() in board.c:
1) First initialization step in recalibrate_iodelay() writes the pad configuration registers using the primary pad configuration array (e.g. core_padconf_array_essential_X15)
2) Second initialization step in recalibrate_iodelay() writes the pad configuration registers from the "delta" array (e.g. core_padconf_array_delta_X15) which appears to be mainly VIN/VOUT, mux mode 0..
*The PERL script in the pinmux app note, sprac44 (I'm using an older version), generates one big table in padconf.h containing ALL pad configurations, including VOUT, VIN, and then it looks like you need to split the VOUT/VIN entries from the PERL script output into the "delta array" and put everything else in the main, array (pad configuration essential).
Questions:
1) Why are the pad configuration register writes split up into two stages like this, primary and then delta? What were to happen if you wrote everything in one big loop as opposed to breaking this up? Is this due to needing to bound the execution time of each configuration step or is there something about needing to bring up video after everything else?
2) Does this order dependency of first configuring all non-video pads, followed by analog video pads (e.g. the delta array) only pertain to pads configured for analog video?
3) if we re-configure a PAD who's M0 mode is analog video to a different mux mode (see example below), do we still need to place that particular pad configuration into the delta array element or can that pad configuration be placed in the primary array?
{VOUT1_D12, (M0 | PIN_OUTPUT | SLEWCONTROL | MANUAL_MODE)}, /* vout1_d12.vout1_d12 */
{VOUT1_D12, (M10 | PIN_OUTPUT)}, /* vout1_d12.pr2_uart0_rts_n */
I don't THINK this addressed in sprac 44. If I missed the explanation in the TRM, please forgive me!
Thanks!!!
Jeff