include/sound/cs42l42.h

Source file repositories/reference/linux-study-clean/include/sound/cs42l42.h

File Facts

System
Linux kernel
Corpus path
include/sound/cs42l42.h
Extension
.h
Size
35294 bytes
Lines
816
Domain
Driver Families
Bucket
include/sound
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __CS42L42_H
#define __CS42L42_H

#define CS42L42_PAGE_REGISTER	0x00	/* Page Select Register */
#define CS42L42_WIN_START	0x00
#define CS42L42_WIN_LEN		0x100
#define CS42L42_RANGE_MIN	0x00
#define CS42L42_RANGE_MAX	0x7F

#define CS42L42_PAGE_10		0x1000
#define CS42L42_PAGE_11		0x1100
#define CS42L42_PAGE_12		0x1200
#define CS42L42_PAGE_13		0x1300
#define CS42L42_PAGE_15		0x1500
#define CS42L42_PAGE_19		0x1900
#define CS42L42_PAGE_1B		0x1B00
#define CS42L42_PAGE_1C		0x1C00
#define CS42L42_PAGE_1D		0x1D00
#define CS42L42_PAGE_1F		0x1F00
#define CS42L42_PAGE_20		0x2000
#define CS42L42_PAGE_21		0x2100
#define CS42L42_PAGE_23		0x2300
#define CS42L42_PAGE_24		0x2400
#define CS42L42_PAGE_25		0x2500
#define CS42L42_PAGE_26		0x2600
#define CS42L42_PAGE_27		0x2700
#define CS42L42_PAGE_28		0x2800
#define CS42L42_PAGE_29		0x2900
#define CS42L42_PAGE_2A		0x2A00
#define CS42L42_PAGE_30		0x3000

#define CS42L42_CHIP_ID		0x42A42
#define CS42L83_CHIP_ID		0x42A83

/* Page 0x10 Global Registers */
#define CS42L42_DEVID_AB		(CS42L42_PAGE_10 + 0x01)
#define CS42L42_DEVID_CD		(CS42L42_PAGE_10 + 0x02)
#define CS42L42_DEVID_E			(CS42L42_PAGE_10 + 0x03)
#define CS42L42_FABID			(CS42L42_PAGE_10 + 0x04)
#define CS42L42_REVID			(CS42L42_PAGE_10 + 0x05)
#define CS42L42_FRZ_CTL			(CS42L42_PAGE_10 + 0x06)

#define CS42L42_SRC_CTL			(CS42L42_PAGE_10 + 0x07)
#define CS42L42_SRC_BYPASS_DAC_SHIFT	1
#define CS42L42_SRC_BYPASS_DAC_MASK	(1 << CS42L42_SRC_BYPASS_DAC_SHIFT)

#define CS42L42_MCLK_STATUS		(CS42L42_PAGE_10 + 0x08)

#define CS42L42_MCLK_CTL		(CS42L42_PAGE_10 + 0x09)
#define CS42L42_INTERNAL_FS_SHIFT	1
#define CS42L42_INTERNAL_FS_MASK	(1 << CS42L42_INTERNAL_FS_SHIFT)

#define CS42L42_SFTRAMP_RATE		(CS42L42_PAGE_10 + 0x0A)
#define CS42L42_SLOW_START_ENABLE	(CS42L42_PAGE_10 + 0x0B)
#define CS42L42_SLOW_START_EN_MASK	GENMASK(6, 4)
#define CS42L42_SLOW_START_EN_SHIFT	4
#define CS42L42_I2C_DEBOUNCE		(CS42L42_PAGE_10 + 0x0E)
#define CS42L42_I2C_STRETCH		(CS42L42_PAGE_10 + 0x0F)
#define CS42L42_I2C_TIMEOUT		(CS42L42_PAGE_10 + 0x10)

/* Page 0x11 Power and Headset Detect Registers */
#define CS42L42_PWR_CTL1		(CS42L42_PAGE_11 + 0x01)
#define CS42L42_ASP_DAO_PDN_SHIFT	7
#define CS42L42_ASP_DAO_PDN_MASK	(1 << CS42L42_ASP_DAO_PDN_SHIFT)
#define CS42L42_ASP_DAI_PDN_SHIFT	6
#define CS42L42_ASP_DAI_PDN_MASK	(1 << CS42L42_ASP_DAI_PDN_SHIFT)
#define CS42L42_MIXER_PDN_SHIFT		5
#define CS42L42_MIXER_PDN_MASK		(1 << CS42L42_MIXER_PDN_SHIFT)
#define CS42L42_EQ_PDN_SHIFT		4
#define CS42L42_EQ_PDN_MASK		(1 << CS42L42_EQ_PDN_SHIFT)
#define CS42L42_HP_PDN_SHIFT		3
#define CS42L42_HP_PDN_MASK		(1 << CS42L42_HP_PDN_SHIFT)
#define CS42L42_ADC_PDN_SHIFT		2
#define CS42L42_ADC_PDN_MASK		(1 << CS42L42_ADC_PDN_SHIFT)
#define CS42L42_PDN_ALL_SHIFT		0
#define CS42L42_PDN_ALL_MASK		(1 << CS42L42_PDN_ALL_SHIFT)

#define CS42L42_PWR_CTL2		(CS42L42_PAGE_11 + 0x02)
#define CS42L42_ADC_SRC_PDNB_SHIFT	0
#define CS42L42_ADC_SRC_PDNB_MASK	(1 << CS42L42_ADC_SRC_PDNB_SHIFT)
#define CS42L42_DAC_SRC_PDNB_SHIFT	1
#define CS42L42_DAC_SRC_PDNB_MASK	(1 << CS42L42_DAC_SRC_PDNB_SHIFT)
#define CS42L42_ASP_DAI1_PDN_SHIFT	2
#define CS42L42_ASP_DAI1_PDN_MASK	(1 << CS42L42_ASP_DAI1_PDN_SHIFT)
#define CS42L42_SRC_PDN_OVERRIDE_SHIFT	3
#define CS42L42_SRC_PDN_OVERRIDE_MASK	(1 << CS42L42_SRC_PDN_OVERRIDE_SHIFT)
#define CS42L42_DISCHARGE_FILT_SHIFT	4
#define CS42L42_DISCHARGE_FILT_MASK	(1 << CS42L42_DISCHARGE_FILT_SHIFT)

#define CS42L42_PWR_CTL3			(CS42L42_PAGE_11 + 0x03)

Annotation

Implementation Notes