Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * linux/sound/soc/pxa/mmp-sspa.h
0004  *
0005  * Copyright (C) 2011 Marvell International Ltd.
0006  */
0007 #ifndef _MMP_SSPA_H
0008 #define _MMP_SSPA_H
0009 
0010 /*
0011  * SSPA Registers
0012  */
0013 #define SSPA_D          (0x00)
0014 #define SSPA_ID         (0x04)
0015 #define SSPA_CTL        (0x08)
0016 #define SSPA_SP         (0x0c)
0017 #define SSPA_FIFO_UL        (0x10)
0018 #define SSPA_INT_MASK       (0x14)
0019 #define SSPA_C          (0x18)
0020 #define SSPA_FIFO_NOFS      (0x1c)
0021 #define SSPA_FIFO_SIZE      (0x20)
0022 
0023 /* SSPA Control Register */
0024 #define SSPA_CTL_XPH        (1 << 31)   /* Read Phase */
0025 #define SSPA_CTL_XFIG       (1 << 15)   /* Transmit Zeros when FIFO Empty */
0026 #define SSPA_CTL_JST        (1 << 3)    /* Audio Sample Justification */
0027 #define SSPA_CTL_XFRLEN2_MASK   (7 << 24)
0028 #define SSPA_CTL_XFRLEN2(x) ((x) << 24) /* Transmit Frame Length in Phase 2 */
0029 #define SSPA_CTL_XWDLEN2_MASK   (7 << 21)
0030 #define SSPA_CTL_XWDLEN2(x) ((x) << 21) /* Transmit Word Length in Phase 2 */
0031 #define SSPA_CTL_XDATDLY(x) ((x) << 19) /* Transmit Data Delay */
0032 #define SSPA_CTL_XSSZ2_MASK (7 << 16)
0033 #define SSPA_CTL_XSSZ2(x)   ((x) << 16) /* Transmit Sample Audio Size */
0034 #define SSPA_CTL_XFRLEN1_MASK   (7 << 8)
0035 #define SSPA_CTL_XFRLEN1(x) ((x) << 8)  /* Transmit Frame Length in Phase 1 */
0036 #define SSPA_CTL_XWDLEN1_MASK   (7 << 5)
0037 #define SSPA_CTL_XWDLEN1(x) ((x) << 5)  /* Transmit Word Length in Phase 1 */
0038 #define SSPA_CTL_XSSZ1_MASK (7 << 0)
0039 #define SSPA_CTL_XSSZ1(x)   ((x) << 0)  /* XSSZ1 */
0040 
0041 #define SSPA_CTL_8_BITS     (0x0)       /* Sample Size */
0042 #define SSPA_CTL_12_BITS    (0x1)
0043 #define SSPA_CTL_16_BITS    (0x2)
0044 #define SSPA_CTL_20_BITS    (0x3)
0045 #define SSPA_CTL_24_BITS    (0x4)
0046 #define SSPA_CTL_32_BITS    (0x5)
0047 
0048 /* SSPA Serial Port Register */
0049 #define SSPA_SP_WEN     (1 << 31)   /* Write Configuration Enable */
0050 #define SSPA_SP_MSL     (1 << 18)   /* Master Slave Configuration */
0051 #define SSPA_SP_CLKP        (1 << 17)   /* CLKP Polarity Clock Edge Select */
0052 #define SSPA_SP_FSP     (1 << 16)   /* FSP Polarity Clock Edge Select */
0053 #define SSPA_SP_FFLUSH      (1 << 2)    /* FIFO Flush */
0054 #define SSPA_SP_S_RST       (1 << 1)    /* Active High Reset Signal */
0055 #define SSPA_SP_S_EN        (1 << 0)    /* Serial Clock Domain Enable */
0056 #define SSPA_SP_FWID_MASK   (0x3f << 20)
0057 #define SSPA_SP_FWID(x)     ((x) << 20) /* Frame-Sync Width */
0058 #define SSPA_TXSP_FPER_MASK (0x3f << 4)
0059 #define SSPA_TXSP_FPER(x)   ((x) << 4)  /* Frame-Sync Active */
0060 
0061 /* sspa clock sources */
0062 #define MMP_SSPA_CLK_PLL    0
0063 #define MMP_SSPA_CLK_VCXO   1
0064 #define MMP_SSPA_CLK_AUDIO  3
0065 
0066 /* sspa pll id */
0067 #define MMP_SYSCLK      0
0068 #define MMP_SSPA_CLK        1
0069 
0070 #endif /* _MMP_SSPA_H */