123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- /*****************************************************************************
- *
- * Copyright (C) 2008 Cedric Bregardis <cedric.bregardis@free.fr> and
- * Jean-Christian Hassler <jhassler@free.fr>
- *
- * This file is part of the Audiowerk2 ALSA driver
- *
- * The Audiowerk2 ALSA driver 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; version 2.
- *
- * The Audiowerk2 ALSA driver is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with the Audiowerk2 ALSA driver; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- * USA.
- *
- *****************************************************************************/
- /* SAA7146 registers */
- #define PCI_BT_A 0x4C
- #define IICTFR 0x8C
- #define IICSTA 0x90
- #define BaseA1_in 0x94
- #define ProtA1_in 0x98
- #define PageA1_in 0x9C
- #define BaseA1_out 0xA0
- #define ProtA1_out 0xA4
- #define PageA1_out 0xA8
- #define BaseA2_in 0xAC
- #define ProtA2_in 0xB0
- #define PageA2_in 0xB4
- #define BaseA2_out 0xB8
- #define ProtA2_out 0xBC
- #define PageA2_out 0xC0
- #define IER 0xDC
- #define GPIO_CTRL 0xE0
- #define ACON1 0xF4
- #define ACON2 0xF8
- #define MC1 0xFC
- #define MC2 0x100
- #define ISR 0x10C
- #define PSR 0x110
- #define SSR 0x114
- #define PCI_ADP1 0x12C
- #define PCI_ADP2 0x130
- #define PCI_ADP3 0x134
- #define PCI_ADP4 0x138
- #define LEVEL_REP 0x140
- #define FB_BUFFER1 0x144
- #define FB_BUFFER2 0x148
- #define TSL1 0x180
- #define TSL2 0x1C0
- #define ME (1UL << 11)
- #define LIMIT (1UL << 4)
- #define PV (1UL << 3)
- /* PSR/ISR/IER */
- #define PPEF (1UL << 31)
- #define PABO (1UL << 30)
- #define IIC_S (1UL << 17)
- #define IIC_E (1UL << 16)
- #define A2_in (1UL << 15)
- #define A2_out (1UL << 14)
- #define A1_in (1UL << 13)
- #define A1_out (1UL << 12)
- #define AFOU (1UL << 11)
- #define PIN3 (1UL << 6)
- #define PIN2 (1UL << 5)
- #define PIN1 (1UL << 4)
- #define PIN0 (1UL << 3)
- #define ECS (1UL << 2)
- #define EC3S (1UL << 1)
- #define EC0S (1UL << 0)
- /* SSR */
- #define PRQ (1UL << 31)
- #define PMA (1UL << 30)
- #define IIC_EA (1UL << 21)
- #define IIC_EW (1UL << 20)
- #define IIC_ER (1UL << 19)
- #define IIC_EL (1UL << 18)
- #define IIC_EF (1UL << 17)
- #define AF2_in (1UL << 10)
- #define AF2_out (1UL << 9)
- #define AF1_in (1UL << 8)
- #define AF1_out (1UL << 7)
- #define EC5S (1UL << 3)
- #define EC4S (1UL << 2)
- #define EC2S (1UL << 1)
- #define EC1S (1UL << 0)
- /* PCI_BT_A */
- #define BurstA1_in (1UL << 26)
- #define ThreshA1_in (1UL << 24)
- #define BurstA1_out (1UL << 18)
- #define ThreshA1_out (1UL << 16)
- #define BurstA2_in (1UL << 10)
- #define ThreshA2_in (1UL << 8)
- #define BurstA2_out (1UL << 2)
- #define ThreshA2_out (1UL << 0)
- /* MC1 */
- #define MRST_N (1UL << 15)
- #define EAP (1UL << 9)
- #define EI2C (1UL << 8)
- #define TR_E_A2_OUT (1UL << 3)
- #define TR_E_A2_IN (1UL << 2)
- #define TR_E_A1_OUT (1UL << 1)
- #define TR_E_A1_IN (1UL << 0)
- /* MC2 */
- #define UPLD_IIC (1UL << 0)
- /* ACON1 */
- #define AUDIO_MODE (1UL << 29)
- #define MAXLEVEL (1UL << 22)
- #define A1_SWAP (1UL << 21)
- #define A2_SWAP (1UL << 20)
- #define WS0_CTRL (1UL << 18)
- #define WS0_SYNC (1UL << 16)
- #define WS1_CTRL (1UL << 14)
- #define WS1_SYNC (1UL << 12)
- #define WS2_CTRL (1UL << 10)
- #define WS2_SYNC (1UL << 8)
- #define WS3_CTRL (1UL << 6)
- #define WS3_SYNC (1UL << 4)
- #define WS4_CTRL (1UL << 2)
- #define WS4_SYNC (1UL << 0)
- /* ACON2 */
- #define A1_CLKSRC (1UL << 27)
- #define A2_CLKSRC (1UL << 22)
- #define INVERT_BCLK1 (1UL << 21)
- #define INVERT_BCLK2 (1UL << 20)
- #define BCLK1_OEN (1UL << 19)
- #define BCLK2_OEN (1UL << 18)
- /* IICSTA */
- #define IICCC (1UL << 8)
- #define ABORT (1UL << 7)
- #define SPERR (1UL << 6)
- #define APERR (1UL << 5)
- #define DTERR (1UL << 4)
- #define DRERR (1UL << 3)
- #define AL (1UL << 2)
- #define ERR (1UL << 1)
- #define BUSY (1UL << 0)
- /* IICTFR */
- #define BYTE2 (1UL << 24)
- #define BYTE1 (1UL << 16)
- #define BYTE0 (1UL << 8)
- #define ATRR2 (1UL << 6)
- #define ATRR1 (1UL << 4)
- #define ATRR0 (1UL << 2)
- #define ERR (1UL << 1)
- #define BUSY (1UL << 0)
- #define START 3
- #define CONT 2
- #define STOP 1
- #define NOP 0
|