|
@@ -101,13 +101,10 @@
|
|
|
|
|
|
#define FSI_FMTS (SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE)
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- struct
|
|
|
-
|
|
|
+/*
|
|
|
+ * struct
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
struct fsi_priv {
|
|
|
void __iomem *base;
|
|
|
struct snd_pcm_substream *substream;
|
|
@@ -142,13 +139,10 @@ struct fsi_master {
|
|
|
spinlock_t lock;
|
|
|
};
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- basic read write function
|
|
|
-
|
|
|
+/*
|
|
|
+ * basic read write function
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static void __fsi_reg_write(u32 reg, u32 data)
|
|
|
{
|
|
|
/* valid data area is 24bit */
|
|
@@ -251,13 +245,10 @@ static void fsi_master_mask_set(struct fsi_master *master,
|
|
|
spin_unlock_irqrestore(&master->lock, flags);
|
|
|
}
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- basic function
|
|
|
-
|
|
|
+/*
|
|
|
+ * basic function
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static struct fsi_master *fsi_get_master(struct fsi_priv *fsi)
|
|
|
{
|
|
|
return fsi->master;
|
|
@@ -362,13 +353,10 @@ static u8 *fsi_dma_get_area(struct fsi_priv *fsi)
|
|
|
return fsi->substream->runtime->dma_area + fsi->byte_offset;
|
|
|
}
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- irq function
|
|
|
-
|
|
|
+/*
|
|
|
+ * irq function
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static void fsi_irq_enable(struct fsi_priv *fsi, int is_play)
|
|
|
{
|
|
|
u32 data = fsi_port_ab_io_bit(fsi, is_play);
|
|
@@ -409,13 +397,11 @@ static void fsi_irq_clear_status(struct fsi_priv *fsi)
|
|
|
fsi_master_mask_set(master, master->core->int_st, data, 0);
|
|
|
}
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- SPDIF master clock function
|
|
|
-
|
|
|
-These functions are used later FSI2
|
|
|
-************************************************************************/
|
|
|
+/*
|
|
|
+ * SPDIF master clock function
|
|
|
+ *
|
|
|
+ * These functions are used later FSI2
|
|
|
+ */
|
|
|
static void fsi_spdif_clk_ctrl(struct fsi_priv *fsi, int enable)
|
|
|
{
|
|
|
struct fsi_master *master = fsi_get_master(fsi);
|
|
@@ -432,13 +418,10 @@ static void fsi_spdif_clk_ctrl(struct fsi_priv *fsi, int enable)
|
|
|
fsi_master_mask_set(master, fsi->mst_ctrl, val, 0);
|
|
|
}
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- ctrl function
|
|
|
-
|
|
|
+/*
|
|
|
+ * ctrl function
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static void fsi_clk_ctrl(struct fsi_priv *fsi, int enable)
|
|
|
{
|
|
|
u32 val = fsi_is_port_a(fsi) ? (1 << 0) : (1 << 4);
|
|
@@ -697,13 +680,10 @@ static irqreturn_t fsi_interrupt(int irq, void *data)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- dai ops
|
|
|
-
|
|
|
+/*
|
|
|
+ * dai ops
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static int fsi_dai_startup(struct snd_pcm_substream *substream,
|
|
|
struct snd_soc_dai *dai)
|
|
|
{
|
|
@@ -922,13 +902,10 @@ static struct snd_soc_dai_ops fsi_dai_ops = {
|
|
|
.hw_params = fsi_dai_hw_params,
|
|
|
};
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- pcm ops
|
|
|
-
|
|
|
+/*
|
|
|
+ * pcm ops
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static struct snd_pcm_hardware fsi_pcm_hardware = {
|
|
|
.info = SNDRV_PCM_INFO_INTERLEAVED |
|
|
|
SNDRV_PCM_INFO_MMAP |
|
|
@@ -994,13 +971,10 @@ static struct snd_pcm_ops fsi_pcm_ops = {
|
|
|
.pointer = fsi_pointer,
|
|
|
};
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- snd_soc_platform
|
|
|
-
|
|
|
+/*
|
|
|
+ * snd_soc_platform
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
#define PREALLOC_BUFFER (32 * 1024)
|
|
|
#define PREALLOC_BUFFER_MAX (32 * 1024)
|
|
|
|
|
@@ -1024,13 +998,10 @@ static int fsi_pcm_new(struct snd_card *card,
|
|
|
PREALLOC_BUFFER, PREALLOC_BUFFER_MAX);
|
|
|
}
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- alsa struct
|
|
|
-
|
|
|
+/*
|
|
|
+ * alsa struct
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static struct snd_soc_dai_driver fsi_soc_dai[] = {
|
|
|
{
|
|
|
.name = "fsia-dai",
|
|
@@ -1072,13 +1043,10 @@ static struct snd_soc_platform_driver fsi_soc_platform = {
|
|
|
.pcm_free = fsi_pcm_free,
|
|
|
};
|
|
|
|
|
|
-/************************************************************************
|
|
|
-
|
|
|
-
|
|
|
- platform function
|
|
|
-
|
|
|
+/*
|
|
|
+ * platform function
|
|
|
+ */
|
|
|
|
|
|
-************************************************************************/
|
|
|
static int fsi_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct fsi_master *master;
|