diff --git a/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/api/analogout_api.c b/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/api/analogout_api.c index d638d05ecf..77ff46be1e 100644 --- a/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/api/analogout_api.c +++ b/targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/api/analogout_api.c @@ -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) { }