AnsweredAssumed Answered

BF548 / SPORT3 / SSM2602

Question asked by MarkBishop on Feb 24, 2012
Latest reply on Mar 1, 2012 by sonic

I completed my upgrade to 2011R1-RC3 and I am still having issues with the abstraction of the SPORT3 to a SSM2602.

 

I've updated:

 

static const u16 bfin_snd_pin[][7] = {

         SPORT_REQ(0),

         SPORT_REQ(1),

         SPORT_REQ(2),

         SPORT_REQ(3),

};

 

static struct bfin_snd_platform_data bfin_snd_data[] = {

         {

                 .pin_req = &bfin_snd_pin[0][0],

         },

         {

                 .pin_req = &bfin_snd_pin[1][0],

         },

         {

                 .pin_req = &bfin_snd_pin[2][0],

         },

         {

                 .pin_req = &bfin_snd_pin[3][0],

         },

};

 

static struct resource bfin_snd_resources[][4] = {

 

         BFIN_SND_RES(0),

         BFIN_SND_RES(1),

         BFIN_SND_RES(2),

         BFIN_SND_RES(3),

 

};

 

static struct i2c_board_info __initdata bfin_i2c_board_info0[] = {

         {

                I2C_BOARD_INFO("ssm2602", 0x1A),

         },

 

};

 

 

in my board device file (based off the bf548 ezkit.c)

 

I've edited the bf5xx-ssm2602.c DAI to:

 

static struct snd_soc_dai_link bf5xx_ssm2602_dai[] = {

         {

                 .name = "ssm2602",

                 .stream_name = "SSM2602",

                 .cpu_dai_name = "bfin-i2s.0",

                 .codec_dai_name = "ssm2602-hifi",

                 .platform_name = "bfin-i2s-pcm-audio",

                 .codec_name = "ssm2602.0-001b",

                 .ops = &bf5xx_ssm2602_ops,

         },

         {

                 .name = "ssm2602",

                 .stream_name = "SSM2602",

                 .cpu_dai_name = "bfin-i2s.1",

                 .codec_dai_name = "ssm2602-hifi",

                 .platform_name = "bfin-i2s-pcm-audio",

                 .codec_name = "ssm2602.0-001b",

                 .ops = &bf5xx_ssm2602_ops,

         },

         {

                 .name = "ssm2602",

                 .stream_name = "SSM2602",

                 .cpu_dai_name = "bfin-i2s.2",

                 .codec_dai_name = "ssm2602-hifi",

                 .platform_name = "bfin-i2s-pcm-audio",

                 .codec_name = "ssm2602.0-001a",

                 .ops = &bf5xx_ssm2602_ops,

         },

         {

                 .name = "ssm2602",

                 .stream_name = "SSM2602",

                 .cpu_dai_name = "bfin-i2s.3",

                 .codec_dai_name = "ssm2602-hifi",

                 .platform_name = "bfin-i2s-pcm-audio",

                 .codec_name = "ssm2602.0-001a",

                 .ops = &bf5xx_ssm2602_ops,

         },

};

 

 

and I've set CONFIG_SND_BF5XX_SPORT_NUM = 3 in my kernel config.

 

But when I install my modules, no sound card is created and

 

root:/> cat proc/asound/cards

--- no soundcards ---

 

I am running into the I2S driver not being registered for SPORT 3.

 

root:/sys/kernel/debug/asoc> cat dais

ssm2602-hifi

 

As opposed to (which I am not seeing):

root:/sys/kernel/debug/asoc> cat dais

bfin-i2s.3

ssm2602-hifi

 

 

Any ideas?

Outcomes