Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions | Variables
swarm_cs4297a.c File Reference
#include <linux/list.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/ioport.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/sound.h>
#include <linux/slab.h>
#include <linux/soundcard.h>
#include <linux/pci.h>
#include <linux/bitops.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/poll.h>
#include <linux/mutex.h>
#include <linux/kernel.h>
#include <asm/byteorder.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/sibyte/sb1250_regs.h>
#include <asm/sibyte/sb1250_int.h>
#include <asm/sibyte/sb1250_dma.h>
#include <asm/sibyte/sb1250_scd.h>
#include <asm/sibyte/sb1250_syncser.h>
#include <asm/sibyte/sb1250_mac.h>
#include <asm/sibyte/sb1250.h>

Go to the source code of this file.

Data Structures

struct  serdma_descr_s
 
struct  serdma_s
 
struct  cs4297a_state
 
struct  cs4297a_state::properties
 

Macros

#define CS4297a_MAGIC   0xf00beef1
 
#define CSDEBUG   0
 
#define CS_INIT   0x00000001
 
#define CS_ERROR   0x00000002
 
#define CS_INTERRUPT   0x00000004
 
#define CS_FUNCTION   0x00000008
 
#define CS_WAVE_WRITE   0x00000010
 
#define CS_WAVE_READ   0x00000020
 
#define CS_AC97   0x00000040
 
#define CS_DESCR   0x00000080
 
#define CS_OPEN   0x00000400
 
#define CS_RELEASE   0x00000800
 
#define CS_PARMS   0x00001000
 
#define CS_IOCTL   0x00002000
 
#define CS_TMP   0x10000000
 
#define CS_DBGOUT(mask, level, x)
 
#define CS_TRUE   1
 
#define CS_FALSE   0
 
#define CS_TYPE_ADC   0
 
#define CS_TYPE_DAC   1
 
#define SER_BASE   (A_SER_BASE_1 + KSEG1)
 
#define SS_CSR(t)   (SER_BASE+t)
 
#define SS_TXTBL(t)   (SER_BASE+R_SER_TX_TABLE_BASE+(t*8))
 
#define SS_RXTBL(t)   (SER_BASE+R_SER_RX_TABLE_BASE+(t*8))
 
#define FRAME_BYTES   32
 
#define FRAME_SAMPLE_BYTES   4
 
#define SAMPLE_BUF_SIZE   (16*1024)
 
#define SAMPLE_FRAME_COUNT   (SAMPLE_BUF_SIZE / FRAME_SAMPLE_BYTES)
 
#define DMA_BLOAT_FACTOR   1
 
#define DMA_DESCR   (SAMPLE_FRAME_COUNT / DMA_BLOAT_FACTOR)
 
#define DMA_BUF_SIZE   (DMA_DESCR * FRAME_BYTES)
 
#define DMA_INT_CNT   ((1 << S_DMA_INT_PKTCNT) - 1)
 
#define REG_LATENCY   150
 
#define FRAME_TX_US   20
 
#define SERDMA_NEXTBUF(d, f)   (((d)->f+1) % (d)->ringsz)
 
#define VALIDATE_STATE(s)
 
#define AC97_MASTER_VOL_STEREO   0x0002 /* Line Out */
 
#define AC97_PCBEEP_VOL   0x000a /* none */
 
#define AC97_PHONE_VOL   0x000c /* TAD Input (mono) */
 
#define AC97_MIC_VOL   0x000e /* MIC Input (mono) */
 
#define AC97_LINEIN_VOL   0x0010 /* Line Input (stereo) */
 
#define AC97_CD_VOL   0x0012 /* CD Input (stereo) */
 
#define AC97_AUX_VOL   0x0016 /* Aux Input (stereo) */
 
#define AC97_PCMOUT_VOL   0x0018 /* Wave Output (stereo) */
 
#define AC97_RECORD_SELECT   0x001a /* */
 
#define AC97_RECORD_GAIN   0x001c
 
