162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2011 Samsung Electronics Co., Ltd. 462306a36Sopenharmony_ci * http://www.samsung.com 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Samsung I2S driver's register header 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef __SND_SOC_SAMSUNG_I2S_REGS_H 1062306a36Sopenharmony_ci#define __SND_SOC_SAMSUNG_I2S_REGS_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#define I2SCON 0x0 1362306a36Sopenharmony_ci#define I2SMOD 0x4 1462306a36Sopenharmony_ci#define I2SFIC 0x8 1562306a36Sopenharmony_ci#define I2SPSR 0xc 1662306a36Sopenharmony_ci#define I2STXD 0x10 1762306a36Sopenharmony_ci#define I2SRXD 0x14 1862306a36Sopenharmony_ci#define I2SFICS 0x18 1962306a36Sopenharmony_ci#define I2STXDS 0x1c 2062306a36Sopenharmony_ci#define I2SAHB 0x20 2162306a36Sopenharmony_ci#define I2SSTR0 0x24 2262306a36Sopenharmony_ci#define I2SSIZE 0x28 2362306a36Sopenharmony_ci#define I2STRNCNT 0x2c 2462306a36Sopenharmony_ci#define I2SLVL0ADDR 0x30 2562306a36Sopenharmony_ci#define I2SLVL1ADDR 0x34 2662306a36Sopenharmony_ci#define I2SLVL2ADDR 0x38 2762306a36Sopenharmony_ci#define I2SLVL3ADDR 0x3c 2862306a36Sopenharmony_ci#define I2SSTR1 0x40 2962306a36Sopenharmony_ci#define I2SVER 0x44 3062306a36Sopenharmony_ci#define I2SFIC1 0x48 3162306a36Sopenharmony_ci#define I2STDM 0x4c 3262306a36Sopenharmony_ci#define I2SFSTA 0x50 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#define CON_RSTCLR (1 << 31) 3562306a36Sopenharmony_ci#define CON_FRXOFSTATUS (1 << 26) 3662306a36Sopenharmony_ci#define CON_FRXORINTEN (1 << 25) 3762306a36Sopenharmony_ci#define CON_FTXSURSTAT (1 << 24) 3862306a36Sopenharmony_ci#define CON_FTXSURINTEN (1 << 23) 3962306a36Sopenharmony_ci#define CON_TXSDMA_PAUSE (1 << 20) 4062306a36Sopenharmony_ci#define CON_TXSDMA_ACTIVE (1 << 18) 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#define CON_FTXURSTATUS (1 << 17) 4362306a36Sopenharmony_ci#define CON_FTXURINTEN (1 << 16) 4462306a36Sopenharmony_ci#define CON_TXFIFO2_EMPTY (1 << 15) 4562306a36Sopenharmony_ci#define CON_TXFIFO1_EMPTY (1 << 14) 4662306a36Sopenharmony_ci#define CON_TXFIFO2_FULL (1 << 13) 4762306a36Sopenharmony_ci#define CON_TXFIFO1_FULL (1 << 12) 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci#define CON_LRINDEX (1 << 11) 5062306a36Sopenharmony_ci#define CON_TXFIFO_EMPTY (1 << 10) 5162306a36Sopenharmony_ci#define CON_RXFIFO_EMPTY (1 << 9) 5262306a36Sopenharmony_ci#define CON_TXFIFO_FULL (1 << 8) 5362306a36Sopenharmony_ci#define CON_RXFIFO_FULL (1 << 7) 5462306a36Sopenharmony_ci#define CON_TXDMA_PAUSE (1 << 6) 5562306a36Sopenharmony_ci#define CON_RXDMA_PAUSE (1 << 5) 5662306a36Sopenharmony_ci#define CON_TXCH_PAUSE (1 << 4) 5762306a36Sopenharmony_ci#define CON_RXCH_PAUSE (1 << 3) 5862306a36Sopenharmony_ci#define CON_TXDMA_ACTIVE (1 << 2) 5962306a36Sopenharmony_ci#define CON_RXDMA_ACTIVE (1 << 1) 6062306a36Sopenharmony_ci#define CON_ACTIVE (1 << 0) 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci#define MOD_OPCLK_SHIFT 30 6362306a36Sopenharmony_ci#define MOD_OPCLK_CDCLK_OUT (0 << MOD_OPCLK_SHIFT) 6462306a36Sopenharmony_ci#define MOD_OPCLK_CDCLK_IN (1 << MOD_OPCLK_SHIFT) 6562306a36Sopenharmony_ci#define MOD_OPCLK_BCLK_OUT (2 << MOD_OPCLK_SHIFT) 6662306a36Sopenharmony_ci#define MOD_OPCLK_PCLK (3 << MOD_OPCLK_SHIFT) 6762306a36Sopenharmony_ci#define MOD_OPCLK_MASK (3 << MOD_OPCLK_SHIFT) 6862306a36Sopenharmony_ci#define MOD_TXS_IDMA (1 << 28) /* Sec_TXFIFO use I-DMA */ 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci#define MOD_BLCS_SHIFT 26 7162306a36Sopenharmony_ci#define MOD_BLCS_16BIT (0 << MOD_BLCS_SHIFT) 7262306a36Sopenharmony_ci#define MOD_BLCS_8BIT (1 << MOD_BLCS_SHIFT) 7362306a36Sopenharmony_ci#define MOD_BLCS_24BIT (2 << MOD_BLCS_SHIFT) 7462306a36Sopenharmony_ci#define MOD_BLCS_MASK (3 << MOD_BLCS_SHIFT) 7562306a36Sopenharmony_ci#define MOD_BLCP_SHIFT 24 7662306a36Sopenharmony_ci#define MOD_BLCP_16BIT (0 << MOD_BLCP_SHIFT) 7762306a36Sopenharmony_ci#define MOD_BLCP_8BIT (1 << MOD_BLCP_SHIFT) 7862306a36Sopenharmony_ci#define MOD_BLCP_24BIT (2 << MOD_BLCP_SHIFT) 7962306a36Sopenharmony_ci#define MOD_BLCP_MASK (3 << MOD_BLCP_SHIFT) 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci#define MOD_C2DD_HHALF (1 << 21) /* Discard Higher-half */ 8262306a36Sopenharmony_ci#define MOD_C2DD_LHALF (1 << 20) /* Discard Lower-half */ 8362306a36Sopenharmony_ci#define MOD_C1DD_HHALF (1 << 19) 8462306a36Sopenharmony_ci#define MOD_C1DD_LHALF (1 << 18) 8562306a36Sopenharmony_ci#define MOD_DC2_EN (1 << 17) 8662306a36Sopenharmony_ci#define MOD_DC1_EN (1 << 16) 8762306a36Sopenharmony_ci#define MOD_BLC_16BIT (0 << 13) 8862306a36Sopenharmony_ci#define MOD_BLC_8BIT (1 << 13) 8962306a36Sopenharmony_ci#define MOD_BLC_24BIT (2 << 13) 9062306a36Sopenharmony_ci#define MOD_BLC_MASK (3 << 13) 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci#define MOD_TXONLY (0 << 8) 9362306a36Sopenharmony_ci#define MOD_RXONLY (1 << 8) 9462306a36Sopenharmony_ci#define MOD_TXRX (2 << 8) 9562306a36Sopenharmony_ci#define MOD_MASK (3 << 8) 9662306a36Sopenharmony_ci#define MOD_LRP_SHIFT 7 9762306a36Sopenharmony_ci#define MOD_LR_LLOW 0 9862306a36Sopenharmony_ci#define MOD_LR_RLOW 1 9962306a36Sopenharmony_ci#define MOD_SDF_SHIFT 5 10062306a36Sopenharmony_ci#define MOD_SDF_IIS 0 10162306a36Sopenharmony_ci#define MOD_SDF_MSB 1 10262306a36Sopenharmony_ci#define MOD_SDF_LSB 2 10362306a36Sopenharmony_ci#define MOD_SDF_MASK 3 10462306a36Sopenharmony_ci#define MOD_RCLK_SHIFT 3 10562306a36Sopenharmony_ci#define MOD_RCLK_256FS 0 10662306a36Sopenharmony_ci#define MOD_RCLK_512FS 1 10762306a36Sopenharmony_ci#define MOD_RCLK_384FS 2 10862306a36Sopenharmony_ci#define MOD_RCLK_768FS 3 10962306a36Sopenharmony_ci#define MOD_RCLK_MASK 3 11062306a36Sopenharmony_ci#define MOD_BCLK_SHIFT 1 11162306a36Sopenharmony_ci#define MOD_BCLK_32FS 0 11262306a36Sopenharmony_ci#define MOD_BCLK_48FS 1 11362306a36Sopenharmony_ci#define MOD_BCLK_16FS 2 11462306a36Sopenharmony_ci#define MOD_BCLK_24FS 3 11562306a36Sopenharmony_ci#define MOD_BCLK_MASK 3 11662306a36Sopenharmony_ci#define MOD_8BIT (1 << 0) 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci#define EXYNOS5420_MOD_LRP_SHIFT 15 11962306a36Sopenharmony_ci#define EXYNOS5420_MOD_SDF_SHIFT 6 12062306a36Sopenharmony_ci#define EXYNOS5420_MOD_RCLK_SHIFT 4 12162306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_SHIFT 0 12262306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_64FS 4 12362306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_96FS 5 12462306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_128FS 6 12562306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_192FS 7 12662306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_256FS 8 12762306a36Sopenharmony_ci#define EXYNOS5420_MOD_BCLK_MASK 0xf 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci#define EXYNOS7_MOD_RCLK_64FS 4 13062306a36Sopenharmony_ci#define EXYNOS7_MOD_RCLK_128FS 5 13162306a36Sopenharmony_ci#define EXYNOS7_MOD_RCLK_96FS 6 13262306a36Sopenharmony_ci#define EXYNOS7_MOD_RCLK_192FS 7 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci#define PSR_PSREN (1 << 15) 13562306a36Sopenharmony_ci#define PSR_PSVAL(x) ((((x) - 1) << 8) & 0x3f00) 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci#define FIC_TX2COUNT(x) (((x) >> 24) & 0xf) 13862306a36Sopenharmony_ci#define FIC_TX1COUNT(x) (((x) >> 16) & 0xf) 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci#define FIC_TXFLUSH (1 << 15) 14162306a36Sopenharmony_ci#define FIC_RXFLUSH (1 << 7) 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci#define FIC_TXCOUNT(x) (((x) >> 8) & 0xf) 14462306a36Sopenharmony_ci#define FIC_RXCOUNT(x) (((x) >> 0) & 0xf) 14562306a36Sopenharmony_ci#define FICS_TXCOUNT(x) (((x) >> 8) & 0x7f) 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci#define AHB_INTENLVL0 (1 << 24) 14862306a36Sopenharmony_ci#define AHB_LVL0INT (1 << 20) 14962306a36Sopenharmony_ci#define AHB_CLRLVL0INT (1 << 16) 15062306a36Sopenharmony_ci#define AHB_DMARLD (1 << 5) 15162306a36Sopenharmony_ci#define AHB_INTMASK (1 << 3) 15262306a36Sopenharmony_ci#define AHB_DMAEN (1 << 0) 15362306a36Sopenharmony_ci#define AHB_LVLINTMASK (0xf << 20) 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci#define I2SSIZE_TRNMSK (0xffff) 15662306a36Sopenharmony_ci#define I2SSIZE_SHIFT (16) 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci#endif /* __SND_SOC_SAMSUNG_I2S_REGS_H */ 159