18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Register definitions for Atmel AC97C 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2005-2009 Atmel Corporation 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci#ifndef __SOUND_ATMEL_AC97C_H 88c2ecf20Sopenharmony_ci#define __SOUND_ATMEL_AC97C_H 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#define AC97C_MR 0x08 118c2ecf20Sopenharmony_ci#define AC97C_ICA 0x10 128c2ecf20Sopenharmony_ci#define AC97C_OCA 0x14 138c2ecf20Sopenharmony_ci#define AC97C_CARHR 0x20 148c2ecf20Sopenharmony_ci#define AC97C_CATHR 0x24 158c2ecf20Sopenharmony_ci#define AC97C_CASR 0x28 168c2ecf20Sopenharmony_ci#define AC97C_CAMR 0x2c 178c2ecf20Sopenharmony_ci#define AC97C_CORHR 0x40 188c2ecf20Sopenharmony_ci#define AC97C_COTHR 0x44 198c2ecf20Sopenharmony_ci#define AC97C_COSR 0x48 208c2ecf20Sopenharmony_ci#define AC97C_COMR 0x4c 218c2ecf20Sopenharmony_ci#define AC97C_SR 0x50 228c2ecf20Sopenharmony_ci#define AC97C_IER 0x54 238c2ecf20Sopenharmony_ci#define AC97C_IDR 0x58 248c2ecf20Sopenharmony_ci#define AC97C_IMR 0x5c 258c2ecf20Sopenharmony_ci#define AC97C_VERSION 0xfc 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#define AC97C_CATPR PDC_TPR 288c2ecf20Sopenharmony_ci#define AC97C_CATCR PDC_TCR 298c2ecf20Sopenharmony_ci#define AC97C_CATNPR PDC_TNPR 308c2ecf20Sopenharmony_ci#define AC97C_CATNCR PDC_TNCR 318c2ecf20Sopenharmony_ci#define AC97C_CARPR PDC_RPR 328c2ecf20Sopenharmony_ci#define AC97C_CARCR PDC_RCR 338c2ecf20Sopenharmony_ci#define AC97C_CARNPR PDC_RNPR 348c2ecf20Sopenharmony_ci#define AC97C_CARNCR PDC_RNCR 358c2ecf20Sopenharmony_ci#define AC97C_PTCR PDC_PTCR 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#define AC97C_MR_ENA (1 << 0) 388c2ecf20Sopenharmony_ci#define AC97C_MR_WRST (1 << 1) 398c2ecf20Sopenharmony_ci#define AC97C_MR_VRA (1 << 2) 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci#define AC97C_CSR_TXRDY (1 << 0) 428c2ecf20Sopenharmony_ci#define AC97C_CSR_TXEMPTY (1 << 1) 438c2ecf20Sopenharmony_ci#define AC97C_CSR_UNRUN (1 << 2) 448c2ecf20Sopenharmony_ci#define AC97C_CSR_RXRDY (1 << 4) 458c2ecf20Sopenharmony_ci#define AC97C_CSR_OVRUN (1 << 5) 468c2ecf20Sopenharmony_ci#define AC97C_CSR_ENDTX (1 << 10) 478c2ecf20Sopenharmony_ci#define AC97C_CSR_ENDRX (1 << 14) 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci#define AC97C_CMR_SIZE_20 (0 << 16) 508c2ecf20Sopenharmony_ci#define AC97C_CMR_SIZE_18 (1 << 16) 518c2ecf20Sopenharmony_ci#define AC97C_CMR_SIZE_16 (2 << 16) 528c2ecf20Sopenharmony_ci#define AC97C_CMR_SIZE_10 (3 << 16) 538c2ecf20Sopenharmony_ci#define AC97C_CMR_CEM_LITTLE (1 << 18) 548c2ecf20Sopenharmony_ci#define AC97C_CMR_CEM_BIG (0 << 18) 558c2ecf20Sopenharmony_ci#define AC97C_CMR_CENA (1 << 21) 568c2ecf20Sopenharmony_ci#define AC97C_CMR_DMAEN (1 << 22) 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci#define AC97C_SR_CAEVT (1 << 3) 598c2ecf20Sopenharmony_ci#define AC97C_SR_COEVT (1 << 2) 608c2ecf20Sopenharmony_ci#define AC97C_SR_WKUP (1 << 1) 618c2ecf20Sopenharmony_ci#define AC97C_SR_SOF (1 << 0) 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci#define AC97C_CH_MASK(slot) \ 648c2ecf20Sopenharmony_ci (0x7 << (3 * (AC97_SLOT_##slot - 3))) 658c2ecf20Sopenharmony_ci#define AC97C_CH_ASSIGN(slot, channel) \ 668c2ecf20Sopenharmony_ci (AC97C_CHANNEL_##channel << (3 * (AC97_SLOT_##slot - 3))) 678c2ecf20Sopenharmony_ci#define AC97C_CHANNEL_NONE 0x0 688c2ecf20Sopenharmony_ci#define AC97C_CHANNEL_A 0x1 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci#endif /* __SOUND_ATMEL_AC97C_H */ 71