#define AC97_GENERAL_PURPOSE   0x0020
 
#define AC97_3D_CONTROL   0x0022
 
#define AC97_POWER_CONTROL   0x0026
 
#define AC97_VENDOR_ID1   0x007c
 
#define prog_codec(a, b)
 
#define dealloc_dmabuf(a, b)   ;
 

Typedefs

typedef struct serdma_descr_s serdma_descr_t
 
typedef unsigned long paddr_t
 
typedef struct serdma_s serdma_t
 

Functions

 MODULE_AUTHOR ("Kip Walker, Broadcom Corp.")
 
 MODULE_DESCRIPTION ("Cirrus Logic CS4297a Driver for Broadcom SWARM board")
 
 module_init (cs4297a_init)
 
 module_exit (cs4297a_cleanup)
 

Variables

struct list_head cs4297a_devs = { &cs4297a_devs, &cs4297a_devs }
 

Macro Definition Documentation

#define AC97_3D_CONTROL   0x0022

Definition at line 213 of file swarm_cs4297a.c.

#define AC97_AUX_VOL   0x0016 /* Aux Input (stereo) */

Definition at line 208 of file swarm_cs4297a.c.

#define AC97_CD_VOL   0x0012 /* CD Input (stereo) */

Definition at line 207 of file swarm_cs4297a.c.

#define AC97_GENERAL_PURPOSE   0x0020

Definition at line 212 of file swarm_cs4297a.c.

#define AC97_LINEIN_VOL   0x0010 /* Line Input (stereo) */

Definition at line 206 of file swarm_cs4297a.c.

#define AC97_MASTER_VOL_STEREO   0x0002 /* Line Out */

Definition at line 202 of file swarm_cs4297a.c.

#define AC97_MIC_VOL   0x000e /* MIC Input (mono) */

Definition at line 205 of file swarm_cs4297a.c.

#define AC97_PCBEEP_VOL   0x000a /* none */

Definition at line 203 of file swarm_cs4297a.c.

#define AC97_PCMOUT_VOL   0x0018 /* Wave Output (stereo) */

Definition at line 209 of file swarm_cs4297a.c.

#define AC97_PHONE_VOL   0x000c /* TAD Input (mono) */

Definition at line 204 of file swarm_cs4297a.c.

#define AC97_POWER_CONTROL   0x0026

Definition at line 214 of file swarm_cs4297a.c.

#define AC97_RECORD_GAIN   0x001c

Definition at line 211 of file swarm_cs4297a.c.

#define AC97_RECORD_SELECT   0x001a /* */

Definition at line 210 of file swarm_cs4297a.c.

#define AC97_VENDOR_ID1   0x007c

Definition at line 215 of file swarm_cs4297a.c.

#define CS4297a_MAGIC   0xf00beef1

Definition at line 104 of file swarm_cs4297a.c.

#define CS_AC97   0x00000040

Definition at line 131 of file swarm_cs4297a.c.

#define CS_DBGOUT (   mask,
  level,
  x 
)

Definition at line 148 of file swarm_cs4297a.c.

#define CS_DESCR   0x00000080

Definition at line 132 of file swarm_cs4297a.c.

#define CS_ERROR   0x00000002

Definition at line 126 of file swarm_cs4297a.c.

#define CS_FALSE   0

Definition at line 158 of file swarm_cs4297a.c.

#define CS_FUNCTION   0x00000008

Definition at line 128 of file swarm_cs4297a.c.

#define CS_INIT   0x00000001

Definition at line 125 of file swarm_cs4297a.c.

#define CS_INTERRUPT   0x00000004

Definition at line 127 of file swarm_cs4297a.c.

#define CS_IOCTL   0x00002000

Definition at line 136 of file swarm_cs4297a.c.

#define CS_OPEN   0x00000400

Definition at line 133 of file swarm_cs4297a.c.

#define CS_PARMS   0x00001000

Definition at line 135 of file swarm_cs4297a.c.

