1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-26 06:53:52 +01:00

cpu/sam0_common: adc: drop pin from adc_conf_chan_t

This commit is contained in:
Benjamin Valentin 2022-09-27 19:36:10 +02:00
parent baf1687951
commit a7c0bf5341
2 changed files with 6 additions and 7 deletions

View File

@ -772,8 +772,7 @@ static inline bool cpu_woke_from_backup(void)
* @brief ADC Channel Configuration
*/
typedef struct {
gpio_t pin; /**< ADC channel pin */
uint32_t muxpos; /**< ADC channel pin multiplexer value */
uint32_t inputctrl; /**< ADC channel pin multiplexer value */
#ifdef ADC0
Adc *dev; /**< ADC device descriptor */
#endif

View File

@ -264,9 +264,9 @@ int adc_init(adc_t line)
_prep();
uint8_t muxpos = (adc_channels[line].muxpos & ADC_INPUTCTRL_MUXPOS_Msk)
uint8_t muxpos = (adc_channels[line].inputctrl & ADC_INPUTCTRL_MUXPOS_Msk)
>> ADC_INPUTCTRL_MUXPOS_Pos;
uint8_t muxneg = (adc_channels[line].muxpos & ADC_INPUTCTRL_MUXNEG_Msk)
uint8_t muxneg = (adc_channels[line].inputctrl & ADC_INPUTCTRL_MUXNEG_Msk)
>> ADC_INPUTCTRL_MUXNEG_Pos;
/* configure positive input pin */
@ -277,7 +277,7 @@ int adc_init(adc_t line)
}
/* configure negative input pin */
if (adc_channels[line].muxpos & ADC_INPUTCTRL_DIFFMODE) {
if (adc_channels[line].inputctrl & ADC_INPUTCTRL_DIFFMODE) {
assert(muxneg < ARRAY_SIZE(sam0_adc_pins[adc]));
gpio_init(sam0_adc_pins[adc][muxneg], GPIO_IN);
gpio_init_mux(sam0_adc_pins[adc][muxneg], GPIO_MUX_B);
@ -302,7 +302,7 @@ int32_t adc_sample(adc_t line, adc_res_t res)
Adc *dev = ADC;
#endif
bool diffmode = adc_channels[line].muxpos & ADC_INPUTCTRL_DIFFMODE;
bool diffmode = adc_channels[line].inputctrl & ADC_INPUTCTRL_DIFFMODE;
_prep();
@ -313,7 +313,7 @@ int32_t adc_sample(adc_t line, adc_res_t res)
}
dev->INPUTCTRL.reg = ADC_GAIN_FACTOR_DEFAULT
| adc_channels[line].muxpos
| adc_channels[line].inputctrl
| (diffmode ? 0 : ADC_NEG_INPUT);
#ifdef ADC_CTRLB_DIFFMODE
dev->CTRLB.bit.DIFFMODE = diffmode;