linux/sound/soc/codecs/tlv320aic32x4.h
<<
>>
Prefs
   1/*
   2 * tlv320aic32x4.h
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 */
   8
   9
  10#ifndef _TLV320AIC32X4_H
  11#define _TLV320AIC32X4_H
  12
  13struct device;
  14struct regmap_config;
  15
  16extern const struct regmap_config aic32x4_regmap_config;
  17int aic32x4_probe(struct device *dev, struct regmap *regmap);
  18int aic32x4_remove(struct device *dev);
  19
  20/* tlv320aic32x4 register space (in decimal to match datasheet) */
  21
  22#define AIC32X4_PAGE1           128
  23
  24#define AIC32X4_PSEL            0
  25#define AIC32X4_RESET           1
  26#define AIC32X4_CLKMUX          4
  27#define AIC32X4_PLLPR           5
  28#define AIC32X4_PLLJ            6
  29#define AIC32X4_PLLDMSB         7
  30#define AIC32X4_PLLDLSB         8
  31#define AIC32X4_NDAC            11
  32#define AIC32X4_MDAC            12
  33#define AIC32X4_DOSRMSB         13
  34#define AIC32X4_DOSRLSB         14
  35#define AIC32X4_NADC            18
  36#define AIC32X4_MADC            19
  37#define AIC32X4_AOSR            20
  38#define AIC32X4_CLKMUX2         25
  39#define AIC32X4_CLKOUTM         26
  40#define AIC32X4_IFACE1          27
  41#define AIC32X4_IFACE2          28
  42#define AIC32X4_IFACE3          29
  43#define AIC32X4_BCLKN           30
  44#define AIC32X4_IFACE4          31
  45#define AIC32X4_IFACE5          32
  46#define AIC32X4_IFACE6          33
  47#define AIC32X4_DOUTCTL         53
  48#define AIC32X4_DINCTL          54
  49#define AIC32X4_DACSPB          60
  50#define AIC32X4_ADCSPB          61
  51#define AIC32X4_DACSETUP        63
  52#define AIC32X4_DACMUTE         64
  53#define AIC32X4_LDACVOL         65
  54#define AIC32X4_RDACVOL         66
  55#define AIC32X4_ADCSETUP        81
  56#define AIC32X4_ADCFGA          82
  57#define AIC32X4_LADCVOL         83
  58#define AIC32X4_RADCVOL         84
  59#define AIC32X4_LAGC1           86
  60#define AIC32X4_LAGC2           87
  61#define AIC32X4_LAGC3           88
  62#define AIC32X4_LAGC4           89
  63#define AIC32X4_LAGC5           90
  64#define AIC32X4_LAGC6           91
  65#define AIC32X4_LAGC7           92
  66#define AIC32X4_RAGC1           94
  67#define AIC32X4_RAGC2           95
  68#define AIC32X4_RAGC3           96
  69#define AIC32X4_RAGC4           97
  70#define AIC32X4_RAGC5           98
  71#define AIC32X4_RAGC6           99
  72#define AIC32X4_RAGC7           100
  73#define AIC32X4_PWRCFG          (AIC32X4_PAGE1 + 1)
  74#define AIC32X4_LDOCTL          (AIC32X4_PAGE1 + 2)
  75#define AIC32X4_OUTPWRCTL       (AIC32X4_PAGE1 + 9)
  76#define AIC32X4_CMMODE          (AIC32X4_PAGE1 + 10)
  77#define AIC32X4_HPLROUTE        (AIC32X4_PAGE1 + 12)
  78#define AIC32X4_HPRROUTE        (AIC32X4_PAGE1 + 13)
  79#define AIC32X4_LOLROUTE        (AIC32X4_PAGE1 + 14)
  80#define AIC32X4_LORROUTE        (AIC32X4_PAGE1 + 15)
  81#define AIC32X4_HPLGAIN         (AIC32X4_PAGE1 + 16)
  82#define AIC32X4_HPRGAIN         (AIC32X4_PAGE1 + 17)
  83#define AIC32X4_LOLGAIN         (AIC32X4_PAGE1 + 18)
  84#define AIC32X4_LORGAIN         (AIC32X4_PAGE1 + 19)
  85#define AIC32X4_HEADSTART       (AIC32X4_PAGE1 + 20)
  86#define AIC32X4_MICBIAS         (AIC32X4_PAGE1 + 51)
  87#define AIC32X4_LMICPGAPIN      (AIC32X4_PAGE1 + 52)
  88#define AIC32X4_LMICPGANIN      (AIC32X4_PAGE1 + 54)
  89#define AIC32X4_RMICPGAPIN      (AIC32X4_PAGE1 + 55)
  90#define AIC32X4_RMICPGANIN      (AIC32X4_PAGE1 + 57)
  91#define AIC32X4_FLOATINGINPUT   (AIC32X4_PAGE1 + 58)
  92#define AIC32X4_LMICPGAVOL      (AIC32X4_PAGE1 + 59)
  93#define AIC32X4_RMICPGAVOL      (AIC32X4_PAGE1 + 60)
  94
  95#define AIC32X4_FREQ_12000000 12000000
  96#define AIC32X4_FREQ_24000000 24000000
  97#define AIC32X4_FREQ_25000000 25000000
  98
  99#define AIC32X4_WORD_LEN_16BITS         0x00
 100#define AIC32X4_WORD_LEN_20BITS         0x01
 101#define AIC32X4_WORD_LEN_24BITS         0x02
 102#define AIC32X4_WORD_LEN_32BITS         0x03
 103
 104#define AIC32X4_LADC_EN                 (1 << 7)
 105#define AIC32X4_RADC_EN                 (1 << 6)
 106
 107#define AIC32X4_I2S_MODE                0x00
 108#define AIC32X4_DSP_MODE                0x01
 109#define AIC32X4_RIGHT_JUSTIFIED_MODE    0x02
 110#define AIC32X4_LEFT_JUSTIFIED_MODE     0x03
 111
 112#define AIC32X4_AVDDWEAKDISABLE         0x08
 113#define AIC32X4_LDOCTLEN                0x01
 114
 115#define AIC32X4_LDOIN_18_36             0x01
 116#define AIC32X4_LDOIN2HP                0x02
 117
 118#define AIC32X4_DACSPBLOCK_MASK         0x1f
 119#define AIC32X4_ADCSPBLOCK_MASK         0x1f
 120
 121#define AIC32X4_PLLJ_SHIFT              6
 122#define AIC32X4_DOSRMSB_SHIFT           4
 123
 124#define AIC32X4_PLLCLKIN                0x03
 125
 126#define AIC32X4_MICBIAS_LDOIN           0x08
 127#define AIC32X4_MICBIAS_2075V           0x60
 128
 129#define AIC32X4_LMICPGANIN_IN2R_10K     0x10
 130#define AIC32X4_LMICPGANIN_CM1L_10K     0x40
 131#define AIC32X4_RMICPGANIN_IN1L_10K     0x10
 132#define AIC32X4_RMICPGANIN_CM1R_10K     0x40
 133
 134#define AIC32X4_LMICPGAVOL_NOGAIN       0x80
 135#define AIC32X4_RMICPGAVOL_NOGAIN       0x80
 136
 137#define AIC32X4_BCLKMASTER              0x08
 138#define AIC32X4_WCLKMASTER              0x04
 139#define AIC32X4_PLLEN                   (0x01 << 7)
 140#define AIC32X4_NDACEN                  (0x01 << 7)
 141#define AIC32X4_MDACEN                  (0x01 << 7)
 142#define AIC32X4_NADCEN                  (0x01 << 7)
 143#define AIC32X4_MADCEN                  (0x01 << 7)
 144#define AIC32X4_BCLKEN                  (0x01 << 7)
 145#define AIC32X4_DACEN                   (0x03 << 6)
 146#define AIC32X4_RDAC2LCHN               (0x02 << 2)
 147#define AIC32X4_LDAC2RCHN               (0x02 << 4)
 148#define AIC32X4_LDAC2LCHN               (0x01 << 4)
 149#define AIC32X4_RDAC2RCHN               (0x01 << 2)
 150#define AIC32X4_DAC_CHAN_MASK           0x3c
 151
 152#define AIC32X4_SSTEP2WCLK              0x01
 153#define AIC32X4_MUTEON                  0x0C
 154#define AIC32X4_DACMOD2BCLK             0x01
 155
 156#endif                          /* _TLV320AIC32X4_H */
 157