From 968c0f039c4c23c855ee5a7010c9f4da52072e69 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 19 Sep 2014 11:33:04 +0100 Subject: [PATCH] Endpoint0 issues SMUX mode command to clockgen() based on sample rate --- module_usb_audio/endpoint0/audiorequests.xc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/module_usb_audio/endpoint0/audiorequests.xc b/module_usb_audio/endpoint0/audiorequests.xc index 087bf8d7..8d094877 100644 --- a/module_usb_audio/endpoint0/audiorequests.xc +++ b/module_usb_audio/endpoint0/audiorequests.xc @@ -320,7 +320,26 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c } setG_curSamFreqMultiplier(g_curSamFreq/(i_tmp/512)); - +#ifdef ADAT_RX + /* Configure ADAT SMUX based on sample rate */ + outuint(c_clk_ctl, SET_SMUX); + if(g_curSamFreq < 88200) + { + /* No SMUX */ + outuint(c_clk_ctl, 0); + } + else if(g_curSamFreq < 176400) + { + /* SMUX */ + outuint(c_clk_ctl, 1); + } + else + { + /* SMUX II */ + outuint(c_clk_ctl, 2); + } + outct(c_clk_ctl, XS1_CT_END); +#endif outuint(c_audioControl, SET_SAMPLE_FREQ); outuint(c_audioControl, g_curSamFreq);