ASoC: S3C: I2Sv2: New field for controller feature
authorJassi Brar <jassi.brar@samsung.com>
Tue, 27 Apr 2010 06:56:56 +0000 (15:56 +0900)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 5 May 2010 14:14:21 +0000 (15:14 +0100)
In order to make s3c-i2s-v2.c manage controllers with minor
quirks and variation in features, we define a per-block flag
that indicates the availability/lack of a particular feature
to the s3c-i2s-v2.c

While adding support for new SoCs' I2S, check for the blocks
of older SoCs that have similar feature and set the flag for
that feature.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/s3c24xx/s3c-i2s-v2.h

index 39a6db6..766f43a 100644 (file)
 #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.
@@ -47,6 +53,8 @@ struct s3c_i2sv2_info {
        struct device   *dev;
        void __iomem    *regs;
 
+       u32             feature;
+
        struct clk      *iis_pclk;
        struct clk      *iis_cclk;