~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/sound/es1688.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-or-later */
  2 #ifndef __SOUND_ES1688_H
  3 #define __SOUND_ES1688_H
  4 
  5 /*
  6  *  Header file for ES488/ES1688
  7  *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
  8  */
  9 
 10 #include <sound/control.h>
 11 #include <sound/pcm.h>
 12 #include <linux/interrupt.h>
 13 
 14 #define ES1688_HW_AUTO          0x0000
 15 #define ES1688_HW_688           0x0001
 16 #define ES1688_HW_1688          0x0002
 17 #define ES1688_HW_UNDEF 0x0003
 18 
 19 struct snd_es1688 {
 20         unsigned long port;             /* port of ESS chip */
 21         struct resource *res_port;
 22         unsigned long mpu_port;         /* MPU-401 port of ESS chip */
 23         int irq;                        /* IRQ number of ESS chip */
 24         int mpu_irq;                    /* MPU IRQ */
 25         int dma8;                       /* 8-bit DMA */
 26         unsigned short version;         /* version of ESS chip */
 27         unsigned short hardware;        /* see to ES1688_HW_XXXX */
 28 
 29         unsigned short trigger_value;
 30         unsigned char pad;
 31         unsigned int dma_size;
 32 
 33         struct snd_pcm *pcm;
 34         struct snd_pcm_substream *playback_substream;
 35         struct snd_pcm_substream *capture_substream;
 36 
 37         spinlock_t reg_lock;
 38         spinlock_t mixer_lock;
 39 };
 40 
 41 /* I/O ports */
 42 
 43 #define ES1688P(codec, x) ((codec)->port + e_s_s_ESS1688##x)
 44 
 45 #define e_s_s_ESS1688RESET      0x6
 46 #define e_s_s_ESS1688READ       0xa
 47 #define e_s_s_ESS1688WRITE      0xc
 48 #define e_s_s_ESS1688COMMAND    0xc
 49 #define e_s_s_ESS1688STATUS     0xc
 50 #define e_s_s_ESS1688DATA_AVAIL 0xe
 51 #define e_s_s_ESS1688DATA_AVAIL_16 0xf
 52 #define e_s_s_ESS1688MIXER_ADDR 0x4
 53 #define e_s_s_ESS1688MIXER_DATA 0x5
 54 #define e_s_s_ESS1688OPL3_LEFT  0x0
 55 #define e_s_s_ESS1688OPL3_RIGHT 0x2
 56 #define e_s_s_ESS1688OPL3_BOTH  0x8
 57 #define e_s_s_ESS1688ENABLE0    0x0
 58 #define e_s_s_ESS1688ENABLE1    0x9
 59 #define e_s_s_ESS1688ENABLE2    0xb
 60 #define e_s_s_ESS1688INIT1      0x7
 61 
 62 #define ES1688_DSP_CMD_DMAOFF   0xd0
 63 #define ES1688_DSP_CMD_SPKON    0xd1
 64 #define ES1688_DSP_CMD_SPKOFF   0xd3
 65 #define ES1688_DSP_CMD_DMAON    0xd4
 66 
 67 #define ES1688_PCM_DEV          0x14
 68 #define ES1688_MIC_DEV          0x1a
 69 #define ES1688_REC_DEV          0x1c
 70 #define ES1688_MASTER_DEV       0x32
 71 #define ES1688_FM_DEV           0x36
 72 #define ES1688_CD_DEV           0x38
 73 #define ES1688_AUX_DEV          0x3a
 74 #define ES1688_SPEAKER_DEV      0x3c
 75 #define ES1688_LINE_DEV         0x3e
 76 #define ES1688_RECLEV_DEV       0xb4
 77 
 78 #define ES1688_MIXS_MASK        0x17
 79 #define ES1688_MIXS_MIC         0x00
 80 #define ES1688_MIXS_MIC_MASTER  0x01
 81 #define ES1688_MIXS_CD          0x02
 82 #define ES1688_MIXS_AOUT        0x03
 83 #define ES1688_MIXS_MIC1        0x04
 84 #define ES1688_MIXS_REC_MIX     0x05
 85 #define ES1688_MIXS_LINE        0x06
 86 #define ES1688_MIXS_MASTER      0x07
 87 #define ES1688_MIXS_MUTE        0x10
 88 
 89 /*
 90 
 91  */
 92 
 93 void snd_es1688_mixer_write(struct snd_es1688 *chip, unsigned char reg, unsigned char data);
 94 
 95 int snd_es1688_create(struct snd_card *card,
 96                       struct snd_es1688 *chip,
 97                       unsigned long port,
 98                       unsigned long mpu_port,
 99                       int irq,
100                       int mpu_irq,
101                       int dma8,
102                       unsigned short hardware);
103 int snd_es1688_pcm(struct snd_card *card, struct snd_es1688 *chip, int device);
104 int snd_es1688_mixer(struct snd_card *card, struct snd_es1688 *chip);
105 int snd_es1688_reset(struct snd_es1688 *chip);
106 
107 #endif /* __SOUND_ES1688_H */
108 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php