This is almost certainly a benign bug, but it doesn't hurt to point it out.
In nRF5_SDK_15.0.0_a53641a, nrf_drv_saadc_channel_init() is a macro that expands into a call to nrfx_saadc_channel_init() as follows:
nrfx_err_t nrfx_saadc_channel_init(uint8_t channel, nrf_saadc_channel_config_t const * const p_config) { ... nrf_saadc_channel_init(channel, p_config); nrf_saadc_channel_input_set(channel, p_config->pin_p, p_config->pin_n); ... return err_code; }
However, inside nrf_saadc_channel_init(), we have the following:
__STATIC_INLINE void nrf_saadc_channel_init(uint8_t channel, nrf_saadc_channel_config_t const * const config) { ... nrf_saadc_channel_input_set(channel, config->pin_p, config->pin_n); }
... with the result that nrf_saadc_channel_input_set() is called twice.
As I mentioned, this is probably benign, and likely just a holdover from the legacy SDK. But I thought it's worth pointing out.