#define CS_RELEASE   0x00000800

Definition at line 134 of file swarm_cs4297a.c.

#define CS_TMP   0x10000000

Definition at line 137 of file swarm_cs4297a.c.

#define CS_TRUE   1

Definition at line 157 of file swarm_cs4297a.c.

#define CS_TYPE_ADC   0

Definition at line 160 of file swarm_cs4297a.c.

#define CS_TYPE_DAC   1

Definition at line 161 of file swarm_cs4297a.c.

#define CS_WAVE_READ   0x00000020

Definition at line 130 of file swarm_cs4297a.c.

#define CS_WAVE_WRITE   0x00000010

Definition at line 129 of file swarm_cs4297a.c.

#define CSDEBUG   0

Definition at line 116 of file swarm_cs4297a.c.

#define dealloc_dmabuf (   a,
  b 
)    ;

Definition at line 328 of file swarm_cs4297a.c.

#define DMA_BLOAT_FACTOR   1

Definition at line 176 of file swarm_cs4297a.c.

#define DMA_BUF_SIZE   (DMA_DESCR * FRAME_BYTES)

Definition at line 178 of file swarm_cs4297a.c.

#define DMA_DESCR   (SAMPLE_FRAME_COUNT / DMA_BLOAT_FACTOR)

Definition at line 177 of file swarm_cs4297a.c.

#define DMA_INT_CNT   ((1 << S_DMA_INT_PKTCNT) - 1)

Definition at line 181 of file swarm_cs4297a.c.

#define FRAME_BYTES   32

Definition at line 168 of file swarm_cs4297a.c.

#define FRAME_SAMPLE_BYTES   4

Definition at line 169 of file swarm_cs4297a.c.

#define FRAME_TX_US   20

Definition at line 186 of file swarm_cs4297a.c.

#define prog_codec (   a,
  b 
)

Definition at line 327 of file swarm_cs4297a.c.

#define REG_LATENCY   150

Definition at line 184 of file swarm_cs4297a.c.

#define SAMPLE_BUF_SIZE   (16*1024)

Definition at line 172 of file swarm_cs4297a.c.

#define SAMPLE_FRAME_COUNT   (SAMPLE_BUF_SIZE / FRAME_SAMPLE_BYTES)

Definition at line 173 of file swarm_cs4297a.c.

#define SER_BASE   (A_SER_BASE_1 + KSEG1)

Definition at line 163 of file swarm_cs4297a.c.

#define SERDMA_NEXTBUF (   d,
  f 
)    (((d)->f+1) % (d)->ringsz)

Definition at line 188 of file swarm_cs4297a.c.

#define SS_CSR (   t)    (SER_BASE+t)

Definition at line 164 of file swarm_cs4297a.c.

#define SS_RXTBL (   t)    (SER_BASE+R_SER_RX_TABLE_BASE+(t*8))

Definition at line 166 of file swarm_cs4297a.c.

#define SS_TXTBL (   t)    (SER_BASE+R_SER_TX_TABLE_BASE+(t*8))

Definition at line 165 of file swarm_cs4297a.c.

#define VALIDATE_STATE (   s)
Value:
({ \
if (!(s) || (s)->magic != CS4297a_MAGIC) { \
printk(invalid_magic); \
return -ENXIO; \
} \
})

Definition at line 193 of file swarm_cs4297a.c.

Typedef Documentation

typedef unsigned long paddr_t

Definition at line 224 of file swarm_cs4297a.c.

Function Documentation

MODULE_AUTHOR ( "Kip  Walker,
Broadcom Corp."   
)
MODULE_DESCRIPTION ( "Cirrus Logic CS4297a Driver for Broadcom SWARM board )
module_exit ( cs4297a_cleanup  )
module_init ( cs4297a_init  )

Variable Documentation

struct list_head cs4297a_devs = { &cs4297a_devs, &cs4297a_devs }

Definition at line 217 of file swarm_cs4297a.c.