Support bitwidth change in IV data
[tas2770sw-android/tas2770sw-android.git] / tas2770.h
index 6545830a426a5d386f88e8ff48da2fc1f8af8673..8aaa6cff2b72e84707a8455a5edaf32d2d52ff89 100644 (file)
--- a/tas2770.h
+++ b/tas2770.h
@@ -67,6 +67,7 @@
     /* Playback Configuration Reg2 */
 #define TAS2770_PlaybackConfigurationReg2  TAS2770_REG(0X0, 0x05)
 #define TAS2770_PlaybackConfigurationReg2_DVCPCM70_Mask  (0xff << 0)
+#define TAS2770_PlaybackConfigurationReg2_VOLMAX (0xc9 << 0)
 
     /* Playback Configuration Reg3 */
 #define TAS2770_PlaybackConfigurationReg3  TAS2770_REG(0X0, 0x06)
 #define TAS2770_InterruptMaskReg0_OTEINTMASK_Mask  (0x1 << 0)
 #define TAS2770_InterruptMaskReg0_OTEINTMASK_Unmask  (0x0 << 0)
 #define TAS2770_InterruptMaskReg0_OTEINTMASK_Disable  (0x1 << 0)
+#define TAS2770_InterruptMaskReg0_Disable 0xff
 
     /* Interrupt Mask Reg1 */
 #define TAS2770_InterruptMaskReg1  TAS2770_REG(0X0, 0x21)
 #define TAS2770_InterruptMaskReg1_PDMClockErrorINTMASK_Mask  (0x1 << 0)
 #define TAS2770_InterruptMaskReg1_PDMClockErrorINTMASK_Unmask  (0x0 << 0)
 #define TAS2770_InterruptMaskReg1_PDMClockErrorINTMASK_Disable  (0x1 << 0)
+#define TAS2770_InterruptMaskReg1_Disable 0xff
 
     /* Live-Interrupt Reg0 */
 #define TAS2770_LiveInterruptReg0  TAS2770_REG(0X0, 0x22)
@@ -675,6 +678,9 @@ TAS2770_InterruptConfiguration_PININTConfig10_Assert2msOnLatchedInterrupts \
 #define TAS2770_Book  TAS2770_REG(0X0, 0x7F)
 #define TAS2770_Book_Book70_Mask  (0xff << 0)
 
+#define TAS2770_POWER_ACTIVE 0
+#define TAS2770_POWER_MUTE 1
+#define TAS2770_POWER_SHUTDOWN 2
 
 #define TAS2770_RegisterCount  55
 
@@ -683,17 +689,12 @@ TAS2770_InterruptConfiguration_PININTConfig10_Assert2msOnLatchedInterrupts \
 #define ERROR_DEVA_I2C_COMM 0x0000000
 #define ERROR_DEVB_I2C_COMM 0x0000000
 #define ERROR_PRAM_CRCCHK   0x0000000
-#define ERROR_YRAM_CRCCHK   0x0000001
-#define ERROR_CLK_DET2      0x0000002
-#define ERROR_CLK_DET1      0x0000004
-#define ERROR_CLK_LOST      0x0000008
+#define ERROR_OVER_CURRENT  0x0000001
+#define ERROR_DIE_OVERTEMP  0x0000002
+#define ERROR_OVER_VOLTAGE  0x0000004
+#define ERROR_UNDER_VOLTAGE 0x0000008
 #define ERROR_BROWNOUT      0x0000010
-#define ERROR_DIE_OVERTEMP  0x0000020
-#define ERROR_CLK_HALT      0x0000040
-#define ERROR_UNDER_VOLTAGE 0x0000080
-#define ERROR_OVER_CURRENT  0x0000100
-#define ERROR_CLASSD_PWR    0x0000200
-#define ERROR_FAILSAFE      0x4000000
+#define ERROR_CLASSD_PWR    0x0000020
 
 struct tas2770_register {
        int book;
@@ -709,12 +710,13 @@ struct tas2770_dai_cfg {
 struct tas2770_priv {
        struct device *dev;
        struct regmap *regmap;
+       struct snd_soc_codec *codec;
        struct mutex dev_lock;
        struct delayed_work irq_work;
        struct hrtimer mtimer;
        int mnClkin;
        int mnClkid;
-       bool mbPowerUp;
+       int mnPowerState;
        int mnCurrentBook;
        int mnCurrentPage;
        int mnLoad;
@@ -726,7 +728,6 @@ struct tas2770_priv {
        int mnSamplingRate;
        int mnFrameSize;
        int mnPLL;
-       int mnPPG;
        int mnLeftSlot;
        int mnRightSlot;
        int mnCh_size;