| /* |
| * ak4954_amb.h -- audio driver for AK4954 |
| * |
| * 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 _AK4954_AMB_H |
| #define _AK4954_AMB_H |
| |
| #define AK4954_CLOCK_PLAYBACK 1 |
| #define AK4954_CLOCK_CAPTURE 2 |
| #define AK4954_CLOCK_OTHER 4 |
| |
| #define AK4954_00_POWER_MANAGEMENT1 0x00 |
| #define AK4954_01_POWER_MANAGEMENT2 0x01 |
| #define AK4954_02_SIGNAL_SELECT1 0x02 |
| #define AK4954_03_SIGNAL_SELECT2 0x03 |
| #define AK4954_04_SIGNAL_SELECT3 0x04 |
| #define AK4954_05_MODE_CONTROL1 0x05 |
| #define AK4954_06_MODE_CONTROL2 0x06 |
| #define AK4954_07_MODE_CONTROL3 0x07 |
| #define AK4954_08_DIGITL_MIC 0x08 |
| #define AK4954_09_TIMER_SELECT 0x09 |
| #define AK4954_0A_ALC_TIMER_SELECT 0x0A |
| #define AK4954_0B_ALC_MODE_CONTROL1 0x0B |
| #define AK4954_0C_ALC_MODE_CONTROL2 0x0C |
| #define AK4954_0D_LCH_INPUT_VOLUME_CONTROL 0x0D |
| #define AK4954_0E_RCH_INPUT_VOLUME_CONTROL 0x0E |
| #define AK4954_0F_RESERVED 0x0F |
| #define AK4954_10_RESERVED 0x10 |
| #define AK4954_11_RESERVED 0x11 |
| #define AK4954_12_HP_OUTPUT_CONTROL 0x12 |
| #define AK4954_13_LCH_DIGITAL_VOLUME_CONTROL 0x13 |
| #define AK4954_14_RCH_DIGITAL_VOLUME_CONTROL 0x14 |
| #define AK4954_15_BEEP_FREQUENCY 0x15 |
| #define AK4954_16_BEEP_ON_TIME 0x16 |
| #define AK4954_17_BEEP_OFF_TIME 0x17 |
| #define AK4954_18_BEEP_REPEAT_COUNT 0x18 |
| #define AK4954_19_BEEP_VOLUME_CONTROL 0x19 |
| #define AK4954_1A_RESERVED 0x1A |
| #define AK4954_1B_DIGITAL_FILTER_SELECT1 0x1B |
| #define AK4954_1C_DIGITAL_FILTER_SELECT2 0x1C |
| #define AK4954_1D_DIGITAL_FILTER_MODE 0x1D |
| #define AK4954_1E_HPF2_COEFFICIENT0 0x1E |
| #define AK4954_1F_HPF2_COEFFICIENT1 0x1F |
| #define AK4954_20_HPF2_COEFFICIENT2 0x20 |
| #define AK4954_21_HPF2_COEFFICIENT3 0x21 |
| #define AK4954_22_LPF_COEFFICIENT0 0x22 |
| #define AK4954_23_LPF_COEFFICIENT1 0x23 |
| #define AK4954_24_LPF_COEFFICIENT2 0x24 |
| #define AK4954_25_LPF_COEFFICIENT3 0x25 |
| #define AK4954_26_FIL3_COEFFICIENT0 0x26 |
| #define AK4954_27_FIL3_COEFFICIENT1 0x27 |
| #define AK4954_28_FIL3_COEFFICIENT2 0x28 |
| #define AK4954_29_FIL3_COEFFICIENT3 0x29 |
| #define AK4954_2A_EQ_COEFFICIENT0 0x2A |
| #define AK4954_2B_EQ_COEFFICIENT1 0x2B |
| #define AK4954_2C_EQ_COEFFICIENT2 0x2C |
| #define AK4954_2D_EQ_COEFFICIENT3 0x2D |
| #define AK4954_2E_EQ_COEFFICIENT4 0x2E |
| #define AK4954_2F_EQ_COEFFICIENT5 0x2F |
| |
| #define AK4954_30_DIGITAL_FILTER_SELECT3 0x30 |
| #define AK4954_31_RESERVED 0x31 |
| #define AK4954_32_E1_COEFFICIENT0 0x32 |
| #define AK4954_33_E1_COEFFICIENT1 0x33 |
| #define AK4954_34_E1_COEFFICIENT2 0x34 |
| #define AK4954_35_E1_COEFFICIENT3 0x35 |
| #define AK4954_36_E1_COEFFICIENT4 0x36 |
| #define AK4954_37_E1_COEFFICIENT5 0x37 |
| #define AK4954_38_E2_COEFFICIENT0 0x38 |
| #define AK4954_39_E2_COEFFICIENT1 0x39 |
| #define AK4954_3A_E2_COEFFICIENT2 0x3A |
| #define AK4954_3B_E2_COEFFICIENT3 0x3B |
| #define AK4954_3C_E2_COEFFICIENT4 0x3C |
| #define AK4954_3D_E2_COEFFICIENT5 0x3D |
| #define AK4954_3E_E3_COEFFICIENT0 0x3E |
| #define AK4954_3F_E3_COEFFICIENT1 0x3F |
| #define AK4954_40_E3_COEFFICIENT2 0x40 |
| #define AK4954_41_E3_COEFFICIENT3 0x41 |
| #define AK4954_42_E3_COEFFICIENT4 0x42 |
| #define AK4954_43_E3_COEFFICIENT5 0x43 |
| #define AK4954_44_E4_COEFFICIENT0 0x44 |
| #define AK4954_45_E4_COEFFICIENT1 0x45 |
| #define AK4954_46_E4_COEFFICIENT2 0x46 |
| #define AK4954_47_E4_COEFFICIENT3 0x47 |
| #define AK4954_48_E4_COEFFICIENT4 0x48 |
| #define AK4954_49_E4_COEFFICIENT5 0x49 |
| #define AK4954_4A_E5_COEFFICIENT0 0x4A |
| #define AK4954_4B_E5_COEFFICIENT1 0x4B |
| #define AK4954_4C_E5_COEFFICIENT2 0x4C |
| #define AK4954_4D_E5_COEFFICIENT3 0x4D |
| #define AK4954_4E_E5_COEFFICIENT4 0x4E |
| #define AK4954_4F_E5_COEFFICIENT5 0x4F |
| |
| #define AK4954_50_DRC_MODE_CONTROL 0x50 |
| #define AK4954_51_NS_CONTROL 0x51 |
| #define AK4954_52_NS_GAIN_ATT_CONTROL 0x52 |
| #define AK4954_53_NS_ON_LEVEL 0x53 |
| #define AK4954_54_NS_OFF_LEVEL 0x54 |
| #define AK4954_55_NS_REFERENCE_SELECT 0x55 |
| #define AK4954_56_NS_LPF_COEFFICIENT0 0x56 |
| #define AK4954_57_NS_LPF_COEFFICIENT1 0x57 |
| #define AK4954_58_NS_LPF_COEFFICIENT2 0x58 |
| #define AK4954_59_NS_LPF_COEFFICIENT3 0x59 |
| #define AK4954_5A_NS_HPF_COEFFICIENT0 0x5A |
| #define AK4954_5B_NS_HPF_COEFFICIENT1 0x5B |
| #define AK4954_5C_NS_HPF_COEFFICIENT2 0x5C |
| #define AK4954_5D_NS_HPF_COEFFICIENT3 0x5D |
| #define AK4954_5E_RESERVED 0x5E |
| #define AK4954_5F_RESERVED 0x5F |
| #define AK4954_60_DVLC_FILTER_SELECT 0x60 |
| #define AK4954_61_DVLC_MODE_CONTROL 0x61 |
| #define AK4954_62_DVLCL_CURVE_X1 0x62 |
| #define AK4954_63_DVLCL_CURVE_Y1 0x63 |
| #define AK4954_64_DVLCL_CURVE_X2 0x64 |
| #define AK4954_65_DVLCL_CURVE_Y2 0x65 |
| #define AK4954_66_DVLCL_CURVE_X3 0x66 |
| #define AK4954_67_DVLCL_CURVE_Y3 0x67 |
| #define AK4954_68_DVLCL_SLOPE1 0x68 |
| #define AK4954_69_DVLCL_SLOPE2 0x69 |
| #define AK4954_6A_DVLCL_SLOPE3 0x6A |
| #define AK4954_6B_DVLCL_SLOPE4 0x6B |
| #define AK4954_6C_DVLCM_CURVE_X1 0x6C |
| #define AK4954_6D_DVLCM_CURVE_Y1 0x6D |
| #define AK4954_6E_DVLCM_CURVE_X2 0x6E |
| #define AK4954_6F_DVLCM_CURVE_Y2 0x6F |
| #define AK4954_70_DVLCM_CURVE_X3 0x70 |
| #define AK4954_71_DVLCM_CURVE_Y3 0x71 |
| #define AK4954_72_DVLCM_SLOPE1 0x72 |
| #define AK4954_73_DVLCM_SLOPE2 0x73 |
| #define AK4954_74_DVLCM_SLOPE3 0x74 |
| #define AK4954_75_DVLCM_SLOPE4 0x75 |
| #define AK4954_76_DVLCH_CURVE_X1 0x76 |
| #define AK4954_77_DVLCH_CURVE_Y1 0x77 |
| #define AK4954_78_DVLCH_CURVE_X2 0x78 |
| #define AK4954_79_DVLCH_CURVE_Y2 0x79 |
| #define AK4954_7A_DVLCH_CURVE_X3 0x7A |
| #define AK4954_7B_DVLCH_CURVE_Y3 0x7B |
| #define AK4954_7C_DVLCH_SLOPE1 0x7C |
| #define AK4954_7D_DVLCH_SLOPE2 0x7D |
| #define AK4954_7E_DVLCH_SLOPE3 0x7E |
| #define AK4954_7F_DVLCH_SLOPE4 0x7F |
| |
| #define AK4954_80_DVLCL_LPF_COEFFICIENT0 0x80 |
| #define AK4954_81_DVLCL_LPF_COEFFICIENT1 0x81 |
| #define AK4954_82_DVLCL_LPF_COEFFICIENT2 0x82 |
| #define AK4954_83_DVLCL_LPF_COEFFICIENT3 0x83 |
| #define AK4954_84_DVLCM_HPF_COEFFICIENT0 0x84 |
| #define AK4954_85_DVLCM_HPF_COEFFICIENT1 0x85 |
| #define AK4954_86_DVLCM_HPF_COEFFICIENT2 0x86 |
| #define AK4954_87_DVLCM_HPF_COEFFICIENT3 0x87 |
| #define AK4954_88_DVLCM_LPF_COEFFICIENT0 0x88 |
| #define AK4954_89_DVLCM_LPF_COEFFICIENT1 0x89 |
| #define AK4954_8A_DVLCM_LPF_COEFFICIENT2 0x8A |
| #define AK4954_8B_DVLCM_LPF_COEFFICIENT3 0x8B |
| #define AK4954_8C_DVLCH_HPF_COEFFICIENT0 0x8C |
| #define AK4954_8D_DVLCH_HPF_COEFFICIENT1 0x8D |
| #define AK4954_8E_DVLCH_HPF_COEFFICIENT2 0x8E |
| #define AK4954_8F_DVLCH_HPF_COEFFICIENT3 0x8F |
| |
| #define AK4954_MAX_REGISTERS (AK4954_8F_DVLCH_HPF_COEFFICIENT3 + 1) |
| |
| /* Bitfield Definitions */ |
| |
| /* AK4954_00_POWER_MANAGEMENT1 (0x00) Fields */ |
| #define AK4954_PMVCM 0x40 |
| |
| /* AK4954_01_POWER_MANAGEMENT2 (0x01) Fields */ |
| #define AK4954_PMPLL 0x04 |
| #define AK4954_M_S 0x08 |
| |
| /* AK4954_05_MODE_CONTROL1 (0x05) Fields */ |
| #define AK4954_DIF 0x07 |
| #define AK4954_DIF_24MSB_24LSB_MODE (0 << 0) |
| #define AK4954_DIF_24MSB_16LSB_MODE (1 << 0) |
| #define AK4954_DIF_24MSB_MODE (2 << 0) |
| #define AK4954_DIF_24_16_I2S_MODE (3 << 0) |
| #define AK4954_DIF_32MSB_MODE (4 << 0) |
| #define AK4954_DIF_32_I2S_MODE (5 << 0) |
| #define AK4954_BCKO 0x08 |
| |
| #define AK4954_PLL 0x70 |
| #define AK4954_EXT_SLAVE 0 |
| #define AK4954_PLL_BICK32 (0 << 4) |
| #define AK4954_PLL_BICK64 (1 << 4) |
| #define AK4954_PLL_11_2896MHZ (2 << 4) |
| #define AK4954_PLL_12MHZ (4 << 4) |
| #define AK4954_PLL_24MHZ (5 << 4) |
| #define AK4954_PLL_13_5MHZ (6 << 4) |
| #define AK4954_PLL_27MHZ (7 << 4) |
| |
| |
| |
| #define AK4954_MCLK_IN 0 |
| #define AK4954_BCLK_IN 1 |
| #define AK4954_MCLK_IN_BCLK_OUT 2 |
| |
| |
| |
| /* AK4954_06_MODE_CONTROL2 (0x06) Fields */ |
| #define AK4954_FS 0x0F |
| #define AK4954_FS_8KHZ (0 << 0) |
| #define AK4954_FS_11_025KHZ (1 << 0) |
| #define AK4954_FS_12KHZ (2 << 0) |
| #define AK4954_FS_16KHZ (4 << 0) |
| #define AK4954_FS_22_05KHZ (5 << 0) |
| #define AK4954_FS_24KHZ (6 << 0) |
| #define AK4954_FS_32KHZ (8 << 0) |
| #define AK4954_FS_44_1KHZ (9 << 0) |
| #define AK4954_FS_48KHZ (10 << 0) |
| #define AK4954_FS_64KHZ (12 << 0) |
| #define AK4954_FS_88_2KHZ (13 << 0) |
| #define AK4954_FS_96KHZ (14 << 0) |
| #define AK4954_FS_CM0 (1 << 6) |
| #define AK4954_FS_CM1 (1 << 7) |
| |
| #endif |