1 /* 2 * max9867.h -- MAX9867 ALSA SoC Audio driver 3 * 4 * Copyright 2013-2015 Maxim Integrated Products 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11 #ifndef _MAX9867_H 12 #define _MAX9867_H 13 14 /* MAX9867 register space */ 15 16 #define MAX9867_STATUS 0x00 17 #define MAX9867_JACKSTATUS 0x01 18 #define MAX9867_AUXHIGH 0x02 19 #define MAX9867_AUXLOW 0x03 20 #define MAX9867_INTEN 0x04 21 #define MAX9867_SYSCLK 0x05 22 #define MAX9867_FREQ_MASK 0xF 23 #define MAX9867_PSCLK_SHIFT 0x4 24 #define MAX9867_PSCLK_WIDTH 0x2 25 #define MAX9867_PSCLK_MASK (0x03<<MAX9867_PSCLK_SHIFT) 26 #define MAX9867_PSCLK_10_20 0x1 27 #define MAX9867_PSCLK_20_40 0x2 28 #define MAX9867_PSCLK_40_60 0x3 29 #define MAX9867_AUDIOCLKHIGH 0x06 30 #define MAX9867_NI_HIGH_WIDTH 0x7 31 #define MAX9867_NI_HIGH_MASK 0x7F 32 #define MAX9867_NI_LOW_MASK 0x7F 33 #define MAX9867_NI_LOW_SHIFT 0x1 34 #define MAX9867_PLL (1<<7) 35 #define MAX9867_AUDIOCLKLOW 0x07 36 #define MAX9867_RAPID_LOCK 0x01 37 #define MAX9867_IFC1A 0x08 38 #define MAX9867_MASTER (1<<7) 39 #define MAX9867_I2S_DLY (1<<4) 40 #define MAX9867_SDOUT_HIZ (1<<3) 41 #define MAX9867_TDM_MODE (1<<2) 42 #define MAX9867_WCI_MODE (1<<6) 43 #define MAX9867_BCI_MODE (1<<5) 44 #define MAX9867_IFC1B 0x09 45 #define MAX9867_IFC1B_BCLK_MASK 7 46 #define MAX9867_IFC1B_32BIT 0x01 47 #define MAX9867_IFC1B_24BIT 0x02 48 #define MAX9867_IFC1B_PCLK_2 4 49 #define MAX9867_IFC1B_PCLK_4 5 50 #define MAX9867_IFC1B_PCLK_8 6 51 #define MAX9867_IFC1B_PCLK_16 7 52 #define MAX9867_CODECFLTR 0x0a 53 #define MAX9867_DACGAIN 0x0b 54 #define MAX9867_DACLEVEL 0x0c 55 #define MAX9867_DAC_MUTE_SHIFT 0x6 56 #define MAX9867_DAC_MUTE_WIDTH 0x1 57 #define MAX9867_DAC_MUTE_MASK (0x1<<MAX9867_DAC_MUTE_SHIFT) 58 #define MAX9867_ADCLEVEL 0x0d 59 #define MAX9867_LEFTLINELVL 0x0e 60 #define MAX9867_RIGTHLINELVL 0x0f 61 #define MAX9867_LEFTVOL 0x10 62 #define MAX9867_RIGHTVOL 0x11 63 #define MAX9867_LEFTMICGAIN 0x12 64 #define MAX9867_RIGHTMICGAIN 0x13 65 #define MAX9867_INPUTCONFIG 0x14 66 #define MAX9867_INPUT_SHIFT 0x6 67 #define MAX9867_MICCONFIG 0x15 68 #define MAX9867_MODECONFIG 0x16 69 #define MAX9867_PWRMAN 0x17 70 #define MAX9867_SHTDOWN_MASK (1<<7) 71 #define MAX9867_REVISION 0xff 72 73 #define MAX9867_CACHEREGNUM 10 74 75 /* codec private data */ 76 struct max9867_priv { 77 struct regmap *regmap; 78 unsigned int sysclk; 79 unsigned int pclk; 80 unsigned int master; 81 }; 82 #endif 83