K64F Analogout driver: Add explicit pinmap support

pull/11892/head
Przemyslaw Stekiel 2019-08-26 14:06:50 +02:00
parent 60f1cf613e
commit 4a79e59ef6
1 changed files with 17 additions and 2 deletions

View File

@ -28,10 +28,16 @@ static DAC_Type *const dac_bases[] = DAC_BASE_PTRS;
#define RANGE_12BIT 0xFFF
void analogout_init(dac_t *obj, PinName pin)
#if EXPLICIT_PINMAP_READY
#define ANALOGOUT_INIT_DIRECT analogout_init_direct
void analogout_init_direct(dac_t* obj, const PinMap *pinmap)
#else
#define ANALOGOUT_INIT_DIRECT _analogout_init_direct
static void _analogout_init_direct(dac_t* obj, const PinMap *pinmap)
#endif
{
dac_config_t dac_config;
obj->dac = (DACName)pinmap_peripheral(pin, PinMap_DAC);
obj->dac = (DACName)pinmap->peripheral;
if (obj->dac == (DACName)NC) {
error("DAC pin mapping failed");
}
@ -44,6 +50,15 @@ void analogout_init(dac_t *obj, PinName pin)
DAC_Enable(dac_bases[obj->dac], true);
}
void analogout_init(dac_t* obj, PinName pin)
{
int peripheral = (int)pinmap_peripheral(pin, PinMap_ADC);
const PinMap explicit_pinmap = {pin, peripheral, 0};
ANALOGOUT_INIT_DIRECT(obj, &explicit_pinmap);
}
void analogout_free(dac_t *obj)
{
}