Logo Search packages:      
Sourcecode: alsa-driver version File versions  Download package

kirkwood.h

/*
 * kirkwood.h
 *
 * (c) 2010 Arnaud Patard <apatard@mandriva.com>
 *
 *  This program is free software; you can redistribute  it and/or modify it
 *  under  the terms of  the GNU General  Public License as published by the
 *  Free Software Foundation;  either version 2 of the  License, or (at your
 *  option) any later version.
 */

#ifndef _KIRKWOOD_AUDIO_H
#define _KIRKWOOD_AUDIO_H

#define KIRKWOOD_RECORD_WIN               0
#define KIRKWOOD_PLAYBACK_WIN             1
#define KIRKWOOD_MAX_AUDIO_WIN                  2

#define KIRKWOOD_AUDIO_WIN_BASE_REG(win)  (0xA00 + ((win)<<3))
#define KIRKWOOD_AUDIO_WIN_CTRL_REG(win)  (0xA04 + ((win)<<3))


#define KIRKWOOD_RECCTL             0x1000
#define KIRKWOOD_RECCTL_SPDIF_EN          (1<<11)
#define KIRKWOOD_RECCTL_I2S_EN                  (1<<10)
#define KIRKWOOD_RECCTL_PAUSE             (1<<9)
#define KIRKWOOD_RECCTL_MUTE              (1<<8)
#define KIRKWOOD_RECCTL_BURST_MASK        (3<<5)
#define KIRKWOOD_RECCTL_BURST_128         (2<<5)
#define KIRKWOOD_RECCTL_BURST_32          (1<<5)
#define KIRKWOOD_RECCTL_MONO              (1<<4)
#define KIRKWOOD_RECCTL_MONO_CHAN_RIGHT   (1<<3)
#define KIRKWOOD_RECCTL_MONO_CHAN_LEFT          (0<<3)
#define KIRKWOOD_RECCTL_SIZE_MASK         (7<<0)
#define KIRKWOOD_RECCTL_SIZE_16           (7<<0)
#define KIRKWOOD_RECCTL_SIZE_16_C         (3<<0)
#define KIRKWOOD_RECCTL_SIZE_20           (2<<0)
#define KIRKWOOD_RECCTL_SIZE_24           (1<<0)
#define KIRKWOOD_RECCTL_SIZE_32           (0<<0)

#define KIRKWOOD_REC_BUF_ADDR             0x1004
#define KIRKWOOD_REC_BUF_SIZE             0x1008
#define KIRKWOOD_REC_BYTE_COUNT                 0x100C

#define KIRKWOOD_PLAYCTL                  0x1100
#define KIRKWOOD_PLAYCTL_PLAY_BUSY        (1<<16)
#define KIRKWOOD_PLAYCTL_BURST_MASK       (3<<11)
#define KIRKWOOD_PLAYCTL_BURST_128        (2<<11)
#define KIRKWOOD_PLAYCTL_BURST_32         (1<<11)
#define KIRKWOOD_PLAYCTL_PAUSE                  (1<<9)
#define KIRKWOOD_PLAYCTL_SPDIF_MUTE       (1<<8)
#define KIRKWOOD_PLAYCTL_MONO_MASK        (3<<5)
#define KIRKWOOD_PLAYCTL_MONO_BOTH        (3<<5)
#define KIRKWOOD_PLAYCTL_MONO_OFF         (0<<5)
#define KIRKWOOD_PLAYCTL_I2S_MUTE         (1<<7)
#define KIRKWOOD_PLAYCTL_SPDIF_EN         (1<<4)
#define KIRKWOOD_PLAYCTL_I2S_EN           (1<<3)
#define KIRKWOOD_PLAYCTL_SIZE_MASK        (7<<0)
#define KIRKWOOD_PLAYCTL_SIZE_16          (7<<0)
#define KIRKWOOD_PLAYCTL_SIZE_16_C        (3<<0)
#define KIRKWOOD_PLAYCTL_SIZE_20          (2<<0)
#define KIRKWOOD_PLAYCTL_SIZE_24          (1<<0)
#define KIRKWOOD_PLAYCTL_SIZE_32          (0<<0)

