Microchip has something like 6 versions of some peripherals.
The header files support a system of #ifdefs to ensure that it uses the right function prototype from the .h files for your chip.
When you look at the library documentation it shows several version of the function call, they differ by the number and type of input parameters depending on which version of the peripheral your chip has. The problem is they are not identified by chip number.
I dig through the header files to find which one to use. Has anyone found a better way ?
No.... The documentation, as you correctly said, lists most of the variants, but I think its up to us to sift through to find the correct version..... You would have thought they would have, by now, taken the hi-tech approach and used a general header to deduce these things.