mcbsp.h revision c559cd81139f97cecad1ad91a0b2e25a5936d53
1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * linux/include/asm-arm/arch-omap/gpio.h 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Defines for Multi-Channel Buffered Serial Port 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Copyright (C) 2002 RidgeRun, Inc. 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Author: Steve Johnson 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * This program is free software; you can redistribute it and/or modify 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * it under the terms of the GNU General Public License as published by 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * the Free Software Foundation; either version 2 of the License, or 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * (at your option) any later version. 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * This program is distributed in the hope that it will be useful, 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * but WITHOUT ANY WARRANTY; without even the implied warranty of 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * GNU General Public License for more details. 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * You should have received a copy of the GNU General Public License 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * along with this program; if not, write to the Free Software 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * 23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __ASM_ARCH_OMAP_MCBSP_H 25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define __ASM_ARCH_OMAP_MCBSP_H 26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <asm/hardware.h> 28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP730_MCBSP1_BASE 0xfffb1000 30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP730_MCBSP2_BASE 0xfffb1800 31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP1510_MCBSP1_BASE 0xe1011800 33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP1510_MCBSP2_BASE 0xfffb1000 34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP1510_MCBSP3_BASE 0xe1017000 35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP1610_MCBSP1_BASE 0xe1011800 37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP1610_MCBSP2_BASE 0xfffb1000 38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP1610_MCBSP3_BASE 0xe1017000 39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP24XX_MCBSP1_BASE 0x48074000 41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP24XX_MCBSP2_BASE 0x48076000 42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) 44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DRR2 0x00 46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DRR1 0x02 47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DXR2 0x04 48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DXR1 0x06 49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SPCR2 0x08 50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SPCR1 0x0a 51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCR2 0x0c 52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCR1 0x0e 53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCR2 0x10 54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCR1 0x12 55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SRGR2 0x14 56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SRGR1 0x16 57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_MCR2 0x18 58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_MCR1 0x1a 59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERA 0x1c 60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERB 0x1e 61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERA 0x20 62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERB 0x22 63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_PCR0 0x24 64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERC 0x26 65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERD 0x28 66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERC 0x2A 67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERD 0x2C 68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERE 0x2E 69c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERF 0x30 70c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERE 0x32 71c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERF 0x34 72c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERG 0x36 73c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERH 0x38 74c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERG 0x3A 75c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERH 0x3C 76c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 77c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MAX_MCBSP_COUNT 3 78c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 79c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_MCBSP_DATAWRITE (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DXR1) 80c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_MCBSP_DATAREAD (OMAP1510_MCBSP1_BASE + OMAP_MCBSP_REG_DRR1) 81c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 82c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_MCBSP OMAP_MCBSP1 83c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_DMA_TX OMAP_DMA_MCBSP1_TX 84c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_DMA_RX OMAP_DMA_MCBSP1_RX 85c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 86c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#elif defined(CONFIG_ARCH_OMAP24XX) 87c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 88c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DRR2 0x00 89c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DRR1 0x04 90c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DXR2 0x08 91c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_DXR1 0x0C 92c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SPCR2 0x10 93c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SPCR1 0x14 94c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCR2 0x18 95c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCR1 0x1C 96c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCR2 0x20 97c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCR1 0x24 98c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SRGR2 0x28 99c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_SRGR1 0x2C 100c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_MCR2 0x30 101c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_MCR1 0x34 102c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERA 0x38 103c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERB 0x3C 104c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERA 0x40 105c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERB 0x44 106c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_PCR0 0x48 107c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERC 0x4C 108c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERD 0x50 109c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERC 0x54 110c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERD 0x58 111c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERE 0x5C 112c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERF 0x60 113c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERE 0x64 114c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERF 0x68 115c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERG 0x6C 116c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_RCERH 0x70 117c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERG 0x74 118c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_REG_XCERH 0x78 119c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 120c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MAX_MCBSP_COUNT 2 121c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 122c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_MCBSP_DATAWRITE (OMAP24XX_MCBSP2_BASE + OMAP_MCBSP_REG_DXR1) 123c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_MCBSP_DATAREAD (OMAP24XX_MCBSP2_BASE + OMAP_MCBSP_REG_DRR1) 124c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 125c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_MCBSP OMAP_MCBSP2 126c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_DMA_TX OMAP24XX_DMA_MCBSP2_TX 127c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define AUDIO_DMA_RX OMAP24XX_DMA_MCBSP2_RX 128c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 129c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 130c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 131c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_READ(base, reg) __raw_readw((base) + OMAP_MCBSP_REG_##reg) 132c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_WRITE(base, reg, val) __raw_writew((val), (base) + OMAP_MCBSP_REG_##reg) 133c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 134c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 135c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************** McBSP SPCR1 bit definitions ***********************/ 136c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RRST 0x0001 137c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RRDY 0x0002 138c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RFULL 0x0004 139c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RSYNC_ERR 0x0008 140c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RINTM(value) ((value)<<4) /* bits 4:5 */ 141c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ABIS 0x0040 142c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define DXENA 0x0080 143c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKSTP(value) ((value)<<11) /* bits 11:12 */ 144c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RJUST(value) ((value)<<13) /* bits 13:14 */ 145c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define DLB 0x8000 146c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 147c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************** McBSP SPCR2 bit definitions ***********************/ 148c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XRST 0x0001 149c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XRDY 0x0002 150c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XEMPTY 0x0004 151c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XSYNC_ERR 0x0008 152c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XINTM(value) ((value)<<4) /* bits 4:5 */ 153c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define GRST 0x0040 154c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FRST 0x0080 155c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define SOFT 0x0100 156c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FREE 0x0200 157c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 158c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************** McBSP PCR bit definitions *************************/ 159c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKRP 0x0001 160c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKXP 0x0002 161c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FSRP 0x0004 162c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FSXP 0x0008 163c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define DR_STAT 0x0010 164c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define DX_STAT 0x0020 165c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKS_STAT 0x0040 166c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define SCLKME 0x0080 167c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKRM 0x0100 168c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKXM 0x0200 169c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FSRM 0x0400 170c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FSXM 0x0800 171c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RIOEN 0x1000 172c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XIOEN 0x2000 173c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define IDLE_EN 0x4000 174c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 175c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************** McBSP RCR1 bit definitions ************************/ 176c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RWDLEN1(value) ((value)<<5) /* Bits 5:7 */ 177c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RFRLEN1(value) ((value)<<8) /* Bits 8:14 */ 178c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 179c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************** McBSP XCR1 bit definitions ************************/ 180c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XWDLEN1(value) ((value)<<5) /* Bits 5:7 */ 181c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XFRLEN1(value) ((value)<<8) /* Bits 8:14 */ 182c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 183c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*************************** McBSP RCR2 bit definitions ***********************/ 184c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RDATDLY(value) (value) /* Bits 0:1 */ 185c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RFIG 0x0004 186c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RCOMPAND(value) ((value)<<3) /* Bits 3:4 */ 187c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RWDLEN2(value) ((value)<<5) /* Bits 5:7 */ 188c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RFRLEN2(value) ((value)<<8) /* Bits 8:14 */ 189c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RPHASE 0x8000 190c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 191c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*************************** McBSP XCR2 bit definitions ***********************/ 192c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XDATDLY(value) (value) /* Bits 0:1 */ 193c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XFIG 0x0004 194c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XCOMPAND(value) ((value)<<3) /* Bits 3:4 */ 195c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XWDLEN2(value) ((value)<<5) /* Bits 5:7 */ 196c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XFRLEN2(value) ((value)<<8) /* Bits 8:14 */ 197c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XPHASE 0x8000 198c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 199c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************* McBSP SRGR1 bit definitions ************************/ 200c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKGDV(value) (value) /* Bits 0:7 */ 201c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FWID(value) ((value)<<8) /* Bits 8:15 */ 202c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 203c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************* McBSP SRGR2 bit definitions ************************/ 204c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FPER(value) (value) /* Bits 0:11 */ 205c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FSGM 0x1000 206c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKSM 0x2000 207c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CLKSP 0x4000 208c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define GSYNC 0x8000 209c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 210c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************* McBSP MCR1 bit definitions *************************/ 211c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RMCM 0x0001 212c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RCBLK(value) ((value)<<2) /* Bits 2:4 */ 213c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RPABLK(value) ((value)<<5) /* Bits 5:6 */ 214c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RPBBLK(value) ((value)<<7) /* Bits 7:8 */ 215c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 216c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/************************* McBSP MCR2 bit definitions *************************/ 217c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XMCM(value) (value) /* Bits 0:1 */ 218c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XCBLK(value) ((value)<<2) /* Bits 2:4 */ 219c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XPABLK(value) ((value)<<5) /* Bits 5:6 */ 220c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */ 221c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 222c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 223c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* we don't do multichannel for now */ 224c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct omap_mcbsp_reg_cfg { 225c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 spcr2; 226c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 spcr1; 227c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcr2; 228c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcr1; 229c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcr2; 230c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcr1; 231c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 srgr2; 232c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 srgr1; 233c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 mcr2; 234c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 mcr1; 235c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 pcr0; 236c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcerc; 237c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcerd; 238c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcerc; 239c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcerd; 240c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcere; 241c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcerf; 242c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcere; 243c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcerf; 244c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcerg; 245c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 rcerh; 246c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcerg; 247c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u16 xcerh; 248c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 249c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 250c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef enum { 251c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP1 = 0, 252c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP2, 253c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP3, 254c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} omap_mcbsp_id; 255c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 256c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef int __bitwise omap_mcbsp_io_type_t; 257c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_IRQ_IO ((__force omap_mcbsp_io_type_t) 1) 258c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define OMAP_MCBSP_POLL_IO ((__force omap_mcbsp_io_type_t) 2) 259c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 260c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef enum { 261c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_WORD_8 = 0, 262c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_WORD_12, 263c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_WORD_16, 264c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_WORD_20, 265c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_WORD_24, 266c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_WORD_32, 267c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} omap_mcbsp_word_length; 268c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 269c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef enum { 270c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_CLK_RISING = 0, 271c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_CLK_FALLING, 272c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} omap_mcbsp_clk_polarity; 273c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 274c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef enum { 275c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_FS_ACTIVE_HIGH = 0, 276c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_FS_ACTIVE_LOW, 277c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} omap_mcbsp_fs_polarity; 278c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 279c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef enum { 280c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_CLK_STP_MODE_NO_DELAY = 0, 281c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_CLK_STP_MODE_DELAY, 282c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} omap_mcbsp_clk_stp_mode; 283c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 284c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 285c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/******* SPI specific mode **********/ 286c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef enum { 287c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_SPI_MASTER = 0, 288c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru OMAP_MCBSP_SPI_SLAVE, 289c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} omap_mcbsp_spi_mode; 290c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 291c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct omap_mcbsp_spi_cfg { 292c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru omap_mcbsp_spi_mode spi_mode; 293c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru omap_mcbsp_clk_polarity rx_clock_polarity; 294c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru omap_mcbsp_clk_polarity tx_clock_polarity; 295c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru omap_mcbsp_fs_polarity fsx_polarity; 296c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru u8 clk_div; 297c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru omap_mcbsp_clk_stp_mode clk_stp_mode; 298c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru omap_mcbsp_word_length word_length; 299c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 300c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 301c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruvoid omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg * config); 302c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_request(unsigned int id); 303c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruvoid omap_mcbsp_free(unsigned int id); 304c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruvoid omap_mcbsp_start(unsigned int id); 305c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruvoid omap_mcbsp_stop(unsigned int id); 306c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruvoid omap_mcbsp_xmit_word(unsigned int id, u32 word); 307c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruu32 omap_mcbsp_recv_word(unsigned int id); 308c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 309c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer, unsigned int length); 310c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer, unsigned int length); 311c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_spi_master_xmit_word_poll(unsigned int id, u32 word); 312c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_spi_master_recv_word_poll(unsigned int id, u32 * word); 313c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 314c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 315c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* SPI specific API */ 316c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruvoid omap_mcbsp_set_spi_mode(unsigned int id, const struct omap_mcbsp_spi_cfg * spi_cfg); 317c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 318c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* Polled read/write functions */ 319c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_pollread(unsigned int id, u16 * buf); 320c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruint omap_mcbsp_pollwrite(unsigned int id, u16 buf); 321c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 322c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 323