| /* |
| * ak4954_amb.h -- audio driver for AK4951 |
| * |
| * Copyright 2014 Ambarella Ltd. |
| * |
| * Author: Diao Chengdong <cddiao@ambarella.com> |
| * |
| * History: |
| * 2014/03/27 - created |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| */ |
| |
| |
| #ifndef _AK4951_AMB_H |
| #define _AK4951_AMB_H |
| |
| #define AK4954_CLOCK_PLAYBACK 1 |
| #define AK4954_CLOCK_CAPTURE 2 |
| #define AK4954_CLOCK_OTHER 4 |
| |
| #define AK4951_00_POWER_MANAGEMENT1 0x00 |
| #define AK4951_01_POWER_MANAGEMENT2 0x01 |
| #define AK4951_02_SIGNAL_SELECT1 0x02 |
| #define AK4951_03_SIGNAL_SELECT2 0x03 |
| #define AK4951_04_SIGNAL_SELECT3 0x04 |
| #define AK4951_05_MODE_CONTROL1 0x05 |
| #define AK4951_06_MODE_CONTROL2 0x06 |
| #define AK4951_07_MODE_CONTROL3 0x07 |
| #define AK4951_08_DIGITL_MIC 0x08 |
| #define AK4951_09_TIMER_SELECT 0x09 |
| #define AK4951_0A_ALC_TIMER_SELECT 0x0A |
| #define AK4951_0B_ALC_MODE_CONTROL1 0x0B |
| #define AK4951_0C_ALC_MODE_CONTROL2 0x0C |
| #define AK4951_0D_LCH_INPUT_VOLUME_CONTROL 0x0D |
| #define AK4951_0E_RCH_INPUT_VOLUME_CONTROL 0x0E |
| #define AK4951_0F_ALC_VOLUME 0x0F |
| #define AK4951_10_LCH_MIC_GAIN_SETTING 0x10 |
| #define AK4951_11_RCH_MIC_GAIN_SETTING 0x11 |
| #define AK4951_12_BEEP_CONTROL 0x12 |
| #define AK4951_13_LCH_DIGITAL_VOLUME_CONTROL 0x13 |
| #define AK4951_14_RCH_DIGITAL_VOLUME_CONTROL 0x14 |
| #define AK4951_15_EQ_COMMON_GAIN_SELECT 0x15 |
| #define AK4951_16_EQ2_COMMON_GAIN_SELECT 0x16 |
| #define AK4951_17_EQ3_COMMON_GAIN_SELECT 0x17 |
| #define AK4951_18_EQ4_COMMON_GAIN_SELECT 0x18 |
| #define AK4951_19_EQ5_COMMON_GAIN_SELECT 0x19 |
| #define AK4951_1A_AUTO_HPF_CONTROL 0x1A |
| #define AK4951_1B_DIGITAL_FILTER_SELECT1 0x1B |
| #define AK4951_1C_DIGITAL_FILTER_SELECT2 0x1C |
| #define AK4951_1D_DIGITAL_FILTER_MODE 0x1D |
| #define AK4951_1E_HPF2_COEFFICIENT0 0x1E |
| #define AK4951_1F_HPF2_COEFFICIENT1 0x1F |
| #define AK4951_20_HPF2_COEFFICIENT2 0x20 |
| #define AK4951_21_HPF2_COEFFICIENT3 0x21 |
| #define AK4951_22_LPF_COEFFICIENT0 0x22 |
| #define AK4951_23_LPF_COEFFICIENT1 0x23 |
| #define AK4951_24_LPF_COEFFICIENT2 0x24 |
| #define AK4951_25_LPF_COEFFICIENT3 0x25 |
| #define AK4951_26_FIL3_COEFFICIENT0 0x26 |
| #define AK4951_27_FIL3_COEFFICIENT1 0x27 |
| #define AK4951_28_FIL3_COEFFICIENT2 0x28 |
| #define AK4951_29_FIL3_COEFFICIENT3 0x29 |
| #define AK4951_2A_EQ_COEFFICIENT0 0x2A |
| #define AK4951_2B_EQ_COEFFICIENT1 0x2B |
| #define AK4951_2C_EQ_COEFFICIENT2 0x2C |
| #define AK4951_2D_EQ_COEFFICIENT3 0x2D |
| #define AK4951_2E_EQ_COEFFICIENT4 0x2E |
| #define AK4951_2F_EQ_COEFFICIENT5 0x2F |
| |
| #define AK4951_30_DIGITAL_FILTER_SELECT3 0x30 |
| #define AK4951_31_DEVICE_INFO 0x31 |
| #define AK4951_32_E1_COEFFICIENT0 0x32 |
| #define AK4951_33_E1_COEFFICIENT1 0x33 |
| #define AK4951_34_E1_COEFFICIENT2 0x34 |
| #define AK4951_35_E1_COEFFICIENT3 0x35 |
| #define AK4951_36_E1_COEFFICIENT4 0x36 |
| #define AK4951_37_E1_COEFFICIENT5 0x37 |
| #define AK4951_38_E2_COEFFICIENT0 0x38 |
| #define AK4951_39_E2_COEFFICIENT1 0x39 |
| #define AK4951_3A_E2_COEFFICIENT2 0x3A |
| #define AK4951_3B_E2_COEFFICIENT3 0x3B |
| #define AK4951_3C_E2_COEFFICIENT4 0x3C |
| #define AK4951_3D_E2_COEFFICIENT5 0x3D |
| #define AK4951_3E_E3_COEFFICIENT0 0x3E |
| #define AK4951_3F_E3_COEFFICIENT1 0x3F |
| #define AK4951_40_E3_COEFFICIENT2 0x40 |
| #define AK4951_41_E3_COEFFICIENT3 0x41 |
| #define AK4951_42_E3_COEFFICIENT4 0x42 |
| #define AK4951_43_E3_COEFFICIENT5 0x43 |
| #define AK4951_44_E4_COEFFICIENT0 0x44 |
| #define AK4951_45_E4_COEFFICIENT1 0x45 |
| #define AK4951_46_E4_COEFFICIENT2 0x46 |
| #define AK4951_47_E4_COEFFICIENT3 0x47 |
| #define AK4951_48_E4_COEFFICIENT4 0x48 |
| #define AK4951_49_E4_COEFFICIENT5 0x49 |
| #define AK4951_4A_E5_COEFFICIENT0 0x4A |
| #define AK4951_4B_E5_COEFFICIENT1 0x4B |
| #define AK4951_4C_E5_COEFFICIENT2 0x4C |
| #define AK4951_4D_E5_COEFFICIENT3 0x4D |
| #define AK4951_4E_E5_COEFFICIENT4 0x4E |
| #define AK4951_4F_E5_COEFFICIENT5 0x4F |
| |
| #define AK4951_MAX_REGISTERS (AK4951_4F_E5_COEFFICIENT5 + 1) |
| |
| /* Bitfield Definitions */ |
| |
| /* AK4954_00_POWER_MANAGEMENT1 (0x00) Fields */ |
| #define AK4951_PMVCM 0x40 |
| #define AK4951_PMPFIL 0x80 |
| |
| /* AK4954_01_POWER_MANAGEMENT2 (0x01) Fields */ |
| #define AK4951_PMPLL 0x04 |
| #define AK4951_M_S 0x08 |
| |
| /* AK4951_05_MODE_CONTROL1 (0x05) Fields */ |
| #define AK4951_DIF 0x03 |
| #define AK4951_DIF_24MSB_24LSB_MODE (0 << 0) |
| #define AK4951_DIF_24MSB_16LSB_MODE (1 << 0) |
| #define AK4951_DIF_24MSB_MODE (2 << 0) |
| #define AK4951_DIF_I2S_MODE (3 << 0) |
| #define AK4951_CKOFF 0x04 |
| #define AK4951_BCKO 0x08 |
| |
| #define AK4951_PLL 0xF0 |
| #define AK4951_EXT_SLAVE 0 |
| #define AK4951_PLL_BICK32 (2 << 4) |
| #define AK4951_PLL_BICK64 (3 << 4) |
| #define AK4951_PLL_11_2896MHZ (4 << 4) |
| #define AK4951_PLL_12_288MHZ (5 << 4) |
| #define AK4951_PLL_12MHZ (6 << 4) |
| #define AK4951_PLL_24MHZ (7 << 4) |
| #define AK4951_PLL_13_5MHZ (12 << 4) |
| #define AK4951_PLL_27MHZ (13 << 4) |
| |
| #define AK4951_MCLK_IN 0 |
| #define AK4951_BCLK_IN 1 |
| #define AK4951_MCLK_IN_BCLK_OUT 2 |
| |
| /* AK4954_06_MODE_CONTROL2 (0x06) Fields */ |
| #define AK4951_FS 0x0F |
| #define AK4951_MCKI_FS_8KHZ (0 << 0) |
| #define AK4951_MCKI_FS_12KHZ (1 << 0) |
| #define AK4951_MCKI_FS_16KHZ (2 << 0) |
| #define AK4951_MCKI_FS_11_025KHZ (5 << 0) |
| #define AK4951_MCKI_FS_22_05KHZ (7 << 0) |
| #define AK4951_MCKI_FS_24KHZ (9 << 0) |
| #define AK4951_MCKI_FS_32KHZ (10 << 0) |
| #define AK4951_MCKI_FS_44_1KHZ (15 << 0) |
| #define AK4951_MCKI_FS_48KHZ (11 << 0) |
| |
| #define AK4951_BICK_FS_8KHZ (0 << 0) |
| #define AK4951_BICK_FS_12KHZ (1 << 0) |
| #define AK4951_BICK_FS_16KHZ (5 << 0) |
| #define AK4951_BICK_FS_11_025KHZ (2 << 0) |
| #define AK4951_BICK_FS_22_05KHZ (7 << 0) |
| #define AK4951_BICK_FS_24KHZ (6 << 0) |
| #define AK4951_BICK_FS_32KHZ (10 << 0) |
| #define AK4951_BICK_FS_44_1KHZ (8 << 0) |
| #define AK4951_BICK_FS_48KHZ (11 << 0) |
| |
| #define AK4951_FS_CM0 (1 << 6) |
| #define AK4951_FS_CM1 (1 << 7) |
| |
| #endif |