#define KIRKWOOD_PLAY_BUF_ADDR                  0x1104
#define KIRKWOOD_PLAY_BUF_SIZE                  0x1108
#define KIRKWOOD_PLAY_BYTE_COUNT          0x110C

#define KIRKWOOD_DCO_CTL                  0x1204
#define KIRKWOOD_DCO_CTL_OFFSET_MASK            (0xFFF<<2)
#define KIRKWOOD_DCO_CTL_OFFSET_0         (0x800<<2)
#define KIRKWOOD_DCO_CTL_FREQ_MASK        (3<<0)
#define KIRKWOOD_DCO_CTL_FREQ_11          (0<<0)
#define KIRKWOOD_DCO_CTL_FREQ_12          (1<<0)
#define KIRKWOOD_DCO_CTL_FREQ_24          (2<<0)

#define KIRKWOOD_DCO_SPCR_STATUS          0x120c
#define KIRKWOOD_DCO_SPCR_STATUS_DCO_LOCK (1<<16)

#define KIRKWOOD_ERR_CAUSE                0x1300
#define KIRKWOOD_ERR_MASK                 0x1304

#define KIRKWOOD_INT_CAUSE                0x1308
#define KIRKWOOD_INT_MASK                 0x130C
#define KIRKWOOD_INT_CAUSE_PLAY_BYTES           (1<<14)
#define KIRKWOOD_INT_CAUSE_REC_BYTES            (1<<13)
#define KIRKWOOD_INT_CAUSE_DMA_PLAY_END   (1<<7)
#define KIRKWOOD_INT_CAUSE_DMA_PLAY_3Q          (1<<6)
#define KIRKWOOD_INT_CAUSE_DMA_PLAY_HALF  (1<<5)
#define KIRKWOOD_INT_CAUSE_DMA_PLAY_1Q          (1<<4)
#define KIRKWOOD_INT_CAUSE_DMA_REC_END          (1<<3)
#define KIRKWOOD_INT_CAUSE_DMA_REC_3Q           (1<<2)
#define KIRKWOOD_INT_CAUSE_DMA_REC_HALF   (1<<1)
#define KIRKWOOD_INT_CAUSE_DMA_REC_1Q           (1<<0)

#define KIRKWOOD_REC_BYTE_INT_COUNT       0x1310
#define KIRKWOOD_PLAY_BYTE_INT_COUNT            0x1314
#define KIRKWOOD_BYTE_INT_COUNT_MASK            0xffffff

#define KIRKWOOD_I2S_PLAYCTL              0x2508
#define KIRKWOOD_I2S_RECCTL               0x2408
#define KIRKWOOD_I2S_CTL_JUST_MASK        (0xf<<26)
#define KIRKWOOD_I2S_CTL_LJ               (0<<26)
#define KIRKWOOD_I2S_CTL_I2S              (5<<26)
#define KIRKWOOD_I2S_CTL_RJ               (8<<26)
#define KIRKWOOD_I2S_CTL_SIZE_MASK        (3<<30)
#define KIRKWOOD_I2S_CTL_SIZE_16          (3<<30)
#define KIRKWOOD_I2S_CTL_SIZE_20          (2<<30)
#define KIRKWOOD_I2S_CTL_SIZE_24          (1<<30)
#define KIRKWOOD_I2S_CTL_SIZE_32          (0<<30)

#define KIRKWOOD_AUDIO_BUF_MAX                  (16*1024*1024)

/* Theses values come from the marvell alsa driver */
/* need to find where they come from               */
#define KIRKWOOD_SND_MIN_PERIODS          8
#define KIRKWOOD_SND_MAX_PERIODS          16
#define KIRKWOOD_SND_MIN_PERIOD_BYTES           0x4000
#define KIRKWOOD_SND_MAX_PERIOD_BYTES           0x4000

00121 struct kirkwood_dma_data {
      struct resource *mem;
      void __iomem *io;
      int irq;
      int burst;
      struct mbus_dram_target_info *dram;
};

#endif

Generated by  Doxygen 1.6.0   Back to index