cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cs4349.h (3373B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * ALSA SoC CS4349 codec driver
      4 *
      5 * Copyright 2015 Cirrus Logic, Inc.
      6 *
      7 * Author: Tim Howe <Tim.Howe@cirrus.com>
      8 */
      9
     10#ifndef __CS4349_H__
     11#define __CS4349_H__
     12
     13/* CS4349 registers addresses */
     14#define CS4349_CHIPID		0x01	/* Device and Rev ID, Read Only */
     15#define CS4349_MODE		0x02	/* Mode Control */
     16#define CS4349_VMI		0x03	/* Volume, Mixing, Inversion Control */
     17#define CS4349_MUTE		0x04	/* Mute Control */
     18#define CS4349_VOLA		0x05	/* DAC Channel A Volume Control */
     19#define CS4349_VOLB		0x06	/* DAC Channel B Volume Control */
     20#define CS4349_RMPFLT		0x07	/* Ramp and Filter Control */
     21#define CS4349_MISC		0x08	/* Power Down,Freeze Control,Pop Stop*/
     22
     23#define CS4349_I2C_INCR		0x80
     24
     25
     26/* Device and Revision ID */
     27#define CS4349_REVA		0xF0	/* Rev A */
     28#define CS4349_REVB		0xF1	/* Rev B */
     29#define CS4349_REVC2		0xFF	/* Rev C2 */
     30
     31
     32/* PDN_DONE Poll Maximum
     33 * If soft ramp is set it will take much longer to power down
     34 * the system.
     35 */
     36#define PDN_POLL_MAX		900
     37
     38
     39/* Bitfield Definitions */
     40
     41/* CS4349_MODE */
     42/* (Digital Interface Format, De-Emphasis Control, Functional Mode */
     43#define DIF2			(1 << 6)
     44#define DIF1			(1 << 5)
     45#define DIF0			(1 << 4)
     46#define DEM1			(1 << 3)
     47#define DEM0			(1 << 2)
     48#define FM1			(1 << 1)
     49#define DIF_LEFT_JST		0x00
     50#define DIF_I2S			0x01
     51#define DIF_RGHT_JST16		0x02
     52#define DIF_RGHT_JST24		0x03
     53#define DIF_TDM0		0x04
     54#define DIF_TDM1		0x05
     55#define DIF_TDM2		0x06
     56#define DIF_TDM3		0x07
     57#define DIF_MASK		0x70
     58#define MODE_FORMAT(x)		(((x)&7)<<4)
     59#define DEM_MASK		0x0C
     60#define NO_DEM			0x00
     61#define DEM_441			0x04
     62#define DEM_48K			0x08
     63#define DEM_32K			0x0C
     64#define FM_AUTO			0x00
     65#define FM_SNGL			0x01
     66#define FM_DBL			0x02
     67#define FM_QUAD			0x03
     68#define FM_SNGL_MIN		30000
     69#define FM_SNGL_MAX		54000
     70#define FM_DBL_MAX		108000
     71#define FM_QUAD_MAX		216000
     72#define FM_MASK			0x03
     73
     74/* CS4349_VMI (VMI = Volume, Mixing and Inversion Controls) */
     75#define VOLBISA			(1 << 7)
     76#define VOLAISB			(1 << 7)
     77/* INVERT_A only available for Left Jstfd, Right Jstfd16 and Right Jstfd24 */
     78#define INVERT_A		(1 << 6)
     79/* INVERT_B only available for Left Jstfd, Right Jstfd16 and Right Jstfd24 */
     80#define INVERT_B		(1 << 5)
     81#define ATAPI3			(1 << 3)
     82#define ATAPI2			(1 << 2)
     83#define ATAPI1			(1 << 1)
     84#define ATAPI0			(1 << 0)
     85#define MUTEAB			0x00
     86#define MUTEA_RIGHTB		0x01
     87#define MUTEA_LEFTB		0x02
     88#define MUTEA_SUMLRDIV2B	0x03
     89#define RIGHTA_MUTEB		0x04
     90#define RIGHTA_RIGHTB		0x05
     91#define RIGHTA_LEFTB		0x06
     92#define RIGHTA_SUMLRDIV2B	0x07
     93#define LEFTA_MUTEB		0x08
     94#define LEFTA_RIGHTB		0x09	/* Default */
     95#define LEFTA_LEFTB		0x0A
     96#define LEFTA_SUMLRDIV2B	0x0B
     97#define SUMLRDIV2A_MUTEB	0x0C
     98#define SUMLRDIV2A_RIGHTB	0x0D
     99#define SUMLRDIV2A_LEFTB	0x0E
    100#define SUMLRDIV2_AB		0x0F
    101#define CHMIX_MASK		0x0F
    102
    103/* CS4349_MUTE */
    104#define AUTOMUTE		(1 << 7)
    105#define MUTEC_AB		(1 << 5)
    106#define MUTE_A			(1 << 4)
    107#define MUTE_B			(1 << 3)
    108#define MUTE_AB_MASK		0x18
    109
    110/* CS4349_RMPFLT (Ramp and Filter Control) */
    111#define SCZ1			(1 << 7)
    112#define SCZ0			(1 << 6)
    113#define RMP_UP			(1 << 5)
    114#define RMP_DN			(1 << 4)
    115#define FILT_SEL		(1 << 2)
    116#define IMMDT_CHNG		0x31
    117#define ZEROCRSS		0x71
    118#define SOFT_RMP		0xB1
    119#define SFTRMP_ZEROCRSS		0xF1
    120#define SR_ZC_MASK		0xC0
    121
    122/* CS4349_MISC */
    123#define PWR_DWN			(1 << 7)
    124#define FREEZE			(1 << 5)
    125#define POPG_EN			(1 << 4)
    126
    127#endif	/* __CS4349_H__ */