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 | ) |