|
Linux Kernel
3.7.1
|
#include <linux/init.h>#include <linux/module.h>#include <linux/device.h>#include <linux/delay.h>#include <linux/clk.h>#include <linux/interrupt.h>#include <linux/io.h>#include <linux/slab.h>#include <sound/core.h>#include <sound/pcm.h>#include <sound/pcm_params.h>#include <sound/initval.h>#include <sound/soc.h>#include "s6000-i2s.h"#include "s6000-pcm.h"Go to the source code of this file.
Data Structures | |
| struct | s6000_i2s_dev |
Macros | |
| #define | S6_I2S_INTERRUPT_STATUS 0x00 |
| #define | S6_I2S_INT_OVERRUN 1 |
| #define | S6_I2S_INT_UNDERRUN 2 |
| #define | S6_I2S_INT_ALIGNMENT 4 |
| #define | S6_I2S_INTERRUPT_ENABLE 0x04 |
| #define | S6_I2S_INTERRUPT_RAW 0x08 |
| #define | S6_I2S_INTERRUPT_CLEAR 0x0C |
| #define | S6_I2S_INTERRUPT_SET 0x10 |
| #define | S6_I2S_MODE 0x20 |
| #define | S6_I2S_DUAL 0 |
| #define | S6_I2S_WIDE 1 |
| #define | S6_I2S_TX_DEFAULT 0x24 |
| #define | S6_I2S_DATA_CFG(c) (0x40 + 0x10 * (c)) |
| #define | S6_I2S_IN 0 |
| #define | S6_I2S_OUT 1 |
| #define | S6_I2S_UNUSED 2 |
| #define | S6_I2S_INTERFACE_CFG(c) (0x44 + 0x10 * (c)) |
| #define | S6_I2S_DIV_MASK 0x001fff |
| #define | S6_I2S_16BIT 0x000000 |
| #define | S6_I2S_20BIT 0x002000 |
| #define | S6_I2S_24BIT 0x004000 |
| #define | S6_I2S_32BIT 0x006000 |
| #define | S6_I2S_BITS_MASK 0x006000 |
| #define | S6_I2S_MEM_16BIT 0x000000 |
| #define | S6_I2S_MEM_32BIT 0x008000 |
| #define | S6_I2S_MEM_MASK 0x008000 |
| #define | S6_I2S_CHANNELS_SHIFT 16 |
| #define | S6_I2S_CHANNELS_MASK 0x030000 |
| #define | S6_I2S_SCK_IN 0x000000 |
| #define | S6_I2S_SCK_OUT 0x040000 |
| #define | S6_I2S_SCK_DIR 0x040000 |
| #define | S6_I2S_WS_IN 0x000000 |
| #define | S6_I2S_WS_OUT 0x080000 |
| #define | S6_I2S_WS_DIR 0x080000 |
| #define | S6_I2S_LEFT_FIRST 0x000000 |
| #define | S6_I2S_RIGHT_FIRST 0x100000 |
| #define | S6_I2S_FIRST 0x100000 |
| #define | S6_I2S_CUR_SCK 0x200000 |
| #define | S6_I2S_CUR_WS 0x400000 |
| #define | S6_I2S_ENABLE(c) (0x48 + 0x10 * (c)) |
| #define | S6_I2S_DISABLE_IF 0x02 |
| #define | S6_I2S_ENABLE_IF 0x03 |
| #define | S6_I2S_IS_BUSY 0x04 |
| #define | S6_I2S_DMA_ACTIVE 0x08 |
| #define | S6_I2S_IS_ENABLED 0x10 |
| #define | S6_I2S_NUM_LINES 4 |
| #define | S6_I2S_SIF_PORT0 0x0000000 |
| #define | S6_I2S_SIF_PORT1 0x0000080 /* docs say 0x0000010 */ |
| #define | S6000_I2S_RATES |
| #define | S6000_I2S_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE) |
Functions | |
| module_platform_driver (s6000_i2s_driver) | |
| MODULE_AUTHOR ("Daniel Gloeckner") | |
| MODULE_DESCRIPTION ("Stretch s6000 family I2S SoC Interface") | |
| MODULE_LICENSE ("GPL") | |
| #define S6000_I2S_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE) |
Definition at line 410 of file s6000-i2s.c.
| #define S6000_I2S_RATES |
Definition at line 408 of file s6000-i2s.c.
| #define S6_I2S_16BIT 0x000000 |
Definition at line 59 of file s6000-i2s.c.
| #define S6_I2S_20BIT 0x002000 |
Definition at line 60 of file s6000-i2s.c.
| #define S6_I2S_24BIT 0x004000 |
Definition at line 61 of file s6000-i2s.c.
| #define S6_I2S_32BIT 0x006000 |
Definition at line 62 of file s6000-i2s.c.
| #define S6_I2S_BITS_MASK 0x006000 |
Definition at line 63 of file s6000-i2s.c.
| #define S6_I2S_CHANNELS_MASK 0x030000 |
Definition at line 68 of file s6000-i2s.c.
| #define S6_I2S_CHANNELS_SHIFT 16 |
Definition at line 67 of file s6000-i2s.c.
| #define S6_I2S_CUR_SCK 0x200000 |
Definition at line 78 of file s6000-i2s.c.
| #define S6_I2S_CUR_WS 0x400000 |
Definition at line 79 of file s6000-i2s.c.
| #define S6_I2S_DATA_CFG | ( | c | ) | (0x40 + 0x10 * (c)) |
Definition at line 53 of file s6000-i2s.c.
| #define S6_I2S_DISABLE_IF 0x02 |
Definition at line 81 of file s6000-i2s.c.
| #define S6_I2S_DIV_MASK 0x001fff |
Definition at line 58 of file s6000-i2s.c.
| #define S6_I2S_DMA_ACTIVE 0x08 |
Definition at line 84 of file s6000-i2s.c.
| #define S6_I2S_DUAL 0 |
Definition at line 50 of file s6000-i2s.c.
| #define S6_I2S_ENABLE | ( | c | ) | (0x48 + 0x10 * (c)) |
Definition at line 80 of file s6000-i2s.c.
| #define S6_I2S_ENABLE_IF 0x03 |
Definition at line 82 of file s6000-i2s.c.
| #define S6_I2S_FIRST 0x100000 |
Definition at line 77 of file s6000-i2s.c.
| #define S6_I2S_IN 0 |
Definition at line 54 of file s6000-i2s.c.
| #define S6_I2S_INT_ALIGNMENT 4 |
Definition at line 44 of file s6000-i2s.c.
| #define S6_I2S_INT_OVERRUN 1 |
Definition at line 42 of file s6000-i2s.c.
| #define S6_I2S_INT_UNDERRUN 2 |
Definition at line 43 of file s6000-i2s.c.
| #define S6_I2S_INTERFACE_CFG | ( | c | ) | (0x44 + 0x10 * (c)) |
Definition at line 57 of file s6000-i2s.c.
| #define S6_I2S_INTERRUPT_CLEAR 0x0C |
Definition at line 47 of file s6000-i2s.c.
| #define S6_I2S_INTERRUPT_ENABLE 0x04 |
Definition at line 45 of file s6000-i2s.c.
| #define S6_I2S_INTERRUPT_RAW 0x08 |
Definition at line 46 of file s6000-i2s.c.
| #define S6_I2S_INTERRUPT_SET 0x10 |
Definition at line 48 of file s6000-i2s.c.
| #define S6_I2S_INTERRUPT_STATUS 0x00 |
Definition at line 41 of file s6000-i2s.c.
| #define S6_I2S_IS_BUSY 0x04 |
Definition at line 83 of file s6000-i2s.c.
| #define S6_I2S_IS_ENABLED 0x10 |
Definition at line 85 of file s6000-i2s.c.
| #define S6_I2S_LEFT_FIRST 0x000000 |
Definition at line 75 of file s6000-i2s.c.
| #define S6_I2S_MEM_16BIT 0x000000 |
Definition at line 64 of file s6000-i2s.c.
| #define S6_I2S_MEM_32BIT 0x008000 |
Definition at line 65 of file s6000-i2s.c.
| #define S6_I2S_MEM_MASK 0x008000 |
Definition at line 66 of file s6000-i2s.c.
| #define S6_I2S_MODE 0x20 |
Definition at line 49 of file s6000-i2s.c.
| #define S6_I2S_NUM_LINES 4 |
Definition at line 87 of file s6000-i2s.c.
| #define S6_I2S_OUT 1 |
Definition at line 55 of file s6000-i2s.c.
| #define S6_I2S_RIGHT_FIRST 0x100000 |
Definition at line 76 of file s6000-i2s.c.
| #define S6_I2S_SCK_DIR 0x040000 |
Definition at line 71 of file s6000-i2s.c.
| #define S6_I2S_SCK_IN 0x000000 |
Definition at line 69 of file s6000-i2s.c.
| #define S6_I2S_SCK_OUT 0x040000 |
Definition at line 70 of file s6000-i2s.c.
| #define S6_I2S_SIF_PORT0 0x0000000 |
Definition at line 89 of file s6000-i2s.c.
| #define S6_I2S_SIF_PORT1 0x0000080 /* docs say 0x0000010 */ |
Definition at line 90 of file s6000-i2s.c.
| #define S6_I2S_TX_DEFAULT 0x24 |
Definition at line 52 of file s6000-i2s.c.
| #define S6_I2S_UNUSED 2 |
Definition at line 56 of file s6000-i2s.c.
| #define S6_I2S_WIDE 1 |
Definition at line 51 of file s6000-i2s.c.
| #define S6_I2S_WS_DIR 0x080000 |
Definition at line 74 of file s6000-i2s.c.
| #define S6_I2S_WS_IN 0x000000 |
Definition at line 72 of file s6000-i2s.c.
| #define S6_I2S_WS_OUT 0x080000 |
Definition at line 73 of file s6000-i2s.c.
| MODULE_AUTHOR | ( | "Daniel Gloeckner" | ) |
| MODULE_LICENSE | ( | "GPL" | ) |
| module_platform_driver | ( | s6000_i2s_driver | ) |
1.8.2