Настройка I2C и I2S в ALSA ASoC

Я работаю с BeagleBoard под управлением Linux 3.0.63 и пытаюсь заставить работать интерфейсы I2C и I2S с конечной целью - воспроизвести файл WAV на beagleboard и правильно настроить I2C и I2S.

В настоящее время я застрял на установке BeagleBoard в качестве главных часов для линии I2S. Или рабские часы тоже могут работать. В любом случае, я понятия не имею, где в коде ядра установлен материал I2S. Я предполагал в arch/arm/mach-omap3/board-omap3beagle.c, но я не могу его найти.

Кстати, есть ли скрытая документация о том, как это сделать, о которой я не знаю?

1 ответ

Посмотрите на файлы sound / soc / omap / omap3beagle.c и включите / sound / soc-dai.h:

Первый из них имеет функцию:

static int omap3beagle_hw_params(struct snd_pcm_substream *substream,
    struct snd_pcm_hw_params *params)
{
    /* couple of lines */
    switch (params_channels(params)) {
    case 2: /* Stereo I2S mode */
        fmt =   SND_SOC_DAIFMT_I2S |
            SND_SOC_DAIFMT_NB_NF |
            SND_SOC_DAIFMT_CBM_CFM;
        break;
    case 4: /* Four channel TDM mode */
        fmt =   SND_SOC_DAIFMT_DSP_A |
            SND_SOC_DAIFMT_IB_NF |
            SND_SOC_DAIFMT_CBM_CFM;
        break;
    default:
        return -EINVAL;
    }
    /* some stuff */
}

А у второго есть макроопределения:

/*
 * DAI hardware clock masters.
 *
 * This is wrt the codec, the inverse is true for the interface
 * i.e. if the codec is clk and FRM master then the interface is
 * clk and frame slave.
 */
#define SND_SOC_DAIFMT_CBM_CFM      (1 << 12) /* codec clk & FRM master */
#define SND_SOC_DAIFMT_CBS_CFM      (2 << 12) /* codec clk slave & FRM master */
#define SND_SOC_DAIFMT_CBM_CFS      (3 << 12) /* codec clk master & frame slave */
#define SND_SOC_DAIFMT_CBS_CFS      (4 << 12) /* codec clk & FRM slave */

Таким образом, используя их, вы можете настроить тактирование I2S для "Stereo I2S mode", как вам нужно. Есть много других вариантов, но я думаю, что это именно то, что вам нужно.

Некоторая документация может быть найдена в Documentation / sound / alsa / soc.

Другие вопросы по тегам