|
-
- #ifndef control_ak4558_h_
- #define control_ak4558_h_
-
- #include "AudioControl.h"
-
- #define AK4558_SERIAL_DEBUG 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ifndef PIN_PDN
- #define PIN_PDN 1
- #endif
-
-
-
-
- #ifndef AK4558_CAD1
- #define AK4558_CAD1 1
- #endif
-
-
-
- #ifndef AK4558_CAD0
- #define AK4558_CAD0 1
- #endif
-
-
-
- #define AK4558_I2C_ADDR (0x10 + (AK4558_CAD1<<1) + AK4558_CAD0)
-
-
-
-
-
-
-
- #define AK4558_PWR_MNGT 0x00
-
-
- #define AK4558_PMADR (1u<<4)
- #define AK4558_PMADL (1u<<3)
-
-
-
- #define AK4558_PMDAR (1u<<2)
- #define AK4558_PMDAL (1u<<1)
-
-
-
- #define AK4558_RSTN (1u)
-
-
-
-
-
-
- #define AK4558_PLL_CTRL 0X01
-
-
- #define AK4558_PLL3 (1u<<4)
- #define AK4558_PLL2 (1u<<3)
- #define AK4558_PLL1 (1u<<2)
- #define AK4558_PLL0 (1u<<1)
-
-
- #define AK4558_PMPLL (1u)
-
-
-
-
-
-
- #define AK4558_DAC_TDM 0X02
-
-
- #define AK4558_SDS1 (1u<<1)
- #define AK4558_SDS0 (1u)
-
-
-
-
-
- #define AK4558_CTRL_1 0X03
-
-
- #define AK4558_TDM1 (1u<<7)
- #define AK4558_TDM0 (1u<<6)
-
-
- #define AK4558_DIF2 (1u<<5)
- #define AK4558_DIF1 (1u<<4)
- #define AK4558_DIF0 (1u<<3)
-
-
- #define AK4558_ATS1 (1u<<2)
- #define AK4558_ATS0 (1u<<1)
-
-
- #define AK4558_SMUTE (1u)
-
-
-
-
-
-
- #define AK4558_CTRL_2 0X04
-
-
- #define AK4558_MCKS1 (1u<<4)
- #define AK4558_MCKS0 (1u<<3)
-
-
-
-
-
-
- #define AK4558_DFS1 (1u<<2)
- #define AK4558_DFS0 (1u<<1)
-
-
- #define AK4558_ACKS (1u)
-
-
-
-
-
-
-
-
-
- #define AK4558_MODE_CTRL 0X05
-
-
- #define AK4558_FS3 (1u<<6)
- #define AK4558_FS2 (1u<<5)
- #define AK4558_FS1 (1u<<4)
- #define AK4558_FS0 (1u<<3)
-
-
- #define AK4558_BCKO1 (1u<<2)
- #define AK4558_BCKO0 (1u<<1)
-
-
- #define AK4558_LOPS (1u<<0)
-
-
-
-
-
-
- #define AK4558_FLTR_SET 0x06
-
-
- #define AK4558_FIRDA2 (1u<<7)
- #define AK4558_FIRDA1 (1u<<6)
- #define AK4558_FIRDA0 (1u<<5)
-
-
- #define AK4558_SLDA (1u<<4)
-
-
-
- #define AK4558_SDDA (1u<<3)
-
-
-
- #define AK4558_SSLOW (1u<<2)
-
-
-
- #define AK4558_DEM1 (1u<<1)
- #define AK4558_DEM0 (1u)
-
-
-
-
-
- #define AK4558_HPF_EN_FLTR_SET 0x07
-
-
- #define AK4558_SLAD (1u<<3)
-
-
-
- #define AK4558_SDAD (1u<<2)
-
-
-
- #define AK4558_HPFER (1u<<1)
- #define AK4558_HPFEL (1u)
-
-
-
-
-
-
- #define AK4558_LOUT_VOL 0X08
-
-
-
-
-
-
-
-
- #define AK4558_ROUT_VOL 0X09
-
-
-
-
-
-
- class AudioControlAK4558 : public AudioControl
- {
- public:
- bool enable(void);
- bool enableIn(void);
- bool enableOut(void);
- bool disable(void) { return (disableIn()&&disableOut()); }
- bool disableIn(void);
- bool disableOut(void);
- bool volume(float n);
- bool volumeLeft(float n);
- bool volumeRight(float n);
- bool inputLevel(float n) { return false; }
- bool inputSelect(int n) { return false; }
- private:
- uint8_t registers[10];
- void initConfig(void);
- void readConfig(void);
- bool write(unsigned int reg, unsigned int val);
- uint8_t convertVolume(float vol);
- };
-
- #endif
|