drivers: some improvements to the ADC driver interface

Adjusted the interface by:
- removing the `UNDEFINED` value from the device enum
- add poweroff/on interfaces
- quantified the precision setting into pre-defined values (for easier implementation)
rebase problem