123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #ifndef __SND_SOC_S3C24XX_S3C_I2SV2_I2S_H
- #define __SND_SOC_S3C24XX_S3C_I2SV2_I2S_H __FILE__
- #define S3C_I2SV2_DIV_BCLK (1)
- #define S3C_I2SV2_DIV_RCLK (2)
- #define S3C_I2SV2_DIV_PRESCALER (3)
- #define S3C_I2SV2_CLKSRC_PCLK 0
- #define S3C_I2SV2_CLKSRC_AUDIOBUS 1
- #define S3C_I2SV2_CLKSRC_CDCLK 2
- #define S3C_FEATURE_CDCLKCON (1 << 0)
- struct s3c_i2sv2_info {
- struct device *dev;
- void __iomem *regs;
- u32 feature;
- struct clk *iis_pclk;
- struct clk *iis_cclk;
- unsigned char master;
- struct snd_dmaengine_dai_dma_data *dma_playback;
- struct snd_dmaengine_dai_dma_data *dma_capture;
- u32 suspend_iismod;
- u32 suspend_iiscon;
- u32 suspend_iispsr;
- unsigned long base;
- };
- extern struct clk *s3c_i2sv2_get_clock(struct snd_soc_dai *cpu_dai);
- struct s3c_i2sv2_rate_calc {
- unsigned int clk_div;
- unsigned int fs_div;
- };
- extern int s3c_i2sv2_iis_calc_rate(struct s3c_i2sv2_rate_calc *info,
- unsigned int *fstab,
- unsigned int rate, struct clk *clk);
- extern int s3c_i2sv2_probe(struct snd_soc_dai *dai,
- struct s3c_i2sv2_info *i2s);
- extern void s3c_i2sv2_cleanup(struct snd_soc_dai *dai,
- struct s3c_i2sv2_info *i2s);
- extern int s3c_i2sv2_register_component(struct device *dev, int id,
- const struct snd_soc_component_driver *cmp_drv,
- struct snd_soc_dai_driver *dai_drv);
- #endif
|