static void codecConfig() { codecWriteReg(0x0f, 0b000000000); // Reset! codedSetInVolume(0); codedSetOutVolume(-10); codecWriteReg(0x04, 0b000010010); // Analog path - select DAC, no bypass codecWriteReg(0x05, 0b000000000); // Digital path - disable soft mute codecWriteReg(0x06, 0b000000000); // Power down control - enable everything codecWriteReg(0x07, 0b000000010); // Interface format - 16-bit I2S codecWriteReg(0x09, 0b000000001); // Active control - engage! }
void codedSetOutVolume(int voldB) { // -73 <= voldB <= 6 const unsigned volume = 121 + voldB; codecWriteReg(0x02, 0x100 | (volume & 0x7f)); // Left headphone }
void codedSetInVolume(int vol) { // -23 <= vol <= 8 const unsigned involume = 0x17 + vol; codecWriteReg(0x00, 0x100 | (involume & 0x1f)); // Left line in, unmute }