Hi bowerymarc,
1. About the volume

In fact, it is the percent, if 100, it will get the max value:
#define WM8960_HEADPHONE_MAX_VOLUME_vALUE 0x7FU
#define WM8960_HEADPHONE_MIN_VOLUME_vALUE 0x30U
mappedVolume = (volume * (WM8960_HEADPHONE_MAX_VOLUME_vALUE - WM8960_HEADPHONE_MIN_VOLUME_vALUE)) / 100U +
WM8960_HEADPHONE_MIN_VOLUME_vALUE;
retVal = WM8960_SetVolume((wm8960_handle_t *)((uint32_t)(((codec_handle_t *)handle)->codecDevHandle)),
kWM8960_ModuleHP, mappedVolume);
So, this part, even you give 100, the real value should be mappedVolume=(100*(127-48)/100 + 48)=127
It is the max data.
2. About the 1V RMS
Maybe still other register need to set, more details need to check the codec datasheet, I will also check with our audio expert, any updated information, will let you know later.
Best Regards,
kerry