| /***************************************************************************** |
| * |
| * 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 |