MC13783 codec driver problem on 3.X (or later)community Linux version

cancel
Showing results for 
Search instead for 
Did you mean: 

MC13783 codec driver problem on 3.X (or later)community Linux version

Jump to solution
316 Views
edison_xu1981
Contributor II

HI Community,

     I'm working on kernel upgrading for FSL 2.6.22 to new community version 3.12 for our customized IMX27 board, and met some problem when porting the MC13783 audio device driver. The hardware schematic for audio part is the same as IMX27 ADS, in which MC13783 audio is connect to IMX27 with two SSI (SSI1/SS2). In the FSL 2.6.22 BSP, the design is the same as the hardware schematic, the alsa driver use SS1 / SS2 as codec and DAC respectively. However, after I works on the 3.12 kernel, if I assign two difference SSI port for MC13783 codec as below

  /* MC13783 */

    static struct mc13xxx_codec_platform_data mx27_ads_codec = {

        .dac_ssi_port = MC13783_SSI2_PORT,

        .adc_ssi_port = MC13783_SSI1_PORT,

    };

     From the latest mc13783 audio driver it will be bind to asynchronized MC13783 DAI for separated routing for AD/DA (mc13783.c), one called mc13783-hifi-playback and the other called mc13783-hifi-capture, but DAI bind will be certainly unsuccessful because on the mc13783 sound soc driver (imx-mc13783.c),  the dai_link name is "mc13783_hifi", so looks like the bind can only be successfully if we use synchronized mode (AD/DA use the same SSI port rather than different ports). That seems to be a big difference between community version and FSL version. My question:

1. Has someone used the asynchronized DAI in their design with community kernel version? Is it  works or tested (I cannot find any reference for mc13783-hifi-playback/mc13783-hifi-capture in the kernel source code)?

2. Can I use synchronized DAI (force ADC/DAC use same SSI) instead of Asynchronized DAI on the community version to make audio works without hardware change? (Unfortunately I have done some experiments but seems not work).

Thanks in advance.

Edison

0 Kudos
1 Solution
113 Views
edison_xu1981
Contributor II

James, I've managed to make it works, and I don't think community BSP can support the Asynchronous DAI they looks like. So I port the freescale 2.6.22 PMIC BSP to latest community version (of course the fundamental BSP such as DMA, interrupt, mainframe for MC13783) I have to use community version.

View solution in original post

0 Kudos
4 Replies
113 Views
jamesbone
NXP TechSupport
NXP TechSupport

OtavioSalvador​,  Do you know if the first question from Edison has been tested in the Community BSP?

0 Kudos
114 Views
edison_xu1981
Contributor II

James, I've managed to make it works, and I don't think community BSP can support the Asynchronous DAI they looks like. So I port the freescale 2.6.22 PMIC BSP to latest community version (of course the fundamental BSP such as DMA, interrupt, mainframe for MC13783) I have to use community version.

View solution in original post

0 Kudos
113 Views
OtavioSalvador
Senior Contributor II

Maybe you could contribute it for the community then?

0 Kudos
113 Views
edison_xu1981
Contributor II

HI James,

     Thanks for your quick response, I just checked the latest community BSP 4.X, the problem seems to be the same.

0 Kudos