Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[pandora-kernel.git] / sound / soc / s3c24xx / s3c-i2s-v2.h
index ecf8eaa..766f43a 100644 (file)
 #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
+
+/* Set this flag for I2S controllers that have the bit IISMOD[12]
+ * bridge/break RCLK signal and external Xi2sCDCLK pin.
+ */
+#define S3C_FEATURE_CDCLKCON   (1 << 0)
+
 /**
  * struct s3c_i2sv2_info - S3C I2S-V2 information
  * @dev: The parent device passed to use from the probe.
  * @regs: The pointer to the device registe block.
+ * @feature: Set of bit-flags indicating features of the controller.
  * @master: True if the I2S core is the I2S bit clock master.
  * @dma_playback: DMA information for playback channel.
  * @dma_capture: DMA information for capture channel.
@@ -43,9 +53,10 @@ struct s3c_i2sv2_info {
        struct device   *dev;
        void __iomem    *regs;
 
+       u32             feature;
+
        struct clk      *iis_pclk;
        struct clk      *iis_cclk;
-       struct clk      *iis_clk;
 
        unsigned char    master;
 
@@ -57,6 +68,8 @@ struct s3c_i2sv2_info {
        u32              suspend_iispsr;
 };
 
+extern struct clk *s3c_i2sv2_get_clock(struct snd_soc_dai *cpu_dai);
+
 struct s3c_i2sv2_rate_calc {
        unsigned int    clk_div;        /* for prescaler */
        unsigned int    fs_div;         /* for root frame clock */