Logo Search packages:      
Sourcecode: alsa-driver version File versions

pxa2xx-i2sound.h

/*
 * PXA2xx i2Sound: support for Intel PXA2xx I2S audio
 *
 * Copyright (c) 2005 Giorgio Padrin <giorgio@mandarinlogiq.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * History:
 *
 * 2005-03  Giorgio Padrin          Initial release
 * 2005-05-02     Giorgio Padrin          added event() to board plugins interface
 * 2005-05-14     Giorgio Padrin          Splitted event()
 */ 

#ifndef __SOUND_PXA2xx_I2SOUND_H
#define __SOUND_PXA2xx_I2SOUND_H

#include <sound/driver.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/initval.h>
 
struct snd_pxa2xx_i2sound_board_stream_hw { 
      unsigned int rates;           /* SNDRV_PCM_RATE_* */
      unsigned int rate_min;        /* min rate */
      unsigned int rate_max;        /* max rate */
      unsigned int *rates_table;    /* in case the field rates is not enough */
      unsigned int rates_num;       /* size of rates_table */
};
  
struct snd_pxa2xx_i2sound_board {
      char *name;
      char *desc; /* short description */
      char *acard_id;   /* ALSA card id */

      unsigned int info;

      struct snd_pxa2xx_i2sound_board_stream_hw streams_hw[2];

      int (*activate)(void);
      void (*deactivate)(void);

      int (*set_rate)(unsigned int rate);

      int (*open_stream)(int stream);
      void (*close_stream)(int stream);

      /* ALSA mixer */
      int (*add_mixer_controls)(struct snd_card *acard);

      /* tune ALSA hw params space at substream opening */
      int (*add_hw_constraints)(struct snd_pcm_substream *asubs);

#ifdef CONFIG_PM
      /* Power Management */
      int (*suspend) (pm_message_t state);
      int (*resume) (void);
#endif
};

#define SND_PXA2xx_I2SOUND_INFO_CLOCK_FROM_PXA  1 << 0
#define SND_PXA2xx_I2SOUND_INFO_CAN_CAPTURE     1 << 1
#define SND_PXA2xx_I2SOUND_INFO_HALF_DUPLEX     1 << 2

void snd_pxa2xx_i2sound_i2slink_get(void);
void snd_pxa2xx_i2sound_i2slink_free(void);

int snd_pxa2xx_i2sound_card_activate(struct snd_pxa2xx_i2sound_board *board);
void snd_pxa2xx_i2sound_card_deactivate(void);

#endif /* __SOUND_PXA2xx_I2SOUND_H */

Generated by  Doxygen 1.6.0   Back to index