Talked to a guy that reverse-engineered WiFi chips at register level to develop Linux drivers and realized that it will not be easy.
The approach to hook into the i2c communication and log command sequences is sure the way to go. But it won't be enough to just collect the info per-chip, it most probably will be required to have it per-card. Setting the clocks at controller for one card does not necessarily mean the same for a similar one (assembly options, scaling, offset, etc.). That's possibly the reason why bulanula can't set his params with radeonvolt.
If you string the Afterburner binaries there are IDs for supported cards, most probably they are using card-individual settings. Therefore we basically would have to rewrite AB to get reliable control over our mining cards - it is more a man-year task than a weekend's hack.
Given the remaining lifetime of mining GPUs of say 6-9 months (yeah, see DAT around the corner asking for my cards -- cheap
), I'd say it does not pay off to invest that effort.