#define TLV320AIC3204_PAGE_0 0x00 #define TLV320AIC3204_PAGE_1 0x01 #define TLV320AIC3204_PAGE_2 0x02 #define TLV320AIC3204_PAGE_3 0x03 #define TLV320AIC3204_PAGE_4 0x04 #define TLV320AIC3204_PAGE_5 0x05 #define TLV320AIC3204_PAGE_6 0x06 #define TLV320AIC3204_PAGE_7 0x07 #define TLV320AIC3204_PAGE_8 0x08 #define TLV320AIC3204_PAGE_9 0x09 #define TLV320AIC3204_PAGE_A 0x0A #define TLV320AIC3204_PAGE_2C 0x2C #define TLV320AIC3204_PAGE_2D 0x2D #define TLV320AIC3204_PAGE_2E 0x2E typedef struct { uint8_t page; uint8_t reg; uint8_t data[5]; uint8_t len; } tlv_reg_t; static const tlv_reg_t tlv_init_regs[] = { {TLV320AIC3204_PAGE_1, 0x02, {0x09}, 1}, {TLV320AIC3204_PAGE_1, 0x01, {0x08}, 1}, {TLV320AIC3204_PAGE_1, 0x02, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x0A, {0x00}, 1}, {TLV320AIC3204_PAGE_1, 0x47, {0x32}, 1}, {TLV320AIC3204_PAGE_1, 0x7B, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x00, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x03, {0x00, 0x00}, 2}, {TLV320AIC3204_PAGE_1, 0x00, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x3D, {0x00}, 1}, {TLV320AIC3204_PAGE_1, 0x00, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x34, {0x00}, 1}, {TLV320AIC3204_PAGE_1, 0x36, {0x00}, 1}, {TLV320AIC3204_PAGE_1, 0x37, {0x10}, 1}, {TLV320AIC3204_PAGE_1, 0x39, {0x04}, 1}, {TLV320AIC3204_PAGE_1, 0x00, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x3A, {0xE4}, 1}, {TLV320AIC3204_PAGE_0, 0x52, {0x80}, 1}, {TLV320AIC3204_PAGE_0, 0x54, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x3C, {0x19}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x3D, {0x05}, 1}, {TLV320AIC3204_PAGE_1, 0x3C, {0x1E}, 1}, {TLV320AIC3204_PAGE_9, 0x20, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x24, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x28, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x2C, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x30, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x34, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x38, {0xF5, 0x93, 0xA1}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x3C, {0xE9, 0x72, 0x81}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x40, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x44, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x48, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x4C, {0xF5, 0x93, 0xA1}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x50, {0xE9, 0x72, 0x81}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x54, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x58, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x5C, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x60, {0xF5, 0x93, 0xA1}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x64, {0xE9, 0x72, 0x81}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x68, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x6C, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x70, {0x2A, 0xD9, 0x8F}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x74, {0xF5, 0x93, 0xA1}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x78, {0xE9, 0x72, 0x81}, 3}, {TLV320AIC3204_PAGE_9, 0x00, {0x09}, 1}, {TLV320AIC3204_PAGE_9, 0x7C, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_A, 0x08, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_A, 0x00, {0x0A}, 1}, {TLV320AIC3204_PAGE_A, 0x0C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_A, 0x00, {0x0A}, 1}, {TLV320AIC3204_PAGE_A, 0x10, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_A, 0x00, {0x0A}, 1}, {TLV320AIC3204_PAGE_A, 0x14, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_A, 0x00, {0x08}, 1}, {TLV320AIC3204_PAGE_A, 0x00, {0x08, 0x04}, 2}, {TLV320AIC3204_PAGE_2E, 0x28, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_2E, 0x00, {0x2E}, 1}, {TLV320AIC3204_PAGE_2E, 0x2C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2E, 0x00, {0x2E}, 1}, {TLV320AIC3204_PAGE_2E, 0x30, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2E, 0x00, {0x2C, 0x04}, 2}, {TLV320AIC3204_PAGE_2D, 0x28, {0x54, 0xE3, 0x25}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x2C, {0x54, 0xE3, 0x25}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x30, {0x54, 0xE3, 0x25}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x34, {0xB2, 0x97, 0x17}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x38, {0xC7, 0x45, 0x3D}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x3C, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x40, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x44, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x48, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x4C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x50, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x54, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x58, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x5C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x60, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x64, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x68, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x6C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x70, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x74, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x78, {0x7F, 0xFF, 0xFF}, 3}, {TLV320AIC3204_PAGE_2D, 0x00, {0x2D}, 1}, {TLV320AIC3204_PAGE_2D, 0x7C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2E, 0x08, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2E, 0x00, {0x2E}, 1}, {TLV320AIC3204_PAGE_2E, 0x0C, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2E, 0x00, {0x2E}, 1}, {TLV320AIC3204_PAGE_2E, 0x10, {0x00, 0x00, 0x00}, 3}, {TLV320AIC3204_PAGE_2E, 0x00, {0x2C, 0x04}, 2}, {TLV320AIC3204_PAGE_0, 0x04, {0x03, 0xB4, 0x04, 0x03, 0xC0}, 5}, {TLV320AIC3204_PAGE_0, 0x0B, {0x90, 0x82}, 2}, {TLV320AIC3204_PAGE_0, 0x0D, {0x01, 0x00}, 2}, {TLV320AIC3204_PAGE_0, 0x12, {0x90, 0x84}, 2}, {TLV320AIC3204_PAGE_0, 0x14, {0x80}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x1B, {0x0C}, 1}, {TLV320AIC3204_PAGE_0, 0x1D, {0x01, 0x88}, 2}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x51, {0x40}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x40, {0x08}, 1}, {TLV320AIC3204_PAGE_0, 0x42, {0xD1}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x3F, {0x54}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x34, {0x0C}, 1}, {TLV320AIC3204_PAGE_1, 0x0E, {0x10, 0x08}, 2}, {TLV320AIC3204_PAGE_1, 0x00, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x09, {0x0C}, 1}, {TLV320AIC3204_PAGE_1, 0x00, {0x01}, 1}, {TLV320AIC3204_PAGE_1, 0x12, {0x3D, 0x3D}, 2}, {TLV320AIC3204_PAGE_0, 0x34, {0x0D}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x40, {0x08}, 1}, {TLV320AIC3204_PAGE_0, 0x42, {0xD1}, 1}, {TLV320AIC3204_PAGE_0, 0x00, {0x00}, 1}, {TLV320AIC3204_PAGE_0, 0x1D, {0x11}, 1}, };