AnsweredAssumed Answered

IMX6QP + WM8962 + IN1R/L = NOT WORKING

Question asked by May Queen on Jul 23, 2017
Latest reply on Jul 23, 2017 by igorpadykov

OS: Android 6.0
Kernel: 4.1.15

 

Our hardware function is use IN1R and IN1L using wm8962, the flow as following:
hdmi input audio -> DAC chip -> wm8962 in1R/L

 

Our hardware guy is confirm the DAC chip output is normal audio signal, but wm8962 still no sound in Android, how can I do? I know IN1 is difference on WM8962, it has to enabling PGA relative functions first, I already change as below:

 

dts:
    sound {
        compatible = "fsl,imx6q-sabresd-wm8962", "fsl,imx-audio-wm8962";
        model = "wm8962-audio";
        cpu-dai = <&ssi2>;
        audio-codec = <&codec>;
        asrc-controller = <&asrc>;
        audio-routing =
            "Headphone Jack", "HPOUTL",
            "Headphone Jack", "HPOUTR",
            "Ext Spk", "SPKOUTL",
            "Ext Spk", "SPKOUTR",
            "AMIC", "MICBIAS",
            "IN1L", "AMIC",
            "IN1R", "AMIC",
            "DMIC", "MICBIAS",
            "DMICDAT", "DMIC",
            "CPU-Playback", "ASRC-Playback",
            "Playback", "CPU-Playback",
            "ASRC-Capture", "CPU-Capture",
            "CPU-Capture", "Capture";
        mux-int-port = <2>;
        mux-ext-port = <3>;
        hp-det-gpios = <&gpio4 10 1>;
    };

 

HAL : config_wm8962.h


#define MIXER_WM8962_INPGAL_IN1L_SWITCH             "INPGAL IN1L Switch"
#define MIXER_WM8962_MIXINL_PGA_SWITCH              "MIXINL PGA Switch"
#define MIXER_WM8962_MIXINL_PGA_VOLUME              "MIXINL PGA Volume"

 

#define MIXER_WM8962_INPGAR_IN1R_SWITCH             "INPGAR IN1R Switch"
#define MIXER_WM8962_MIXINR_PGA_SWITCH              "MIXINR PGA Switch"
#define MIXER_WM8962_MIXINR_PGA_VOLUME              "MIXINR PGA Volume"

 

static struct route_setting mm_main_mic_input_wm8962[] = {
    {
        .ctl_name = MIXER_WM8962_CAPTURE_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_CAPTURE_VOLUME,
        .intval = 63,
    },
    {
        .ctl_name = MIXER_WM8962_DIGITAL_CAPTURE_VOLUME,
        .intval = 127,
    },
    {
        .ctl_name = MIXER_WM8962_INPGAL_IN1L_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINL_PGA_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINL_PGA_VOLUME,
        .intval = 7,
    },
    {
        .ctl_name = MIXER_WM8962_INPGAR_IN1R_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINR_PGA_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINR_PGA_VOLUME,
        .intval = 7,
    },

 

    {
        .ctl_name = NULL,
    },
};

 

 

static struct route_setting mm_hs_mic_input_wm8962[] = {
    {
        .ctl_name = MIXER_WM8962_CAPTURE_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_CAPTURE_VOLUME,
        .intval = 63,
    },
    {
        .ctl_name = MIXER_WM8962_DIGITAL_CAPTURE_VOLUME,
        .intval = 127,
    },
    {
        .ctl_name = MIXER_WM8962_INPGAL_IN1L_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINL_PGA_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINL_PGA_VOLUME,
        .intval = 7,
    },
    {
        .ctl_name = MIXER_WM8962_INPGAR_IN1R_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINR_PGA_SWITCH,
        .intval = 1,
    },
    {
        .ctl_name = MIXER_WM8962_MIXINR_PGA_VOLUME,
        .intval = 7,
    },

 

    {
        .ctl_name = NULL,
    },
};



But still no receive any sound when I enabling the microphone app in Android, what stuff I miss? Hope give me some comments, thank you so much!

Outcomes