Files
Linux_Drivers/linux_5.10/sound/soc/cvitek/cv1835pdm.h
wangliang.wang 95dcbe5649 [linux] Upgrade the MMF SDK from V4.0.0 to V4.1.0
1. 181x support secureboot
	2. add .gitignore

Change-Id: I34cd45663d92eeb8e3b5ddfbf1a876111ce46bd1
2023-03-10 20:41:56 +08:00

63 lines
1.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0-or-later
* PDM driver on CVITEK CV1835
*
* Copyright 2018 CVITEK
*
* Author: EthanChen
*
*/
#ifndef __CV1835PDM_H__
#define __CV1835PDM_H__
#include <linux/clk.h>
#include <linux/miscdevice.h>
/* register offset */
#define PDM_EN_REG 0x30
#define PDM_EN 0x1
#define PDM_OFF 0x0
#define PDM_48K 3
#define PDM_44_1K 3
#define PDM_22_05K 7
#define PDM_16K 11
#define PDM_11_025K 15
#define PDM_8K 23
#define PDM_SETTING_REG 0x34
#define PDM_CLK_DIV_MASK 0xFFFFFFE0
#define PDM_CLK_DIV(v) (v << 0)
#define PDM_CLK_INV (0x1 << 15)
#define PDM_DATA_CAP_MASK 0xFFC0FFFF
#define PDM_DATA_CAP(v) (v << 16)
#define PDM_SEL_MASK 0xFEFFFFFF
#define PDM_BOND_SEL_0 (0 << 24)
#define PDM_BOND_SEL_1 (1 << 24)
#define I2S_48K 7
#define I2S_44_1K 7
#define I2S_22_05K 15
#define I2S_16K 23
#define I2S_11_025K 31
#define I2S_8K 47
#define I2S_SETTING_REG 0x38
#define I2S_CLK_DIV_MASK 0xFFFFFF00
#define I2S_CLK_DIV(v) (v << 0)
#define I2S_CHN_WIDTH_MASK 0xFFFFFCFF
#define I2S_CHN_WIDTH_8BIT 0x0
#define I2S_CHN_WIDTH_16BIT 0x1
#define I2S_CHN_WIDTH_24BIT 0x2
#define I2S_CHN_WIDTH_32BIT 0x3
#define I2S_CHN_WIDTH(v) (v << 8)
struct cvi1835pdm {
void __iomem *pdm_base;
struct clk *clk;
struct device *dev;
struct miscdevice miscdev;
};
#endif /* __CV1835PDM_H__ */