/* Map Paths based on Zephyr Router configuration framework layers */
switch (cfg->dai_route) {
case AUDIO_ROUTE_PLAYBACK:
/* Power ON: DAC and Headphones amplifier cascade */
sgtl5000_set_power(dev, true, false, true, false);
sgtl5000_set_route_state(dev, AUDIO_ROUTE_PLAYBACK);
break;
case AUDIO_ROUTE_CAPTURE:
/* Power ON: ADC core engine block */
sgtl5000_set_power(dev, false, true, false, false);
sgtl5000_set_route_state(dev, AUDIO_ROUTE_CAPTURE);
break;
case AUDIO_ROUTE_PLAYBACK_CAPTURE:
/* Power ON: Absolutely everything enabled simultaneously */
sgtl5000_set_power(dev, true, true, true, true);
sgtl5000_set_route_state(dev, AUDIO_ROUTE_PLAYBACK_CAPTURE);
break;
default:
/* Power down execution layer to conserve energy */
sgtl5000_set_power(dev, false, false, false, false);
sgtl5000_set_route_state(dev, AUDIO_ROUTE_BYPASS);
break;
}
/* === YOUR DIAGNOSTIC PRINTK BLOCK CAN BE PLACED HERE === */
return 0;
}