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

wm8741.h (11114B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * wm8741.h  --  WM8423 ASoC driver
      4 *
      5 * Copyright 2010 Wolfson Microelectronics, plc
      6 *
      7 * Author: Ian Lartey <ian@opensource.wolfsonmicro.com>
      8 *
      9 * Based on wm8753.h
     10 */
     11
     12#ifndef _WM8741_H
     13#define _WM8741_H
     14
     15/*
     16 * Register values.
     17 */
     18#define WM8741_DACLLSB_ATTENUATION              0x00
     19#define WM8741_DACLMSB_ATTENUATION              0x01
     20#define WM8741_DACRLSB_ATTENUATION              0x02
     21#define WM8741_DACRMSB_ATTENUATION              0x03
     22#define WM8741_VOLUME_CONTROL                   0x04
     23#define WM8741_FORMAT_CONTROL                   0x05
     24#define WM8741_FILTER_CONTROL                   0x06
     25#define WM8741_MODE_CONTROL_1                   0x07
     26#define WM8741_MODE_CONTROL_2                   0x08
     27#define WM8741_RESET                            0x09
     28#define WM8741_ADDITIONAL_CONTROL_1             0x20
     29
     30#define WM8741_REGISTER_COUNT                   11
     31#define WM8741_MAX_REGISTER                     0x20
     32
     33/*
     34 * Field Definitions.
     35 */
     36
     37/*
     38 * R0 (0x00) - DACLLSB_ATTENUATION
     39 */
     40#define WM8741_UPDATELL                         0x0020  /* UPDATELL */
     41#define WM8741_UPDATELL_MASK                    0x0020  /* UPDATELL */
     42#define WM8741_UPDATELL_SHIFT                        5  /* UPDATELL */
     43#define WM8741_UPDATELL_WIDTH                        1  /* UPDATELL */
     44#define WM8741_LAT_4_0_MASK                     0x001F  /* LAT[4:0] - [4:0] */
     45#define WM8741_LAT_4_0_SHIFT                         0  /* LAT[4:0] - [4:0] */
     46#define WM8741_LAT_4_0_WIDTH                         5  /* LAT[4:0] - [4:0] */
     47
     48/*
     49 * R1 (0x01) - DACLMSB_ATTENUATION
     50 */
     51#define WM8741_UPDATELM                         0x0020  /* UPDATELM */
     52#define WM8741_UPDATELM_MASK                    0x0020  /* UPDATELM */
     53#define WM8741_UPDATELM_SHIFT                        5  /* UPDATELM */
     54#define WM8741_UPDATELM_WIDTH                        1  /* UPDATELM */
     55#define WM8741_LAT_9_5_0_MASK                   0x001F  /* LAT[9:5] - [4:0] */
     56#define WM8741_LAT_9_5_0_SHIFT                       0  /* LAT[9:5] - [4:0] */
     57#define WM8741_LAT_9_5_0_WIDTH                       5  /* LAT[9:5] - [4:0] */
     58
     59/*
     60 * R2 (0x02) - DACRLSB_ATTENUATION
     61 */
     62#define WM8741_UPDATERL                         0x0020  /* UPDATERL */
     63#define WM8741_UPDATERL_MASK                    0x0020  /* UPDATERL */
     64#define WM8741_UPDATERL_SHIFT                        5  /* UPDATERL */
     65#define WM8741_UPDATERL_WIDTH                        1  /* UPDATERL */
     66#define WM8741_RAT_4_0_MASK                     0x001F  /* RAT[4:0] - [4:0] */
     67#define WM8741_RAT_4_0_SHIFT                         0  /* RAT[4:0] - [4:0] */
     68#define WM8741_RAT_4_0_WIDTH                         5  /* RAT[4:0] - [4:0] */
     69
     70/*
     71 * R3 (0x03) - DACRMSB_ATTENUATION
     72 */
     73#define WM8741_UPDATERM                         0x0020  /* UPDATERM */
     74#define WM8741_UPDATERM_MASK                    0x0020  /* UPDATERM */
     75#define WM8741_UPDATERM_SHIFT                        5  /* UPDATERM */
     76#define WM8741_UPDATERM_WIDTH                        1  /* UPDATERM */
     77#define WM8741_RAT_9_5_0_MASK                   0x001F  /* RAT[9:5] - [4:0] */
     78#define WM8741_RAT_9_5_0_SHIFT                       0  /* RAT[9:5] - [4:0] */
     79#define WM8741_RAT_9_5_0_WIDTH                       5  /* RAT[9:5] - [4:0] */
     80
     81/*
     82 * R4 (0x04) - VOLUME_CONTROL
     83 */
     84#define WM8741_AMUTE                            0x0080  /* AMUTE */
     85#define WM8741_AMUTE_MASK                       0x0080  /* AMUTE */
     86#define WM8741_AMUTE_SHIFT                           7  /* AMUTE */
     87#define WM8741_AMUTE_WIDTH                           1  /* AMUTE */
     88#define WM8741_ZFLAG_MASK                       0x0060  /* ZFLAG - [6:5] */
     89#define WM8741_ZFLAG_SHIFT                           5  /* ZFLAG - [6:5] */
     90#define WM8741_ZFLAG_WIDTH                           2  /* ZFLAG - [6:5] */
     91#define WM8741_IZD                              0x0010  /* IZD */
     92#define WM8741_IZD_MASK                         0x0010  /* IZD */
     93#define WM8741_IZD_SHIFT                             4  /* IZD */
     94#define WM8741_IZD_WIDTH                             1  /* IZD */
     95#define WM8741_SOFT                             0x0008  /* SOFT MUTE */
     96#define WM8741_SOFT_MASK                        0x0008  /* SOFT MUTE */
     97#define WM8741_SOFT_SHIFT                            3  /* SOFT MUTE */
     98#define WM8741_SOFT_WIDTH                            1  /* SOFT MUTE */
     99#define WM8741_ATC                              0x0004  /* ATC */
    100#define WM8741_ATC_MASK                         0x0004  /* ATC */
    101#define WM8741_ATC_SHIFT                             2  /* ATC */
    102#define WM8741_ATC_WIDTH                             1  /* ATC */
    103#define WM8741_ATT2DB                           0x0002  /* ATT2DB */
    104#define WM8741_ATT2DB_MASK                      0x0002  /* ATT2DB */
    105#define WM8741_ATT2DB_SHIFT                          1  /* ATT2DB */
    106#define WM8741_ATT2DB_WIDTH                          1  /* ATT2DB */
    107#define WM8741_VOL_RAMP                         0x0001  /* VOL_RAMP */
    108#define WM8741_VOL_RAMP_MASK                    0x0001  /* VOL_RAMP */
    109#define WM8741_VOL_RAMP_SHIFT                        0  /* VOL_RAMP */
    110#define WM8741_VOL_RAMP_WIDTH                        1  /* VOL_RAMP */
    111
    112/*
    113 * R5 (0x05) - FORMAT_CONTROL
    114 */
    115#define WM8741_PWDN                             0x0080  /* PWDN */
    116#define WM8741_PWDN_MASK                        0x0080  /* PWDN */
    117#define WM8741_PWDN_SHIFT                            7  /* PWDN */
    118#define WM8741_PWDN_WIDTH                            1  /* PWDN */
    119#define WM8741_REV                              0x0040  /* REV */
    120#define WM8741_REV_MASK                         0x0040  /* REV */
    121#define WM8741_REV_SHIFT                             6  /* REV */
    122#define WM8741_REV_WIDTH                             1  /* REV */
    123#define WM8741_BCP                              0x0020  /* BCP */
    124#define WM8741_BCP_MASK                         0x0020  /* BCP */
    125#define WM8741_BCP_SHIFT                             5  /* BCP */
    126#define WM8741_BCP_WIDTH                             1  /* BCP */
    127#define WM8741_LRP                              0x0010  /* LRP */
    128#define WM8741_LRP_MASK                         0x0010  /* LRP */
    129#define WM8741_LRP_SHIFT                             4  /* LRP */
    130#define WM8741_LRP_WIDTH                             1  /* LRP */
    131#define WM8741_FMT_MASK                         0x000C  /* FMT - [3:2] */
    132#define WM8741_FMT_SHIFT                             2  /* FMT - [3:2] */
    133#define WM8741_FMT_WIDTH                             2  /* FMT - [3:2] */
    134#define WM8741_IWL_MASK                         0x0003  /* IWL - [1:0] */
    135#define WM8741_IWL_SHIFT                             0  /* IWL - [1:0] */
    136#define WM8741_IWL_WIDTH                             2  /* IWL - [1:0] */
    137
    138/*
    139 * R6 (0x06) - FILTER_CONTROL
    140 */
    141#define WM8741_ZFLAG_HI                         0x0080  /* ZFLAG_HI */
    142#define WM8741_ZFLAG_HI_MASK                    0x0080  /* ZFLAG_HI */
    143#define WM8741_ZFLAG_HI_SHIFT                        7  /* ZFLAG_HI */
    144#define WM8741_ZFLAG_HI_WIDTH                        1  /* ZFLAG_HI */
    145#define WM8741_DEEMPH_MASK                      0x0060  /* DEEMPH - [6:5] */
    146#define WM8741_DEEMPH_SHIFT                          5  /* DEEMPH - [6:5] */
    147#define WM8741_DEEMPH_WIDTH                          2  /* DEEMPH - [6:5] */
    148#define WM8741_DSDFILT_MASK                     0x0018  /* DSDFILT - [4:3] */
    149#define WM8741_DSDFILT_SHIFT                         3  /* DSDFILT - [4:3] */
    150#define WM8741_DSDFILT_WIDTH                         2  /* DSDFILT - [4:3] */
    151#define WM8741_FIRSEL_MASK                      0x0007  /* FIRSEL - [2:0] */
    152#define WM8741_FIRSEL_SHIFT                          0  /* FIRSEL - [2:0] */
    153#define WM8741_FIRSEL_WIDTH                          3  /* FIRSEL - [2:0] */
    154
    155/*
    156 * R7 (0x07) - MODE_CONTROL_1
    157 */
    158#define WM8741_MODE8X                           0x0080  /* MODE8X */
    159#define WM8741_MODE8X_MASK                      0x0080  /* MODE8X */
    160#define WM8741_MODE8X_SHIFT                          7  /* MODE8X */
    161#define WM8741_MODE8X_WIDTH                          1  /* MODE8X */
    162#define WM8741_OSR_MASK                         0x0060  /* OSR - [6:5] */
    163#define WM8741_OSR_SHIFT                             5  /* OSR - [6:5] */
    164#define WM8741_OSR_WIDTH                             2  /* OSR - [6:5] */
    165#define WM8741_SR_MASK                          0x001C  /* SR - [4:2] */
    166#define WM8741_SR_SHIFT                              2  /* SR - [4:2] */
    167#define WM8741_SR_WIDTH                              3  /* SR - [4:2] */
    168#define WM8741_MODESEL_MASK                     0x0003  /* MODESEL - [1:0] */
    169#define WM8741_MODESEL_SHIFT                         0  /* MODESEL - [1:0] */
    170#define WM8741_MODESEL_WIDTH                         2  /* MODESEL - [1:0] */
    171
    172/*
    173 * R8 (0x08) - MODE_CONTROL_2
    174 */
    175#define WM8741_DSD_GAIN                         0x0040  /* DSD_GAIN */
    176#define WM8741_DSD_GAIN_MASK                    0x0040  /* DSD_GAIN */
    177#define WM8741_DSD_GAIN_SHIFT                        6  /* DSD_GAIN */
    178#define WM8741_DSD_GAIN_WIDTH                        1  /* DSD_GAIN */
    179#define WM8741_SDOUT                            0x0020  /* SDOUT */
    180#define WM8741_SDOUT_MASK                       0x0020  /* SDOUT */
    181#define WM8741_SDOUT_SHIFT                           5  /* SDOUT */
    182#define WM8741_SDOUT_WIDTH                           1  /* SDOUT */
    183#define WM8741_DOUT                             0x0010  /* DOUT */
    184#define WM8741_DOUT_MASK                        0x0010  /* DOUT */
    185#define WM8741_DOUT_SHIFT                            4  /* DOUT */
    186#define WM8741_DOUT_WIDTH                            1  /* DOUT */
    187#define WM8741_DIFF_MASK                        0x000C  /* DIFF - [3:2] */
    188#define WM8741_DIFF_SHIFT                            2  /* DIFF - [3:2] */
    189#define WM8741_DIFF_WIDTH                            2  /* DIFF - [3:2] */
    190#define WM8741_DITHER_MASK                      0x0003  /* DITHER - [1:0] */
    191#define WM8741_DITHER_SHIFT                          0  /* DITHER - [1:0] */
    192#define WM8741_DITHER_WIDTH                          2  /* DITHER - [1:0] */
    193
    194/* DIFF field values */
    195#define WM8741_DIFF_MODE_STEREO                      0  /* stereo normal */
    196#define WM8741_DIFF_MODE_STEREO_REVERSED             2  /* stereo reversed */
    197#define WM8741_DIFF_MODE_MONO_LEFT                   1  /* mono left */
    198#define WM8741_DIFF_MODE_MONO_RIGHT                  3  /* mono right */
    199
    200/*
    201 * R32 (0x20) - ADDITONAL_CONTROL_1
    202 */
    203#define WM8741_DSD_LEVEL                        0x0002  /* DSD_LEVEL */
    204#define WM8741_DSD_LEVEL_MASK                   0x0002  /* DSD_LEVEL */
    205#define WM8741_DSD_LEVEL_SHIFT                       1  /* DSD_LEVEL */
    206#define WM8741_DSD_LEVEL_WIDTH                       1  /* DSD_LEVEL */
    207#define WM8741_DSD_NO_NOTCH                     0x0001  /* DSD_NO_NOTCH */
    208#define WM8741_DSD_NO_NOTCH_MASK                0x0001  /* DSD_NO_NOTCH */
    209#define WM8741_DSD_NO_NOTCH_SHIFT                    0  /* DSD_NO_NOTCH */
    210#define WM8741_DSD_NO_NOTCH_WIDTH                    1  /* DSD_NO_NOTCH */
    211
    212#define  WM8741_SYSCLK 0
    213
    214struct wm8741_platform_data {
    215	u32 diff_mode;   /* Differential Output Mode */
    216};
    217
    218#endif