19a76f1ffSMark Brown /* 29a76f1ffSMark Brown * wm8962.h -- WM8962 ASoC driver 39a76f1ffSMark Brown * 49a76f1ffSMark Brown * Copyright 2010 Wolfson Microelectronics, plc 59a76f1ffSMark Brown * 69a76f1ffSMark Brown * Author: Mark Brown <broonie@opensource.wolfsonmicro.com> 79a76f1ffSMark Brown * 89a76f1ffSMark Brown * This program is free software; you can redistribute it and/or modify 99a76f1ffSMark Brown * it under the terms of the GNU General Public License version 2 as 109a76f1ffSMark Brown * published by the Free Software Foundation. 119a76f1ffSMark Brown */ 129a76f1ffSMark Brown 139a76f1ffSMark Brown #ifndef _WM8962_H 149a76f1ffSMark Brown #define _WM8962_H 159a76f1ffSMark Brown 169a76f1ffSMark Brown #include <asm/types.h> 177711308aSMark Brown #include <sound/soc.h> 189a76f1ffSMark Brown 199a76f1ffSMark Brown #define WM8962_SYSCLK_MCLK 1 209a76f1ffSMark Brown #define WM8962_SYSCLK_FLL 2 219a76f1ffSMark Brown #define WM8962_SYSCLK_PLL3 3 229a76f1ffSMark Brown 239a76f1ffSMark Brown #define WM8962_FLL 1 249a76f1ffSMark Brown 259a76f1ffSMark Brown #define WM8962_FLL_MCLK 1 269a76f1ffSMark Brown #define WM8962_FLL_BCLK 2 279a76f1ffSMark Brown #define WM8962_FLL_OSC 3 289a76f1ffSMark Brown #define WM8962_FLL_INT 4 299a76f1ffSMark Brown 309a76f1ffSMark Brown /* 319a76f1ffSMark Brown * Register values. 329a76f1ffSMark Brown */ 339a76f1ffSMark Brown #define WM8962_LEFT_INPUT_VOLUME 0x00 349a76f1ffSMark Brown #define WM8962_RIGHT_INPUT_VOLUME 0x01 359a76f1ffSMark Brown #define WM8962_HPOUTL_VOLUME 0x02 369a76f1ffSMark Brown #define WM8962_HPOUTR_VOLUME 0x03 379a76f1ffSMark Brown #define WM8962_CLOCKING1 0x04 389a76f1ffSMark Brown #define WM8962_ADC_DAC_CONTROL_1 0x05 399a76f1ffSMark Brown #define WM8962_ADC_DAC_CONTROL_2 0x06 409a76f1ffSMark Brown #define WM8962_AUDIO_INTERFACE_0 0x07 419a76f1ffSMark Brown #define WM8962_CLOCKING2 0x08 429a76f1ffSMark Brown #define WM8962_AUDIO_INTERFACE_1 0x09 439a76f1ffSMark Brown #define WM8962_LEFT_DAC_VOLUME 0x0A 449a76f1ffSMark Brown #define WM8962_RIGHT_DAC_VOLUME 0x0B 459a76f1ffSMark Brown #define WM8962_AUDIO_INTERFACE_2 0x0E 469a76f1ffSMark Brown #define WM8962_SOFTWARE_RESET 0x0F 479a76f1ffSMark Brown #define WM8962_ALC1 0x11 489a76f1ffSMark Brown #define WM8962_ALC2 0x12 499a76f1ffSMark Brown #define WM8962_ALC3 0x13 509a76f1ffSMark Brown #define WM8962_NOISE_GATE 0x14 519a76f1ffSMark Brown #define WM8962_LEFT_ADC_VOLUME 0x15 529a76f1ffSMark Brown #define WM8962_RIGHT_ADC_VOLUME 0x16 539a76f1ffSMark Brown #define WM8962_ADDITIONAL_CONTROL_1 0x17 549a76f1ffSMark Brown #define WM8962_ADDITIONAL_CONTROL_2 0x18 559a76f1ffSMark Brown #define WM8962_PWR_MGMT_1 0x19 569a76f1ffSMark Brown #define WM8962_PWR_MGMT_2 0x1A 579a76f1ffSMark Brown #define WM8962_ADDITIONAL_CONTROL_3 0x1B 589a76f1ffSMark Brown #define WM8962_ANTI_POP 0x1C 599a76f1ffSMark Brown #define WM8962_CLOCKING_3 0x1E 609a76f1ffSMark Brown #define WM8962_INPUT_MIXER_CONTROL_1 0x1F 619a76f1ffSMark Brown #define WM8962_LEFT_INPUT_MIXER_VOLUME 0x20 629a76f1ffSMark Brown #define WM8962_RIGHT_INPUT_MIXER_VOLUME 0x21 639a76f1ffSMark Brown #define WM8962_INPUT_MIXER_CONTROL_2 0x22 649a76f1ffSMark Brown #define WM8962_INPUT_BIAS_CONTROL 0x23 659a76f1ffSMark Brown #define WM8962_LEFT_INPUT_PGA_CONTROL 0x25 669a76f1ffSMark Brown #define WM8962_RIGHT_INPUT_PGA_CONTROL 0x26 679a76f1ffSMark Brown #define WM8962_SPKOUTL_VOLUME 0x28 689a76f1ffSMark Brown #define WM8962_SPKOUTR_VOLUME 0x29 699a76f1ffSMark Brown #define WM8962_THERMAL_SHUTDOWN_STATUS 0x2F 709a76f1ffSMark Brown #define WM8962_ADDITIONAL_CONTROL_4 0x30 719a76f1ffSMark Brown #define WM8962_CLASS_D_CONTROL_1 0x31 729a76f1ffSMark Brown #define WM8962_CLASS_D_CONTROL_2 0x33 739a76f1ffSMark Brown #define WM8962_CLOCKING_4 0x38 749a76f1ffSMark Brown #define WM8962_DAC_DSP_MIXING_1 0x39 759a76f1ffSMark Brown #define WM8962_DAC_DSP_MIXING_2 0x3A 769a76f1ffSMark Brown #define WM8962_DC_SERVO_0 0x3C 779a76f1ffSMark Brown #define WM8962_DC_SERVO_1 0x3D 789a76f1ffSMark Brown #define WM8962_DC_SERVO_4 0x40 799a76f1ffSMark Brown #define WM8962_DC_SERVO_6 0x42 809a76f1ffSMark Brown #define WM8962_ANALOGUE_PGA_BIAS 0x44 819a76f1ffSMark Brown #define WM8962_ANALOGUE_HP_0 0x45 829a76f1ffSMark Brown #define WM8962_ANALOGUE_HP_2 0x47 839a76f1ffSMark Brown #define WM8962_CHARGE_PUMP_1 0x48 849a76f1ffSMark Brown #define WM8962_CHARGE_PUMP_B 0x52 859a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_CONTROL_1 0x57 869a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_CONTROL_2 0x5A 879a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_CONTROL_3 0x5D 889a76f1ffSMark Brown #define WM8962_CONTROL_INTERFACE 0x5E 899a76f1ffSMark Brown #define WM8962_MIXER_ENABLES 0x63 909a76f1ffSMark Brown #define WM8962_HEADPHONE_MIXER_1 0x64 919a76f1ffSMark Brown #define WM8962_HEADPHONE_MIXER_2 0x65 929a76f1ffSMark Brown #define WM8962_HEADPHONE_MIXER_3 0x66 939a76f1ffSMark Brown #define WM8962_HEADPHONE_MIXER_4 0x67 949a76f1ffSMark Brown #define WM8962_SPEAKER_MIXER_1 0x69 959a76f1ffSMark Brown #define WM8962_SPEAKER_MIXER_2 0x6A 969a76f1ffSMark Brown #define WM8962_SPEAKER_MIXER_3 0x6B 979a76f1ffSMark Brown #define WM8962_SPEAKER_MIXER_4 0x6C 989a76f1ffSMark Brown #define WM8962_SPEAKER_MIXER_5 0x6D 999a76f1ffSMark Brown #define WM8962_BEEP_GENERATOR_1 0x6E 1009a76f1ffSMark Brown #define WM8962_OSCILLATOR_TRIM_3 0x73 1019a76f1ffSMark Brown #define WM8962_OSCILLATOR_TRIM_4 0x74 1029a76f1ffSMark Brown #define WM8962_OSCILLATOR_TRIM_7 0x77 1039a76f1ffSMark Brown #define WM8962_ANALOGUE_CLOCKING1 0x7C 1049a76f1ffSMark Brown #define WM8962_ANALOGUE_CLOCKING2 0x7D 1059a76f1ffSMark Brown #define WM8962_ANALOGUE_CLOCKING3 0x7E 1069a76f1ffSMark Brown #define WM8962_PLL_SOFTWARE_RESET 0x7F 1079a76f1ffSMark Brown #define WM8962_PLL2 0x81 1089a76f1ffSMark Brown #define WM8962_PLL_4 0x83 1099a76f1ffSMark Brown #define WM8962_PLL_9 0x88 1109a76f1ffSMark Brown #define WM8962_PLL_10 0x89 1119a76f1ffSMark Brown #define WM8962_PLL_11 0x8A 1129a76f1ffSMark Brown #define WM8962_PLL_12 0x8B 1139a76f1ffSMark Brown #define WM8962_PLL_13 0x8C 1149a76f1ffSMark Brown #define WM8962_PLL_14 0x8D 1159a76f1ffSMark Brown #define WM8962_PLL_15 0x8E 1169a76f1ffSMark Brown #define WM8962_PLL_16 0x8F 1179a76f1ffSMark Brown #define WM8962_FLL_CONTROL_1 0x9B 1189a76f1ffSMark Brown #define WM8962_FLL_CONTROL_2 0x9C 1199a76f1ffSMark Brown #define WM8962_FLL_CONTROL_3 0x9D 1209a76f1ffSMark Brown #define WM8962_FLL_CONTROL_5 0x9F 1219a76f1ffSMark Brown #define WM8962_FLL_CONTROL_6 0xA0 1229a76f1ffSMark Brown #define WM8962_FLL_CONTROL_7 0xA1 1239a76f1ffSMark Brown #define WM8962_FLL_CONTROL_8 0xA2 1249a76f1ffSMark Brown #define WM8962_GENERAL_TEST_1 0xFC 1259a76f1ffSMark Brown #define WM8962_DF1 0x100 1269a76f1ffSMark Brown #define WM8962_DF2 0x101 1279a76f1ffSMark Brown #define WM8962_DF3 0x102 1289a76f1ffSMark Brown #define WM8962_DF4 0x103 1299a76f1ffSMark Brown #define WM8962_DF5 0x104 1309a76f1ffSMark Brown #define WM8962_DF6 0x105 1319a76f1ffSMark Brown #define WM8962_DF7 0x106 1329a76f1ffSMark Brown #define WM8962_LHPF1 0x108 1339a76f1ffSMark Brown #define WM8962_LHPF2 0x109 1349a76f1ffSMark Brown #define WM8962_THREED1 0x10C 1359a76f1ffSMark Brown #define WM8962_THREED2 0x10D 1369a76f1ffSMark Brown #define WM8962_THREED3 0x10E 1379a76f1ffSMark Brown #define WM8962_THREED4 0x10F 1389a76f1ffSMark Brown #define WM8962_DRC_1 0x114 1399a76f1ffSMark Brown #define WM8962_DRC_2 0x115 1409a76f1ffSMark Brown #define WM8962_DRC_3 0x116 1419a76f1ffSMark Brown #define WM8962_DRC_4 0x117 1429a76f1ffSMark Brown #define WM8962_DRC_5 0x118 1439a76f1ffSMark Brown #define WM8962_TLOOPBACK 0x11D 1449a76f1ffSMark Brown #define WM8962_EQ1 0x14F 1459a76f1ffSMark Brown #define WM8962_EQ2 0x150 1469a76f1ffSMark Brown #define WM8962_EQ3 0x151 1479a76f1ffSMark Brown #define WM8962_EQ4 0x152 1489a76f1ffSMark Brown #define WM8962_EQ5 0x153 1499a76f1ffSMark Brown #define WM8962_EQ6 0x154 1509a76f1ffSMark Brown #define WM8962_EQ7 0x155 1519a76f1ffSMark Brown #define WM8962_EQ8 0x156 1529a76f1ffSMark Brown #define WM8962_EQ9 0x157 1539a76f1ffSMark Brown #define WM8962_EQ10 0x158 1549a76f1ffSMark Brown #define WM8962_EQ11 0x159 1559a76f1ffSMark Brown #define WM8962_EQ12 0x15A 1569a76f1ffSMark Brown #define WM8962_EQ13 0x15B 1579a76f1ffSMark Brown #define WM8962_EQ14 0x15C 1589a76f1ffSMark Brown #define WM8962_EQ15 0x15D 1599a76f1ffSMark Brown #define WM8962_EQ16 0x15E 1609a76f1ffSMark Brown #define WM8962_EQ17 0x15F 1619a76f1ffSMark Brown #define WM8962_EQ18 0x160 1629a76f1ffSMark Brown #define WM8962_EQ19 0x161 1639a76f1ffSMark Brown #define WM8962_EQ20 0x162 1649a76f1ffSMark Brown #define WM8962_EQ21 0x163 1659a76f1ffSMark Brown #define WM8962_EQ22 0x164 1669a76f1ffSMark Brown #define WM8962_EQ23 0x165 1679a76f1ffSMark Brown #define WM8962_EQ24 0x166 1689a76f1ffSMark Brown #define WM8962_EQ25 0x167 1699a76f1ffSMark Brown #define WM8962_EQ26 0x168 1709a76f1ffSMark Brown #define WM8962_EQ27 0x169 1719a76f1ffSMark Brown #define WM8962_EQ28 0x16A 1729a76f1ffSMark Brown #define WM8962_EQ29 0x16B 1739a76f1ffSMark Brown #define WM8962_EQ30 0x16C 1749a76f1ffSMark Brown #define WM8962_EQ31 0x16D 1759a76f1ffSMark Brown #define WM8962_EQ32 0x16E 1769a76f1ffSMark Brown #define WM8962_EQ33 0x16F 1779a76f1ffSMark Brown #define WM8962_EQ34 0x170 1789a76f1ffSMark Brown #define WM8962_EQ35 0x171 1799a76f1ffSMark Brown #define WM8962_EQ36 0x172 1809a76f1ffSMark Brown #define WM8962_EQ37 0x173 1819a76f1ffSMark Brown #define WM8962_EQ38 0x174 1829a76f1ffSMark Brown #define WM8962_EQ39 0x175 1839a76f1ffSMark Brown #define WM8962_EQ40 0x176 1849a76f1ffSMark Brown #define WM8962_EQ41 0x177 1853367b8d4SMark Brown #define WM8962_GPIO_BASE 0x200 1869a76f1ffSMark Brown #define WM8962_GPIO_2 0x201 1879a76f1ffSMark Brown #define WM8962_GPIO_3 0x202 1889a76f1ffSMark Brown #define WM8962_GPIO_5 0x204 1899a76f1ffSMark Brown #define WM8962_GPIO_6 0x205 1909a76f1ffSMark Brown #define WM8962_INTERRUPT_STATUS_1 0x230 1919a76f1ffSMark Brown #define WM8962_INTERRUPT_STATUS_2 0x231 1929a76f1ffSMark Brown #define WM8962_INTERRUPT_STATUS_1_MASK 0x238 1939a76f1ffSMark Brown #define WM8962_INTERRUPT_STATUS_2_MASK 0x239 1949a76f1ffSMark Brown #define WM8962_INTERRUPT_CONTROL 0x240 1959a76f1ffSMark Brown #define WM8962_IRQ_DEBOUNCE 0x248 1969a76f1ffSMark Brown #define WM8962_MICINT_SOURCE_POL 0x24A 1979a76f1ffSMark Brown #define WM8962_DSP2_POWER_MANAGEMENT 0x300 1989a76f1ffSMark Brown #define WM8962_DSP2_EXECCONTROL 0x40D 1999a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_0 0x1000 2009a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_1 0x1001 2019a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_2 0x1002 2029a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_3 0x1003 2039a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_4 0x1004 2049a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_5 0x1005 2059a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_6 0x1006 2069a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_7 0x1007 2079a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_8 0x1008 2089a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_9 0x1009 2099a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_10 0x100A 2109a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_11 0x100B 2119a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_12 0x100C 2129a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_13 0x100D 2139a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_14 0x100E 2149a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_15 0x100F 2159a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_16 0x1010 2169a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_17 0x1011 2179a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_18 0x1012 2189a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_19 0x1013 2199a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_20 0x1014 2209a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_21 0x1015 2219a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_22 0x1016 2229a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_23 0x1017 2239a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_24 0x1018 2249a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_25 0x1019 2259a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_26 0x101A 2269a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_27 0x101B 2279a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_28 0x101C 2289a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_29 0x101D 2299a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_30 0x101E 2309a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_31 0x101F 2319a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_32 0x1020 2329a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_33 0x1021 2339a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_34 0x1022 2349a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_35 0x1023 2359a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_36 0x1024 2369a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_37 0x1025 2379a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_38 0x1026 2389a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_39 0x1027 2399a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_40 0x1028 2409a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_41 0x1029 2419a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_42 0x102A 2429a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_43 0x102B 2439a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_44 0x102C 2449a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_45 0x102D 2459a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_46 0x102E 2469a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_47 0x102F 2479a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_48 0x1030 2489a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_49 0x1031 2499a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_50 0x1032 2509a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_51 0x1033 2519a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_52 0x1034 2529a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_53 0x1035 2539a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_54 0x1036 2549a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_55 0x1037 2559a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_56 0x1038 2569a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_57 0x1039 2579a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_58 0x103A 2589a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_59 0x103B 2599a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_60 0x103C 2609a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_61 0x103D 2619a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_62 0x103E 2629a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_63 0x103F 2639a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_64 0x1040 2649a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_65 0x1041 2659a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_66 0x1042 2669a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_67 0x1043 2679a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_68 0x1044 2689a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_69 0x1045 2699a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_70 0x1046 2709a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_71 0x1047 2719a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_72 0x1048 2729a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_73 0x1049 2739a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_74 0x104A 2749a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_75 0x104B 2759a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_76 0x104C 2769a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_77 0x104D 2779a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_78 0x104E 2789a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_79 0x104F 2799a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_80 0x1050 2809a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_81 0x1051 2819a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_82 0x1052 2829a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_83 0x1053 2839a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_84 0x1054 2849a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_85 0x1055 2859a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_86 0x1056 2869a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_87 0x1057 2879a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_88 0x1058 2889a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_89 0x1059 2899a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_90 0x105A 2909a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_91 0x105B 2919a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_92 0x105C 2929a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_93 0x105D 2939a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_94 0x105E 2949a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_95 0x105F 2959a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_96 0x1060 2969a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_97 0x1061 2979a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_98 0x1062 2989a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_99 0x1063 2999a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_100 0x1064 3009a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_101 0x1065 3019a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_102 0x1066 3029a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_103 0x1067 3039a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_104 0x1068 3049a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_105 0x1069 3059a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_106 0x106A 3069a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_107 0x106B 3079a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_108 0x106C 3089a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_109 0x106D 3099a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_110 0x106E 3109a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_111 0x106F 3119a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_112 0x1070 3129a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_113 0x1071 3139a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_114 0x1072 3149a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_115 0x1073 3159a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_116 0x1074 3169a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_117 0x1075 3179a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_118 0x1076 3189a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_119 0x1077 3199a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_120 0x1078 3209a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_121 0x1079 3219a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_122 0x107A 3229a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_123 0x107B 3239a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_124 0x107C 3249a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_125 0x107D 3259a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_126 0x107E 3269a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_127 0x107F 3279a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_128 0x1080 3289a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_129 0x1081 3299a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_130 0x1082 3309a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_131 0x1083 3319a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_132 0x1084 3329a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_133 0x1085 3339a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_134 0x1086 3349a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_135 0x1087 3359a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_136 0x1088 3369a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_137 0x1089 3379a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_138 0x108A 3389a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_139 0x108B 3399a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_140 0x108C 3409a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_141 0x108D 3419a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_142 0x108E 3429a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_143 0x108F 3439a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_144 0x1090 3449a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_145 0x1091 3459a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_146 0x1092 3469a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_147 0x1093 3479a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_148 0x1094 3489a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_149 0x1095 3499a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_150 0x1096 3509a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_151 0x1097 3519a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_152 0x1098 3529a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_153 0x1099 3539a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_154 0x109A 3549a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_155 0x109B 3559a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_156 0x109C 3569a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_157 0x109D 3579a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_158 0x109E 3589a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_159 0x109F 3599a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_160 0x10A0 3609a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_161 0x10A1 3619a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_162 0x10A2 3629a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_163 0x10A3 3639a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_164 0x10A4 3649a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_165 0x10A5 3659a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_166 0x10A6 3669a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_167 0x10A7 3679a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_168 0x10A8 3689a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_169 0x10A9 3699a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_170 0x10AA 3709a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_171 0x10AB 3719a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_172 0x10AC 3729a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_173 0x10AD 3739a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_174 0x10AE 3749a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_175 0x10AF 3759a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_176 0x10B0 3769a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_177 0x10B1 3779a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_178 0x10B2 3789a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_179 0x10B3 3799a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_180 0x10B4 3809a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_181 0x10B5 3819a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_182 0x10B6 3829a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_183 0x10B7 3839a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_184 0x10B8 3849a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_185 0x10B9 3859a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_186 0x10BA 3869a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_187 0x10BB 3879a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_188 0x10BC 3889a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_189 0x10BD 3899a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_190 0x10BE 3909a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_191 0x10BF 3919a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_192 0x10C0 3929a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_193 0x10C1 3939a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_194 0x10C2 3949a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_195 0x10C3 3959a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_196 0x10C4 3969a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_197 0x10C5 3979a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_198 0x10C6 3989a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_199 0x10C7 3999a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_200 0x10C8 4009a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_201 0x10C9 4019a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_202 0x10CA 4029a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_203 0x10CB 4039a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_204 0x10CC 4049a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_205 0x10CD 4059a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_206 0x10CE 4069a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_207 0x10CF 4079a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_208 0x10D0 4089a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_209 0x10D1 4099a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_210 0x10D2 4109a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_211 0x10D3 4119a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_212 0x10D4 4129a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_213 0x10D5 4139a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_214 0x10D6 4149a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_215 0x10D7 4159a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_216 0x10D8 4169a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_217 0x10D9 4179a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_218 0x10DA 4189a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_219 0x10DB 4199a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_220 0x10DC 4209a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_221 0x10DD 4219a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_222 0x10DE 4229a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_223 0x10DF 4239a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_224 0x10E0 4249a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_225 0x10E1 4259a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_226 0x10E2 4269a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_227 0x10E3 4279a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_228 0x10E4 4289a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_229 0x10E5 4299a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_230 0x10E6 4309a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_231 0x10E7 4319a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_232 0x10E8 4329a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_233 0x10E9 4339a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_234 0x10EA 4349a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_235 0x10EB 4359a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_236 0x10EC 4369a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_237 0x10ED 4379a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_238 0x10EE 4389a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_239 0x10EF 4399a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_240 0x10F0 4409a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_241 0x10F1 4419a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_242 0x10F2 4429a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_243 0x10F3 4439a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_244 0x10F4 4449a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_245 0x10F5 4459a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_246 0x10F6 4469a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_247 0x10F7 4479a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_248 0x10F8 4489a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_249 0x10F9 4499a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_250 0x10FA 4509a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_251 0x10FB 4519a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_252 0x10FC 4529a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_253 0x10FD 4539a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_254 0x10FE 4549a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_255 0x10FF 4559a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_256 0x1100 4569a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_257 0x1101 4579a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_258 0x1102 4589a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_259 0x1103 4599a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_260 0x1104 4609a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_261 0x1105 4619a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_262 0x1106 4629a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_263 0x1107 4639a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_264 0x1108 4649a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_265 0x1109 4659a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_266 0x110A 4669a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_267 0x110B 4679a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_268 0x110C 4689a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_269 0x110D 4699a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_270 0x110E 4709a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_271 0x110F 4719a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_272 0x1110 4729a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_273 0x1111 4739a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_274 0x1112 4749a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_275 0x1113 4759a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_276 0x1114 4769a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_277 0x1115 4779a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_278 0x1116 4789a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_279 0x1117 4799a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_280 0x1118 4809a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_281 0x1119 4819a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_282 0x111A 4829a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_283 0x111B 4839a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_284 0x111C 4849a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_285 0x111D 4859a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_286 0x111E 4869a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_287 0x111F 4879a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_288 0x1120 4889a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_289 0x1121 4899a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_290 0x1122 4909a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_291 0x1123 4919a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_292 0x1124 4929a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_293 0x1125 4939a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_294 0x1126 4949a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_295 0x1127 4959a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_296 0x1128 4969a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_297 0x1129 4979a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_298 0x112A 4989a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_299 0x112B 4999a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_300 0x112C 5009a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_301 0x112D 5019a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_302 0x112E 5029a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_303 0x112F 5039a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_304 0x1130 5049a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_305 0x1131 5059a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_306 0x1132 5069a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_307 0x1133 5079a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_308 0x1134 5089a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_309 0x1135 5099a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_310 0x1136 5109a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_311 0x1137 5119a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_312 0x1138 5129a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_313 0x1139 5139a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_314 0x113A 5149a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_315 0x113B 5159a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_316 0x113C 5169a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_317 0x113D 5179a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_318 0x113E 5189a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_319 0x113F 5199a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_320 0x1140 5209a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_321 0x1141 5219a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_322 0x1142 5229a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_323 0x1143 5239a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_324 0x1144 5249a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_325 0x1145 5259a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_326 0x1146 5269a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_327 0x1147 5279a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_328 0x1148 5289a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_329 0x1149 5299a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_330 0x114A 5309a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_331 0x114B 5319a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_332 0x114C 5329a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_333 0x114D 5339a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_334 0x114E 5349a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_335 0x114F 5359a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_336 0x1150 5369a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_337 0x1151 5379a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_338 0x1152 5389a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_339 0x1153 5399a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_340 0x1154 5409a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_341 0x1155 5419a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_342 0x1156 5429a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_343 0x1157 5439a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_344 0x1158 5449a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_345 0x1159 5459a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_346 0x115A 5469a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_347 0x115B 5479a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_348 0x115C 5489a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_349 0x115D 5499a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_350 0x115E 5509a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_351 0x115F 5519a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_352 0x1160 5529a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_353 0x1161 5539a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_354 0x1162 5549a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_355 0x1163 5559a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_356 0x1164 5569a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_357 0x1165 5579a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_358 0x1166 5589a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_359 0x1167 5599a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_360 0x1168 5609a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_361 0x1169 5619a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_362 0x116A 5629a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_363 0x116B 5639a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_364 0x116C 5649a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_365 0x116D 5659a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_366 0x116E 5669a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_367 0x116F 5679a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_368 0x1170 5689a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_369 0x1171 5699a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_370 0x1172 5709a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_371 0x1173 5719a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_372 0x1174 5729a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_373 0x1175 5739a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_374 0x1176 5749a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_375 0x1177 5759a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_376 0x1178 5769a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_377 0x1179 5779a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_378 0x117A 5789a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_379 0x117B 5799a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_380 0x117C 5809a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_381 0x117D 5819a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_382 0x117E 5829a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_383 0x117F 5839a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_384 0x1180 5849a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_385 0x1181 5859a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_386 0x1182 5869a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_387 0x1183 5879a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_388 0x1184 5889a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_389 0x1185 5899a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_390 0x1186 5909a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_391 0x1187 5919a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_392 0x1188 5929a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_393 0x1189 5939a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_394 0x118A 5949a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_395 0x118B 5959a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_396 0x118C 5969a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_397 0x118D 5979a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_398 0x118E 5989a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_399 0x118F 5999a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_400 0x1190 6009a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_401 0x1191 6019a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_402 0x1192 6029a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_403 0x1193 6039a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_404 0x1194 6049a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_405 0x1195 6059a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_406 0x1196 6069a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_407 0x1197 6079a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_408 0x1198 6089a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_409 0x1199 6099a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_410 0x119A 6109a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_411 0x119B 6119a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_412 0x119C 6129a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_413 0x119D 6139a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_414 0x119E 6149a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_415 0x119F 6159a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_416 0x11A0 6169a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_417 0x11A1 6179a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_418 0x11A2 6189a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_419 0x11A3 6199a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_420 0x11A4 6209a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_421 0x11A5 6219a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_422 0x11A6 6229a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_423 0x11A7 6239a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_424 0x11A8 6249a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_425 0x11A9 6259a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_426 0x11AA 6269a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_427 0x11AB 6279a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_428 0x11AC 6289a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_429 0x11AD 6299a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_430 0x11AE 6309a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_431 0x11AF 6319a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_432 0x11B0 6329a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_433 0x11B1 6339a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_434 0x11B2 6349a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_435 0x11B3 6359a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_436 0x11B4 6369a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_437 0x11B5 6379a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_438 0x11B6 6389a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_439 0x11B7 6399a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_440 0x11B8 6409a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_441 0x11B9 6419a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_442 0x11BA 6429a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_443 0x11BB 6439a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_444 0x11BC 6449a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_445 0x11BD 6459a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_446 0x11BE 6469a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_447 0x11BF 6479a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_448 0x11C0 6489a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_449 0x11C1 6499a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_450 0x11C2 6509a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_451 0x11C3 6519a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_452 0x11C4 6529a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_453 0x11C5 6539a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_454 0x11C6 6549a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_455 0x11C7 6559a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_456 0x11C8 6569a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_457 0x11C9 6579a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_458 0x11CA 6589a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_459 0x11CB 6599a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_460 0x11CC 6609a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_461 0x11CD 6619a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_462 0x11CE 6629a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_463 0x11CF 6639a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_464 0x11D0 6649a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_465 0x11D1 6659a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_466 0x11D2 6669a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_467 0x11D3 6679a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_468 0x11D4 6689a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_469 0x11D5 6699a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_470 0x11D6 6709a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_471 0x11D7 6719a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_472 0x11D8 6729a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_473 0x11D9 6739a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_474 0x11DA 6749a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_475 0x11DB 6759a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_476 0x11DC 6769a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_477 0x11DD 6779a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_478 0x11DE 6789a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_479 0x11DF 6799a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_480 0x11E0 6809a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_481 0x11E1 6819a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_482 0x11E2 6829a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_483 0x11E3 6839a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_484 0x11E4 6849a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_485 0x11E5 6859a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_486 0x11E6 6869a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_487 0x11E7 6879a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_488 0x11E8 6889a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_489 0x11E9 6899a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_490 0x11EA 6909a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_491 0x11EB 6919a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_492 0x11EC 6929a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_493 0x11ED 6939a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_494 0x11EE 6949a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_495 0x11EF 6959a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_496 0x11F0 6969a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_497 0x11F1 6979a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_498 0x11F2 6989a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_499 0x11F3 6999a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_500 0x11F4 7009a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_501 0x11F5 7019a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_502 0x11F6 7029a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_503 0x11F7 7039a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_504 0x11F8 7049a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_505 0x11F9 7059a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_506 0x11FA 7069a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_507 0x11FB 7079a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_508 0x11FC 7089a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_509 0x11FD 7099a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_510 0x11FE 7109a76f1ffSMark Brown #define WM8962_WRITE_SEQUENCER_511 0x11FF 7119a76f1ffSMark Brown #define WM8962_DSP2_INSTRUCTION_RAM_0 0x2000 7129a76f1ffSMark Brown #define WM8962_DSP2_ADDRESS_RAM_2 0x2400 7139a76f1ffSMark Brown #define WM8962_DSP2_ADDRESS_RAM_1 0x2401 7149a76f1ffSMark Brown #define WM8962_DSP2_ADDRESS_RAM_0 0x2402 7159a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_1 0x3000 7169a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_0 0x3001 7179a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_1 0x3400 7189a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_0 0x3401 7199a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_1 0x3800 7209a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_0 0x3801 7219a76f1ffSMark Brown #define WM8962_DSP2_COEFF_RAM_0 0x3C00 7229a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_1 0x4000 7239a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_0 0x4001 7249a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_1 0x4002 7259a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_0 0x4003 7269a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_1 0x4004 7279a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_0 0x4005 7289a76f1ffSMark Brown #define WM8962_HDBASS_AI_1 0x4200 7299a76f1ffSMark Brown #define WM8962_HDBASS_AI_0 0x4201 7309a76f1ffSMark Brown #define WM8962_HDBASS_AR_1 0x4202 7319a76f1ffSMark Brown #define WM8962_HDBASS_AR_0 0x4203 7329a76f1ffSMark Brown #define WM8962_HDBASS_B_1 0x4204 7339a76f1ffSMark Brown #define WM8962_HDBASS_B_0 0x4205 7349a76f1ffSMark Brown #define WM8962_HDBASS_K_1 0x4206 7359a76f1ffSMark Brown #define WM8962_HDBASS_K_0 0x4207 7369a76f1ffSMark Brown #define WM8962_HDBASS_N1_1 0x4208 7379a76f1ffSMark Brown #define WM8962_HDBASS_N1_0 0x4209 7389a76f1ffSMark Brown #define WM8962_HDBASS_N2_1 0x420A 7399a76f1ffSMark Brown #define WM8962_HDBASS_N2_0 0x420B 7409a76f1ffSMark Brown #define WM8962_HDBASS_N3_1 0x420C 7419a76f1ffSMark Brown #define WM8962_HDBASS_N3_0 0x420D 7429a76f1ffSMark Brown #define WM8962_HDBASS_N4_1 0x420E 7439a76f1ffSMark Brown #define WM8962_HDBASS_N4_0 0x420F 7449a76f1ffSMark Brown #define WM8962_HDBASS_N5_1 0x4210 7459a76f1ffSMark Brown #define WM8962_HDBASS_N5_0 0x4211 7469a76f1ffSMark Brown #define WM8962_HDBASS_X1_1 0x4212 7479a76f1ffSMark Brown #define WM8962_HDBASS_X1_0 0x4213 7489a76f1ffSMark Brown #define WM8962_HDBASS_X2_1 0x4214 7499a76f1ffSMark Brown #define WM8962_HDBASS_X2_0 0x4215 7509a76f1ffSMark Brown #define WM8962_HDBASS_X3_1 0x4216 7519a76f1ffSMark Brown #define WM8962_HDBASS_X3_0 0x4217 7529a76f1ffSMark Brown #define WM8962_HDBASS_ATK_1 0x4218 7539a76f1ffSMark Brown #define WM8962_HDBASS_ATK_0 0x4219 7549a76f1ffSMark Brown #define WM8962_HDBASS_DCY_1 0x421A 7559a76f1ffSMark Brown #define WM8962_HDBASS_DCY_0 0x421B 7569a76f1ffSMark Brown #define WM8962_HDBASS_PG_1 0x421C 7579a76f1ffSMark Brown #define WM8962_HDBASS_PG_0 0x421D 7589a76f1ffSMark Brown #define WM8962_HPF_C_1 0x4400 7599a76f1ffSMark Brown #define WM8962_HPF_C_0 0x4401 7609a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C1_1 0x4600 7619a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C1_0 0x4601 7629a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C2_1 0x4602 7639a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C2_0 0x4603 7649a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C3_1 0x4604 7659a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C3_0 0x4605 7669a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C4_1 0x4606 7679a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C4_0 0x4607 7689a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C5_1 0x4608 7699a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C5_0 0x4609 7709a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C6_1 0x460A 7719a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C6_0 0x460B 7729a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C7_1 0x460C 7739a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C7_0 0x460D 7749a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C8_1 0x460E 7759a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C8_0 0x460F 7769a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C9_1 0x4610 7779a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C9_0 0x4611 7789a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C10_1 0x4612 7799a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C10_0 0x4613 7809a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C11_1 0x4614 7819a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C11_0 0x4615 7829a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C12_1 0x4616 7839a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C12_0 0x4617 7849a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C13_1 0x4618 7859a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C13_0 0x4619 7869a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C14_1 0x461A 7879a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C14_0 0x461B 7889a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C15_1 0x461C 7899a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C15_0 0x461D 7909a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C16_1 0x461E 7919a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C16_0 0x461F 7929a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C17_1 0x4620 7939a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C17_0 0x4621 7949a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C18_1 0x4622 7959a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C18_0 0x4623 7969a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C19_1 0x4624 7979a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C19_0 0x4625 7989a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C20_1 0x4626 7999a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C20_0 0x4627 8009a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C21_1 0x4628 8019a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C21_0 0x4629 8029a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C22_1 0x462A 8039a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C22_0 0x462B 8049a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C23_1 0x462C 8059a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C23_0 0x462D 8069a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C24_1 0x462E 8079a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C24_0 0x462F 8089a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C25_1 0x4630 8099a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C25_0 0x4631 8109a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C26_1 0x4632 8119a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C26_0 0x4633 8129a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C27_1 0x4634 8139a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C27_0 0x4635 8149a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C28_1 0x4636 8159a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C28_0 0x4637 8169a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C29_1 0x4638 8179a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C29_0 0x4639 8189a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C30_1 0x463A 8199a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C30_0 0x463B 8209a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C31_1 0x463C 8219a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C31_0 0x463D 8229a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C32_1 0x463E 8239a76f1ffSMark Brown #define WM8962_ADCL_RETUNE_C32_0 0x463F 8249a76f1ffSMark Brown #define WM8962_RETUNEADC_PG2_1 0x4800 8259a76f1ffSMark Brown #define WM8962_RETUNEADC_PG2_0 0x4801 8269a76f1ffSMark Brown #define WM8962_RETUNEADC_PG_1 0x4802 8279a76f1ffSMark Brown #define WM8962_RETUNEADC_PG_0 0x4803 8289a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C1_1 0x4A00 8299a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C1_0 0x4A01 8309a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C2_1 0x4A02 8319a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C2_0 0x4A03 8329a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C3_1 0x4A04 8339a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C3_0 0x4A05 8349a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C4_1 0x4A06 8359a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C4_0 0x4A07 8369a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C5_1 0x4A08 8379a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C5_0 0x4A09 8389a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C6_1 0x4A0A 8399a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C6_0 0x4A0B 8409a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C7_1 0x4A0C 8419a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C7_0 0x4A0D 8429a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C8_1 0x4A0E 8439a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C8_0 0x4A0F 8449a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C9_1 0x4A10 8459a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C9_0 0x4A11 8469a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C10_1 0x4A12 8479a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C10_0 0x4A13 8489a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C11_1 0x4A14 8499a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C11_0 0x4A15 8509a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C12_1 0x4A16 8519a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C12_0 0x4A17 8529a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C13_1 0x4A18 8539a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C13_0 0x4A19 8549a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C14_1 0x4A1A 8559a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C14_0 0x4A1B 8569a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C15_1 0x4A1C 8579a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C15_0 0x4A1D 8589a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C16_1 0x4A1E 8599a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C16_0 0x4A1F 8609a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C17_1 0x4A20 8619a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C17_0 0x4A21 8629a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C18_1 0x4A22 8639a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C18_0 0x4A23 8649a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C19_1 0x4A24 8659a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C19_0 0x4A25 8669a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C20_1 0x4A26 8679a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C20_0 0x4A27 8689a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C21_1 0x4A28 8699a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C21_0 0x4A29 8709a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C22_1 0x4A2A 8719a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C22_0 0x4A2B 8729a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C23_1 0x4A2C 8739a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C23_0 0x4A2D 8749a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C24_1 0x4A2E 8759a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C24_0 0x4A2F 8769a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C25_1 0x4A30 8779a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C25_0 0x4A31 8789a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C26_1 0x4A32 8799a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C26_0 0x4A33 8809a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C27_1 0x4A34 8819a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C27_0 0x4A35 8829a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C28_1 0x4A36 8839a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C28_0 0x4A37 8849a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C29_1 0x4A38 8859a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C29_0 0x4A39 8869a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C30_1 0x4A3A 8879a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C30_0 0x4A3B 8889a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C31_1 0x4A3C 8899a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C31_0 0x4A3D 8909a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C32_1 0x4A3E 8919a76f1ffSMark Brown #define WM8962_ADCR_RETUNE_C32_0 0x4A3F 8929a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C1_1 0x4C00 8939a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C1_0 0x4C01 8949a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C2_1 0x4C02 8959a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C2_0 0x4C03 8969a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C3_1 0x4C04 8979a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C3_0 0x4C05 8989a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C4_1 0x4C06 8999a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C4_0 0x4C07 9009a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C5_1 0x4C08 9019a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C5_0 0x4C09 9029a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C6_1 0x4C0A 9039a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C6_0 0x4C0B 9049a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C7_1 0x4C0C 9059a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C7_0 0x4C0D 9069a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C8_1 0x4C0E 9079a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C8_0 0x4C0F 9089a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C9_1 0x4C10 9099a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C9_0 0x4C11 9109a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C10_1 0x4C12 9119a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C10_0 0x4C13 9129a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C11_1 0x4C14 9139a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C11_0 0x4C15 9149a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C12_1 0x4C16 9159a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C12_0 0x4C17 9169a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C13_1 0x4C18 9179a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C13_0 0x4C19 9189a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C14_1 0x4C1A 9199a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C14_0 0x4C1B 9209a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C15_1 0x4C1C 9219a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C15_0 0x4C1D 9229a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C16_1 0x4C1E 9239a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C16_0 0x4C1F 9249a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C17_1 0x4C20 9259a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C17_0 0x4C21 9269a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C18_1 0x4C22 9279a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C18_0 0x4C23 9289a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C19_1 0x4C24 9299a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C19_0 0x4C25 9309a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C20_1 0x4C26 9319a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C20_0 0x4C27 9329a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C21_1 0x4C28 9339a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C21_0 0x4C29 9349a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C22_1 0x4C2A 9359a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C22_0 0x4C2B 9369a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C23_1 0x4C2C 9379a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C23_0 0x4C2D 9389a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C24_1 0x4C2E 9399a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C24_0 0x4C2F 9409a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C25_1 0x4C30 9419a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C25_0 0x4C31 9429a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C26_1 0x4C32 9439a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C26_0 0x4C33 9449a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C27_1 0x4C34 9459a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C27_0 0x4C35 9469a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C28_1 0x4C36 9479a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C28_0 0x4C37 9489a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C29_1 0x4C38 9499a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C29_0 0x4C39 9509a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C30_1 0x4C3A 9519a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C30_0 0x4C3B 9529a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C31_1 0x4C3C 9539a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C31_0 0x4C3D 9549a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C32_1 0x4C3E 9559a76f1ffSMark Brown #define WM8962_DACL_RETUNE_C32_0 0x4C3F 9569a76f1ffSMark Brown #define WM8962_RETUNEDAC_PG2_1 0x4E00 9579a76f1ffSMark Brown #define WM8962_RETUNEDAC_PG2_0 0x4E01 9589a76f1ffSMark Brown #define WM8962_RETUNEDAC_PG_1 0x4E02 9599a76f1ffSMark Brown #define WM8962_RETUNEDAC_PG_0 0x4E03 9609a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C1_1 0x5000 9619a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C1_0 0x5001 9629a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C2_1 0x5002 9639a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C2_0 0x5003 9649a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C3_1 0x5004 9659a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C3_0 0x5005 9669a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C4_1 0x5006 9679a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C4_0 0x5007 9689a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C5_1 0x5008 9699a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C5_0 0x5009 9709a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C6_1 0x500A 9719a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C6_0 0x500B 9729a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C7_1 0x500C 9739a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C7_0 0x500D 9749a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C8_1 0x500E 9759a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C8_0 0x500F 9769a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C9_1 0x5010 9779a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C9_0 0x5011 9789a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C10_1 0x5012 9799a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C10_0 0x5013 9809a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C11_1 0x5014 9819a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C11_0 0x5015 9829a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C12_1 0x5016 9839a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C12_0 0x5017 9849a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C13_1 0x5018 9859a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C13_0 0x5019 9869a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C14_1 0x501A 9879a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C14_0 0x501B 9889a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C15_1 0x501C 9899a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C15_0 0x501D 9909a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C16_1 0x501E 9919a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C16_0 0x501F 9929a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C17_1 0x5020 9939a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C17_0 0x5021 9949a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C18_1 0x5022 9959a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C18_0 0x5023 9969a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C19_1 0x5024 9979a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C19_0 0x5025 9989a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C20_1 0x5026 9999a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C20_0 0x5027 10009a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C21_1 0x5028 10019a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C21_0 0x5029 10029a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C22_1 0x502A 10039a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C22_0 0x502B 10049a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C23_1 0x502C 10059a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C23_0 0x502D 10069a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C24_1 0x502E 10079a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C24_0 0x502F 10089a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C25_1 0x5030 10099a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C25_0 0x5031 10109a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C26_1 0x5032 10119a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C26_0 0x5033 10129a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C27_1 0x5034 10139a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C27_0 0x5035 10149a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C28_1 0x5036 10159a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C28_0 0x5037 10169a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C29_1 0x5038 10179a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C29_0 0x5039 10189a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C30_1 0x503A 10199a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C30_0 0x503B 10209a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C31_1 0x503C 10219a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C31_0 0x503D 10229a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C32_1 0x503E 10239a76f1ffSMark Brown #define WM8962_DACR_RETUNE_C32_0 0x503F 10249a76f1ffSMark Brown #define WM8962_VSS_XHD2_1 0x5200 10259a76f1ffSMark Brown #define WM8962_VSS_XHD2_0 0x5201 10269a76f1ffSMark Brown #define WM8962_VSS_XHD3_1 0x5202 10279a76f1ffSMark Brown #define WM8962_VSS_XHD3_0 0x5203 10289a76f1ffSMark Brown #define WM8962_VSS_XHN1_1 0x5204 10299a76f1ffSMark Brown #define WM8962_VSS_XHN1_0 0x5205 10309a76f1ffSMark Brown #define WM8962_VSS_XHN2_1 0x5206 10319a76f1ffSMark Brown #define WM8962_VSS_XHN2_0 0x5207 10329a76f1ffSMark Brown #define WM8962_VSS_XHN3_1 0x5208 10339a76f1ffSMark Brown #define WM8962_VSS_XHN3_0 0x5209 10349a76f1ffSMark Brown #define WM8962_VSS_XLA_1 0x520A 10359a76f1ffSMark Brown #define WM8962_VSS_XLA_0 0x520B 10369a76f1ffSMark Brown #define WM8962_VSS_XLB_1 0x520C 10379a76f1ffSMark Brown #define WM8962_VSS_XLB_0 0x520D 10389a76f1ffSMark Brown #define WM8962_VSS_XLG_1 0x520E 10399a76f1ffSMark Brown #define WM8962_VSS_XLG_0 0x520F 10409a76f1ffSMark Brown #define WM8962_VSS_PG2_1 0x5210 10419a76f1ffSMark Brown #define WM8962_VSS_PG2_0 0x5211 10429a76f1ffSMark Brown #define WM8962_VSS_PG_1 0x5212 10439a76f1ffSMark Brown #define WM8962_VSS_PG_0 0x5213 10449a76f1ffSMark Brown #define WM8962_VSS_XTD1_1 0x5214 10459a76f1ffSMark Brown #define WM8962_VSS_XTD1_0 0x5215 10469a76f1ffSMark Brown #define WM8962_VSS_XTD2_1 0x5216 10479a76f1ffSMark Brown #define WM8962_VSS_XTD2_0 0x5217 10489a76f1ffSMark Brown #define WM8962_VSS_XTD3_1 0x5218 10499a76f1ffSMark Brown #define WM8962_VSS_XTD3_0 0x5219 10509a76f1ffSMark Brown #define WM8962_VSS_XTD4_1 0x521A 10519a76f1ffSMark Brown #define WM8962_VSS_XTD4_0 0x521B 10529a76f1ffSMark Brown #define WM8962_VSS_XTD5_1 0x521C 10539a76f1ffSMark Brown #define WM8962_VSS_XTD5_0 0x521D 10549a76f1ffSMark Brown #define WM8962_VSS_XTD6_1 0x521E 10559a76f1ffSMark Brown #define WM8962_VSS_XTD6_0 0x521F 10569a76f1ffSMark Brown #define WM8962_VSS_XTD7_1 0x5220 10579a76f1ffSMark Brown #define WM8962_VSS_XTD7_0 0x5221 10589a76f1ffSMark Brown #define WM8962_VSS_XTD8_1 0x5222 10599a76f1ffSMark Brown #define WM8962_VSS_XTD8_0 0x5223 10609a76f1ffSMark Brown #define WM8962_VSS_XTD9_1 0x5224 10619a76f1ffSMark Brown #define WM8962_VSS_XTD9_0 0x5225 10629a76f1ffSMark Brown #define WM8962_VSS_XTD10_1 0x5226 10639a76f1ffSMark Brown #define WM8962_VSS_XTD10_0 0x5227 10649a76f1ffSMark Brown #define WM8962_VSS_XTD11_1 0x5228 10659a76f1ffSMark Brown #define WM8962_VSS_XTD11_0 0x5229 10669a76f1ffSMark Brown #define WM8962_VSS_XTD12_1 0x522A 10679a76f1ffSMark Brown #define WM8962_VSS_XTD12_0 0x522B 10689a76f1ffSMark Brown #define WM8962_VSS_XTD13_1 0x522C 10699a76f1ffSMark Brown #define WM8962_VSS_XTD13_0 0x522D 10709a76f1ffSMark Brown #define WM8962_VSS_XTD14_1 0x522E 10719a76f1ffSMark Brown #define WM8962_VSS_XTD14_0 0x522F 10729a76f1ffSMark Brown #define WM8962_VSS_XTD15_1 0x5230 10739a76f1ffSMark Brown #define WM8962_VSS_XTD15_0 0x5231 10749a76f1ffSMark Brown #define WM8962_VSS_XTD16_1 0x5232 10759a76f1ffSMark Brown #define WM8962_VSS_XTD16_0 0x5233 10769a76f1ffSMark Brown #define WM8962_VSS_XTD17_1 0x5234 10779a76f1ffSMark Brown #define WM8962_VSS_XTD17_0 0x5235 10789a76f1ffSMark Brown #define WM8962_VSS_XTD18_1 0x5236 10799a76f1ffSMark Brown #define WM8962_VSS_XTD18_0 0x5237 10809a76f1ffSMark Brown #define WM8962_VSS_XTD19_1 0x5238 10819a76f1ffSMark Brown #define WM8962_VSS_XTD19_0 0x5239 10829a76f1ffSMark Brown #define WM8962_VSS_XTD20_1 0x523A 10839a76f1ffSMark Brown #define WM8962_VSS_XTD20_0 0x523B 10849a76f1ffSMark Brown #define WM8962_VSS_XTD21_1 0x523C 10859a76f1ffSMark Brown #define WM8962_VSS_XTD21_0 0x523D 10869a76f1ffSMark Brown #define WM8962_VSS_XTD22_1 0x523E 10879a76f1ffSMark Brown #define WM8962_VSS_XTD22_0 0x523F 10889a76f1ffSMark Brown #define WM8962_VSS_XTD23_1 0x5240 10899a76f1ffSMark Brown #define WM8962_VSS_XTD23_0 0x5241 10909a76f1ffSMark Brown #define WM8962_VSS_XTD24_1 0x5242 10919a76f1ffSMark Brown #define WM8962_VSS_XTD24_0 0x5243 10929a76f1ffSMark Brown #define WM8962_VSS_XTD25_1 0x5244 10939a76f1ffSMark Brown #define WM8962_VSS_XTD25_0 0x5245 10949a76f1ffSMark Brown #define WM8962_VSS_XTD26_1 0x5246 10959a76f1ffSMark Brown #define WM8962_VSS_XTD26_0 0x5247 10969a76f1ffSMark Brown #define WM8962_VSS_XTD27_1 0x5248 10979a76f1ffSMark Brown #define WM8962_VSS_XTD27_0 0x5249 10989a76f1ffSMark Brown #define WM8962_VSS_XTD28_1 0x524A 10999a76f1ffSMark Brown #define WM8962_VSS_XTD28_0 0x524B 11009a76f1ffSMark Brown #define WM8962_VSS_XTD29_1 0x524C 11019a76f1ffSMark Brown #define WM8962_VSS_XTD29_0 0x524D 11029a76f1ffSMark Brown #define WM8962_VSS_XTD30_1 0x524E 11039a76f1ffSMark Brown #define WM8962_VSS_XTD30_0 0x524F 11049a76f1ffSMark Brown #define WM8962_VSS_XTD31_1 0x5250 11059a76f1ffSMark Brown #define WM8962_VSS_XTD31_0 0x5251 11069a76f1ffSMark Brown #define WM8962_VSS_XTD32_1 0x5252 11079a76f1ffSMark Brown #define WM8962_VSS_XTD32_0 0x5253 11089a76f1ffSMark Brown #define WM8962_VSS_XTS1_1 0x5254 11099a76f1ffSMark Brown #define WM8962_VSS_XTS1_0 0x5255 11109a76f1ffSMark Brown #define WM8962_VSS_XTS2_1 0x5256 11119a76f1ffSMark Brown #define WM8962_VSS_XTS2_0 0x5257 11129a76f1ffSMark Brown #define WM8962_VSS_XTS3_1 0x5258 11139a76f1ffSMark Brown #define WM8962_VSS_XTS3_0 0x5259 11149a76f1ffSMark Brown #define WM8962_VSS_XTS4_1 0x525A 11159a76f1ffSMark Brown #define WM8962_VSS_XTS4_0 0x525B 11169a76f1ffSMark Brown #define WM8962_VSS_XTS5_1 0x525C 11179a76f1ffSMark Brown #define WM8962_VSS_XTS5_0 0x525D 11189a76f1ffSMark Brown #define WM8962_VSS_XTS6_1 0x525E 11199a76f1ffSMark Brown #define WM8962_VSS_XTS6_0 0x525F 11209a76f1ffSMark Brown #define WM8962_VSS_XTS7_1 0x5260 11219a76f1ffSMark Brown #define WM8962_VSS_XTS7_0 0x5261 11229a76f1ffSMark Brown #define WM8962_VSS_XTS8_1 0x5262 11239a76f1ffSMark Brown #define WM8962_VSS_XTS8_0 0x5263 11249a76f1ffSMark Brown #define WM8962_VSS_XTS9_1 0x5264 11259a76f1ffSMark Brown #define WM8962_VSS_XTS9_0 0x5265 11269a76f1ffSMark Brown #define WM8962_VSS_XTS10_1 0x5266 11279a76f1ffSMark Brown #define WM8962_VSS_XTS10_0 0x5267 11289a76f1ffSMark Brown #define WM8962_VSS_XTS11_1 0x5268 11299a76f1ffSMark Brown #define WM8962_VSS_XTS11_0 0x5269 11309a76f1ffSMark Brown #define WM8962_VSS_XTS12_1 0x526A 11319a76f1ffSMark Brown #define WM8962_VSS_XTS12_0 0x526B 11329a76f1ffSMark Brown #define WM8962_VSS_XTS13_1 0x526C 11339a76f1ffSMark Brown #define WM8962_VSS_XTS13_0 0x526D 11349a76f1ffSMark Brown #define WM8962_VSS_XTS14_1 0x526E 11359a76f1ffSMark Brown #define WM8962_VSS_XTS14_0 0x526F 11369a76f1ffSMark Brown #define WM8962_VSS_XTS15_1 0x5270 11379a76f1ffSMark Brown #define WM8962_VSS_XTS15_0 0x5271 11389a76f1ffSMark Brown #define WM8962_VSS_XTS16_1 0x5272 11399a76f1ffSMark Brown #define WM8962_VSS_XTS16_0 0x5273 11409a76f1ffSMark Brown #define WM8962_VSS_XTS17_1 0x5274 11419a76f1ffSMark Brown #define WM8962_VSS_XTS17_0 0x5275 11429a76f1ffSMark Brown #define WM8962_VSS_XTS18_1 0x5276 11439a76f1ffSMark Brown #define WM8962_VSS_XTS18_0 0x5277 11449a76f1ffSMark Brown #define WM8962_VSS_XTS19_1 0x5278 11459a76f1ffSMark Brown #define WM8962_VSS_XTS19_0 0x5279 11469a76f1ffSMark Brown #define WM8962_VSS_XTS20_1 0x527A 11479a76f1ffSMark Brown #define WM8962_VSS_XTS20_0 0x527B 11489a76f1ffSMark Brown #define WM8962_VSS_XTS21_1 0x527C 11499a76f1ffSMark Brown #define WM8962_VSS_XTS21_0 0x527D 11509a76f1ffSMark Brown #define WM8962_VSS_XTS22_1 0x527E 11519a76f1ffSMark Brown #define WM8962_VSS_XTS22_0 0x527F 11529a76f1ffSMark Brown #define WM8962_VSS_XTS23_1 0x5280 11539a76f1ffSMark Brown #define WM8962_VSS_XTS23_0 0x5281 11549a76f1ffSMark Brown #define WM8962_VSS_XTS24_1 0x5282 11559a76f1ffSMark Brown #define WM8962_VSS_XTS24_0 0x5283 11569a76f1ffSMark Brown #define WM8962_VSS_XTS25_1 0x5284 11579a76f1ffSMark Brown #define WM8962_VSS_XTS25_0 0x5285 11589a76f1ffSMark Brown #define WM8962_VSS_XTS26_1 0x5286 11599a76f1ffSMark Brown #define WM8962_VSS_XTS26_0 0x5287 11609a76f1ffSMark Brown #define WM8962_VSS_XTS27_1 0x5288 11619a76f1ffSMark Brown #define WM8962_VSS_XTS27_0 0x5289 11629a76f1ffSMark Brown #define WM8962_VSS_XTS28_1 0x528A 11639a76f1ffSMark Brown #define WM8962_VSS_XTS28_0 0x528B 11649a76f1ffSMark Brown #define WM8962_VSS_XTS29_1 0x528C 11659a76f1ffSMark Brown #define WM8962_VSS_XTS29_0 0x528D 11669a76f1ffSMark Brown #define WM8962_VSS_XTS30_1 0x528E 11679a76f1ffSMark Brown #define WM8962_VSS_XTS30_0 0x528F 11689a76f1ffSMark Brown #define WM8962_VSS_XTS31_1 0x5290 11699a76f1ffSMark Brown #define WM8962_VSS_XTS31_0 0x5291 11709a76f1ffSMark Brown #define WM8962_VSS_XTS32_1 0x5292 11719a76f1ffSMark Brown #define WM8962_VSS_XTS32_0 0x5293 11729a76f1ffSMark Brown 11739a76f1ffSMark Brown #define WM8962_REGISTER_COUNT 1138 11749a76f1ffSMark Brown #define WM8962_MAX_REGISTER 0x5293 11759a76f1ffSMark Brown 11769a76f1ffSMark Brown /* 11779a76f1ffSMark Brown * Field Definitions. 11789a76f1ffSMark Brown */ 11799a76f1ffSMark Brown 11809a76f1ffSMark Brown /* 11819a76f1ffSMark Brown * R0 (0x00) - Left Input volume 11829a76f1ffSMark Brown */ 11839a76f1ffSMark Brown #define WM8962_IN_VU 0x0100 /* IN_VU */ 11849a76f1ffSMark Brown #define WM8962_IN_VU_MASK 0x0100 /* IN_VU */ 11859a76f1ffSMark Brown #define WM8962_IN_VU_SHIFT 8 /* IN_VU */ 11869a76f1ffSMark Brown #define WM8962_IN_VU_WIDTH 1 /* IN_VU */ 11879a76f1ffSMark Brown #define WM8962_INPGAL_MUTE 0x0080 /* INPGAL_MUTE */ 11889a76f1ffSMark Brown #define WM8962_INPGAL_MUTE_MASK 0x0080 /* INPGAL_MUTE */ 11899a76f1ffSMark Brown #define WM8962_INPGAL_MUTE_SHIFT 7 /* INPGAL_MUTE */ 11909a76f1ffSMark Brown #define WM8962_INPGAL_MUTE_WIDTH 1 /* INPGAL_MUTE */ 11919a76f1ffSMark Brown #define WM8962_INL_ZC 0x0040 /* INL_ZC */ 11929a76f1ffSMark Brown #define WM8962_INL_ZC_MASK 0x0040 /* INL_ZC */ 11939a76f1ffSMark Brown #define WM8962_INL_ZC_SHIFT 6 /* INL_ZC */ 11949a76f1ffSMark Brown #define WM8962_INL_ZC_WIDTH 1 /* INL_ZC */ 11959a76f1ffSMark Brown #define WM8962_INL_VOL_MASK 0x003F /* INL_VOL - [5:0] */ 11969a76f1ffSMark Brown #define WM8962_INL_VOL_SHIFT 0 /* INL_VOL - [5:0] */ 11979a76f1ffSMark Brown #define WM8962_INL_VOL_WIDTH 6 /* INL_VOL - [5:0] */ 11989a76f1ffSMark Brown 11999a76f1ffSMark Brown /* 12009a76f1ffSMark Brown * R1 (0x01) - Right Input volume 12019a76f1ffSMark Brown */ 12029a76f1ffSMark Brown #define WM8962_CUST_ID_MASK 0xF000 /* CUST_ID - [15:12] */ 12039a76f1ffSMark Brown #define WM8962_CUST_ID_SHIFT 12 /* CUST_ID - [15:12] */ 12049a76f1ffSMark Brown #define WM8962_CUST_ID_WIDTH 4 /* CUST_ID - [15:12] */ 12059a76f1ffSMark Brown #define WM8962_CHIP_REV_MASK 0x0E00 /* CHIP_REV - [11:9] */ 12069a76f1ffSMark Brown #define WM8962_CHIP_REV_SHIFT 9 /* CHIP_REV - [11:9] */ 12079a76f1ffSMark Brown #define WM8962_CHIP_REV_WIDTH 3 /* CHIP_REV - [11:9] */ 12089a76f1ffSMark Brown #define WM8962_IN_VU 0x0100 /* IN_VU */ 12099a76f1ffSMark Brown #define WM8962_IN_VU_MASK 0x0100 /* IN_VU */ 12109a76f1ffSMark Brown #define WM8962_IN_VU_SHIFT 8 /* IN_VU */ 12119a76f1ffSMark Brown #define WM8962_IN_VU_WIDTH 1 /* IN_VU */ 12129a76f1ffSMark Brown #define WM8962_INPGAR_MUTE 0x0080 /* INPGAR_MUTE */ 12139a76f1ffSMark Brown #define WM8962_INPGAR_MUTE_MASK 0x0080 /* INPGAR_MUTE */ 12149a76f1ffSMark Brown #define WM8962_INPGAR_MUTE_SHIFT 7 /* INPGAR_MUTE */ 12159a76f1ffSMark Brown #define WM8962_INPGAR_MUTE_WIDTH 1 /* INPGAR_MUTE */ 12169a76f1ffSMark Brown #define WM8962_INR_ZC 0x0040 /* INR_ZC */ 12179a76f1ffSMark Brown #define WM8962_INR_ZC_MASK 0x0040 /* INR_ZC */ 12189a76f1ffSMark Brown #define WM8962_INR_ZC_SHIFT 6 /* INR_ZC */ 12199a76f1ffSMark Brown #define WM8962_INR_ZC_WIDTH 1 /* INR_ZC */ 12209a76f1ffSMark Brown #define WM8962_INR_VOL_MASK 0x003F /* INR_VOL - [5:0] */ 12219a76f1ffSMark Brown #define WM8962_INR_VOL_SHIFT 0 /* INR_VOL - [5:0] */ 12229a76f1ffSMark Brown #define WM8962_INR_VOL_WIDTH 6 /* INR_VOL - [5:0] */ 12239a76f1ffSMark Brown 12249a76f1ffSMark Brown /* 12259a76f1ffSMark Brown * R2 (0x02) - HPOUTL volume 12269a76f1ffSMark Brown */ 12279a76f1ffSMark Brown #define WM8962_HPOUT_VU 0x0100 /* HPOUT_VU */ 12289a76f1ffSMark Brown #define WM8962_HPOUT_VU_MASK 0x0100 /* HPOUT_VU */ 12299a76f1ffSMark Brown #define WM8962_HPOUT_VU_SHIFT 8 /* HPOUT_VU */ 12309a76f1ffSMark Brown #define WM8962_HPOUT_VU_WIDTH 1 /* HPOUT_VU */ 12319a76f1ffSMark Brown #define WM8962_HPOUTL_ZC 0x0080 /* HPOUTL_ZC */ 12329a76f1ffSMark Brown #define WM8962_HPOUTL_ZC_MASK 0x0080 /* HPOUTL_ZC */ 12339a76f1ffSMark Brown #define WM8962_HPOUTL_ZC_SHIFT 7 /* HPOUTL_ZC */ 12349a76f1ffSMark Brown #define WM8962_HPOUTL_ZC_WIDTH 1 /* HPOUTL_ZC */ 12359a76f1ffSMark Brown #define WM8962_HPOUTL_VOL_MASK 0x007F /* HPOUTL_VOL - [6:0] */ 12369a76f1ffSMark Brown #define WM8962_HPOUTL_VOL_SHIFT 0 /* HPOUTL_VOL - [6:0] */ 12379a76f1ffSMark Brown #define WM8962_HPOUTL_VOL_WIDTH 7 /* HPOUTL_VOL - [6:0] */ 12389a76f1ffSMark Brown 12399a76f1ffSMark Brown /* 12409a76f1ffSMark Brown * R3 (0x03) - HPOUTR volume 12419a76f1ffSMark Brown */ 12429a76f1ffSMark Brown #define WM8962_HPOUT_VU 0x0100 /* HPOUT_VU */ 12439a76f1ffSMark Brown #define WM8962_HPOUT_VU_MASK 0x0100 /* HPOUT_VU */ 12449a76f1ffSMark Brown #define WM8962_HPOUT_VU_SHIFT 8 /* HPOUT_VU */ 12459a76f1ffSMark Brown #define WM8962_HPOUT_VU_WIDTH 1 /* HPOUT_VU */ 12469a76f1ffSMark Brown #define WM8962_HPOUTR_ZC 0x0080 /* HPOUTR_ZC */ 12479a76f1ffSMark Brown #define WM8962_HPOUTR_ZC_MASK 0x0080 /* HPOUTR_ZC */ 12489a76f1ffSMark Brown #define WM8962_HPOUTR_ZC_SHIFT 7 /* HPOUTR_ZC */ 12499a76f1ffSMark Brown #define WM8962_HPOUTR_ZC_WIDTH 1 /* HPOUTR_ZC */ 12509a76f1ffSMark Brown #define WM8962_HPOUTR_VOL_MASK 0x007F /* HPOUTR_VOL - [6:0] */ 12519a76f1ffSMark Brown #define WM8962_HPOUTR_VOL_SHIFT 0 /* HPOUTR_VOL - [6:0] */ 12529a76f1ffSMark Brown #define WM8962_HPOUTR_VOL_WIDTH 7 /* HPOUTR_VOL - [6:0] */ 12539a76f1ffSMark Brown 12549a76f1ffSMark Brown /* 12559a76f1ffSMark Brown * R4 (0x04) - Clocking1 12569a76f1ffSMark Brown */ 12579a76f1ffSMark Brown #define WM8962_DSPCLK_DIV_MASK 0x0600 /* DSPCLK_DIV - [10:9] */ 12589a76f1ffSMark Brown #define WM8962_DSPCLK_DIV_SHIFT 9 /* DSPCLK_DIV - [10:9] */ 12599a76f1ffSMark Brown #define WM8962_DSPCLK_DIV_WIDTH 2 /* DSPCLK_DIV - [10:9] */ 12609a76f1ffSMark Brown #define WM8962_ADCSYS_CLK_DIV_MASK 0x01C0 /* ADCSYS_CLK_DIV - [8:6] */ 12619a76f1ffSMark Brown #define WM8962_ADCSYS_CLK_DIV_SHIFT 6 /* ADCSYS_CLK_DIV - [8:6] */ 12629a76f1ffSMark Brown #define WM8962_ADCSYS_CLK_DIV_WIDTH 3 /* ADCSYS_CLK_DIV - [8:6] */ 12639a76f1ffSMark Brown #define WM8962_DACSYS_CLK_DIV_MASK 0x0038 /* DACSYS_CLK_DIV - [5:3] */ 12649a76f1ffSMark Brown #define WM8962_DACSYS_CLK_DIV_SHIFT 3 /* DACSYS_CLK_DIV - [5:3] */ 12659a76f1ffSMark Brown #define WM8962_DACSYS_CLK_DIV_WIDTH 3 /* DACSYS_CLK_DIV - [5:3] */ 12669a76f1ffSMark Brown #define WM8962_MCLKDIV_MASK 0x0006 /* MCLKDIV - [2:1] */ 12679a76f1ffSMark Brown #define WM8962_MCLKDIV_SHIFT 1 /* MCLKDIV - [2:1] */ 12689a76f1ffSMark Brown #define WM8962_MCLKDIV_WIDTH 2 /* MCLKDIV - [2:1] */ 12699a76f1ffSMark Brown 12709a76f1ffSMark Brown /* 12719a76f1ffSMark Brown * R5 (0x05) - ADC & DAC Control 1 12729a76f1ffSMark Brown */ 12739a76f1ffSMark Brown #define WM8962_ADCR_DAT_INV 0x0040 /* ADCR_DAT_INV */ 12749a76f1ffSMark Brown #define WM8962_ADCR_DAT_INV_MASK 0x0040 /* ADCR_DAT_INV */ 12759a76f1ffSMark Brown #define WM8962_ADCR_DAT_INV_SHIFT 6 /* ADCR_DAT_INV */ 12769a76f1ffSMark Brown #define WM8962_ADCR_DAT_INV_WIDTH 1 /* ADCR_DAT_INV */ 12779a76f1ffSMark Brown #define WM8962_ADCL_DAT_INV 0x0020 /* ADCL_DAT_INV */ 12789a76f1ffSMark Brown #define WM8962_ADCL_DAT_INV_MASK 0x0020 /* ADCL_DAT_INV */ 12799a76f1ffSMark Brown #define WM8962_ADCL_DAT_INV_SHIFT 5 /* ADCL_DAT_INV */ 12809a76f1ffSMark Brown #define WM8962_ADCL_DAT_INV_WIDTH 1 /* ADCL_DAT_INV */ 12819a76f1ffSMark Brown #define WM8962_DAC_MUTE_RAMP 0x0010 /* DAC_MUTE_RAMP */ 12829a76f1ffSMark Brown #define WM8962_DAC_MUTE_RAMP_MASK 0x0010 /* DAC_MUTE_RAMP */ 12839a76f1ffSMark Brown #define WM8962_DAC_MUTE_RAMP_SHIFT 4 /* DAC_MUTE_RAMP */ 12849a76f1ffSMark Brown #define WM8962_DAC_MUTE_RAMP_WIDTH 1 /* DAC_MUTE_RAMP */ 12859a76f1ffSMark Brown #define WM8962_DAC_MUTE 0x0008 /* DAC_MUTE */ 12869a76f1ffSMark Brown #define WM8962_DAC_MUTE_MASK 0x0008 /* DAC_MUTE */ 12879a76f1ffSMark Brown #define WM8962_DAC_MUTE_SHIFT 3 /* DAC_MUTE */ 12889a76f1ffSMark Brown #define WM8962_DAC_MUTE_WIDTH 1 /* DAC_MUTE */ 12899a76f1ffSMark Brown #define WM8962_DAC_DEEMP_MASK 0x0006 /* DAC_DEEMP - [2:1] */ 12909a76f1ffSMark Brown #define WM8962_DAC_DEEMP_SHIFT 1 /* DAC_DEEMP - [2:1] */ 12919a76f1ffSMark Brown #define WM8962_DAC_DEEMP_WIDTH 2 /* DAC_DEEMP - [2:1] */ 12929a76f1ffSMark Brown #define WM8962_ADC_HPF_DIS 0x0001 /* ADC_HPF_DIS */ 12939a76f1ffSMark Brown #define WM8962_ADC_HPF_DIS_MASK 0x0001 /* ADC_HPF_DIS */ 12949a76f1ffSMark Brown #define WM8962_ADC_HPF_DIS_SHIFT 0 /* ADC_HPF_DIS */ 12959a76f1ffSMark Brown #define WM8962_ADC_HPF_DIS_WIDTH 1 /* ADC_HPF_DIS */ 12969a76f1ffSMark Brown 12979a76f1ffSMark Brown /* 12989a76f1ffSMark Brown * R6 (0x06) - ADC & DAC Control 2 12999a76f1ffSMark Brown */ 13009a76f1ffSMark Brown #define WM8962_ADC_HPF_SR_MASK 0x3000 /* ADC_HPF_SR - [13:12] */ 13019a76f1ffSMark Brown #define WM8962_ADC_HPF_SR_SHIFT 12 /* ADC_HPF_SR - [13:12] */ 13029a76f1ffSMark Brown #define WM8962_ADC_HPF_SR_WIDTH 2 /* ADC_HPF_SR - [13:12] */ 13039a76f1ffSMark Brown #define WM8962_ADC_HPF_MODE 0x0400 /* ADC_HPF_MODE */ 13049a76f1ffSMark Brown #define WM8962_ADC_HPF_MODE_MASK 0x0400 /* ADC_HPF_MODE */ 13059a76f1ffSMark Brown #define WM8962_ADC_HPF_MODE_SHIFT 10 /* ADC_HPF_MODE */ 13069a76f1ffSMark Brown #define WM8962_ADC_HPF_MODE_WIDTH 1 /* ADC_HPF_MODE */ 13079a76f1ffSMark Brown #define WM8962_ADC_HPF_CUT_MASK 0x0380 /* ADC_HPF_CUT - [9:7] */ 13089a76f1ffSMark Brown #define WM8962_ADC_HPF_CUT_SHIFT 7 /* ADC_HPF_CUT - [9:7] */ 13099a76f1ffSMark Brown #define WM8962_ADC_HPF_CUT_WIDTH 3 /* ADC_HPF_CUT - [9:7] */ 13109a76f1ffSMark Brown #define WM8962_DACR_DAT_INV 0x0040 /* DACR_DAT_INV */ 13119a76f1ffSMark Brown #define WM8962_DACR_DAT_INV_MASK 0x0040 /* DACR_DAT_INV */ 13129a76f1ffSMark Brown #define WM8962_DACR_DAT_INV_SHIFT 6 /* DACR_DAT_INV */ 13139a76f1ffSMark Brown #define WM8962_DACR_DAT_INV_WIDTH 1 /* DACR_DAT_INV */ 13149a76f1ffSMark Brown #define WM8962_DACL_DAT_INV 0x0020 /* DACL_DAT_INV */ 13159a76f1ffSMark Brown #define WM8962_DACL_DAT_INV_MASK 0x0020 /* DACL_DAT_INV */ 13169a76f1ffSMark Brown #define WM8962_DACL_DAT_INV_SHIFT 5 /* DACL_DAT_INV */ 13179a76f1ffSMark Brown #define WM8962_DACL_DAT_INV_WIDTH 1 /* DACL_DAT_INV */ 13189a76f1ffSMark Brown #define WM8962_DAC_UNMUTE_RAMP 0x0008 /* DAC_UNMUTE_RAMP */ 13199a76f1ffSMark Brown #define WM8962_DAC_UNMUTE_RAMP_MASK 0x0008 /* DAC_UNMUTE_RAMP */ 13209a76f1ffSMark Brown #define WM8962_DAC_UNMUTE_RAMP_SHIFT 3 /* DAC_UNMUTE_RAMP */ 13219a76f1ffSMark Brown #define WM8962_DAC_UNMUTE_RAMP_WIDTH 1 /* DAC_UNMUTE_RAMP */ 13229a76f1ffSMark Brown #define WM8962_DAC_MUTERATE 0x0004 /* DAC_MUTERATE */ 13239a76f1ffSMark Brown #define WM8962_DAC_MUTERATE_MASK 0x0004 /* DAC_MUTERATE */ 13249a76f1ffSMark Brown #define WM8962_DAC_MUTERATE_SHIFT 2 /* DAC_MUTERATE */ 13259a76f1ffSMark Brown #define WM8962_DAC_MUTERATE_WIDTH 1 /* DAC_MUTERATE */ 13269a76f1ffSMark Brown #define WM8962_DAC_HP 0x0001 /* DAC_HP */ 13279a76f1ffSMark Brown #define WM8962_DAC_HP_MASK 0x0001 /* DAC_HP */ 13289a76f1ffSMark Brown #define WM8962_DAC_HP_SHIFT 0 /* DAC_HP */ 13299a76f1ffSMark Brown #define WM8962_DAC_HP_WIDTH 1 /* DAC_HP */ 13309a76f1ffSMark Brown 13319a76f1ffSMark Brown /* 13329a76f1ffSMark Brown * R7 (0x07) - Audio Interface 0 13339a76f1ffSMark Brown */ 13349a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_MODE 0x1000 /* AIFDAC_TDM_MODE */ 13359a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_MODE_MASK 0x1000 /* AIFDAC_TDM_MODE */ 13369a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_MODE_SHIFT 12 /* AIFDAC_TDM_MODE */ 13379a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_MODE_WIDTH 1 /* AIFDAC_TDM_MODE */ 13389a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_SLOT 0x0800 /* AIFDAC_TDM_SLOT */ 13399a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_SLOT_MASK 0x0800 /* AIFDAC_TDM_SLOT */ 13409a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_SLOT_SHIFT 11 /* AIFDAC_TDM_SLOT */ 13419a76f1ffSMark Brown #define WM8962_AIFDAC_TDM_SLOT_WIDTH 1 /* AIFDAC_TDM_SLOT */ 13429a76f1ffSMark Brown #define WM8962_AIFADC_TDM_MODE 0x0400 /* AIFADC_TDM_MODE */ 13439a76f1ffSMark Brown #define WM8962_AIFADC_TDM_MODE_MASK 0x0400 /* AIFADC_TDM_MODE */ 13449a76f1ffSMark Brown #define WM8962_AIFADC_TDM_MODE_SHIFT 10 /* AIFADC_TDM_MODE */ 13459a76f1ffSMark Brown #define WM8962_AIFADC_TDM_MODE_WIDTH 1 /* AIFADC_TDM_MODE */ 13469a76f1ffSMark Brown #define WM8962_AIFADC_TDM_SLOT 0x0200 /* AIFADC_TDM_SLOT */ 13479a76f1ffSMark Brown #define WM8962_AIFADC_TDM_SLOT_MASK 0x0200 /* AIFADC_TDM_SLOT */ 13489a76f1ffSMark Brown #define WM8962_AIFADC_TDM_SLOT_SHIFT 9 /* AIFADC_TDM_SLOT */ 13499a76f1ffSMark Brown #define WM8962_AIFADC_TDM_SLOT_WIDTH 1 /* AIFADC_TDM_SLOT */ 13509a76f1ffSMark Brown #define WM8962_ADC_LRSWAP 0x0100 /* ADC_LRSWAP */ 13519a76f1ffSMark Brown #define WM8962_ADC_LRSWAP_MASK 0x0100 /* ADC_LRSWAP */ 13529a76f1ffSMark Brown #define WM8962_ADC_LRSWAP_SHIFT 8 /* ADC_LRSWAP */ 13539a76f1ffSMark Brown #define WM8962_ADC_LRSWAP_WIDTH 1 /* ADC_LRSWAP */ 13549a76f1ffSMark Brown #define WM8962_BCLK_INV 0x0080 /* BCLK_INV */ 13559a76f1ffSMark Brown #define WM8962_BCLK_INV_MASK 0x0080 /* BCLK_INV */ 13569a76f1ffSMark Brown #define WM8962_BCLK_INV_SHIFT 7 /* BCLK_INV */ 13579a76f1ffSMark Brown #define WM8962_BCLK_INV_WIDTH 1 /* BCLK_INV */ 13589a76f1ffSMark Brown #define WM8962_MSTR 0x0040 /* MSTR */ 13599a76f1ffSMark Brown #define WM8962_MSTR_MASK 0x0040 /* MSTR */ 13609a76f1ffSMark Brown #define WM8962_MSTR_SHIFT 6 /* MSTR */ 13619a76f1ffSMark Brown #define WM8962_MSTR_WIDTH 1 /* MSTR */ 13629a76f1ffSMark Brown #define WM8962_DAC_LRSWAP 0x0020 /* DAC_LRSWAP */ 13639a76f1ffSMark Brown #define WM8962_DAC_LRSWAP_MASK 0x0020 /* DAC_LRSWAP */ 13649a76f1ffSMark Brown #define WM8962_DAC_LRSWAP_SHIFT 5 /* DAC_LRSWAP */ 13659a76f1ffSMark Brown #define WM8962_DAC_LRSWAP_WIDTH 1 /* DAC_LRSWAP */ 13669a76f1ffSMark Brown #define WM8962_LRCLK_INV 0x0010 /* LRCLK_INV */ 13679a76f1ffSMark Brown #define WM8962_LRCLK_INV_MASK 0x0010 /* LRCLK_INV */ 13689a76f1ffSMark Brown #define WM8962_LRCLK_INV_SHIFT 4 /* LRCLK_INV */ 13699a76f1ffSMark Brown #define WM8962_LRCLK_INV_WIDTH 1 /* LRCLK_INV */ 13709a76f1ffSMark Brown #define WM8962_WL_MASK 0x000C /* WL - [3:2] */ 13719a76f1ffSMark Brown #define WM8962_WL_SHIFT 2 /* WL - [3:2] */ 13729a76f1ffSMark Brown #define WM8962_WL_WIDTH 2 /* WL - [3:2] */ 13739a76f1ffSMark Brown #define WM8962_FMT_MASK 0x0003 /* FMT - [1:0] */ 13749a76f1ffSMark Brown #define WM8962_FMT_SHIFT 0 /* FMT - [1:0] */ 13759a76f1ffSMark Brown #define WM8962_FMT_WIDTH 2 /* FMT - [1:0] */ 13769a76f1ffSMark Brown 13779a76f1ffSMark Brown /* 13789a76f1ffSMark Brown * R8 (0x08) - Clocking2 13799a76f1ffSMark Brown */ 13809a76f1ffSMark Brown #define WM8962_CLKREG_OVD 0x0800 /* CLKREG_OVD */ 13819a76f1ffSMark Brown #define WM8962_CLKREG_OVD_MASK 0x0800 /* CLKREG_OVD */ 13829a76f1ffSMark Brown #define WM8962_CLKREG_OVD_SHIFT 11 /* CLKREG_OVD */ 13839a76f1ffSMark Brown #define WM8962_CLKREG_OVD_WIDTH 1 /* CLKREG_OVD */ 13849a76f1ffSMark Brown #define WM8962_SYSCLK_SRC_MASK 0x0600 /* SYSCLK_SRC - [10:9] */ 13859a76f1ffSMark Brown #define WM8962_SYSCLK_SRC_SHIFT 9 /* SYSCLK_SRC - [10:9] */ 13869a76f1ffSMark Brown #define WM8962_SYSCLK_SRC_WIDTH 2 /* SYSCLK_SRC - [10:9] */ 13879a76f1ffSMark Brown #define WM8962_CLASSD_CLK_DIV_MASK 0x01C0 /* CLASSD_CLK_DIV - [8:6] */ 13889a76f1ffSMark Brown #define WM8962_CLASSD_CLK_DIV_SHIFT 6 /* CLASSD_CLK_DIV - [8:6] */ 13899a76f1ffSMark Brown #define WM8962_CLASSD_CLK_DIV_WIDTH 3 /* CLASSD_CLK_DIV - [8:6] */ 13909a76f1ffSMark Brown #define WM8962_SYSCLK_ENA 0x0020 /* SYSCLK_ENA */ 13919a76f1ffSMark Brown #define WM8962_SYSCLK_ENA_MASK 0x0020 /* SYSCLK_ENA */ 13929a76f1ffSMark Brown #define WM8962_SYSCLK_ENA_SHIFT 5 /* SYSCLK_ENA */ 13939a76f1ffSMark Brown #define WM8962_SYSCLK_ENA_WIDTH 1 /* SYSCLK_ENA */ 13949a76f1ffSMark Brown #define WM8962_BCLK_DIV_MASK 0x000F /* BCLK_DIV - [3:0] */ 13959a76f1ffSMark Brown #define WM8962_BCLK_DIV_SHIFT 0 /* BCLK_DIV - [3:0] */ 13969a76f1ffSMark Brown #define WM8962_BCLK_DIV_WIDTH 4 /* BCLK_DIV - [3:0] */ 13979a76f1ffSMark Brown 13989a76f1ffSMark Brown /* 13999a76f1ffSMark Brown * R9 (0x09) - Audio Interface 1 14009a76f1ffSMark Brown */ 14019a76f1ffSMark Brown #define WM8962_AUTOMUTE_STS 0x0800 /* AUTOMUTE_STS */ 14029a76f1ffSMark Brown #define WM8962_AUTOMUTE_STS_MASK 0x0800 /* AUTOMUTE_STS */ 14039a76f1ffSMark Brown #define WM8962_AUTOMUTE_STS_SHIFT 11 /* AUTOMUTE_STS */ 14049a76f1ffSMark Brown #define WM8962_AUTOMUTE_STS_WIDTH 1 /* AUTOMUTE_STS */ 14059a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE_SAMPLES_MASK 0x0300 /* DAC_AUTOMUTE_SAMPLES - [9:8] */ 14069a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE_SAMPLES_SHIFT 8 /* DAC_AUTOMUTE_SAMPLES - [9:8] */ 14079a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE_SAMPLES_WIDTH 2 /* DAC_AUTOMUTE_SAMPLES - [9:8] */ 14089a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE 0x0080 /* DAC_AUTOMUTE */ 14099a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE_MASK 0x0080 /* DAC_AUTOMUTE */ 14109a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE_SHIFT 7 /* DAC_AUTOMUTE */ 14119a76f1ffSMark Brown #define WM8962_DAC_AUTOMUTE_WIDTH 1 /* DAC_AUTOMUTE */ 14129a76f1ffSMark Brown #define WM8962_DAC_COMP 0x0010 /* DAC_COMP */ 14139a76f1ffSMark Brown #define WM8962_DAC_COMP_MASK 0x0010 /* DAC_COMP */ 14149a76f1ffSMark Brown #define WM8962_DAC_COMP_SHIFT 4 /* DAC_COMP */ 14159a76f1ffSMark Brown #define WM8962_DAC_COMP_WIDTH 1 /* DAC_COMP */ 14169a76f1ffSMark Brown #define WM8962_DAC_COMPMODE 0x0008 /* DAC_COMPMODE */ 14179a76f1ffSMark Brown #define WM8962_DAC_COMPMODE_MASK 0x0008 /* DAC_COMPMODE */ 14189a76f1ffSMark Brown #define WM8962_DAC_COMPMODE_SHIFT 3 /* DAC_COMPMODE */ 14199a76f1ffSMark Brown #define WM8962_DAC_COMPMODE_WIDTH 1 /* DAC_COMPMODE */ 14209a76f1ffSMark Brown #define WM8962_ADC_COMP 0x0004 /* ADC_COMP */ 14219a76f1ffSMark Brown #define WM8962_ADC_COMP_MASK 0x0004 /* ADC_COMP */ 14229a76f1ffSMark Brown #define WM8962_ADC_COMP_SHIFT 2 /* ADC_COMP */ 14239a76f1ffSMark Brown #define WM8962_ADC_COMP_WIDTH 1 /* ADC_COMP */ 14249a76f1ffSMark Brown #define WM8962_ADC_COMPMODE 0x0002 /* ADC_COMPMODE */ 14259a76f1ffSMark Brown #define WM8962_ADC_COMPMODE_MASK 0x0002 /* ADC_COMPMODE */ 14269a76f1ffSMark Brown #define WM8962_ADC_COMPMODE_SHIFT 1 /* ADC_COMPMODE */ 14279a76f1ffSMark Brown #define WM8962_ADC_COMPMODE_WIDTH 1 /* ADC_COMPMODE */ 14289a76f1ffSMark Brown #define WM8962_LOOPBACK 0x0001 /* LOOPBACK */ 14299a76f1ffSMark Brown #define WM8962_LOOPBACK_MASK 0x0001 /* LOOPBACK */ 14309a76f1ffSMark Brown #define WM8962_LOOPBACK_SHIFT 0 /* LOOPBACK */ 14319a76f1ffSMark Brown #define WM8962_LOOPBACK_WIDTH 1 /* LOOPBACK */ 14329a76f1ffSMark Brown 14339a76f1ffSMark Brown /* 14349a76f1ffSMark Brown * R10 (0x0A) - Left DAC volume 14359a76f1ffSMark Brown */ 14369a76f1ffSMark Brown #define WM8962_DAC_VU 0x0100 /* DAC_VU */ 14379a76f1ffSMark Brown #define WM8962_DAC_VU_MASK 0x0100 /* DAC_VU */ 14389a76f1ffSMark Brown #define WM8962_DAC_VU_SHIFT 8 /* DAC_VU */ 14399a76f1ffSMark Brown #define WM8962_DAC_VU_WIDTH 1 /* DAC_VU */ 14409a76f1ffSMark Brown #define WM8962_DACL_VOL_MASK 0x00FF /* DACL_VOL - [7:0] */ 14419a76f1ffSMark Brown #define WM8962_DACL_VOL_SHIFT 0 /* DACL_VOL - [7:0] */ 14429a76f1ffSMark Brown #define WM8962_DACL_VOL_WIDTH 8 /* DACL_VOL - [7:0] */ 14439a76f1ffSMark Brown 14449a76f1ffSMark Brown /* 14459a76f1ffSMark Brown * R11 (0x0B) - Right DAC volume 14469a76f1ffSMark Brown */ 14479a76f1ffSMark Brown #define WM8962_DAC_VU 0x0100 /* DAC_VU */ 14489a76f1ffSMark Brown #define WM8962_DAC_VU_MASK 0x0100 /* DAC_VU */ 14499a76f1ffSMark Brown #define WM8962_DAC_VU_SHIFT 8 /* DAC_VU */ 14509a76f1ffSMark Brown #define WM8962_DAC_VU_WIDTH 1 /* DAC_VU */ 14519a76f1ffSMark Brown #define WM8962_DACR_VOL_MASK 0x00FF /* DACR_VOL - [7:0] */ 14529a76f1ffSMark Brown #define WM8962_DACR_VOL_SHIFT 0 /* DACR_VOL - [7:0] */ 14539a76f1ffSMark Brown #define WM8962_DACR_VOL_WIDTH 8 /* DACR_VOL - [7:0] */ 14549a76f1ffSMark Brown 14559a76f1ffSMark Brown /* 14569a76f1ffSMark Brown * R14 (0x0E) - Audio Interface 2 14579a76f1ffSMark Brown */ 14589a76f1ffSMark Brown #define WM8962_AIF_RATE_MASK 0x07FF /* AIF_RATE - [10:0] */ 14599a76f1ffSMark Brown #define WM8962_AIF_RATE_SHIFT 0 /* AIF_RATE - [10:0] */ 14609a76f1ffSMark Brown #define WM8962_AIF_RATE_WIDTH 11 /* AIF_RATE - [10:0] */ 14619a76f1ffSMark Brown 14629a76f1ffSMark Brown /* 14639a76f1ffSMark Brown * R15 (0x0F) - Software Reset 14649a76f1ffSMark Brown */ 14659a76f1ffSMark Brown #define WM8962_SW_RESET_MASK 0xFFFF /* SW_RESET - [15:0] */ 14669a76f1ffSMark Brown #define WM8962_SW_RESET_SHIFT 0 /* SW_RESET - [15:0] */ 14679a76f1ffSMark Brown #define WM8962_SW_RESET_WIDTH 16 /* SW_RESET - [15:0] */ 14689a76f1ffSMark Brown 14699a76f1ffSMark Brown /* 14709a76f1ffSMark Brown * R17 (0x11) - ALC1 14719a76f1ffSMark Brown */ 14729a76f1ffSMark Brown #define WM8962_ALC_INACTIVE_ENA 0x0400 /* ALC_INACTIVE_ENA */ 14739a76f1ffSMark Brown #define WM8962_ALC_INACTIVE_ENA_MASK 0x0400 /* ALC_INACTIVE_ENA */ 14749a76f1ffSMark Brown #define WM8962_ALC_INACTIVE_ENA_SHIFT 10 /* ALC_INACTIVE_ENA */ 14759a76f1ffSMark Brown #define WM8962_ALC_INACTIVE_ENA_WIDTH 1 /* ALC_INACTIVE_ENA */ 14769a76f1ffSMark Brown #define WM8962_ALC_LVL_MODE 0x0200 /* ALC_LVL_MODE */ 14779a76f1ffSMark Brown #define WM8962_ALC_LVL_MODE_MASK 0x0200 /* ALC_LVL_MODE */ 14789a76f1ffSMark Brown #define WM8962_ALC_LVL_MODE_SHIFT 9 /* ALC_LVL_MODE */ 14799a76f1ffSMark Brown #define WM8962_ALC_LVL_MODE_WIDTH 1 /* ALC_LVL_MODE */ 14809a76f1ffSMark Brown #define WM8962_ALCL_ENA 0x0100 /* ALCL_ENA */ 14819a76f1ffSMark Brown #define WM8962_ALCL_ENA_MASK 0x0100 /* ALCL_ENA */ 14829a76f1ffSMark Brown #define WM8962_ALCL_ENA_SHIFT 8 /* ALCL_ENA */ 14839a76f1ffSMark Brown #define WM8962_ALCL_ENA_WIDTH 1 /* ALCL_ENA */ 14849a76f1ffSMark Brown #define WM8962_ALCR_ENA 0x0080 /* ALCR_ENA */ 14859a76f1ffSMark Brown #define WM8962_ALCR_ENA_MASK 0x0080 /* ALCR_ENA */ 14869a76f1ffSMark Brown #define WM8962_ALCR_ENA_SHIFT 7 /* ALCR_ENA */ 14879a76f1ffSMark Brown #define WM8962_ALCR_ENA_WIDTH 1 /* ALCR_ENA */ 14889a76f1ffSMark Brown #define WM8962_ALC_MAXGAIN_MASK 0x0070 /* ALC_MAXGAIN - [6:4] */ 14899a76f1ffSMark Brown #define WM8962_ALC_MAXGAIN_SHIFT 4 /* ALC_MAXGAIN - [6:4] */ 14909a76f1ffSMark Brown #define WM8962_ALC_MAXGAIN_WIDTH 3 /* ALC_MAXGAIN - [6:4] */ 14919a76f1ffSMark Brown #define WM8962_ALC_LVL_MASK 0x000F /* ALC_LVL - [3:0] */ 14929a76f1ffSMark Brown #define WM8962_ALC_LVL_SHIFT 0 /* ALC_LVL - [3:0] */ 14939a76f1ffSMark Brown #define WM8962_ALC_LVL_WIDTH 4 /* ALC_LVL - [3:0] */ 14949a76f1ffSMark Brown 14959a76f1ffSMark Brown /* 14969a76f1ffSMark Brown * R18 (0x12) - ALC2 14979a76f1ffSMark Brown */ 14989a76f1ffSMark Brown #define WM8962_ALC_LOCK_STS 0x8000 /* ALC_LOCK_STS */ 14999a76f1ffSMark Brown #define WM8962_ALC_LOCK_STS_MASK 0x8000 /* ALC_LOCK_STS */ 15009a76f1ffSMark Brown #define WM8962_ALC_LOCK_STS_SHIFT 15 /* ALC_LOCK_STS */ 15019a76f1ffSMark Brown #define WM8962_ALC_LOCK_STS_WIDTH 1 /* ALC_LOCK_STS */ 15029a76f1ffSMark Brown #define WM8962_ALC_THRESH_STS 0x4000 /* ALC_THRESH_STS */ 15039a76f1ffSMark Brown #define WM8962_ALC_THRESH_STS_MASK 0x4000 /* ALC_THRESH_STS */ 15049a76f1ffSMark Brown #define WM8962_ALC_THRESH_STS_SHIFT 14 /* ALC_THRESH_STS */ 15059a76f1ffSMark Brown #define WM8962_ALC_THRESH_STS_WIDTH 1 /* ALC_THRESH_STS */ 15069a76f1ffSMark Brown #define WM8962_ALC_SAT_STS 0x2000 /* ALC_SAT_STS */ 15079a76f1ffSMark Brown #define WM8962_ALC_SAT_STS_MASK 0x2000 /* ALC_SAT_STS */ 15089a76f1ffSMark Brown #define WM8962_ALC_SAT_STS_SHIFT 13 /* ALC_SAT_STS */ 15099a76f1ffSMark Brown #define WM8962_ALC_SAT_STS_WIDTH 1 /* ALC_SAT_STS */ 15109a76f1ffSMark Brown #define WM8962_ALC_PKOVR_STS 0x1000 /* ALC_PKOVR_STS */ 15119a76f1ffSMark Brown #define WM8962_ALC_PKOVR_STS_MASK 0x1000 /* ALC_PKOVR_STS */ 15129a76f1ffSMark Brown #define WM8962_ALC_PKOVR_STS_SHIFT 12 /* ALC_PKOVR_STS */ 15139a76f1ffSMark Brown #define WM8962_ALC_PKOVR_STS_WIDTH 1 /* ALC_PKOVR_STS */ 15149a76f1ffSMark Brown #define WM8962_ALC_NGATE_STS 0x0800 /* ALC_NGATE_STS */ 15159a76f1ffSMark Brown #define WM8962_ALC_NGATE_STS_MASK 0x0800 /* ALC_NGATE_STS */ 15169a76f1ffSMark Brown #define WM8962_ALC_NGATE_STS_SHIFT 11 /* ALC_NGATE_STS */ 15179a76f1ffSMark Brown #define WM8962_ALC_NGATE_STS_WIDTH 1 /* ALC_NGATE_STS */ 15189a76f1ffSMark Brown #define WM8962_ALC_ZC 0x0080 /* ALC_ZC */ 15199a76f1ffSMark Brown #define WM8962_ALC_ZC_MASK 0x0080 /* ALC_ZC */ 15209a76f1ffSMark Brown #define WM8962_ALC_ZC_SHIFT 7 /* ALC_ZC */ 15219a76f1ffSMark Brown #define WM8962_ALC_ZC_WIDTH 1 /* ALC_ZC */ 15229a76f1ffSMark Brown #define WM8962_ALC_MINGAIN_MASK 0x0070 /* ALC_MINGAIN - [6:4] */ 15239a76f1ffSMark Brown #define WM8962_ALC_MINGAIN_SHIFT 4 /* ALC_MINGAIN - [6:4] */ 15249a76f1ffSMark Brown #define WM8962_ALC_MINGAIN_WIDTH 3 /* ALC_MINGAIN - [6:4] */ 15259a76f1ffSMark Brown #define WM8962_ALC_HLD_MASK 0x000F /* ALC_HLD - [3:0] */ 15269a76f1ffSMark Brown #define WM8962_ALC_HLD_SHIFT 0 /* ALC_HLD - [3:0] */ 15279a76f1ffSMark Brown #define WM8962_ALC_HLD_WIDTH 4 /* ALC_HLD - [3:0] */ 15289a76f1ffSMark Brown 15299a76f1ffSMark Brown /* 15309a76f1ffSMark Brown * R19 (0x13) - ALC3 15319a76f1ffSMark Brown */ 15329a76f1ffSMark Brown #define WM8962_ALC_NGATE_GAIN_MASK 0x1C00 /* ALC_NGATE_GAIN - [12:10] */ 15339a76f1ffSMark Brown #define WM8962_ALC_NGATE_GAIN_SHIFT 10 /* ALC_NGATE_GAIN - [12:10] */ 15349a76f1ffSMark Brown #define WM8962_ALC_NGATE_GAIN_WIDTH 3 /* ALC_NGATE_GAIN - [12:10] */ 15359a76f1ffSMark Brown #define WM8962_ALC_MODE 0x0100 /* ALC_MODE */ 15369a76f1ffSMark Brown #define WM8962_ALC_MODE_MASK 0x0100 /* ALC_MODE */ 15379a76f1ffSMark Brown #define WM8962_ALC_MODE_SHIFT 8 /* ALC_MODE */ 15389a76f1ffSMark Brown #define WM8962_ALC_MODE_WIDTH 1 /* ALC_MODE */ 15399a76f1ffSMark Brown #define WM8962_ALC_DCY_MASK 0x00F0 /* ALC_DCY - [7:4] */ 15409a76f1ffSMark Brown #define WM8962_ALC_DCY_SHIFT 4 /* ALC_DCY - [7:4] */ 15419a76f1ffSMark Brown #define WM8962_ALC_DCY_WIDTH 4 /* ALC_DCY - [7:4] */ 15429a76f1ffSMark Brown #define WM8962_ALC_ATK_MASK 0x000F /* ALC_ATK - [3:0] */ 15439a76f1ffSMark Brown #define WM8962_ALC_ATK_SHIFT 0 /* ALC_ATK - [3:0] */ 15449a76f1ffSMark Brown #define WM8962_ALC_ATK_WIDTH 4 /* ALC_ATK - [3:0] */ 15459a76f1ffSMark Brown 15469a76f1ffSMark Brown /* 15479a76f1ffSMark Brown * R20 (0x14) - Noise Gate 15489a76f1ffSMark Brown */ 15499a76f1ffSMark Brown #define WM8962_ALC_NGATE_DCY_MASK 0xF000 /* ALC_NGATE_DCY - [15:12] */ 15509a76f1ffSMark Brown #define WM8962_ALC_NGATE_DCY_SHIFT 12 /* ALC_NGATE_DCY - [15:12] */ 15519a76f1ffSMark Brown #define WM8962_ALC_NGATE_DCY_WIDTH 4 /* ALC_NGATE_DCY - [15:12] */ 15529a76f1ffSMark Brown #define WM8962_ALC_NGATE_ATK_MASK 0x0F00 /* ALC_NGATE_ATK - [11:8] */ 15539a76f1ffSMark Brown #define WM8962_ALC_NGATE_ATK_SHIFT 8 /* ALC_NGATE_ATK - [11:8] */ 15549a76f1ffSMark Brown #define WM8962_ALC_NGATE_ATK_WIDTH 4 /* ALC_NGATE_ATK - [11:8] */ 15559a76f1ffSMark Brown #define WM8962_ALC_NGATE_THR_MASK 0x00F8 /* ALC_NGATE_THR - [7:3] */ 15569a76f1ffSMark Brown #define WM8962_ALC_NGATE_THR_SHIFT 3 /* ALC_NGATE_THR - [7:3] */ 15579a76f1ffSMark Brown #define WM8962_ALC_NGATE_THR_WIDTH 5 /* ALC_NGATE_THR - [7:3] */ 15589a76f1ffSMark Brown #define WM8962_ALC_NGATE_MODE_MASK 0x0006 /* ALC_NGATE_MODE - [2:1] */ 15599a76f1ffSMark Brown #define WM8962_ALC_NGATE_MODE_SHIFT 1 /* ALC_NGATE_MODE - [2:1] */ 15609a76f1ffSMark Brown #define WM8962_ALC_NGATE_MODE_WIDTH 2 /* ALC_NGATE_MODE - [2:1] */ 15619a76f1ffSMark Brown #define WM8962_ALC_NGATE_ENA 0x0001 /* ALC_NGATE_ENA */ 15629a76f1ffSMark Brown #define WM8962_ALC_NGATE_ENA_MASK 0x0001 /* ALC_NGATE_ENA */ 15639a76f1ffSMark Brown #define WM8962_ALC_NGATE_ENA_SHIFT 0 /* ALC_NGATE_ENA */ 15649a76f1ffSMark Brown #define WM8962_ALC_NGATE_ENA_WIDTH 1 /* ALC_NGATE_ENA */ 15659a76f1ffSMark Brown 15669a76f1ffSMark Brown /* 15679a76f1ffSMark Brown * R21 (0x15) - Left ADC volume 15689a76f1ffSMark Brown */ 15699a76f1ffSMark Brown #define WM8962_ADC_VU 0x0100 /* ADC_VU */ 15709a76f1ffSMark Brown #define WM8962_ADC_VU_MASK 0x0100 /* ADC_VU */ 15719a76f1ffSMark Brown #define WM8962_ADC_VU_SHIFT 8 /* ADC_VU */ 15729a76f1ffSMark Brown #define WM8962_ADC_VU_WIDTH 1 /* ADC_VU */ 15739a76f1ffSMark Brown #define WM8962_ADCL_VOL_MASK 0x00FF /* ADCL_VOL - [7:0] */ 15749a76f1ffSMark Brown #define WM8962_ADCL_VOL_SHIFT 0 /* ADCL_VOL - [7:0] */ 15759a76f1ffSMark Brown #define WM8962_ADCL_VOL_WIDTH 8 /* ADCL_VOL - [7:0] */ 15769a76f1ffSMark Brown 15779a76f1ffSMark Brown /* 15789a76f1ffSMark Brown * R22 (0x16) - Right ADC volume 15799a76f1ffSMark Brown */ 15809a76f1ffSMark Brown #define WM8962_ADC_VU 0x0100 /* ADC_VU */ 15819a76f1ffSMark Brown #define WM8962_ADC_VU_MASK 0x0100 /* ADC_VU */ 15829a76f1ffSMark Brown #define WM8962_ADC_VU_SHIFT 8 /* ADC_VU */ 15839a76f1ffSMark Brown #define WM8962_ADC_VU_WIDTH 1 /* ADC_VU */ 15849a76f1ffSMark Brown #define WM8962_ADCR_VOL_MASK 0x00FF /* ADCR_VOL - [7:0] */ 15859a76f1ffSMark Brown #define WM8962_ADCR_VOL_SHIFT 0 /* ADCR_VOL - [7:0] */ 15869a76f1ffSMark Brown #define WM8962_ADCR_VOL_WIDTH 8 /* ADCR_VOL - [7:0] */ 15879a76f1ffSMark Brown 15889a76f1ffSMark Brown /* 15899a76f1ffSMark Brown * R23 (0x17) - Additional control(1) 15909a76f1ffSMark Brown */ 15919a76f1ffSMark Brown #define WM8962_THERR_ACT 0x0100 /* THERR_ACT */ 15929a76f1ffSMark Brown #define WM8962_THERR_ACT_MASK 0x0100 /* THERR_ACT */ 15939a76f1ffSMark Brown #define WM8962_THERR_ACT_SHIFT 8 /* THERR_ACT */ 15949a76f1ffSMark Brown #define WM8962_THERR_ACT_WIDTH 1 /* THERR_ACT */ 15959a76f1ffSMark Brown #define WM8962_ADC_BIAS 0x0040 /* ADC_BIAS */ 15969a76f1ffSMark Brown #define WM8962_ADC_BIAS_MASK 0x0040 /* ADC_BIAS */ 15979a76f1ffSMark Brown #define WM8962_ADC_BIAS_SHIFT 6 /* ADC_BIAS */ 15989a76f1ffSMark Brown #define WM8962_ADC_BIAS_WIDTH 1 /* ADC_BIAS */ 15999a76f1ffSMark Brown #define WM8962_ADC_HP 0x0020 /* ADC_HP */ 16009a76f1ffSMark Brown #define WM8962_ADC_HP_MASK 0x0020 /* ADC_HP */ 16019a76f1ffSMark Brown #define WM8962_ADC_HP_SHIFT 5 /* ADC_HP */ 16029a76f1ffSMark Brown #define WM8962_ADC_HP_WIDTH 1 /* ADC_HP */ 16039a76f1ffSMark Brown #define WM8962_TOCLK_ENA 0x0001 /* TOCLK_ENA */ 16049a76f1ffSMark Brown #define WM8962_TOCLK_ENA_MASK 0x0001 /* TOCLK_ENA */ 16059a76f1ffSMark Brown #define WM8962_TOCLK_ENA_SHIFT 0 /* TOCLK_ENA */ 16069a76f1ffSMark Brown #define WM8962_TOCLK_ENA_WIDTH 1 /* TOCLK_ENA */ 16079a76f1ffSMark Brown 16089a76f1ffSMark Brown /* 16099a76f1ffSMark Brown * R24 (0x18) - Additional control(2) 16109a76f1ffSMark Brown */ 16119a76f1ffSMark Brown #define WM8962_AIF_TRI 0x0008 /* AIF_TRI */ 16129a76f1ffSMark Brown #define WM8962_AIF_TRI_MASK 0x0008 /* AIF_TRI */ 16139a76f1ffSMark Brown #define WM8962_AIF_TRI_SHIFT 3 /* AIF_TRI */ 16149a76f1ffSMark Brown #define WM8962_AIF_TRI_WIDTH 1 /* AIF_TRI */ 16159a76f1ffSMark Brown 16169a76f1ffSMark Brown /* 16179a76f1ffSMark Brown * R25 (0x19) - Pwr Mgmt (1) 16189a76f1ffSMark Brown */ 16199a76f1ffSMark Brown #define WM8962_DMIC_ENA 0x0400 /* DMIC_ENA */ 16209a76f1ffSMark Brown #define WM8962_DMIC_ENA_MASK 0x0400 /* DMIC_ENA */ 16219a76f1ffSMark Brown #define WM8962_DMIC_ENA_SHIFT 10 /* DMIC_ENA */ 16229a76f1ffSMark Brown #define WM8962_DMIC_ENA_WIDTH 1 /* DMIC_ENA */ 16239a76f1ffSMark Brown #define WM8962_OPCLK_ENA 0x0200 /* OPCLK_ENA */ 16249a76f1ffSMark Brown #define WM8962_OPCLK_ENA_MASK 0x0200 /* OPCLK_ENA */ 16259a76f1ffSMark Brown #define WM8962_OPCLK_ENA_SHIFT 9 /* OPCLK_ENA */ 16269a76f1ffSMark Brown #define WM8962_OPCLK_ENA_WIDTH 1 /* OPCLK_ENA */ 16279a76f1ffSMark Brown #define WM8962_VMID_SEL_MASK 0x0180 /* VMID_SEL - [8:7] */ 16289a76f1ffSMark Brown #define WM8962_VMID_SEL_SHIFT 7 /* VMID_SEL - [8:7] */ 16299a76f1ffSMark Brown #define WM8962_VMID_SEL_WIDTH 2 /* VMID_SEL - [8:7] */ 16309a76f1ffSMark Brown #define WM8962_BIAS_ENA 0x0040 /* BIAS_ENA */ 16319a76f1ffSMark Brown #define WM8962_BIAS_ENA_MASK 0x0040 /* BIAS_ENA */ 16329a76f1ffSMark Brown #define WM8962_BIAS_ENA_SHIFT 6 /* BIAS_ENA */ 16339a76f1ffSMark Brown #define WM8962_BIAS_ENA_WIDTH 1 /* BIAS_ENA */ 16349a76f1ffSMark Brown #define WM8962_INL_ENA 0x0020 /* INL_ENA */ 16359a76f1ffSMark Brown #define WM8962_INL_ENA_MASK 0x0020 /* INL_ENA */ 16369a76f1ffSMark Brown #define WM8962_INL_ENA_SHIFT 5 /* INL_ENA */ 16379a76f1ffSMark Brown #define WM8962_INL_ENA_WIDTH 1 /* INL_ENA */ 16389a76f1ffSMark Brown #define WM8962_INR_ENA 0x0010 /* INR_ENA */ 16399a76f1ffSMark Brown #define WM8962_INR_ENA_MASK 0x0010 /* INR_ENA */ 16409a76f1ffSMark Brown #define WM8962_INR_ENA_SHIFT 4 /* INR_ENA */ 16419a76f1ffSMark Brown #define WM8962_INR_ENA_WIDTH 1 /* INR_ENA */ 16429a76f1ffSMark Brown #define WM8962_ADCL_ENA 0x0008 /* ADCL_ENA */ 16439a76f1ffSMark Brown #define WM8962_ADCL_ENA_MASK 0x0008 /* ADCL_ENA */ 16449a76f1ffSMark Brown #define WM8962_ADCL_ENA_SHIFT 3 /* ADCL_ENA */ 16459a76f1ffSMark Brown #define WM8962_ADCL_ENA_WIDTH 1 /* ADCL_ENA */ 16469a76f1ffSMark Brown #define WM8962_ADCR_ENA 0x0004 /* ADCR_ENA */ 16479a76f1ffSMark Brown #define WM8962_ADCR_ENA_MASK 0x0004 /* ADCR_ENA */ 16489a76f1ffSMark Brown #define WM8962_ADCR_ENA_SHIFT 2 /* ADCR_ENA */ 16499a76f1ffSMark Brown #define WM8962_ADCR_ENA_WIDTH 1 /* ADCR_ENA */ 16509a76f1ffSMark Brown #define WM8962_MICBIAS_ENA 0x0002 /* MICBIAS_ENA */ 16519a76f1ffSMark Brown #define WM8962_MICBIAS_ENA_MASK 0x0002 /* MICBIAS_ENA */ 16529a76f1ffSMark Brown #define WM8962_MICBIAS_ENA_SHIFT 1 /* MICBIAS_ENA */ 16539a76f1ffSMark Brown #define WM8962_MICBIAS_ENA_WIDTH 1 /* MICBIAS_ENA */ 16549a76f1ffSMark Brown 16559a76f1ffSMark Brown /* 16569a76f1ffSMark Brown * R26 (0x1A) - Pwr Mgmt (2) 16579a76f1ffSMark Brown */ 16589a76f1ffSMark Brown #define WM8962_DACL_ENA 0x0100 /* DACL_ENA */ 16599a76f1ffSMark Brown #define WM8962_DACL_ENA_MASK 0x0100 /* DACL_ENA */ 16609a76f1ffSMark Brown #define WM8962_DACL_ENA_SHIFT 8 /* DACL_ENA */ 16619a76f1ffSMark Brown #define WM8962_DACL_ENA_WIDTH 1 /* DACL_ENA */ 16629a76f1ffSMark Brown #define WM8962_DACR_ENA 0x0080 /* DACR_ENA */ 16639a76f1ffSMark Brown #define WM8962_DACR_ENA_MASK 0x0080 /* DACR_ENA */ 16649a76f1ffSMark Brown #define WM8962_DACR_ENA_SHIFT 7 /* DACR_ENA */ 16659a76f1ffSMark Brown #define WM8962_DACR_ENA_WIDTH 1 /* DACR_ENA */ 16669a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_ENA 0x0040 /* HPOUTL_PGA_ENA */ 16679a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_ENA_MASK 0x0040 /* HPOUTL_PGA_ENA */ 16689a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_ENA_SHIFT 6 /* HPOUTL_PGA_ENA */ 16699a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_ENA_WIDTH 1 /* HPOUTL_PGA_ENA */ 16709a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_ENA 0x0020 /* HPOUTR_PGA_ENA */ 16719a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_ENA_MASK 0x0020 /* HPOUTR_PGA_ENA */ 16729a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_ENA_SHIFT 5 /* HPOUTR_PGA_ENA */ 16739a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_ENA_WIDTH 1 /* HPOUTR_PGA_ENA */ 16749a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_ENA 0x0010 /* SPKOUTL_PGA_ENA */ 16759a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_ENA_MASK 0x0010 /* SPKOUTL_PGA_ENA */ 16769a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_ENA_SHIFT 4 /* SPKOUTL_PGA_ENA */ 16779a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_ENA_WIDTH 1 /* SPKOUTL_PGA_ENA */ 16789a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_ENA 0x0008 /* SPKOUTR_PGA_ENA */ 16799a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_ENA_MASK 0x0008 /* SPKOUTR_PGA_ENA */ 16809a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_ENA_SHIFT 3 /* SPKOUTR_PGA_ENA */ 16819a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_ENA_WIDTH 1 /* SPKOUTR_PGA_ENA */ 16829a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_MUTE 0x0002 /* HPOUTL_PGA_MUTE */ 16839a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_MUTE_MASK 0x0002 /* HPOUTL_PGA_MUTE */ 16849a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_MUTE_SHIFT 1 /* HPOUTL_PGA_MUTE */ 16859a76f1ffSMark Brown #define WM8962_HPOUTL_PGA_MUTE_WIDTH 1 /* HPOUTL_PGA_MUTE */ 16869a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_MUTE 0x0001 /* HPOUTR_PGA_MUTE */ 16879a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_MUTE_MASK 0x0001 /* HPOUTR_PGA_MUTE */ 16889a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_MUTE_SHIFT 0 /* HPOUTR_PGA_MUTE */ 16899a76f1ffSMark Brown #define WM8962_HPOUTR_PGA_MUTE_WIDTH 1 /* HPOUTR_PGA_MUTE */ 16909a76f1ffSMark Brown 16919a76f1ffSMark Brown /* 16929a76f1ffSMark Brown * R27 (0x1B) - Additional Control (3) 16939a76f1ffSMark Brown */ 16949a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_INT_MODE 0x0010 /* SAMPLE_RATE_INT_MODE */ 16959a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_INT_MODE_MASK 0x0010 /* SAMPLE_RATE_INT_MODE */ 16969a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_INT_MODE_SHIFT 4 /* SAMPLE_RATE_INT_MODE */ 16979a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_INT_MODE_WIDTH 1 /* SAMPLE_RATE_INT_MODE */ 16989a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_MASK 0x0007 /* SAMPLE_RATE - [2:0] */ 16999a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_SHIFT 0 /* SAMPLE_RATE - [2:0] */ 17009a76f1ffSMark Brown #define WM8962_SAMPLE_RATE_WIDTH 3 /* SAMPLE_RATE - [2:0] */ 17019a76f1ffSMark Brown 17029a76f1ffSMark Brown /* 17039a76f1ffSMark Brown * R28 (0x1C) - Anti-pop 17049a76f1ffSMark Brown */ 17059a76f1ffSMark Brown #define WM8962_STARTUP_BIAS_ENA 0x0010 /* STARTUP_BIAS_ENA */ 17069a76f1ffSMark Brown #define WM8962_STARTUP_BIAS_ENA_MASK 0x0010 /* STARTUP_BIAS_ENA */ 17079a76f1ffSMark Brown #define WM8962_STARTUP_BIAS_ENA_SHIFT 4 /* STARTUP_BIAS_ENA */ 17089a76f1ffSMark Brown #define WM8962_STARTUP_BIAS_ENA_WIDTH 1 /* STARTUP_BIAS_ENA */ 17099a76f1ffSMark Brown #define WM8962_VMID_BUF_ENA 0x0008 /* VMID_BUF_ENA */ 17109a76f1ffSMark Brown #define WM8962_VMID_BUF_ENA_MASK 0x0008 /* VMID_BUF_ENA */ 17119a76f1ffSMark Brown #define WM8962_VMID_BUF_ENA_SHIFT 3 /* VMID_BUF_ENA */ 17129a76f1ffSMark Brown #define WM8962_VMID_BUF_ENA_WIDTH 1 /* VMID_BUF_ENA */ 17139a76f1ffSMark Brown #define WM8962_VMID_RAMP 0x0004 /* VMID_RAMP */ 17149a76f1ffSMark Brown #define WM8962_VMID_RAMP_MASK 0x0004 /* VMID_RAMP */ 17159a76f1ffSMark Brown #define WM8962_VMID_RAMP_SHIFT 2 /* VMID_RAMP */ 17169a76f1ffSMark Brown #define WM8962_VMID_RAMP_WIDTH 1 /* VMID_RAMP */ 17179a76f1ffSMark Brown 17189a76f1ffSMark Brown /* 17199a76f1ffSMark Brown * R30 (0x1E) - Clocking 3 17209a76f1ffSMark Brown */ 17219a76f1ffSMark Brown #define WM8962_DBCLK_DIV_MASK 0xE000 /* DBCLK_DIV - [15:13] */ 17229a76f1ffSMark Brown #define WM8962_DBCLK_DIV_SHIFT 13 /* DBCLK_DIV - [15:13] */ 17239a76f1ffSMark Brown #define WM8962_DBCLK_DIV_WIDTH 3 /* DBCLK_DIV - [15:13] */ 17249a76f1ffSMark Brown #define WM8962_OPCLK_DIV_MASK 0x1C00 /* OPCLK_DIV - [12:10] */ 17259a76f1ffSMark Brown #define WM8962_OPCLK_DIV_SHIFT 10 /* OPCLK_DIV - [12:10] */ 17269a76f1ffSMark Brown #define WM8962_OPCLK_DIV_WIDTH 3 /* OPCLK_DIV - [12:10] */ 17279a76f1ffSMark Brown #define WM8962_TOCLK_DIV_MASK 0x0380 /* TOCLK_DIV - [9:7] */ 17289a76f1ffSMark Brown #define WM8962_TOCLK_DIV_SHIFT 7 /* TOCLK_DIV - [9:7] */ 17299a76f1ffSMark Brown #define WM8962_TOCLK_DIV_WIDTH 3 /* TOCLK_DIV - [9:7] */ 17309a76f1ffSMark Brown #define WM8962_F256KCLK_DIV_MASK 0x007E /* F256KCLK_DIV - [6:1] */ 17319a76f1ffSMark Brown #define WM8962_F256KCLK_DIV_SHIFT 1 /* F256KCLK_DIV - [6:1] */ 17329a76f1ffSMark Brown #define WM8962_F256KCLK_DIV_WIDTH 6 /* F256KCLK_DIV - [6:1] */ 17339a76f1ffSMark Brown 17349a76f1ffSMark Brown /* 17359a76f1ffSMark Brown * R31 (0x1F) - Input mixer control (1) 17369a76f1ffSMark Brown */ 17379a76f1ffSMark Brown #define WM8962_MIXINL_MUTE 0x0008 /* MIXINL_MUTE */ 17389a76f1ffSMark Brown #define WM8962_MIXINL_MUTE_MASK 0x0008 /* MIXINL_MUTE */ 17399a76f1ffSMark Brown #define WM8962_MIXINL_MUTE_SHIFT 3 /* MIXINL_MUTE */ 17409a76f1ffSMark Brown #define WM8962_MIXINL_MUTE_WIDTH 1 /* MIXINL_MUTE */ 17419a76f1ffSMark Brown #define WM8962_MIXINR_MUTE 0x0004 /* MIXINR_MUTE */ 17429a76f1ffSMark Brown #define WM8962_MIXINR_MUTE_MASK 0x0004 /* MIXINR_MUTE */ 17439a76f1ffSMark Brown #define WM8962_MIXINR_MUTE_SHIFT 2 /* MIXINR_MUTE */ 17449a76f1ffSMark Brown #define WM8962_MIXINR_MUTE_WIDTH 1 /* MIXINR_MUTE */ 17459a76f1ffSMark Brown #define WM8962_MIXINL_ENA 0x0002 /* MIXINL_ENA */ 17469a76f1ffSMark Brown #define WM8962_MIXINL_ENA_MASK 0x0002 /* MIXINL_ENA */ 17479a76f1ffSMark Brown #define WM8962_MIXINL_ENA_SHIFT 1 /* MIXINL_ENA */ 17489a76f1ffSMark Brown #define WM8962_MIXINL_ENA_WIDTH 1 /* MIXINL_ENA */ 17499a76f1ffSMark Brown #define WM8962_MIXINR_ENA 0x0001 /* MIXINR_ENA */ 17509a76f1ffSMark Brown #define WM8962_MIXINR_ENA_MASK 0x0001 /* MIXINR_ENA */ 17519a76f1ffSMark Brown #define WM8962_MIXINR_ENA_SHIFT 0 /* MIXINR_ENA */ 17529a76f1ffSMark Brown #define WM8962_MIXINR_ENA_WIDTH 1 /* MIXINR_ENA */ 17539a76f1ffSMark Brown 17549a76f1ffSMark Brown /* 17559a76f1ffSMark Brown * R32 (0x20) - Left input mixer volume 17569a76f1ffSMark Brown */ 17579a76f1ffSMark Brown #define WM8962_IN2L_MIXINL_VOL_MASK 0x01C0 /* IN2L_MIXINL_VOL - [8:6] */ 17589a76f1ffSMark Brown #define WM8962_IN2L_MIXINL_VOL_SHIFT 6 /* IN2L_MIXINL_VOL - [8:6] */ 17599a76f1ffSMark Brown #define WM8962_IN2L_MIXINL_VOL_WIDTH 3 /* IN2L_MIXINL_VOL - [8:6] */ 17609a76f1ffSMark Brown #define WM8962_INPGAL_MIXINL_VOL_MASK 0x0038 /* INPGAL_MIXINL_VOL - [5:3] */ 17619a76f1ffSMark Brown #define WM8962_INPGAL_MIXINL_VOL_SHIFT 3 /* INPGAL_MIXINL_VOL - [5:3] */ 17629a76f1ffSMark Brown #define WM8962_INPGAL_MIXINL_VOL_WIDTH 3 /* INPGAL_MIXINL_VOL - [5:3] */ 17639a76f1ffSMark Brown #define WM8962_IN3L_MIXINL_VOL_MASK 0x0007 /* IN3L_MIXINL_VOL - [2:0] */ 17649a76f1ffSMark Brown #define WM8962_IN3L_MIXINL_VOL_SHIFT 0 /* IN3L_MIXINL_VOL - [2:0] */ 17659a76f1ffSMark Brown #define WM8962_IN3L_MIXINL_VOL_WIDTH 3 /* IN3L_MIXINL_VOL - [2:0] */ 17669a76f1ffSMark Brown 17679a76f1ffSMark Brown /* 17689a76f1ffSMark Brown * R33 (0x21) - Right input mixer volume 17699a76f1ffSMark Brown */ 17709a76f1ffSMark Brown #define WM8962_IN2R_MIXINR_VOL_MASK 0x01C0 /* IN2R_MIXINR_VOL - [8:6] */ 17719a76f1ffSMark Brown #define WM8962_IN2R_MIXINR_VOL_SHIFT 6 /* IN2R_MIXINR_VOL - [8:6] */ 17729a76f1ffSMark Brown #define WM8962_IN2R_MIXINR_VOL_WIDTH 3 /* IN2R_MIXINR_VOL - [8:6] */ 17739a76f1ffSMark Brown #define WM8962_INPGAR_MIXINR_VOL_MASK 0x0038 /* INPGAR_MIXINR_VOL - [5:3] */ 17749a76f1ffSMark Brown #define WM8962_INPGAR_MIXINR_VOL_SHIFT 3 /* INPGAR_MIXINR_VOL - [5:3] */ 17759a76f1ffSMark Brown #define WM8962_INPGAR_MIXINR_VOL_WIDTH 3 /* INPGAR_MIXINR_VOL - [5:3] */ 17769a76f1ffSMark Brown #define WM8962_IN3R_MIXINR_VOL_MASK 0x0007 /* IN3R_MIXINR_VOL - [2:0] */ 17779a76f1ffSMark Brown #define WM8962_IN3R_MIXINR_VOL_SHIFT 0 /* IN3R_MIXINR_VOL - [2:0] */ 17789a76f1ffSMark Brown #define WM8962_IN3R_MIXINR_VOL_WIDTH 3 /* IN3R_MIXINR_VOL - [2:0] */ 17799a76f1ffSMark Brown 17809a76f1ffSMark Brown /* 17819a76f1ffSMark Brown * R34 (0x22) - Input mixer control (2) 17829a76f1ffSMark Brown */ 17839a76f1ffSMark Brown #define WM8962_IN2L_TO_MIXINL 0x0020 /* IN2L_TO_MIXINL */ 17849a76f1ffSMark Brown #define WM8962_IN2L_TO_MIXINL_MASK 0x0020 /* IN2L_TO_MIXINL */ 17859a76f1ffSMark Brown #define WM8962_IN2L_TO_MIXINL_SHIFT 5 /* IN2L_TO_MIXINL */ 17869a76f1ffSMark Brown #define WM8962_IN2L_TO_MIXINL_WIDTH 1 /* IN2L_TO_MIXINL */ 17879a76f1ffSMark Brown #define WM8962_IN3L_TO_MIXINL 0x0010 /* IN3L_TO_MIXINL */ 17889a76f1ffSMark Brown #define WM8962_IN3L_TO_MIXINL_MASK 0x0010 /* IN3L_TO_MIXINL */ 17899a76f1ffSMark Brown #define WM8962_IN3L_TO_MIXINL_SHIFT 4 /* IN3L_TO_MIXINL */ 17909a76f1ffSMark Brown #define WM8962_IN3L_TO_MIXINL_WIDTH 1 /* IN3L_TO_MIXINL */ 17919a76f1ffSMark Brown #define WM8962_INPGAL_TO_MIXINL 0x0008 /* INPGAL_TO_MIXINL */ 17929a76f1ffSMark Brown #define WM8962_INPGAL_TO_MIXINL_MASK 0x0008 /* INPGAL_TO_MIXINL */ 17939a76f1ffSMark Brown #define WM8962_INPGAL_TO_MIXINL_SHIFT 3 /* INPGAL_TO_MIXINL */ 17949a76f1ffSMark Brown #define WM8962_INPGAL_TO_MIXINL_WIDTH 1 /* INPGAL_TO_MIXINL */ 17959a76f1ffSMark Brown #define WM8962_IN2R_TO_MIXINR 0x0004 /* IN2R_TO_MIXINR */ 17969a76f1ffSMark Brown #define WM8962_IN2R_TO_MIXINR_MASK 0x0004 /* IN2R_TO_MIXINR */ 17979a76f1ffSMark Brown #define WM8962_IN2R_TO_MIXINR_SHIFT 2 /* IN2R_TO_MIXINR */ 17989a76f1ffSMark Brown #define WM8962_IN2R_TO_MIXINR_WIDTH 1 /* IN2R_TO_MIXINR */ 17999a76f1ffSMark Brown #define WM8962_IN3R_TO_MIXINR 0x0002 /* IN3R_TO_MIXINR */ 18009a76f1ffSMark Brown #define WM8962_IN3R_TO_MIXINR_MASK 0x0002 /* IN3R_TO_MIXINR */ 18019a76f1ffSMark Brown #define WM8962_IN3R_TO_MIXINR_SHIFT 1 /* IN3R_TO_MIXINR */ 18029a76f1ffSMark Brown #define WM8962_IN3R_TO_MIXINR_WIDTH 1 /* IN3R_TO_MIXINR */ 18039a76f1ffSMark Brown #define WM8962_INPGAR_TO_MIXINR 0x0001 /* INPGAR_TO_MIXINR */ 18049a76f1ffSMark Brown #define WM8962_INPGAR_TO_MIXINR_MASK 0x0001 /* INPGAR_TO_MIXINR */ 18059a76f1ffSMark Brown #define WM8962_INPGAR_TO_MIXINR_SHIFT 0 /* INPGAR_TO_MIXINR */ 18069a76f1ffSMark Brown #define WM8962_INPGAR_TO_MIXINR_WIDTH 1 /* INPGAR_TO_MIXINR */ 18079a76f1ffSMark Brown 18089a76f1ffSMark Brown /* 18099a76f1ffSMark Brown * R35 (0x23) - Input bias control 18109a76f1ffSMark Brown */ 18119a76f1ffSMark Brown #define WM8962_MIXIN_BIAS_MASK 0x0038 /* MIXIN_BIAS - [5:3] */ 18129a76f1ffSMark Brown #define WM8962_MIXIN_BIAS_SHIFT 3 /* MIXIN_BIAS - [5:3] */ 18139a76f1ffSMark Brown #define WM8962_MIXIN_BIAS_WIDTH 3 /* MIXIN_BIAS - [5:3] */ 18149a76f1ffSMark Brown #define WM8962_INPGA_BIAS_MASK 0x0007 /* INPGA_BIAS - [2:0] */ 18159a76f1ffSMark Brown #define WM8962_INPGA_BIAS_SHIFT 0 /* INPGA_BIAS - [2:0] */ 18169a76f1ffSMark Brown #define WM8962_INPGA_BIAS_WIDTH 3 /* INPGA_BIAS - [2:0] */ 18179a76f1ffSMark Brown 18189a76f1ffSMark Brown /* 18199a76f1ffSMark Brown * R37 (0x25) - Left input PGA control 18209a76f1ffSMark Brown */ 18219a76f1ffSMark Brown #define WM8962_INPGAL_ENA 0x0010 /* INPGAL_ENA */ 18229a76f1ffSMark Brown #define WM8962_INPGAL_ENA_MASK 0x0010 /* INPGAL_ENA */ 18239a76f1ffSMark Brown #define WM8962_INPGAL_ENA_SHIFT 4 /* INPGAL_ENA */ 18249a76f1ffSMark Brown #define WM8962_INPGAL_ENA_WIDTH 1 /* INPGAL_ENA */ 18259a76f1ffSMark Brown #define WM8962_IN1L_TO_INPGAL 0x0008 /* IN1L_TO_INPGAL */ 18269a76f1ffSMark Brown #define WM8962_IN1L_TO_INPGAL_MASK 0x0008 /* IN1L_TO_INPGAL */ 18279a76f1ffSMark Brown #define WM8962_IN1L_TO_INPGAL_SHIFT 3 /* IN1L_TO_INPGAL */ 18289a76f1ffSMark Brown #define WM8962_IN1L_TO_INPGAL_WIDTH 1 /* IN1L_TO_INPGAL */ 18299a76f1ffSMark Brown #define WM8962_IN2L_TO_INPGAL 0x0004 /* IN2L_TO_INPGAL */ 18309a76f1ffSMark Brown #define WM8962_IN2L_TO_INPGAL_MASK 0x0004 /* IN2L_TO_INPGAL */ 18319a76f1ffSMark Brown #define WM8962_IN2L_TO_INPGAL_SHIFT 2 /* IN2L_TO_INPGAL */ 18329a76f1ffSMark Brown #define WM8962_IN2L_TO_INPGAL_WIDTH 1 /* IN2L_TO_INPGAL */ 18339a76f1ffSMark Brown #define WM8962_IN3L_TO_INPGAL 0x0002 /* IN3L_TO_INPGAL */ 18349a76f1ffSMark Brown #define WM8962_IN3L_TO_INPGAL_MASK 0x0002 /* IN3L_TO_INPGAL */ 18359a76f1ffSMark Brown #define WM8962_IN3L_TO_INPGAL_SHIFT 1 /* IN3L_TO_INPGAL */ 18369a76f1ffSMark Brown #define WM8962_IN3L_TO_INPGAL_WIDTH 1 /* IN3L_TO_INPGAL */ 18379a76f1ffSMark Brown #define WM8962_IN4L_TO_INPGAL 0x0001 /* IN4L_TO_INPGAL */ 18389a76f1ffSMark Brown #define WM8962_IN4L_TO_INPGAL_MASK 0x0001 /* IN4L_TO_INPGAL */ 18399a76f1ffSMark Brown #define WM8962_IN4L_TO_INPGAL_SHIFT 0 /* IN4L_TO_INPGAL */ 18409a76f1ffSMark Brown #define WM8962_IN4L_TO_INPGAL_WIDTH 1 /* IN4L_TO_INPGAL */ 18419a76f1ffSMark Brown 18429a76f1ffSMark Brown /* 18439a76f1ffSMark Brown * R38 (0x26) - Right input PGA control 18449a76f1ffSMark Brown */ 18459a76f1ffSMark Brown #define WM8962_INPGAR_ENA 0x0010 /* INPGAR_ENA */ 18469a76f1ffSMark Brown #define WM8962_INPGAR_ENA_MASK 0x0010 /* INPGAR_ENA */ 18479a76f1ffSMark Brown #define WM8962_INPGAR_ENA_SHIFT 4 /* INPGAR_ENA */ 18489a76f1ffSMark Brown #define WM8962_INPGAR_ENA_WIDTH 1 /* INPGAR_ENA */ 18499a76f1ffSMark Brown #define WM8962_IN1R_TO_INPGAR 0x0008 /* IN1R_TO_INPGAR */ 18509a76f1ffSMark Brown #define WM8962_IN1R_TO_INPGAR_MASK 0x0008 /* IN1R_TO_INPGAR */ 18519a76f1ffSMark Brown #define WM8962_IN1R_TO_INPGAR_SHIFT 3 /* IN1R_TO_INPGAR */ 18529a76f1ffSMark Brown #define WM8962_IN1R_TO_INPGAR_WIDTH 1 /* IN1R_TO_INPGAR */ 18539a76f1ffSMark Brown #define WM8962_IN2R_TO_INPGAR 0x0004 /* IN2R_TO_INPGAR */ 18549a76f1ffSMark Brown #define WM8962_IN2R_TO_INPGAR_MASK 0x0004 /* IN2R_TO_INPGAR */ 18559a76f1ffSMark Brown #define WM8962_IN2R_TO_INPGAR_SHIFT 2 /* IN2R_TO_INPGAR */ 18569a76f1ffSMark Brown #define WM8962_IN2R_TO_INPGAR_WIDTH 1 /* IN2R_TO_INPGAR */ 18579a76f1ffSMark Brown #define WM8962_IN3R_TO_INPGAR 0x0002 /* IN3R_TO_INPGAR */ 18589a76f1ffSMark Brown #define WM8962_IN3R_TO_INPGAR_MASK 0x0002 /* IN3R_TO_INPGAR */ 18599a76f1ffSMark Brown #define WM8962_IN3R_TO_INPGAR_SHIFT 1 /* IN3R_TO_INPGAR */ 18609a76f1ffSMark Brown #define WM8962_IN3R_TO_INPGAR_WIDTH 1 /* IN3R_TO_INPGAR */ 18619a76f1ffSMark Brown #define WM8962_IN4R_TO_INPGAR 0x0001 /* IN4R_TO_INPGAR */ 18629a76f1ffSMark Brown #define WM8962_IN4R_TO_INPGAR_MASK 0x0001 /* IN4R_TO_INPGAR */ 18639a76f1ffSMark Brown #define WM8962_IN4R_TO_INPGAR_SHIFT 0 /* IN4R_TO_INPGAR */ 18649a76f1ffSMark Brown #define WM8962_IN4R_TO_INPGAR_WIDTH 1 /* IN4R_TO_INPGAR */ 18659a76f1ffSMark Brown 18669a76f1ffSMark Brown /* 18679a76f1ffSMark Brown * R40 (0x28) - SPKOUTL volume 18689a76f1ffSMark Brown */ 18699a76f1ffSMark Brown #define WM8962_SPKOUT_VU 0x0100 /* SPKOUT_VU */ 18709a76f1ffSMark Brown #define WM8962_SPKOUT_VU_MASK 0x0100 /* SPKOUT_VU */ 18719a76f1ffSMark Brown #define WM8962_SPKOUT_VU_SHIFT 8 /* SPKOUT_VU */ 18729a76f1ffSMark Brown #define WM8962_SPKOUT_VU_WIDTH 1 /* SPKOUT_VU */ 18739a76f1ffSMark Brown #define WM8962_SPKOUTL_ZC 0x0080 /* SPKOUTL_ZC */ 18749a76f1ffSMark Brown #define WM8962_SPKOUTL_ZC_MASK 0x0080 /* SPKOUTL_ZC */ 18759a76f1ffSMark Brown #define WM8962_SPKOUTL_ZC_SHIFT 7 /* SPKOUTL_ZC */ 18769a76f1ffSMark Brown #define WM8962_SPKOUTL_ZC_WIDTH 1 /* SPKOUTL_ZC */ 18779a76f1ffSMark Brown #define WM8962_SPKOUTL_VOL_MASK 0x007F /* SPKOUTL_VOL - [6:0] */ 18789a76f1ffSMark Brown #define WM8962_SPKOUTL_VOL_SHIFT 0 /* SPKOUTL_VOL - [6:0] */ 18799a76f1ffSMark Brown #define WM8962_SPKOUTL_VOL_WIDTH 7 /* SPKOUTL_VOL - [6:0] */ 18809a76f1ffSMark Brown 18819a76f1ffSMark Brown /* 18829a76f1ffSMark Brown * R41 (0x29) - SPKOUTR volume 18839a76f1ffSMark Brown */ 18849a76f1ffSMark Brown #define WM8962_SPKOUTR_ZC 0x0080 /* SPKOUTR_ZC */ 18859a76f1ffSMark Brown #define WM8962_SPKOUTR_ZC_MASK 0x0080 /* SPKOUTR_ZC */ 18869a76f1ffSMark Brown #define WM8962_SPKOUTR_ZC_SHIFT 7 /* SPKOUTR_ZC */ 18879a76f1ffSMark Brown #define WM8962_SPKOUTR_ZC_WIDTH 1 /* SPKOUTR_ZC */ 18889a76f1ffSMark Brown #define WM8962_SPKOUTR_VOL_MASK 0x007F /* SPKOUTR_VOL - [6:0] */ 18899a76f1ffSMark Brown #define WM8962_SPKOUTR_VOL_SHIFT 0 /* SPKOUTR_VOL - [6:0] */ 18909a76f1ffSMark Brown #define WM8962_SPKOUTR_VOL_WIDTH 7 /* SPKOUTR_VOL - [6:0] */ 18919a76f1ffSMark Brown 18929a76f1ffSMark Brown /* 18939a76f1ffSMark Brown * R47 (0x2F) - Thermal Shutdown Status 18949a76f1ffSMark Brown */ 18959a76f1ffSMark Brown #define WM8962_TEMP_ERR_HP 0x0008 /* TEMP_ERR_HP */ 18969a76f1ffSMark Brown #define WM8962_TEMP_ERR_HP_MASK 0x0008 /* TEMP_ERR_HP */ 18979a76f1ffSMark Brown #define WM8962_TEMP_ERR_HP_SHIFT 3 /* TEMP_ERR_HP */ 18989a76f1ffSMark Brown #define WM8962_TEMP_ERR_HP_WIDTH 1 /* TEMP_ERR_HP */ 18999a76f1ffSMark Brown #define WM8962_TEMP_WARN_HP 0x0004 /* TEMP_WARN_HP */ 19009a76f1ffSMark Brown #define WM8962_TEMP_WARN_HP_MASK 0x0004 /* TEMP_WARN_HP */ 19019a76f1ffSMark Brown #define WM8962_TEMP_WARN_HP_SHIFT 2 /* TEMP_WARN_HP */ 19029a76f1ffSMark Brown #define WM8962_TEMP_WARN_HP_WIDTH 1 /* TEMP_WARN_HP */ 19039a76f1ffSMark Brown #define WM8962_TEMP_ERR_SPK 0x0002 /* TEMP_ERR_SPK */ 19049a76f1ffSMark Brown #define WM8962_TEMP_ERR_SPK_MASK 0x0002 /* TEMP_ERR_SPK */ 19059a76f1ffSMark Brown #define WM8962_TEMP_ERR_SPK_SHIFT 1 /* TEMP_ERR_SPK */ 19069a76f1ffSMark Brown #define WM8962_TEMP_ERR_SPK_WIDTH 1 /* TEMP_ERR_SPK */ 19079a76f1ffSMark Brown #define WM8962_TEMP_WARN_SPK 0x0001 /* TEMP_WARN_SPK */ 19089a76f1ffSMark Brown #define WM8962_TEMP_WARN_SPK_MASK 0x0001 /* TEMP_WARN_SPK */ 19099a76f1ffSMark Brown #define WM8962_TEMP_WARN_SPK_SHIFT 0 /* TEMP_WARN_SPK */ 19109a76f1ffSMark Brown #define WM8962_TEMP_WARN_SPK_WIDTH 1 /* TEMP_WARN_SPK */ 19119a76f1ffSMark Brown 19129a76f1ffSMark Brown /* 19139a76f1ffSMark Brown * R48 (0x30) - Additional Control (4) 19149a76f1ffSMark Brown */ 19159a76f1ffSMark Brown #define WM8962_MICDET_THR_MASK 0x7000 /* MICDET_THR - [14:12] */ 19169a76f1ffSMark Brown #define WM8962_MICDET_THR_SHIFT 12 /* MICDET_THR - [14:12] */ 19179a76f1ffSMark Brown #define WM8962_MICDET_THR_WIDTH 3 /* MICDET_THR - [14:12] */ 19189a76f1ffSMark Brown #define WM8962_MICSHORT_THR_MASK 0x0C00 /* MICSHORT_THR - [11:10] */ 19199a76f1ffSMark Brown #define WM8962_MICSHORT_THR_SHIFT 10 /* MICSHORT_THR - [11:10] */ 19209a76f1ffSMark Brown #define WM8962_MICSHORT_THR_WIDTH 2 /* MICSHORT_THR - [11:10] */ 19219a76f1ffSMark Brown #define WM8962_MICDET_ENA 0x0200 /* MICDET_ENA */ 19229a76f1ffSMark Brown #define WM8962_MICDET_ENA_MASK 0x0200 /* MICDET_ENA */ 19239a76f1ffSMark Brown #define WM8962_MICDET_ENA_SHIFT 9 /* MICDET_ENA */ 19249a76f1ffSMark Brown #define WM8962_MICDET_ENA_WIDTH 1 /* MICDET_ENA */ 19259a76f1ffSMark Brown #define WM8962_MICDET_STS 0x0080 /* MICDET_STS */ 19269a76f1ffSMark Brown #define WM8962_MICDET_STS_MASK 0x0080 /* MICDET_STS */ 19279a76f1ffSMark Brown #define WM8962_MICDET_STS_SHIFT 7 /* MICDET_STS */ 19289a76f1ffSMark Brown #define WM8962_MICDET_STS_WIDTH 1 /* MICDET_STS */ 19299a76f1ffSMark Brown #define WM8962_MICSHORT_STS 0x0040 /* MICSHORT_STS */ 19309a76f1ffSMark Brown #define WM8962_MICSHORT_STS_MASK 0x0040 /* MICSHORT_STS */ 19319a76f1ffSMark Brown #define WM8962_MICSHORT_STS_SHIFT 6 /* MICSHORT_STS */ 19329a76f1ffSMark Brown #define WM8962_MICSHORT_STS_WIDTH 1 /* MICSHORT_STS */ 19339a76f1ffSMark Brown #define WM8962_TEMP_ENA_HP 0x0004 /* TEMP_ENA_HP */ 19349a76f1ffSMark Brown #define WM8962_TEMP_ENA_HP_MASK 0x0004 /* TEMP_ENA_HP */ 19359a76f1ffSMark Brown #define WM8962_TEMP_ENA_HP_SHIFT 2 /* TEMP_ENA_HP */ 19369a76f1ffSMark Brown #define WM8962_TEMP_ENA_HP_WIDTH 1 /* TEMP_ENA_HP */ 19379a76f1ffSMark Brown #define WM8962_TEMP_ENA_SPK 0x0002 /* TEMP_ENA_SPK */ 19389a76f1ffSMark Brown #define WM8962_TEMP_ENA_SPK_MASK 0x0002 /* TEMP_ENA_SPK */ 19399a76f1ffSMark Brown #define WM8962_TEMP_ENA_SPK_SHIFT 1 /* TEMP_ENA_SPK */ 19409a76f1ffSMark Brown #define WM8962_TEMP_ENA_SPK_WIDTH 1 /* TEMP_ENA_SPK */ 19419a76f1ffSMark Brown #define WM8962_MICBIAS_LVL 0x0001 /* MICBIAS_LVL */ 19429a76f1ffSMark Brown #define WM8962_MICBIAS_LVL_MASK 0x0001 /* MICBIAS_LVL */ 19439a76f1ffSMark Brown #define WM8962_MICBIAS_LVL_SHIFT 0 /* MICBIAS_LVL */ 19449a76f1ffSMark Brown #define WM8962_MICBIAS_LVL_WIDTH 1 /* MICBIAS_LVL */ 19459a76f1ffSMark Brown 19469a76f1ffSMark Brown /* 19479a76f1ffSMark Brown * R49 (0x31) - Class D Control 1 19489a76f1ffSMark Brown */ 19499a76f1ffSMark Brown #define WM8962_SPKOUTR_ENA 0x0080 /* SPKOUTR_ENA */ 19509a76f1ffSMark Brown #define WM8962_SPKOUTR_ENA_MASK 0x0080 /* SPKOUTR_ENA */ 19519a76f1ffSMark Brown #define WM8962_SPKOUTR_ENA_SHIFT 7 /* SPKOUTR_ENA */ 19529a76f1ffSMark Brown #define WM8962_SPKOUTR_ENA_WIDTH 1 /* SPKOUTR_ENA */ 19539a76f1ffSMark Brown #define WM8962_SPKOUTL_ENA 0x0040 /* SPKOUTL_ENA */ 19549a76f1ffSMark Brown #define WM8962_SPKOUTL_ENA_MASK 0x0040 /* SPKOUTL_ENA */ 19559a76f1ffSMark Brown #define WM8962_SPKOUTL_ENA_SHIFT 6 /* SPKOUTL_ENA */ 19569a76f1ffSMark Brown #define WM8962_SPKOUTL_ENA_WIDTH 1 /* SPKOUTL_ENA */ 19579a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_MUTE 0x0002 /* SPKOUTL_PGA_MUTE */ 19589a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_MUTE_MASK 0x0002 /* SPKOUTL_PGA_MUTE */ 19599a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_MUTE_SHIFT 1 /* SPKOUTL_PGA_MUTE */ 19609a76f1ffSMark Brown #define WM8962_SPKOUTL_PGA_MUTE_WIDTH 1 /* SPKOUTL_PGA_MUTE */ 19619a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_MUTE 0x0001 /* SPKOUTR_PGA_MUTE */ 19629a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_MUTE_MASK 0x0001 /* SPKOUTR_PGA_MUTE */ 19639a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_MUTE_SHIFT 0 /* SPKOUTR_PGA_MUTE */ 19649a76f1ffSMark Brown #define WM8962_SPKOUTR_PGA_MUTE_WIDTH 1 /* SPKOUTR_PGA_MUTE */ 19659a76f1ffSMark Brown 19669a76f1ffSMark Brown /* 19679a76f1ffSMark Brown * R51 (0x33) - Class D Control 2 19689a76f1ffSMark Brown */ 19699a76f1ffSMark Brown #define WM8962_SPK_MONO 0x0040 /* SPK_MONO */ 19709a76f1ffSMark Brown #define WM8962_SPK_MONO_MASK 0x0040 /* SPK_MONO */ 19719a76f1ffSMark Brown #define WM8962_SPK_MONO_SHIFT 6 /* SPK_MONO */ 19729a76f1ffSMark Brown #define WM8962_SPK_MONO_WIDTH 1 /* SPK_MONO */ 19739a76f1ffSMark Brown #define WM8962_CLASSD_VOL_MASK 0x0007 /* CLASSD_VOL - [2:0] */ 19749a76f1ffSMark Brown #define WM8962_CLASSD_VOL_SHIFT 0 /* CLASSD_VOL - [2:0] */ 19759a76f1ffSMark Brown #define WM8962_CLASSD_VOL_WIDTH 3 /* CLASSD_VOL - [2:0] */ 19769a76f1ffSMark Brown 19779a76f1ffSMark Brown /* 19789a76f1ffSMark Brown * R56 (0x38) - Clocking 4 19799a76f1ffSMark Brown */ 19809a76f1ffSMark Brown #define WM8962_SYSCLK_RATE_MASK 0x001E /* SYSCLK_RATE - [4:1] */ 19819a76f1ffSMark Brown #define WM8962_SYSCLK_RATE_SHIFT 1 /* SYSCLK_RATE - [4:1] */ 19829a76f1ffSMark Brown #define WM8962_SYSCLK_RATE_WIDTH 4 /* SYSCLK_RATE - [4:1] */ 19839a76f1ffSMark Brown 19849a76f1ffSMark Brown /* 19859a76f1ffSMark Brown * R57 (0x39) - DAC DSP Mixing (1) 19869a76f1ffSMark Brown */ 19879a76f1ffSMark Brown #define WM8962_DAC_MONOMIX 0x0200 /* DAC_MONOMIX */ 19889a76f1ffSMark Brown #define WM8962_DAC_MONOMIX_MASK 0x0200 /* DAC_MONOMIX */ 19899a76f1ffSMark Brown #define WM8962_DAC_MONOMIX_SHIFT 9 /* DAC_MONOMIX */ 19909a76f1ffSMark Brown #define WM8962_DAC_MONOMIX_WIDTH 1 /* DAC_MONOMIX */ 19919a76f1ffSMark Brown #define WM8962_ADCR_DAC_SVOL_MASK 0x00F0 /* ADCR_DAC_SVOL - [7:4] */ 19929a76f1ffSMark Brown #define WM8962_ADCR_DAC_SVOL_SHIFT 4 /* ADCR_DAC_SVOL - [7:4] */ 19939a76f1ffSMark Brown #define WM8962_ADCR_DAC_SVOL_WIDTH 4 /* ADCR_DAC_SVOL - [7:4] */ 19949a76f1ffSMark Brown #define WM8962_ADC_TO_DACR_MASK 0x000C /* ADC_TO_DACR - [3:2] */ 19959a76f1ffSMark Brown #define WM8962_ADC_TO_DACR_SHIFT 2 /* ADC_TO_DACR - [3:2] */ 19969a76f1ffSMark Brown #define WM8962_ADC_TO_DACR_WIDTH 2 /* ADC_TO_DACR - [3:2] */ 19979a76f1ffSMark Brown 19989a76f1ffSMark Brown /* 19999a76f1ffSMark Brown * R58 (0x3A) - DAC DSP Mixing (2) 20009a76f1ffSMark Brown */ 20019a76f1ffSMark Brown #define WM8962_ADCL_DAC_SVOL_MASK 0x00F0 /* ADCL_DAC_SVOL - [7:4] */ 20029a76f1ffSMark Brown #define WM8962_ADCL_DAC_SVOL_SHIFT 4 /* ADCL_DAC_SVOL - [7:4] */ 20039a76f1ffSMark Brown #define WM8962_ADCL_DAC_SVOL_WIDTH 4 /* ADCL_DAC_SVOL - [7:4] */ 20049a76f1ffSMark Brown #define WM8962_ADC_TO_DACL_MASK 0x000C /* ADC_TO_DACL - [3:2] */ 20059a76f1ffSMark Brown #define WM8962_ADC_TO_DACL_SHIFT 2 /* ADC_TO_DACL - [3:2] */ 20069a76f1ffSMark Brown #define WM8962_ADC_TO_DACL_WIDTH 2 /* ADC_TO_DACL - [3:2] */ 20079a76f1ffSMark Brown 20089a76f1ffSMark Brown /* 20099a76f1ffSMark Brown * R60 (0x3C) - DC Servo 0 20109a76f1ffSMark Brown */ 20119a76f1ffSMark Brown #define WM8962_INL_DCS_ENA 0x0080 /* INL_DCS_ENA */ 20129a76f1ffSMark Brown #define WM8962_INL_DCS_ENA_MASK 0x0080 /* INL_DCS_ENA */ 20139a76f1ffSMark Brown #define WM8962_INL_DCS_ENA_SHIFT 7 /* INL_DCS_ENA */ 20149a76f1ffSMark Brown #define WM8962_INL_DCS_ENA_WIDTH 1 /* INL_DCS_ENA */ 20159a76f1ffSMark Brown #define WM8962_INL_DCS_STARTUP 0x0040 /* INL_DCS_STARTUP */ 20169a76f1ffSMark Brown #define WM8962_INL_DCS_STARTUP_MASK 0x0040 /* INL_DCS_STARTUP */ 20179a76f1ffSMark Brown #define WM8962_INL_DCS_STARTUP_SHIFT 6 /* INL_DCS_STARTUP */ 20189a76f1ffSMark Brown #define WM8962_INL_DCS_STARTUP_WIDTH 1 /* INL_DCS_STARTUP */ 20199a76f1ffSMark Brown #define WM8962_INR_DCS_ENA 0x0008 /* INR_DCS_ENA */ 20209a76f1ffSMark Brown #define WM8962_INR_DCS_ENA_MASK 0x0008 /* INR_DCS_ENA */ 20219a76f1ffSMark Brown #define WM8962_INR_DCS_ENA_SHIFT 3 /* INR_DCS_ENA */ 20229a76f1ffSMark Brown #define WM8962_INR_DCS_ENA_WIDTH 1 /* INR_DCS_ENA */ 20239a76f1ffSMark Brown #define WM8962_INR_DCS_STARTUP 0x0004 /* INR_DCS_STARTUP */ 20249a76f1ffSMark Brown #define WM8962_INR_DCS_STARTUP_MASK 0x0004 /* INR_DCS_STARTUP */ 20259a76f1ffSMark Brown #define WM8962_INR_DCS_STARTUP_SHIFT 2 /* INR_DCS_STARTUP */ 20269a76f1ffSMark Brown #define WM8962_INR_DCS_STARTUP_WIDTH 1 /* INR_DCS_STARTUP */ 20279a76f1ffSMark Brown 20289a76f1ffSMark Brown /* 20299a76f1ffSMark Brown * R61 (0x3D) - DC Servo 1 20309a76f1ffSMark Brown */ 20319a76f1ffSMark Brown #define WM8962_HP1L_DCS_ENA 0x0080 /* HP1L_DCS_ENA */ 20329a76f1ffSMark Brown #define WM8962_HP1L_DCS_ENA_MASK 0x0080 /* HP1L_DCS_ENA */ 20339a76f1ffSMark Brown #define WM8962_HP1L_DCS_ENA_SHIFT 7 /* HP1L_DCS_ENA */ 20349a76f1ffSMark Brown #define WM8962_HP1L_DCS_ENA_WIDTH 1 /* HP1L_DCS_ENA */ 20359a76f1ffSMark Brown #define WM8962_HP1L_DCS_STARTUP 0x0040 /* HP1L_DCS_STARTUP */ 20369a76f1ffSMark Brown #define WM8962_HP1L_DCS_STARTUP_MASK 0x0040 /* HP1L_DCS_STARTUP */ 20379a76f1ffSMark Brown #define WM8962_HP1L_DCS_STARTUP_SHIFT 6 /* HP1L_DCS_STARTUP */ 20389a76f1ffSMark Brown #define WM8962_HP1L_DCS_STARTUP_WIDTH 1 /* HP1L_DCS_STARTUP */ 20399a76f1ffSMark Brown #define WM8962_HP1L_DCS_SYNC 0x0010 /* HP1L_DCS_SYNC */ 20409a76f1ffSMark Brown #define WM8962_HP1L_DCS_SYNC_MASK 0x0010 /* HP1L_DCS_SYNC */ 20419a76f1ffSMark Brown #define WM8962_HP1L_DCS_SYNC_SHIFT 4 /* HP1L_DCS_SYNC */ 20429a76f1ffSMark Brown #define WM8962_HP1L_DCS_SYNC_WIDTH 1 /* HP1L_DCS_SYNC */ 20439a76f1ffSMark Brown #define WM8962_HP1R_DCS_ENA 0x0008 /* HP1R_DCS_ENA */ 20449a76f1ffSMark Brown #define WM8962_HP1R_DCS_ENA_MASK 0x0008 /* HP1R_DCS_ENA */ 20459a76f1ffSMark Brown #define WM8962_HP1R_DCS_ENA_SHIFT 3 /* HP1R_DCS_ENA */ 20469a76f1ffSMark Brown #define WM8962_HP1R_DCS_ENA_WIDTH 1 /* HP1R_DCS_ENA */ 20479a76f1ffSMark Brown #define WM8962_HP1R_DCS_STARTUP 0x0004 /* HP1R_DCS_STARTUP */ 20489a76f1ffSMark Brown #define WM8962_HP1R_DCS_STARTUP_MASK 0x0004 /* HP1R_DCS_STARTUP */ 20499a76f1ffSMark Brown #define WM8962_HP1R_DCS_STARTUP_SHIFT 2 /* HP1R_DCS_STARTUP */ 20509a76f1ffSMark Brown #define WM8962_HP1R_DCS_STARTUP_WIDTH 1 /* HP1R_DCS_STARTUP */ 20519a76f1ffSMark Brown #define WM8962_HP1R_DCS_SYNC 0x0001 /* HP1R_DCS_SYNC */ 20529a76f1ffSMark Brown #define WM8962_HP1R_DCS_SYNC_MASK 0x0001 /* HP1R_DCS_SYNC */ 20539a76f1ffSMark Brown #define WM8962_HP1R_DCS_SYNC_SHIFT 0 /* HP1R_DCS_SYNC */ 20549a76f1ffSMark Brown #define WM8962_HP1R_DCS_SYNC_WIDTH 1 /* HP1R_DCS_SYNC */ 20559a76f1ffSMark Brown 20569a76f1ffSMark Brown /* 20579a76f1ffSMark Brown * R64 (0x40) - DC Servo 4 20589a76f1ffSMark Brown */ 20599a76f1ffSMark Brown #define WM8962_HP1_DCS_SYNC_STEPS_MASK 0x3F80 /* HP1_DCS_SYNC_STEPS - [13:7] */ 20609a76f1ffSMark Brown #define WM8962_HP1_DCS_SYNC_STEPS_SHIFT 7 /* HP1_DCS_SYNC_STEPS - [13:7] */ 20619a76f1ffSMark Brown #define WM8962_HP1_DCS_SYNC_STEPS_WIDTH 7 /* HP1_DCS_SYNC_STEPS - [13:7] */ 20629a76f1ffSMark Brown 20639a76f1ffSMark Brown /* 20649a76f1ffSMark Brown * R66 (0x42) - DC Servo 6 20659a76f1ffSMark Brown */ 20669a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INL 0x0400 /* DCS_STARTUP_DONE_INL */ 20679a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INL_MASK 0x0400 /* DCS_STARTUP_DONE_INL */ 20689a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INL_SHIFT 10 /* DCS_STARTUP_DONE_INL */ 20699a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INL_WIDTH 1 /* DCS_STARTUP_DONE_INL */ 20709a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INR 0x0200 /* DCS_STARTUP_DONE_INR */ 20719a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INR_MASK 0x0200 /* DCS_STARTUP_DONE_INR */ 20729a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INR_SHIFT 9 /* DCS_STARTUP_DONE_INR */ 20739a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_INR_WIDTH 1 /* DCS_STARTUP_DONE_INR */ 20749a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1L 0x0100 /* DCS_STARTUP_DONE_HP1L */ 20759a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1L_MASK 0x0100 /* DCS_STARTUP_DONE_HP1L */ 20769a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1L_SHIFT 8 /* DCS_STARTUP_DONE_HP1L */ 20779a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1L_WIDTH 1 /* DCS_STARTUP_DONE_HP1L */ 20789a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1R 0x0080 /* DCS_STARTUP_DONE_HP1R */ 20799a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1R_MASK 0x0080 /* DCS_STARTUP_DONE_HP1R */ 20809a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1R_SHIFT 7 /* DCS_STARTUP_DONE_HP1R */ 20819a76f1ffSMark Brown #define WM8962_DCS_STARTUP_DONE_HP1R_WIDTH 1 /* DCS_STARTUP_DONE_HP1R */ 20829a76f1ffSMark Brown 20839a76f1ffSMark Brown /* 20849a76f1ffSMark Brown * R68 (0x44) - Analogue PGA Bias 20859a76f1ffSMark Brown */ 20869a76f1ffSMark Brown #define WM8962_HP_PGAS_BIAS_MASK 0x0007 /* HP_PGAS_BIAS - [2:0] */ 20879a76f1ffSMark Brown #define WM8962_HP_PGAS_BIAS_SHIFT 0 /* HP_PGAS_BIAS - [2:0] */ 20889a76f1ffSMark Brown #define WM8962_HP_PGAS_BIAS_WIDTH 3 /* HP_PGAS_BIAS - [2:0] */ 20899a76f1ffSMark Brown 20909a76f1ffSMark Brown /* 20919a76f1ffSMark Brown * R69 (0x45) - Analogue HP 0 20929a76f1ffSMark Brown */ 20939a76f1ffSMark Brown #define WM8962_HP1L_RMV_SHORT 0x0080 /* HP1L_RMV_SHORT */ 20949a76f1ffSMark Brown #define WM8962_HP1L_RMV_SHORT_MASK 0x0080 /* HP1L_RMV_SHORT */ 20959a76f1ffSMark Brown #define WM8962_HP1L_RMV_SHORT_SHIFT 7 /* HP1L_RMV_SHORT */ 20969a76f1ffSMark Brown #define WM8962_HP1L_RMV_SHORT_WIDTH 1 /* HP1L_RMV_SHORT */ 20979a76f1ffSMark Brown #define WM8962_HP1L_ENA_OUTP 0x0040 /* HP1L_ENA_OUTP */ 20989a76f1ffSMark Brown #define WM8962_HP1L_ENA_OUTP_MASK 0x0040 /* HP1L_ENA_OUTP */ 20999a76f1ffSMark Brown #define WM8962_HP1L_ENA_OUTP_SHIFT 6 /* HP1L_ENA_OUTP */ 21009a76f1ffSMark Brown #define WM8962_HP1L_ENA_OUTP_WIDTH 1 /* HP1L_ENA_OUTP */ 21019a76f1ffSMark Brown #define WM8962_HP1L_ENA_DLY 0x0020 /* HP1L_ENA_DLY */ 21029a76f1ffSMark Brown #define WM8962_HP1L_ENA_DLY_MASK 0x0020 /* HP1L_ENA_DLY */ 21039a76f1ffSMark Brown #define WM8962_HP1L_ENA_DLY_SHIFT 5 /* HP1L_ENA_DLY */ 21049a76f1ffSMark Brown #define WM8962_HP1L_ENA_DLY_WIDTH 1 /* HP1L_ENA_DLY */ 21059a76f1ffSMark Brown #define WM8962_HP1L_ENA 0x0010 /* HP1L_ENA */ 21069a76f1ffSMark Brown #define WM8962_HP1L_ENA_MASK 0x0010 /* HP1L_ENA */ 21079a76f1ffSMark Brown #define WM8962_HP1L_ENA_SHIFT 4 /* HP1L_ENA */ 21089a76f1ffSMark Brown #define WM8962_HP1L_ENA_WIDTH 1 /* HP1L_ENA */ 21099a76f1ffSMark Brown #define WM8962_HP1R_RMV_SHORT 0x0008 /* HP1R_RMV_SHORT */ 21109a76f1ffSMark Brown #define WM8962_HP1R_RMV_SHORT_MASK 0x0008 /* HP1R_RMV_SHORT */ 21119a76f1ffSMark Brown #define WM8962_HP1R_RMV_SHORT_SHIFT 3 /* HP1R_RMV_SHORT */ 21129a76f1ffSMark Brown #define WM8962_HP1R_RMV_SHORT_WIDTH 1 /* HP1R_RMV_SHORT */ 21139a76f1ffSMark Brown #define WM8962_HP1R_ENA_OUTP 0x0004 /* HP1R_ENA_OUTP */ 21149a76f1ffSMark Brown #define WM8962_HP1R_ENA_OUTP_MASK 0x0004 /* HP1R_ENA_OUTP */ 21159a76f1ffSMark Brown #define WM8962_HP1R_ENA_OUTP_SHIFT 2 /* HP1R_ENA_OUTP */ 21169a76f1ffSMark Brown #define WM8962_HP1R_ENA_OUTP_WIDTH 1 /* HP1R_ENA_OUTP */ 21179a76f1ffSMark Brown #define WM8962_HP1R_ENA_DLY 0x0002 /* HP1R_ENA_DLY */ 21189a76f1ffSMark Brown #define WM8962_HP1R_ENA_DLY_MASK 0x0002 /* HP1R_ENA_DLY */ 21199a76f1ffSMark Brown #define WM8962_HP1R_ENA_DLY_SHIFT 1 /* HP1R_ENA_DLY */ 21209a76f1ffSMark Brown #define WM8962_HP1R_ENA_DLY_WIDTH 1 /* HP1R_ENA_DLY */ 21219a76f1ffSMark Brown #define WM8962_HP1R_ENA 0x0001 /* HP1R_ENA */ 21229a76f1ffSMark Brown #define WM8962_HP1R_ENA_MASK 0x0001 /* HP1R_ENA */ 21239a76f1ffSMark Brown #define WM8962_HP1R_ENA_SHIFT 0 /* HP1R_ENA */ 21249a76f1ffSMark Brown #define WM8962_HP1R_ENA_WIDTH 1 /* HP1R_ENA */ 21259a76f1ffSMark Brown 21269a76f1ffSMark Brown /* 21279a76f1ffSMark Brown * R71 (0x47) - Analogue HP 2 21289a76f1ffSMark Brown */ 21299a76f1ffSMark Brown #define WM8962_HP1L_VOL_MASK 0x01C0 /* HP1L_VOL - [8:6] */ 21309a76f1ffSMark Brown #define WM8962_HP1L_VOL_SHIFT 6 /* HP1L_VOL - [8:6] */ 21319a76f1ffSMark Brown #define WM8962_HP1L_VOL_WIDTH 3 /* HP1L_VOL - [8:6] */ 21329a76f1ffSMark Brown #define WM8962_HP1R_VOL_MASK 0x0038 /* HP1R_VOL - [5:3] */ 21339a76f1ffSMark Brown #define WM8962_HP1R_VOL_SHIFT 3 /* HP1R_VOL - [5:3] */ 21349a76f1ffSMark Brown #define WM8962_HP1R_VOL_WIDTH 3 /* HP1R_VOL - [5:3] */ 21359a76f1ffSMark Brown #define WM8962_HP_BIAS_BOOST_MASK 0x0007 /* HP_BIAS_BOOST - [2:0] */ 21369a76f1ffSMark Brown #define WM8962_HP_BIAS_BOOST_SHIFT 0 /* HP_BIAS_BOOST - [2:0] */ 21379a76f1ffSMark Brown #define WM8962_HP_BIAS_BOOST_WIDTH 3 /* HP_BIAS_BOOST - [2:0] */ 21389a76f1ffSMark Brown 21399a76f1ffSMark Brown /* 21409a76f1ffSMark Brown * R72 (0x48) - Charge Pump 1 21419a76f1ffSMark Brown */ 21429a76f1ffSMark Brown #define WM8962_CP_ENA 0x0001 /* CP_ENA */ 21439a76f1ffSMark Brown #define WM8962_CP_ENA_MASK 0x0001 /* CP_ENA */ 21449a76f1ffSMark Brown #define WM8962_CP_ENA_SHIFT 0 /* CP_ENA */ 21459a76f1ffSMark Brown #define WM8962_CP_ENA_WIDTH 1 /* CP_ENA */ 21469a76f1ffSMark Brown 21479a76f1ffSMark Brown /* 21489a76f1ffSMark Brown * R82 (0x52) - Charge Pump B 21499a76f1ffSMark Brown */ 21509a76f1ffSMark Brown #define WM8962_CP_DYN_PWR 0x0001 /* CP_DYN_PWR */ 21519a76f1ffSMark Brown #define WM8962_CP_DYN_PWR_MASK 0x0001 /* CP_DYN_PWR */ 21529a76f1ffSMark Brown #define WM8962_CP_DYN_PWR_SHIFT 0 /* CP_DYN_PWR */ 21539a76f1ffSMark Brown #define WM8962_CP_DYN_PWR_WIDTH 1 /* CP_DYN_PWR */ 21549a76f1ffSMark Brown 21559a76f1ffSMark Brown /* 21569a76f1ffSMark Brown * R87 (0x57) - Write Sequencer Control 1 21579a76f1ffSMark Brown */ 21589a76f1ffSMark Brown #define WM8962_WSEQ_AUTOSEQ_ENA 0x0080 /* WSEQ_AUTOSEQ_ENA */ 21599a76f1ffSMark Brown #define WM8962_WSEQ_AUTOSEQ_ENA_MASK 0x0080 /* WSEQ_AUTOSEQ_ENA */ 21609a76f1ffSMark Brown #define WM8962_WSEQ_AUTOSEQ_ENA_SHIFT 7 /* WSEQ_AUTOSEQ_ENA */ 21619a76f1ffSMark Brown #define WM8962_WSEQ_AUTOSEQ_ENA_WIDTH 1 /* WSEQ_AUTOSEQ_ENA */ 21629a76f1ffSMark Brown #define WM8962_WSEQ_ENA 0x0020 /* WSEQ_ENA */ 21639a76f1ffSMark Brown #define WM8962_WSEQ_ENA_MASK 0x0020 /* WSEQ_ENA */ 21649a76f1ffSMark Brown #define WM8962_WSEQ_ENA_SHIFT 5 /* WSEQ_ENA */ 21659a76f1ffSMark Brown #define WM8962_WSEQ_ENA_WIDTH 1 /* WSEQ_ENA */ 21669a76f1ffSMark Brown 21679a76f1ffSMark Brown /* 21689a76f1ffSMark Brown * R90 (0x5A) - Write Sequencer Control 2 21699a76f1ffSMark Brown */ 21709a76f1ffSMark Brown #define WM8962_WSEQ_ABORT 0x0100 /* WSEQ_ABORT */ 21719a76f1ffSMark Brown #define WM8962_WSEQ_ABORT_MASK 0x0100 /* WSEQ_ABORT */ 21729a76f1ffSMark Brown #define WM8962_WSEQ_ABORT_SHIFT 8 /* WSEQ_ABORT */ 21739a76f1ffSMark Brown #define WM8962_WSEQ_ABORT_WIDTH 1 /* WSEQ_ABORT */ 21749a76f1ffSMark Brown #define WM8962_WSEQ_START 0x0080 /* WSEQ_START */ 21759a76f1ffSMark Brown #define WM8962_WSEQ_START_MASK 0x0080 /* WSEQ_START */ 21769a76f1ffSMark Brown #define WM8962_WSEQ_START_SHIFT 7 /* WSEQ_START */ 21779a76f1ffSMark Brown #define WM8962_WSEQ_START_WIDTH 1 /* WSEQ_START */ 21789a76f1ffSMark Brown #define WM8962_WSEQ_START_INDEX_MASK 0x007F /* WSEQ_START_INDEX - [6:0] */ 21799a76f1ffSMark Brown #define WM8962_WSEQ_START_INDEX_SHIFT 0 /* WSEQ_START_INDEX - [6:0] */ 21809a76f1ffSMark Brown #define WM8962_WSEQ_START_INDEX_WIDTH 7 /* WSEQ_START_INDEX - [6:0] */ 21819a76f1ffSMark Brown 21829a76f1ffSMark Brown /* 21839a76f1ffSMark Brown * R93 (0x5D) - Write Sequencer Control 3 21849a76f1ffSMark Brown */ 21859a76f1ffSMark Brown #define WM8962_WSEQ_CURRENT_INDEX_MASK 0x03F8 /* WSEQ_CURRENT_INDEX - [9:3] */ 21869a76f1ffSMark Brown #define WM8962_WSEQ_CURRENT_INDEX_SHIFT 3 /* WSEQ_CURRENT_INDEX - [9:3] */ 21879a76f1ffSMark Brown #define WM8962_WSEQ_CURRENT_INDEX_WIDTH 7 /* WSEQ_CURRENT_INDEX - [9:3] */ 21889a76f1ffSMark Brown #define WM8962_WSEQ_BUSY 0x0001 /* WSEQ_BUSY */ 21899a76f1ffSMark Brown #define WM8962_WSEQ_BUSY_MASK 0x0001 /* WSEQ_BUSY */ 21909a76f1ffSMark Brown #define WM8962_WSEQ_BUSY_SHIFT 0 /* WSEQ_BUSY */ 21919a76f1ffSMark Brown #define WM8962_WSEQ_BUSY_WIDTH 1 /* WSEQ_BUSY */ 21929a76f1ffSMark Brown 21939a76f1ffSMark Brown /* 21949a76f1ffSMark Brown * R94 (0x5E) - Control Interface 21959a76f1ffSMark Brown */ 21969a76f1ffSMark Brown #define WM8962_SPI_CONTRD 0x0040 /* SPI_CONTRD */ 21979a76f1ffSMark Brown #define WM8962_SPI_CONTRD_MASK 0x0040 /* SPI_CONTRD */ 21989a76f1ffSMark Brown #define WM8962_SPI_CONTRD_SHIFT 6 /* SPI_CONTRD */ 21999a76f1ffSMark Brown #define WM8962_SPI_CONTRD_WIDTH 1 /* SPI_CONTRD */ 22009a76f1ffSMark Brown #define WM8962_SPI_4WIRE 0x0020 /* SPI_4WIRE */ 22019a76f1ffSMark Brown #define WM8962_SPI_4WIRE_MASK 0x0020 /* SPI_4WIRE */ 22029a76f1ffSMark Brown #define WM8962_SPI_4WIRE_SHIFT 5 /* SPI_4WIRE */ 22039a76f1ffSMark Brown #define WM8962_SPI_4WIRE_WIDTH 1 /* SPI_4WIRE */ 22049a76f1ffSMark Brown #define WM8962_SPI_CFG 0x0010 /* SPI_CFG */ 22059a76f1ffSMark Brown #define WM8962_SPI_CFG_MASK 0x0010 /* SPI_CFG */ 22069a76f1ffSMark Brown #define WM8962_SPI_CFG_SHIFT 4 /* SPI_CFG */ 22079a76f1ffSMark Brown #define WM8962_SPI_CFG_WIDTH 1 /* SPI_CFG */ 22089a76f1ffSMark Brown 22099a76f1ffSMark Brown /* 22109a76f1ffSMark Brown * R99 (0x63) - Mixer Enables 22119a76f1ffSMark Brown */ 22129a76f1ffSMark Brown #define WM8962_HPMIXL_ENA 0x0008 /* HPMIXL_ENA */ 22139a76f1ffSMark Brown #define WM8962_HPMIXL_ENA_MASK 0x0008 /* HPMIXL_ENA */ 22149a76f1ffSMark Brown #define WM8962_HPMIXL_ENA_SHIFT 3 /* HPMIXL_ENA */ 22159a76f1ffSMark Brown #define WM8962_HPMIXL_ENA_WIDTH 1 /* HPMIXL_ENA */ 22169a76f1ffSMark Brown #define WM8962_HPMIXR_ENA 0x0004 /* HPMIXR_ENA */ 22179a76f1ffSMark Brown #define WM8962_HPMIXR_ENA_MASK 0x0004 /* HPMIXR_ENA */ 22189a76f1ffSMark Brown #define WM8962_HPMIXR_ENA_SHIFT 2 /* HPMIXR_ENA */ 22199a76f1ffSMark Brown #define WM8962_HPMIXR_ENA_WIDTH 1 /* HPMIXR_ENA */ 22209a76f1ffSMark Brown #define WM8962_SPKMIXL_ENA 0x0002 /* SPKMIXL_ENA */ 22219a76f1ffSMark Brown #define WM8962_SPKMIXL_ENA_MASK 0x0002 /* SPKMIXL_ENA */ 22229a76f1ffSMark Brown #define WM8962_SPKMIXL_ENA_SHIFT 1 /* SPKMIXL_ENA */ 22239a76f1ffSMark Brown #define WM8962_SPKMIXL_ENA_WIDTH 1 /* SPKMIXL_ENA */ 22249a76f1ffSMark Brown #define WM8962_SPKMIXR_ENA 0x0001 /* SPKMIXR_ENA */ 22259a76f1ffSMark Brown #define WM8962_SPKMIXR_ENA_MASK 0x0001 /* SPKMIXR_ENA */ 22269a76f1ffSMark Brown #define WM8962_SPKMIXR_ENA_SHIFT 0 /* SPKMIXR_ENA */ 22279a76f1ffSMark Brown #define WM8962_SPKMIXR_ENA_WIDTH 1 /* SPKMIXR_ENA */ 22289a76f1ffSMark Brown 22299a76f1ffSMark Brown /* 22309a76f1ffSMark Brown * R100 (0x64) - Headphone Mixer (1) 22319a76f1ffSMark Brown */ 22329a76f1ffSMark Brown #define WM8962_HPMIXL_TO_HPOUTL_PGA 0x0080 /* HPMIXL_TO_HPOUTL_PGA */ 22339a76f1ffSMark Brown #define WM8962_HPMIXL_TO_HPOUTL_PGA_MASK 0x0080 /* HPMIXL_TO_HPOUTL_PGA */ 22349a76f1ffSMark Brown #define WM8962_HPMIXL_TO_HPOUTL_PGA_SHIFT 7 /* HPMIXL_TO_HPOUTL_PGA */ 22359a76f1ffSMark Brown #define WM8962_HPMIXL_TO_HPOUTL_PGA_WIDTH 1 /* HPMIXL_TO_HPOUTL_PGA */ 22369a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXL 0x0020 /* DACL_TO_HPMIXL */ 22379a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXL_MASK 0x0020 /* DACL_TO_HPMIXL */ 22389a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXL_SHIFT 5 /* DACL_TO_HPMIXL */ 22399a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXL_WIDTH 1 /* DACL_TO_HPMIXL */ 22409a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXL 0x0010 /* DACR_TO_HPMIXL */ 22419a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXL_MASK 0x0010 /* DACR_TO_HPMIXL */ 22429a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXL_SHIFT 4 /* DACR_TO_HPMIXL */ 22439a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXL_WIDTH 1 /* DACR_TO_HPMIXL */ 22449a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXL 0x0008 /* MIXINL_TO_HPMIXL */ 22459a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXL_MASK 0x0008 /* MIXINL_TO_HPMIXL */ 22469a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXL_SHIFT 3 /* MIXINL_TO_HPMIXL */ 22479a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXL_WIDTH 1 /* MIXINL_TO_HPMIXL */ 22489a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXL 0x0004 /* MIXINR_TO_HPMIXL */ 22499a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXL_MASK 0x0004 /* MIXINR_TO_HPMIXL */ 22509a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXL_SHIFT 2 /* MIXINR_TO_HPMIXL */ 22519a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXL_WIDTH 1 /* MIXINR_TO_HPMIXL */ 22529a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXL 0x0002 /* IN4L_TO_HPMIXL */ 22539a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXL_MASK 0x0002 /* IN4L_TO_HPMIXL */ 22549a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXL_SHIFT 1 /* IN4L_TO_HPMIXL */ 22559a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXL_WIDTH 1 /* IN4L_TO_HPMIXL */ 22569a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXL 0x0001 /* IN4R_TO_HPMIXL */ 22579a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXL_MASK 0x0001 /* IN4R_TO_HPMIXL */ 22589a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXL_SHIFT 0 /* IN4R_TO_HPMIXL */ 22599a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXL_WIDTH 1 /* IN4R_TO_HPMIXL */ 22609a76f1ffSMark Brown 22619a76f1ffSMark Brown /* 22629a76f1ffSMark Brown * R101 (0x65) - Headphone Mixer (2) 22639a76f1ffSMark Brown */ 22649a76f1ffSMark Brown #define WM8962_HPMIXR_TO_HPOUTR_PGA 0x0080 /* HPMIXR_TO_HPOUTR_PGA */ 22659a76f1ffSMark Brown #define WM8962_HPMIXR_TO_HPOUTR_PGA_MASK 0x0080 /* HPMIXR_TO_HPOUTR_PGA */ 22669a76f1ffSMark Brown #define WM8962_HPMIXR_TO_HPOUTR_PGA_SHIFT 7 /* HPMIXR_TO_HPOUTR_PGA */ 22679a76f1ffSMark Brown #define WM8962_HPMIXR_TO_HPOUTR_PGA_WIDTH 1 /* HPMIXR_TO_HPOUTR_PGA */ 22689a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXR 0x0020 /* DACL_TO_HPMIXR */ 22699a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXR_MASK 0x0020 /* DACL_TO_HPMIXR */ 22709a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXR_SHIFT 5 /* DACL_TO_HPMIXR */ 22719a76f1ffSMark Brown #define WM8962_DACL_TO_HPMIXR_WIDTH 1 /* DACL_TO_HPMIXR */ 22729a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXR 0x0010 /* DACR_TO_HPMIXR */ 22739a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXR_MASK 0x0010 /* DACR_TO_HPMIXR */ 22749a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXR_SHIFT 4 /* DACR_TO_HPMIXR */ 22759a76f1ffSMark Brown #define WM8962_DACR_TO_HPMIXR_WIDTH 1 /* DACR_TO_HPMIXR */ 22769a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXR 0x0008 /* MIXINL_TO_HPMIXR */ 22779a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXR_MASK 0x0008 /* MIXINL_TO_HPMIXR */ 22789a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXR_SHIFT 3 /* MIXINL_TO_HPMIXR */ 22799a76f1ffSMark Brown #define WM8962_MIXINL_TO_HPMIXR_WIDTH 1 /* MIXINL_TO_HPMIXR */ 22809a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXR 0x0004 /* MIXINR_TO_HPMIXR */ 22819a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXR_MASK 0x0004 /* MIXINR_TO_HPMIXR */ 22829a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXR_SHIFT 2 /* MIXINR_TO_HPMIXR */ 22839a76f1ffSMark Brown #define WM8962_MIXINR_TO_HPMIXR_WIDTH 1 /* MIXINR_TO_HPMIXR */ 22849a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXR 0x0002 /* IN4L_TO_HPMIXR */ 22859a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXR_MASK 0x0002 /* IN4L_TO_HPMIXR */ 22869a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXR_SHIFT 1 /* IN4L_TO_HPMIXR */ 22879a76f1ffSMark Brown #define WM8962_IN4L_TO_HPMIXR_WIDTH 1 /* IN4L_TO_HPMIXR */ 22889a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXR 0x0001 /* IN4R_TO_HPMIXR */ 22899a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXR_MASK 0x0001 /* IN4R_TO_HPMIXR */ 22909a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXR_SHIFT 0 /* IN4R_TO_HPMIXR */ 22919a76f1ffSMark Brown #define WM8962_IN4R_TO_HPMIXR_WIDTH 1 /* IN4R_TO_HPMIXR */ 22929a76f1ffSMark Brown 22939a76f1ffSMark Brown /* 22949a76f1ffSMark Brown * R102 (0x66) - Headphone Mixer (3) 22959a76f1ffSMark Brown */ 22969a76f1ffSMark Brown #define WM8962_HPMIXL_MUTE 0x0100 /* HPMIXL_MUTE */ 22979a76f1ffSMark Brown #define WM8962_HPMIXL_MUTE_MASK 0x0100 /* HPMIXL_MUTE */ 22989a76f1ffSMark Brown #define WM8962_HPMIXL_MUTE_SHIFT 8 /* HPMIXL_MUTE */ 22999a76f1ffSMark Brown #define WM8962_HPMIXL_MUTE_WIDTH 1 /* HPMIXL_MUTE */ 23009a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXL_VOL 0x0080 /* MIXINL_HPMIXL_VOL */ 23019a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXL_VOL_MASK 0x0080 /* MIXINL_HPMIXL_VOL */ 23029a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXL_VOL_SHIFT 7 /* MIXINL_HPMIXL_VOL */ 23039a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXL_VOL_WIDTH 1 /* MIXINL_HPMIXL_VOL */ 23049a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXL_VOL 0x0040 /* MIXINR_HPMIXL_VOL */ 23059a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXL_VOL_MASK 0x0040 /* MIXINR_HPMIXL_VOL */ 23069a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXL_VOL_SHIFT 6 /* MIXINR_HPMIXL_VOL */ 23079a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXL_VOL_WIDTH 1 /* MIXINR_HPMIXL_VOL */ 23089a76f1ffSMark Brown #define WM8962_IN4L_HPMIXL_VOL_MASK 0x0038 /* IN4L_HPMIXL_VOL - [5:3] */ 23099a76f1ffSMark Brown #define WM8962_IN4L_HPMIXL_VOL_SHIFT 3 /* IN4L_HPMIXL_VOL - [5:3] */ 23109a76f1ffSMark Brown #define WM8962_IN4L_HPMIXL_VOL_WIDTH 3 /* IN4L_HPMIXL_VOL - [5:3] */ 23119a76f1ffSMark Brown #define WM8962_IN4R_HPMIXL_VOL_MASK 0x0007 /* IN4R_HPMIXL_VOL - [2:0] */ 23129a76f1ffSMark Brown #define WM8962_IN4R_HPMIXL_VOL_SHIFT 0 /* IN4R_HPMIXL_VOL - [2:0] */ 23139a76f1ffSMark Brown #define WM8962_IN4R_HPMIXL_VOL_WIDTH 3 /* IN4R_HPMIXL_VOL - [2:0] */ 23149a76f1ffSMark Brown 23159a76f1ffSMark Brown /* 23169a76f1ffSMark Brown * R103 (0x67) - Headphone Mixer (4) 23179a76f1ffSMark Brown */ 23189a76f1ffSMark Brown #define WM8962_HPMIXR_MUTE 0x0100 /* HPMIXR_MUTE */ 23199a76f1ffSMark Brown #define WM8962_HPMIXR_MUTE_MASK 0x0100 /* HPMIXR_MUTE */ 23209a76f1ffSMark Brown #define WM8962_HPMIXR_MUTE_SHIFT 8 /* HPMIXR_MUTE */ 23219a76f1ffSMark Brown #define WM8962_HPMIXR_MUTE_WIDTH 1 /* HPMIXR_MUTE */ 23229a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXR_VOL 0x0080 /* MIXINL_HPMIXR_VOL */ 23239a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXR_VOL_MASK 0x0080 /* MIXINL_HPMIXR_VOL */ 23249a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXR_VOL_SHIFT 7 /* MIXINL_HPMIXR_VOL */ 23259a76f1ffSMark Brown #define WM8962_MIXINL_HPMIXR_VOL_WIDTH 1 /* MIXINL_HPMIXR_VOL */ 23269a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXR_VOL 0x0040 /* MIXINR_HPMIXR_VOL */ 23279a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXR_VOL_MASK 0x0040 /* MIXINR_HPMIXR_VOL */ 23289a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXR_VOL_SHIFT 6 /* MIXINR_HPMIXR_VOL */ 23299a76f1ffSMark Brown #define WM8962_MIXINR_HPMIXR_VOL_WIDTH 1 /* MIXINR_HPMIXR_VOL */ 23309a76f1ffSMark Brown #define WM8962_IN4L_HPMIXR_VOL_MASK 0x0038 /* IN4L_HPMIXR_VOL - [5:3] */ 23319a76f1ffSMark Brown #define WM8962_IN4L_HPMIXR_VOL_SHIFT 3 /* IN4L_HPMIXR_VOL - [5:3] */ 23329a76f1ffSMark Brown #define WM8962_IN4L_HPMIXR_VOL_WIDTH 3 /* IN4L_HPMIXR_VOL - [5:3] */ 23339a76f1ffSMark Brown #define WM8962_IN4R_HPMIXR_VOL_MASK 0x0007 /* IN4R_HPMIXR_VOL - [2:0] */ 23349a76f1ffSMark Brown #define WM8962_IN4R_HPMIXR_VOL_SHIFT 0 /* IN4R_HPMIXR_VOL - [2:0] */ 23359a76f1ffSMark Brown #define WM8962_IN4R_HPMIXR_VOL_WIDTH 3 /* IN4R_HPMIXR_VOL - [2:0] */ 23369a76f1ffSMark Brown 23379a76f1ffSMark Brown /* 23389a76f1ffSMark Brown * R105 (0x69) - Speaker Mixer (1) 23399a76f1ffSMark Brown */ 23409a76f1ffSMark Brown #define WM8962_SPKMIXL_TO_SPKOUTL_PGA 0x0080 /* SPKMIXL_TO_SPKOUTL_PGA */ 23419a76f1ffSMark Brown #define WM8962_SPKMIXL_TO_SPKOUTL_PGA_MASK 0x0080 /* SPKMIXL_TO_SPKOUTL_PGA */ 23429a76f1ffSMark Brown #define WM8962_SPKMIXL_TO_SPKOUTL_PGA_SHIFT 7 /* SPKMIXL_TO_SPKOUTL_PGA */ 23439a76f1ffSMark Brown #define WM8962_SPKMIXL_TO_SPKOUTL_PGA_WIDTH 1 /* SPKMIXL_TO_SPKOUTL_PGA */ 23449a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXL 0x0020 /* DACL_TO_SPKMIXL */ 23459a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXL_MASK 0x0020 /* DACL_TO_SPKMIXL */ 23469a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXL_SHIFT 5 /* DACL_TO_SPKMIXL */ 23479a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXL_WIDTH 1 /* DACL_TO_SPKMIXL */ 23489a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXL 0x0010 /* DACR_TO_SPKMIXL */ 23499a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXL_MASK 0x0010 /* DACR_TO_SPKMIXL */ 23509a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXL_SHIFT 4 /* DACR_TO_SPKMIXL */ 23519a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXL_WIDTH 1 /* DACR_TO_SPKMIXL */ 23529a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXL 0x0008 /* MIXINL_TO_SPKMIXL */ 23539a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXL_MASK 0x0008 /* MIXINL_TO_SPKMIXL */ 23549a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXL_SHIFT 3 /* MIXINL_TO_SPKMIXL */ 23559a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXL_WIDTH 1 /* MIXINL_TO_SPKMIXL */ 23569a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXL 0x0004 /* MIXINR_TO_SPKMIXL */ 23579a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXL_MASK 0x0004 /* MIXINR_TO_SPKMIXL */ 23589a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXL_SHIFT 2 /* MIXINR_TO_SPKMIXL */ 23599a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXL_WIDTH 1 /* MIXINR_TO_SPKMIXL */ 23609a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXL 0x0002 /* IN4L_TO_SPKMIXL */ 23619a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXL_MASK 0x0002 /* IN4L_TO_SPKMIXL */ 23629a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXL_SHIFT 1 /* IN4L_TO_SPKMIXL */ 23639a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXL_WIDTH 1 /* IN4L_TO_SPKMIXL */ 23649a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXL 0x0001 /* IN4R_TO_SPKMIXL */ 23659a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXL_MASK 0x0001 /* IN4R_TO_SPKMIXL */ 23669a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXL_SHIFT 0 /* IN4R_TO_SPKMIXL */ 23679a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXL_WIDTH 1 /* IN4R_TO_SPKMIXL */ 23689a76f1ffSMark Brown 23699a76f1ffSMark Brown /* 23709a76f1ffSMark Brown * R106 (0x6A) - Speaker Mixer (2) 23719a76f1ffSMark Brown */ 23729a76f1ffSMark Brown #define WM8962_SPKMIXR_TO_SPKOUTR_PGA 0x0080 /* SPKMIXR_TO_SPKOUTR_PGA */ 23739a76f1ffSMark Brown #define WM8962_SPKMIXR_TO_SPKOUTR_PGA_MASK 0x0080 /* SPKMIXR_TO_SPKOUTR_PGA */ 23749a76f1ffSMark Brown #define WM8962_SPKMIXR_TO_SPKOUTR_PGA_SHIFT 7 /* SPKMIXR_TO_SPKOUTR_PGA */ 23759a76f1ffSMark Brown #define WM8962_SPKMIXR_TO_SPKOUTR_PGA_WIDTH 1 /* SPKMIXR_TO_SPKOUTR_PGA */ 23769a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXR 0x0020 /* DACL_TO_SPKMIXR */ 23779a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXR_MASK 0x0020 /* DACL_TO_SPKMIXR */ 23789a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXR_SHIFT 5 /* DACL_TO_SPKMIXR */ 23799a76f1ffSMark Brown #define WM8962_DACL_TO_SPKMIXR_WIDTH 1 /* DACL_TO_SPKMIXR */ 23809a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXR 0x0010 /* DACR_TO_SPKMIXR */ 23819a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXR_MASK 0x0010 /* DACR_TO_SPKMIXR */ 23829a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXR_SHIFT 4 /* DACR_TO_SPKMIXR */ 23839a76f1ffSMark Brown #define WM8962_DACR_TO_SPKMIXR_WIDTH 1 /* DACR_TO_SPKMIXR */ 23849a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXR 0x0008 /* MIXINL_TO_SPKMIXR */ 23859a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXR_MASK 0x0008 /* MIXINL_TO_SPKMIXR */ 23869a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXR_SHIFT 3 /* MIXINL_TO_SPKMIXR */ 23879a76f1ffSMark Brown #define WM8962_MIXINL_TO_SPKMIXR_WIDTH 1 /* MIXINL_TO_SPKMIXR */ 23889a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXR 0x0004 /* MIXINR_TO_SPKMIXR */ 23899a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXR_MASK 0x0004 /* MIXINR_TO_SPKMIXR */ 23909a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXR_SHIFT 2 /* MIXINR_TO_SPKMIXR */ 23919a76f1ffSMark Brown #define WM8962_MIXINR_TO_SPKMIXR_WIDTH 1 /* MIXINR_TO_SPKMIXR */ 23929a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXR 0x0002 /* IN4L_TO_SPKMIXR */ 23939a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXR_MASK 0x0002 /* IN4L_TO_SPKMIXR */ 23949a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXR_SHIFT 1 /* IN4L_TO_SPKMIXR */ 23959a76f1ffSMark Brown #define WM8962_IN4L_TO_SPKMIXR_WIDTH 1 /* IN4L_TO_SPKMIXR */ 23969a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXR 0x0001 /* IN4R_TO_SPKMIXR */ 23979a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXR_MASK 0x0001 /* IN4R_TO_SPKMIXR */ 23989a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXR_SHIFT 0 /* IN4R_TO_SPKMIXR */ 23999a76f1ffSMark Brown #define WM8962_IN4R_TO_SPKMIXR_WIDTH 1 /* IN4R_TO_SPKMIXR */ 24009a76f1ffSMark Brown 24019a76f1ffSMark Brown /* 24029a76f1ffSMark Brown * R107 (0x6B) - Speaker Mixer (3) 24039a76f1ffSMark Brown */ 24049a76f1ffSMark Brown #define WM8962_SPKMIXL_MUTE 0x0100 /* SPKMIXL_MUTE */ 24059a76f1ffSMark Brown #define WM8962_SPKMIXL_MUTE_MASK 0x0100 /* SPKMIXL_MUTE */ 24069a76f1ffSMark Brown #define WM8962_SPKMIXL_MUTE_SHIFT 8 /* SPKMIXL_MUTE */ 24079a76f1ffSMark Brown #define WM8962_SPKMIXL_MUTE_WIDTH 1 /* SPKMIXL_MUTE */ 24089a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXL_VOL 0x0080 /* MIXINL_SPKMIXL_VOL */ 24099a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXL_VOL_MASK 0x0080 /* MIXINL_SPKMIXL_VOL */ 24109a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXL_VOL_SHIFT 7 /* MIXINL_SPKMIXL_VOL */ 24119a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXL_VOL_WIDTH 1 /* MIXINL_SPKMIXL_VOL */ 24129a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXL_VOL 0x0040 /* MIXINR_SPKMIXL_VOL */ 24139a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXL_VOL_MASK 0x0040 /* MIXINR_SPKMIXL_VOL */ 24149a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXL_VOL_SHIFT 6 /* MIXINR_SPKMIXL_VOL */ 24159a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXL_VOL_WIDTH 1 /* MIXINR_SPKMIXL_VOL */ 24169a76f1ffSMark Brown #define WM8962_IN4L_SPKMIXL_VOL_MASK 0x0038 /* IN4L_SPKMIXL_VOL - [5:3] */ 24179a76f1ffSMark Brown #define WM8962_IN4L_SPKMIXL_VOL_SHIFT 3 /* IN4L_SPKMIXL_VOL - [5:3] */ 24189a76f1ffSMark Brown #define WM8962_IN4L_SPKMIXL_VOL_WIDTH 3 /* IN4L_SPKMIXL_VOL - [5:3] */ 24199a76f1ffSMark Brown #define WM8962_IN4R_SPKMIXL_VOL_MASK 0x0007 /* IN4R_SPKMIXL_VOL - [2:0] */ 24209a76f1ffSMark Brown #define WM8962_IN4R_SPKMIXL_VOL_SHIFT 0 /* IN4R_SPKMIXL_VOL - [2:0] */ 24219a76f1ffSMark Brown #define WM8962_IN4R_SPKMIXL_VOL_WIDTH 3 /* IN4R_SPKMIXL_VOL - [2:0] */ 24229a76f1ffSMark Brown 24239a76f1ffSMark Brown /* 24249a76f1ffSMark Brown * R108 (0x6C) - Speaker Mixer (4) 24259a76f1ffSMark Brown */ 24269a76f1ffSMark Brown #define WM8962_SPKMIXR_MUTE 0x0100 /* SPKMIXR_MUTE */ 24279a76f1ffSMark Brown #define WM8962_SPKMIXR_MUTE_MASK 0x0100 /* SPKMIXR_MUTE */ 24289a76f1ffSMark Brown #define WM8962_SPKMIXR_MUTE_SHIFT 8 /* SPKMIXR_MUTE */ 24299a76f1ffSMark Brown #define WM8962_SPKMIXR_MUTE_WIDTH 1 /* SPKMIXR_MUTE */ 24309a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXR_VOL 0x0080 /* MIXINL_SPKMIXR_VOL */ 24319a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXR_VOL_MASK 0x0080 /* MIXINL_SPKMIXR_VOL */ 24329a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXR_VOL_SHIFT 7 /* MIXINL_SPKMIXR_VOL */ 24339a76f1ffSMark Brown #define WM8962_MIXINL_SPKMIXR_VOL_WIDTH 1 /* MIXINL_SPKMIXR_VOL */ 24349a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXR_VOL 0x0040 /* MIXINR_SPKMIXR_VOL */ 24359a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXR_VOL_MASK 0x0040 /* MIXINR_SPKMIXR_VOL */ 24369a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXR_VOL_SHIFT 6 /* MIXINR_SPKMIXR_VOL */ 24379a76f1ffSMark Brown #define WM8962_MIXINR_SPKMIXR_VOL_WIDTH 1 /* MIXINR_SPKMIXR_VOL */ 24389a76f1ffSMark Brown #define WM8962_IN4L_SPKMIXR_VOL_MASK 0x0038 /* IN4L_SPKMIXR_VOL - [5:3] */ 24399a76f1ffSMark Brown #define WM8962_IN4L_SPKMIXR_VOL_SHIFT 3 /* IN4L_SPKMIXR_VOL - [5:3] */ 24409a76f1ffSMark Brown #define WM8962_IN4L_SPKMIXR_VOL_WIDTH 3 /* IN4L_SPKMIXR_VOL - [5:3] */ 24419a76f1ffSMark Brown #define WM8962_IN4R_SPKMIXR_VOL_MASK 0x0007 /* IN4R_SPKMIXR_VOL - [2:0] */ 24429a76f1ffSMark Brown #define WM8962_IN4R_SPKMIXR_VOL_SHIFT 0 /* IN4R_SPKMIXR_VOL - [2:0] */ 24439a76f1ffSMark Brown #define WM8962_IN4R_SPKMIXR_VOL_WIDTH 3 /* IN4R_SPKMIXR_VOL - [2:0] */ 24449a76f1ffSMark Brown 24459a76f1ffSMark Brown /* 24469a76f1ffSMark Brown * R109 (0x6D) - Speaker Mixer (5) 24479a76f1ffSMark Brown */ 24489a76f1ffSMark Brown #define WM8962_DACL_SPKMIXL_VOL 0x0080 /* DACL_SPKMIXL_VOL */ 24499a76f1ffSMark Brown #define WM8962_DACL_SPKMIXL_VOL_MASK 0x0080 /* DACL_SPKMIXL_VOL */ 24509a76f1ffSMark Brown #define WM8962_DACL_SPKMIXL_VOL_SHIFT 7 /* DACL_SPKMIXL_VOL */ 24519a76f1ffSMark Brown #define WM8962_DACL_SPKMIXL_VOL_WIDTH 1 /* DACL_SPKMIXL_VOL */ 24529a76f1ffSMark Brown #define WM8962_DACR_SPKMIXL_VOL 0x0040 /* DACR_SPKMIXL_VOL */ 24539a76f1ffSMark Brown #define WM8962_DACR_SPKMIXL_VOL_MASK 0x0040 /* DACR_SPKMIXL_VOL */ 24549a76f1ffSMark Brown #define WM8962_DACR_SPKMIXL_VOL_SHIFT 6 /* DACR_SPKMIXL_VOL */ 24559a76f1ffSMark Brown #define WM8962_DACR_SPKMIXL_VOL_WIDTH 1 /* DACR_SPKMIXL_VOL */ 24569a76f1ffSMark Brown #define WM8962_DACL_SPKMIXR_VOL 0x0020 /* DACL_SPKMIXR_VOL */ 24579a76f1ffSMark Brown #define WM8962_DACL_SPKMIXR_VOL_MASK 0x0020 /* DACL_SPKMIXR_VOL */ 24589a76f1ffSMark Brown #define WM8962_DACL_SPKMIXR_VOL_SHIFT 5 /* DACL_SPKMIXR_VOL */ 24599a76f1ffSMark Brown #define WM8962_DACL_SPKMIXR_VOL_WIDTH 1 /* DACL_SPKMIXR_VOL */ 24609a76f1ffSMark Brown #define WM8962_DACR_SPKMIXR_VOL 0x0010 /* DACR_SPKMIXR_VOL */ 24619a76f1ffSMark Brown #define WM8962_DACR_SPKMIXR_VOL_MASK 0x0010 /* DACR_SPKMIXR_VOL */ 24629a76f1ffSMark Brown #define WM8962_DACR_SPKMIXR_VOL_SHIFT 4 /* DACR_SPKMIXR_VOL */ 24639a76f1ffSMark Brown #define WM8962_DACR_SPKMIXR_VOL_WIDTH 1 /* DACR_SPKMIXR_VOL */ 24649a76f1ffSMark Brown 24659a76f1ffSMark Brown /* 24669a76f1ffSMark Brown * R110 (0x6E) - Beep Generator (1) 24679a76f1ffSMark Brown */ 24689a76f1ffSMark Brown #define WM8962_BEEP_GAIN_MASK 0x00F0 /* BEEP_GAIN - [7:4] */ 24699a76f1ffSMark Brown #define WM8962_BEEP_GAIN_SHIFT 4 /* BEEP_GAIN - [7:4] */ 24709a76f1ffSMark Brown #define WM8962_BEEP_GAIN_WIDTH 4 /* BEEP_GAIN - [7:4] */ 24719a76f1ffSMark Brown #define WM8962_BEEP_RATE_MASK 0x0006 /* BEEP_RATE - [2:1] */ 24729a76f1ffSMark Brown #define WM8962_BEEP_RATE_SHIFT 1 /* BEEP_RATE - [2:1] */ 24739a76f1ffSMark Brown #define WM8962_BEEP_RATE_WIDTH 2 /* BEEP_RATE - [2:1] */ 24749a76f1ffSMark Brown #define WM8962_BEEP_ENA 0x0001 /* BEEP_ENA */ 24759a76f1ffSMark Brown #define WM8962_BEEP_ENA_MASK 0x0001 /* BEEP_ENA */ 24769a76f1ffSMark Brown #define WM8962_BEEP_ENA_SHIFT 0 /* BEEP_ENA */ 24779a76f1ffSMark Brown #define WM8962_BEEP_ENA_WIDTH 1 /* BEEP_ENA */ 24789a76f1ffSMark Brown 24799a76f1ffSMark Brown /* 24809a76f1ffSMark Brown * R115 (0x73) - Oscillator Trim (3) 24819a76f1ffSMark Brown */ 24829a76f1ffSMark Brown #define WM8962_OSC_TRIM_XTI_MASK 0x001F /* OSC_TRIM_XTI - [4:0] */ 24839a76f1ffSMark Brown #define WM8962_OSC_TRIM_XTI_SHIFT 0 /* OSC_TRIM_XTI - [4:0] */ 24849a76f1ffSMark Brown #define WM8962_OSC_TRIM_XTI_WIDTH 5 /* OSC_TRIM_XTI - [4:0] */ 24859a76f1ffSMark Brown 24869a76f1ffSMark Brown /* 24879a76f1ffSMark Brown * R116 (0x74) - Oscillator Trim (4) 24889a76f1ffSMark Brown */ 24899a76f1ffSMark Brown #define WM8962_OSC_TRIM_XTO_MASK 0x001F /* OSC_TRIM_XTO - [4:0] */ 24909a76f1ffSMark Brown #define WM8962_OSC_TRIM_XTO_SHIFT 0 /* OSC_TRIM_XTO - [4:0] */ 24919a76f1ffSMark Brown #define WM8962_OSC_TRIM_XTO_WIDTH 5 /* OSC_TRIM_XTO - [4:0] */ 24929a76f1ffSMark Brown 24939a76f1ffSMark Brown /* 24949a76f1ffSMark Brown * R119 (0x77) - Oscillator Trim (7) 24959a76f1ffSMark Brown */ 24969a76f1ffSMark Brown #define WM8962_XTO_CAP_SEL_MASK 0x00F0 /* XTO_CAP_SEL - [7:4] */ 24979a76f1ffSMark Brown #define WM8962_XTO_CAP_SEL_SHIFT 4 /* XTO_CAP_SEL - [7:4] */ 24989a76f1ffSMark Brown #define WM8962_XTO_CAP_SEL_WIDTH 4 /* XTO_CAP_SEL - [7:4] */ 24999a76f1ffSMark Brown #define WM8962_XTI_CAP_SEL_MASK 0x000F /* XTI_CAP_SEL - [3:0] */ 25009a76f1ffSMark Brown #define WM8962_XTI_CAP_SEL_SHIFT 0 /* XTI_CAP_SEL - [3:0] */ 25019a76f1ffSMark Brown #define WM8962_XTI_CAP_SEL_WIDTH 4 /* XTI_CAP_SEL - [3:0] */ 25029a76f1ffSMark Brown 25039a76f1ffSMark Brown /* 25049a76f1ffSMark Brown * R124 (0x7C) - Analogue Clocking1 25059a76f1ffSMark Brown */ 25069a76f1ffSMark Brown #define WM8962_CLKOUT2_SEL_MASK 0x0060 /* CLKOUT2_SEL - [6:5] */ 25079a76f1ffSMark Brown #define WM8962_CLKOUT2_SEL_SHIFT 5 /* CLKOUT2_SEL - [6:5] */ 25089a76f1ffSMark Brown #define WM8962_CLKOUT2_SEL_WIDTH 2 /* CLKOUT2_SEL - [6:5] */ 25099a76f1ffSMark Brown #define WM8962_CLKOUT3_SEL_MASK 0x0018 /* CLKOUT3_SEL - [4:3] */ 25109a76f1ffSMark Brown #define WM8962_CLKOUT3_SEL_SHIFT 3 /* CLKOUT3_SEL - [4:3] */ 25119a76f1ffSMark Brown #define WM8962_CLKOUT3_SEL_WIDTH 2 /* CLKOUT3_SEL - [4:3] */ 25129a76f1ffSMark Brown #define WM8962_CLKOUT5_SEL 0x0001 /* CLKOUT5_SEL */ 25139a76f1ffSMark Brown #define WM8962_CLKOUT5_SEL_MASK 0x0001 /* CLKOUT5_SEL */ 25149a76f1ffSMark Brown #define WM8962_CLKOUT5_SEL_SHIFT 0 /* CLKOUT5_SEL */ 25159a76f1ffSMark Brown #define WM8962_CLKOUT5_SEL_WIDTH 1 /* CLKOUT5_SEL */ 25169a76f1ffSMark Brown 25179a76f1ffSMark Brown /* 25189a76f1ffSMark Brown * R125 (0x7D) - Analogue Clocking2 25199a76f1ffSMark Brown */ 25209a76f1ffSMark Brown #define WM8962_PLL2_OUTDIV 0x0080 /* PLL2_OUTDIV */ 25219a76f1ffSMark Brown #define WM8962_PLL2_OUTDIV_MASK 0x0080 /* PLL2_OUTDIV */ 25229a76f1ffSMark Brown #define WM8962_PLL2_OUTDIV_SHIFT 7 /* PLL2_OUTDIV */ 25239a76f1ffSMark Brown #define WM8962_PLL2_OUTDIV_WIDTH 1 /* PLL2_OUTDIV */ 25249a76f1ffSMark Brown #define WM8962_PLL3_OUTDIV 0x0040 /* PLL3_OUTDIV */ 25259a76f1ffSMark Brown #define WM8962_PLL3_OUTDIV_MASK 0x0040 /* PLL3_OUTDIV */ 25269a76f1ffSMark Brown #define WM8962_PLL3_OUTDIV_SHIFT 6 /* PLL3_OUTDIV */ 25279a76f1ffSMark Brown #define WM8962_PLL3_OUTDIV_WIDTH 1 /* PLL3_OUTDIV */ 25289a76f1ffSMark Brown #define WM8962_PLL_SYSCLK_DIV_MASK 0x0018 /* PLL_SYSCLK_DIV - [4:3] */ 25299a76f1ffSMark Brown #define WM8962_PLL_SYSCLK_DIV_SHIFT 3 /* PLL_SYSCLK_DIV - [4:3] */ 25309a76f1ffSMark Brown #define WM8962_PLL_SYSCLK_DIV_WIDTH 2 /* PLL_SYSCLK_DIV - [4:3] */ 25319a76f1ffSMark Brown #define WM8962_CLKOUT3_DIV 0x0004 /* CLKOUT3_DIV */ 25329a76f1ffSMark Brown #define WM8962_CLKOUT3_DIV_MASK 0x0004 /* CLKOUT3_DIV */ 25339a76f1ffSMark Brown #define WM8962_CLKOUT3_DIV_SHIFT 2 /* CLKOUT3_DIV */ 25349a76f1ffSMark Brown #define WM8962_CLKOUT3_DIV_WIDTH 1 /* CLKOUT3_DIV */ 25359a76f1ffSMark Brown #define WM8962_CLKOUT2_DIV 0x0002 /* CLKOUT2_DIV */ 25369a76f1ffSMark Brown #define WM8962_CLKOUT2_DIV_MASK 0x0002 /* CLKOUT2_DIV */ 25379a76f1ffSMark Brown #define WM8962_CLKOUT2_DIV_SHIFT 1 /* CLKOUT2_DIV */ 25389a76f1ffSMark Brown #define WM8962_CLKOUT2_DIV_WIDTH 1 /* CLKOUT2_DIV */ 25399a76f1ffSMark Brown #define WM8962_CLKOUT5_DIV 0x0001 /* CLKOUT5_DIV */ 25409a76f1ffSMark Brown #define WM8962_CLKOUT5_DIV_MASK 0x0001 /* CLKOUT5_DIV */ 25419a76f1ffSMark Brown #define WM8962_CLKOUT5_DIV_SHIFT 0 /* CLKOUT5_DIV */ 25429a76f1ffSMark Brown #define WM8962_CLKOUT5_DIV_WIDTH 1 /* CLKOUT5_DIV */ 25439a76f1ffSMark Brown 25449a76f1ffSMark Brown /* 25459a76f1ffSMark Brown * R126 (0x7E) - Analogue Clocking3 25469a76f1ffSMark Brown */ 25479a76f1ffSMark Brown #define WM8962_CLKOUT2_OE 0x0008 /* CLKOUT2_OE */ 25489a76f1ffSMark Brown #define WM8962_CLKOUT2_OE_MASK 0x0008 /* CLKOUT2_OE */ 25499a76f1ffSMark Brown #define WM8962_CLKOUT2_OE_SHIFT 3 /* CLKOUT2_OE */ 25509a76f1ffSMark Brown #define WM8962_CLKOUT2_OE_WIDTH 1 /* CLKOUT2_OE */ 25519a76f1ffSMark Brown #define WM8962_CLKOUT3_OE 0x0004 /* CLKOUT3_OE */ 25529a76f1ffSMark Brown #define WM8962_CLKOUT3_OE_MASK 0x0004 /* CLKOUT3_OE */ 25539a76f1ffSMark Brown #define WM8962_CLKOUT3_OE_SHIFT 2 /* CLKOUT3_OE */ 25549a76f1ffSMark Brown #define WM8962_CLKOUT3_OE_WIDTH 1 /* CLKOUT3_OE */ 25559a76f1ffSMark Brown #define WM8962_CLKOUT5_OE 0x0001 /* CLKOUT5_OE */ 25569a76f1ffSMark Brown #define WM8962_CLKOUT5_OE_MASK 0x0001 /* CLKOUT5_OE */ 25579a76f1ffSMark Brown #define WM8962_CLKOUT5_OE_SHIFT 0 /* CLKOUT5_OE */ 25589a76f1ffSMark Brown #define WM8962_CLKOUT5_OE_WIDTH 1 /* CLKOUT5_OE */ 25599a76f1ffSMark Brown 25609a76f1ffSMark Brown /* 25619a76f1ffSMark Brown * R127 (0x7F) - PLL Software Reset 25629a76f1ffSMark Brown */ 25639a76f1ffSMark Brown #define WM8962_SW_RESET_PLL_MASK 0xFFFF /* SW_RESET_PLL - [15:0] */ 25649a76f1ffSMark Brown #define WM8962_SW_RESET_PLL_SHIFT 0 /* SW_RESET_PLL - [15:0] */ 25659a76f1ffSMark Brown #define WM8962_SW_RESET_PLL_WIDTH 16 /* SW_RESET_PLL - [15:0] */ 25669a76f1ffSMark Brown 25679a76f1ffSMark Brown /* 25689a76f1ffSMark Brown * R129 (0x81) - PLL2 25699a76f1ffSMark Brown */ 25709a76f1ffSMark Brown #define WM8962_OSC_ENA 0x0080 /* OSC_ENA */ 25719a76f1ffSMark Brown #define WM8962_OSC_ENA_MASK 0x0080 /* OSC_ENA */ 25729a76f1ffSMark Brown #define WM8962_OSC_ENA_SHIFT 7 /* OSC_ENA */ 25739a76f1ffSMark Brown #define WM8962_OSC_ENA_WIDTH 1 /* OSC_ENA */ 25749a76f1ffSMark Brown #define WM8962_PLL2_ENA 0x0020 /* PLL2_ENA */ 25759a76f1ffSMark Brown #define WM8962_PLL2_ENA_MASK 0x0020 /* PLL2_ENA */ 25769a76f1ffSMark Brown #define WM8962_PLL2_ENA_SHIFT 5 /* PLL2_ENA */ 25779a76f1ffSMark Brown #define WM8962_PLL2_ENA_WIDTH 1 /* PLL2_ENA */ 25789a76f1ffSMark Brown #define WM8962_PLL3_ENA 0x0010 /* PLL3_ENA */ 25799a76f1ffSMark Brown #define WM8962_PLL3_ENA_MASK 0x0010 /* PLL3_ENA */ 25809a76f1ffSMark Brown #define WM8962_PLL3_ENA_SHIFT 4 /* PLL3_ENA */ 25819a76f1ffSMark Brown #define WM8962_PLL3_ENA_WIDTH 1 /* PLL3_ENA */ 25829a76f1ffSMark Brown 25839a76f1ffSMark Brown /* 25849a76f1ffSMark Brown * R131 (0x83) - PLL 4 25859a76f1ffSMark Brown */ 25869a76f1ffSMark Brown #define WM8962_PLL_CLK_SRC 0x0002 /* PLL_CLK_SRC */ 25879a76f1ffSMark Brown #define WM8962_PLL_CLK_SRC_MASK 0x0002 /* PLL_CLK_SRC */ 25889a76f1ffSMark Brown #define WM8962_PLL_CLK_SRC_SHIFT 1 /* PLL_CLK_SRC */ 25899a76f1ffSMark Brown #define WM8962_PLL_CLK_SRC_WIDTH 1 /* PLL_CLK_SRC */ 25909a76f1ffSMark Brown #define WM8962_FLL_TO_PLL3 0x0001 /* FLL_TO_PLL3 */ 25919a76f1ffSMark Brown #define WM8962_FLL_TO_PLL3_MASK 0x0001 /* FLL_TO_PLL3 */ 25929a76f1ffSMark Brown #define WM8962_FLL_TO_PLL3_SHIFT 0 /* FLL_TO_PLL3 */ 25939a76f1ffSMark Brown #define WM8962_FLL_TO_PLL3_WIDTH 1 /* FLL_TO_PLL3 */ 25949a76f1ffSMark Brown 25959a76f1ffSMark Brown /* 25969a76f1ffSMark Brown * R136 (0x88) - PLL 9 25979a76f1ffSMark Brown */ 25989a76f1ffSMark Brown #define WM8962_PLL2_FRAC 0x0040 /* PLL2_FRAC */ 25999a76f1ffSMark Brown #define WM8962_PLL2_FRAC_MASK 0x0040 /* PLL2_FRAC */ 26009a76f1ffSMark Brown #define WM8962_PLL2_FRAC_SHIFT 6 /* PLL2_FRAC */ 26019a76f1ffSMark Brown #define WM8962_PLL2_FRAC_WIDTH 1 /* PLL2_FRAC */ 26029a76f1ffSMark Brown #define WM8962_PLL2_N_MASK 0x001F /* PLL2_N - [4:0] */ 26039a76f1ffSMark Brown #define WM8962_PLL2_N_SHIFT 0 /* PLL2_N - [4:0] */ 26049a76f1ffSMark Brown #define WM8962_PLL2_N_WIDTH 5 /* PLL2_N - [4:0] */ 26059a76f1ffSMark Brown 26069a76f1ffSMark Brown /* 26079a76f1ffSMark Brown * R137 (0x89) - PLL 10 26089a76f1ffSMark Brown */ 26099a76f1ffSMark Brown #define WM8962_PLL2_K_MASK 0x00FF /* PLL2_K - [7:0] */ 26109a76f1ffSMark Brown #define WM8962_PLL2_K_SHIFT 0 /* PLL2_K - [7:0] */ 26119a76f1ffSMark Brown #define WM8962_PLL2_K_WIDTH 8 /* PLL2_K - [7:0] */ 26129a76f1ffSMark Brown 26139a76f1ffSMark Brown /* 26149a76f1ffSMark Brown * R138 (0x8A) - PLL 11 26159a76f1ffSMark Brown */ 26169a76f1ffSMark Brown #define WM8962_PLL2_K_MASK 0x00FF /* PLL2_K - [7:0] */ 26179a76f1ffSMark Brown #define WM8962_PLL2_K_SHIFT 0 /* PLL2_K - [7:0] */ 26189a76f1ffSMark Brown #define WM8962_PLL2_K_WIDTH 8 /* PLL2_K - [7:0] */ 26199a76f1ffSMark Brown 26209a76f1ffSMark Brown /* 26219a76f1ffSMark Brown * R139 (0x8B) - PLL 12 26229a76f1ffSMark Brown */ 26239a76f1ffSMark Brown #define WM8962_PLL2_K_MASK 0x00FF /* PLL2_K - [7:0] */ 26249a76f1ffSMark Brown #define WM8962_PLL2_K_SHIFT 0 /* PLL2_K - [7:0] */ 26259a76f1ffSMark Brown #define WM8962_PLL2_K_WIDTH 8 /* PLL2_K - [7:0] */ 26269a76f1ffSMark Brown 26279a76f1ffSMark Brown /* 26289a76f1ffSMark Brown * R140 (0x8C) - PLL 13 26299a76f1ffSMark Brown */ 26309a76f1ffSMark Brown #define WM8962_PLL3_FRAC 0x0040 /* PLL3_FRAC */ 26319a76f1ffSMark Brown #define WM8962_PLL3_FRAC_MASK 0x0040 /* PLL3_FRAC */ 26329a76f1ffSMark Brown #define WM8962_PLL3_FRAC_SHIFT 6 /* PLL3_FRAC */ 26339a76f1ffSMark Brown #define WM8962_PLL3_FRAC_WIDTH 1 /* PLL3_FRAC */ 26349a76f1ffSMark Brown #define WM8962_PLL3_N_MASK 0x001F /* PLL3_N - [4:0] */ 26359a76f1ffSMark Brown #define WM8962_PLL3_N_SHIFT 0 /* PLL3_N - [4:0] */ 26369a76f1ffSMark Brown #define WM8962_PLL3_N_WIDTH 5 /* PLL3_N - [4:0] */ 26379a76f1ffSMark Brown 26389a76f1ffSMark Brown /* 26399a76f1ffSMark Brown * R141 (0x8D) - PLL 14 26409a76f1ffSMark Brown */ 26419a76f1ffSMark Brown #define WM8962_PLL3_K_MASK 0x00FF /* PLL3_K - [7:0] */ 26429a76f1ffSMark Brown #define WM8962_PLL3_K_SHIFT 0 /* PLL3_K - [7:0] */ 26439a76f1ffSMark Brown #define WM8962_PLL3_K_WIDTH 8 /* PLL3_K - [7:0] */ 26449a76f1ffSMark Brown 26459a76f1ffSMark Brown /* 26469a76f1ffSMark Brown * R142 (0x8E) - PLL 15 26479a76f1ffSMark Brown */ 26489a76f1ffSMark Brown #define WM8962_PLL3_K_MASK 0x00FF /* PLL3_K - [7:0] */ 26499a76f1ffSMark Brown #define WM8962_PLL3_K_SHIFT 0 /* PLL3_K - [7:0] */ 26509a76f1ffSMark Brown #define WM8962_PLL3_K_WIDTH 8 /* PLL3_K - [7:0] */ 26519a76f1ffSMark Brown 26529a76f1ffSMark Brown /* 26539a76f1ffSMark Brown * R143 (0x8F) - PLL 16 26549a76f1ffSMark Brown */ 26559a76f1ffSMark Brown #define WM8962_PLL3_K_MASK 0x00FF /* PLL3_K - [7:0] */ 26569a76f1ffSMark Brown #define WM8962_PLL3_K_SHIFT 0 /* PLL3_K - [7:0] */ 26579a76f1ffSMark Brown #define WM8962_PLL3_K_WIDTH 8 /* PLL3_K - [7:0] */ 26589a76f1ffSMark Brown 26599a76f1ffSMark Brown /* 26609a76f1ffSMark Brown * R155 (0x9B) - FLL Control (1) 26619a76f1ffSMark Brown */ 26629a76f1ffSMark Brown #define WM8962_FLL_REFCLK_SRC_MASK 0x0060 /* FLL_REFCLK_SRC - [6:5] */ 26639a76f1ffSMark Brown #define WM8962_FLL_REFCLK_SRC_SHIFT 5 /* FLL_REFCLK_SRC - [6:5] */ 26649a76f1ffSMark Brown #define WM8962_FLL_REFCLK_SRC_WIDTH 2 /* FLL_REFCLK_SRC - [6:5] */ 26659a76f1ffSMark Brown #define WM8962_FLL_FRAC 0x0004 /* FLL_FRAC */ 26669a76f1ffSMark Brown #define WM8962_FLL_FRAC_MASK 0x0004 /* FLL_FRAC */ 26679a76f1ffSMark Brown #define WM8962_FLL_FRAC_SHIFT 2 /* FLL_FRAC */ 26689a76f1ffSMark Brown #define WM8962_FLL_FRAC_WIDTH 1 /* FLL_FRAC */ 26699a76f1ffSMark Brown #define WM8962_FLL_OSC_ENA 0x0002 /* FLL_OSC_ENA */ 26709a76f1ffSMark Brown #define WM8962_FLL_OSC_ENA_MASK 0x0002 /* FLL_OSC_ENA */ 26719a76f1ffSMark Brown #define WM8962_FLL_OSC_ENA_SHIFT 1 /* FLL_OSC_ENA */ 26729a76f1ffSMark Brown #define WM8962_FLL_OSC_ENA_WIDTH 1 /* FLL_OSC_ENA */ 26739a76f1ffSMark Brown #define WM8962_FLL_ENA 0x0001 /* FLL_ENA */ 26749a76f1ffSMark Brown #define WM8962_FLL_ENA_MASK 0x0001 /* FLL_ENA */ 26759a76f1ffSMark Brown #define WM8962_FLL_ENA_SHIFT 0 /* FLL_ENA */ 26769a76f1ffSMark Brown #define WM8962_FLL_ENA_WIDTH 1 /* FLL_ENA */ 26779a76f1ffSMark Brown 26789a76f1ffSMark Brown /* 26799a76f1ffSMark Brown * R156 (0x9C) - FLL Control (2) 26809a76f1ffSMark Brown */ 26819a76f1ffSMark Brown #define WM8962_FLL_OUTDIV_MASK 0x01F8 /* FLL_OUTDIV - [8:3] */ 26829a76f1ffSMark Brown #define WM8962_FLL_OUTDIV_SHIFT 3 /* FLL_OUTDIV - [8:3] */ 26839a76f1ffSMark Brown #define WM8962_FLL_OUTDIV_WIDTH 6 /* FLL_OUTDIV - [8:3] */ 26849a76f1ffSMark Brown #define WM8962_FLL_REFCLK_DIV_MASK 0x0003 /* FLL_REFCLK_DIV - [1:0] */ 26859a76f1ffSMark Brown #define WM8962_FLL_REFCLK_DIV_SHIFT 0 /* FLL_REFCLK_DIV - [1:0] */ 26869a76f1ffSMark Brown #define WM8962_FLL_REFCLK_DIV_WIDTH 2 /* FLL_REFCLK_DIV - [1:0] */ 26879a76f1ffSMark Brown 26889a76f1ffSMark Brown /* 26899a76f1ffSMark Brown * R157 (0x9D) - FLL Control (3) 26909a76f1ffSMark Brown */ 26919a76f1ffSMark Brown #define WM8962_FLL_FRATIO_MASK 0x0007 /* FLL_FRATIO - [2:0] */ 26929a76f1ffSMark Brown #define WM8962_FLL_FRATIO_SHIFT 0 /* FLL_FRATIO - [2:0] */ 26939a76f1ffSMark Brown #define WM8962_FLL_FRATIO_WIDTH 3 /* FLL_FRATIO - [2:0] */ 26949a76f1ffSMark Brown 26959a76f1ffSMark Brown /* 26969a76f1ffSMark Brown * R159 (0x9F) - FLL Control (5) 26979a76f1ffSMark Brown */ 26989a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO_VAL_MASK 0x007E /* FLL_FRC_NCO_VAL - [6:1] */ 26999a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO_VAL_SHIFT 1 /* FLL_FRC_NCO_VAL - [6:1] */ 27009a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO_VAL_WIDTH 6 /* FLL_FRC_NCO_VAL - [6:1] */ 27019a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO 0x0001 /* FLL_FRC_NCO */ 27029a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO_MASK 0x0001 /* FLL_FRC_NCO */ 27039a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO_SHIFT 0 /* FLL_FRC_NCO */ 27049a76f1ffSMark Brown #define WM8962_FLL_FRC_NCO_WIDTH 1 /* FLL_FRC_NCO */ 27059a76f1ffSMark Brown 27069a76f1ffSMark Brown /* 27079a76f1ffSMark Brown * R160 (0xA0) - FLL Control (6) 27089a76f1ffSMark Brown */ 27099a76f1ffSMark Brown #define WM8962_FLL_THETA_MASK 0xFFFF /* FLL_THETA - [15:0] */ 27109a76f1ffSMark Brown #define WM8962_FLL_THETA_SHIFT 0 /* FLL_THETA - [15:0] */ 27119a76f1ffSMark Brown #define WM8962_FLL_THETA_WIDTH 16 /* FLL_THETA - [15:0] */ 27129a76f1ffSMark Brown 27139a76f1ffSMark Brown /* 27149a76f1ffSMark Brown * R161 (0xA1) - FLL Control (7) 27159a76f1ffSMark Brown */ 27169a76f1ffSMark Brown #define WM8962_FLL_LAMBDA_MASK 0xFFFF /* FLL_LAMBDA - [15:0] */ 27179a76f1ffSMark Brown #define WM8962_FLL_LAMBDA_SHIFT 0 /* FLL_LAMBDA - [15:0] */ 27189a76f1ffSMark Brown #define WM8962_FLL_LAMBDA_WIDTH 16 /* FLL_LAMBDA - [15:0] */ 27199a76f1ffSMark Brown 27209a76f1ffSMark Brown /* 27219a76f1ffSMark Brown * R162 (0xA2) - FLL Control (8) 27229a76f1ffSMark Brown */ 27239a76f1ffSMark Brown #define WM8962_FLL_N_MASK 0x03FF /* FLL_N - [9:0] */ 27249a76f1ffSMark Brown #define WM8962_FLL_N_SHIFT 0 /* FLL_N - [9:0] */ 27259a76f1ffSMark Brown #define WM8962_FLL_N_WIDTH 10 /* FLL_N - [9:0] */ 27269a76f1ffSMark Brown 27279a76f1ffSMark Brown /* 27289a76f1ffSMark Brown * R252 (0xFC) - General test 1 27299a76f1ffSMark Brown */ 27309a76f1ffSMark Brown #define WM8962_REG_SYNC 0x0004 /* REG_SYNC */ 27319a76f1ffSMark Brown #define WM8962_REG_SYNC_MASK 0x0004 /* REG_SYNC */ 27329a76f1ffSMark Brown #define WM8962_REG_SYNC_SHIFT 2 /* REG_SYNC */ 27339a76f1ffSMark Brown #define WM8962_REG_SYNC_WIDTH 1 /* REG_SYNC */ 27349a76f1ffSMark Brown #define WM8962_AUTO_INC 0x0001 /* AUTO_INC */ 27359a76f1ffSMark Brown #define WM8962_AUTO_INC_MASK 0x0001 /* AUTO_INC */ 27369a76f1ffSMark Brown #define WM8962_AUTO_INC_SHIFT 0 /* AUTO_INC */ 27379a76f1ffSMark Brown #define WM8962_AUTO_INC_WIDTH 1 /* AUTO_INC */ 27389a76f1ffSMark Brown 27399a76f1ffSMark Brown /* 27409a76f1ffSMark Brown * R256 (0x100) - DF1 27419a76f1ffSMark Brown */ 27429a76f1ffSMark Brown #define WM8962_DRC_DF1_ENA 0x0008 /* DRC_DF1_ENA */ 27439a76f1ffSMark Brown #define WM8962_DRC_DF1_ENA_MASK 0x0008 /* DRC_DF1_ENA */ 27449a76f1ffSMark Brown #define WM8962_DRC_DF1_ENA_SHIFT 3 /* DRC_DF1_ENA */ 27459a76f1ffSMark Brown #define WM8962_DRC_DF1_ENA_WIDTH 1 /* DRC_DF1_ENA */ 27469a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF 0x0004 /* DF1_SHARED_COEFF */ 27479a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_MASK 0x0004 /* DF1_SHARED_COEFF */ 27489a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_SHIFT 2 /* DF1_SHARED_COEFF */ 27499a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_WIDTH 1 /* DF1_SHARED_COEFF */ 27509a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_SEL 0x0002 /* DF1_SHARED_COEFF_SEL */ 27519a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_SEL_MASK 0x0002 /* DF1_SHARED_COEFF_SEL */ 27529a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_SEL_SHIFT 1 /* DF1_SHARED_COEFF_SEL */ 27539a76f1ffSMark Brown #define WM8962_DF1_SHARED_COEFF_SEL_WIDTH 1 /* DF1_SHARED_COEFF_SEL */ 27549a76f1ffSMark Brown #define WM8962_DF1_ENA 0x0001 /* DF1_ENA */ 27559a76f1ffSMark Brown #define WM8962_DF1_ENA_MASK 0x0001 /* DF1_ENA */ 27569a76f1ffSMark Brown #define WM8962_DF1_ENA_SHIFT 0 /* DF1_ENA */ 27579a76f1ffSMark Brown #define WM8962_DF1_ENA_WIDTH 1 /* DF1_ENA */ 27589a76f1ffSMark Brown 27599a76f1ffSMark Brown /* 27609a76f1ffSMark Brown * R257 (0x101) - DF2 27619a76f1ffSMark Brown */ 27629a76f1ffSMark Brown #define WM8962_DF1_COEFF_L0_MASK 0xFFFF /* DF1_COEFF_L0 - [15:0] */ 27639a76f1ffSMark Brown #define WM8962_DF1_COEFF_L0_SHIFT 0 /* DF1_COEFF_L0 - [15:0] */ 27649a76f1ffSMark Brown #define WM8962_DF1_COEFF_L0_WIDTH 16 /* DF1_COEFF_L0 - [15:0] */ 27659a76f1ffSMark Brown 27669a76f1ffSMark Brown /* 27679a76f1ffSMark Brown * R258 (0x102) - DF3 27689a76f1ffSMark Brown */ 27699a76f1ffSMark Brown #define WM8962_DF1_COEFF_L1_MASK 0xFFFF /* DF1_COEFF_L1 - [15:0] */ 27709a76f1ffSMark Brown #define WM8962_DF1_COEFF_L1_SHIFT 0 /* DF1_COEFF_L1 - [15:0] */ 27719a76f1ffSMark Brown #define WM8962_DF1_COEFF_L1_WIDTH 16 /* DF1_COEFF_L1 - [15:0] */ 27729a76f1ffSMark Brown 27739a76f1ffSMark Brown /* 27749a76f1ffSMark Brown * R259 (0x103) - DF4 27759a76f1ffSMark Brown */ 27769a76f1ffSMark Brown #define WM8962_DF1_COEFF_L2_MASK 0xFFFF /* DF1_COEFF_L2 - [15:0] */ 27779a76f1ffSMark Brown #define WM8962_DF1_COEFF_L2_SHIFT 0 /* DF1_COEFF_L2 - [15:0] */ 27789a76f1ffSMark Brown #define WM8962_DF1_COEFF_L2_WIDTH 16 /* DF1_COEFF_L2 - [15:0] */ 27799a76f1ffSMark Brown 27809a76f1ffSMark Brown /* 27819a76f1ffSMark Brown * R260 (0x104) - DF5 27829a76f1ffSMark Brown */ 27839a76f1ffSMark Brown #define WM8962_DF1_COEFF_R0_MASK 0xFFFF /* DF1_COEFF_R0 - [15:0] */ 27849a76f1ffSMark Brown #define WM8962_DF1_COEFF_R0_SHIFT 0 /* DF1_COEFF_R0 - [15:0] */ 27859a76f1ffSMark Brown #define WM8962_DF1_COEFF_R0_WIDTH 16 /* DF1_COEFF_R0 - [15:0] */ 27869a76f1ffSMark Brown 27879a76f1ffSMark Brown /* 27889a76f1ffSMark Brown * R261 (0x105) - DF6 27899a76f1ffSMark Brown */ 27909a76f1ffSMark Brown #define WM8962_DF1_COEFF_R1_MASK 0xFFFF /* DF1_COEFF_R1 - [15:0] */ 27919a76f1ffSMark Brown #define WM8962_DF1_COEFF_R1_SHIFT 0 /* DF1_COEFF_R1 - [15:0] */ 27929a76f1ffSMark Brown #define WM8962_DF1_COEFF_R1_WIDTH 16 /* DF1_COEFF_R1 - [15:0] */ 27939a76f1ffSMark Brown 27949a76f1ffSMark Brown /* 27959a76f1ffSMark Brown * R262 (0x106) - DF7 27969a76f1ffSMark Brown */ 27979a76f1ffSMark Brown #define WM8962_DF1_COEFF_R2_MASK 0xFFFF /* DF1_COEFF_R2 - [15:0] */ 27989a76f1ffSMark Brown #define WM8962_DF1_COEFF_R2_SHIFT 0 /* DF1_COEFF_R2 - [15:0] */ 27999a76f1ffSMark Brown #define WM8962_DF1_COEFF_R2_WIDTH 16 /* DF1_COEFF_R2 - [15:0] */ 28009a76f1ffSMark Brown 28019a76f1ffSMark Brown /* 28029a76f1ffSMark Brown * R264 (0x108) - LHPF1 28039a76f1ffSMark Brown */ 28049a76f1ffSMark Brown #define WM8962_LHPF_MODE 0x0002 /* LHPF_MODE */ 28059a76f1ffSMark Brown #define WM8962_LHPF_MODE_MASK 0x0002 /* LHPF_MODE */ 28069a76f1ffSMark Brown #define WM8962_LHPF_MODE_SHIFT 1 /* LHPF_MODE */ 28079a76f1ffSMark Brown #define WM8962_LHPF_MODE_WIDTH 1 /* LHPF_MODE */ 28089a76f1ffSMark Brown #define WM8962_LHPF_ENA 0x0001 /* LHPF_ENA */ 28099a76f1ffSMark Brown #define WM8962_LHPF_ENA_MASK 0x0001 /* LHPF_ENA */ 28109a76f1ffSMark Brown #define WM8962_LHPF_ENA_SHIFT 0 /* LHPF_ENA */ 28119a76f1ffSMark Brown #define WM8962_LHPF_ENA_WIDTH 1 /* LHPF_ENA */ 28129a76f1ffSMark Brown 28139a76f1ffSMark Brown /* 28149a76f1ffSMark Brown * R265 (0x109) - LHPF2 28159a76f1ffSMark Brown */ 28169a76f1ffSMark Brown #define WM8962_LHPF_COEFF_MASK 0xFFFF /* LHPF_COEFF - [15:0] */ 28179a76f1ffSMark Brown #define WM8962_LHPF_COEFF_SHIFT 0 /* LHPF_COEFF - [15:0] */ 28189a76f1ffSMark Brown #define WM8962_LHPF_COEFF_WIDTH 16 /* LHPF_COEFF - [15:0] */ 28199a76f1ffSMark Brown 28209a76f1ffSMark Brown /* 28219a76f1ffSMark Brown * R268 (0x10C) - THREED1 28229a76f1ffSMark Brown */ 28239a76f1ffSMark Brown #define WM8962_ADC_MONOMIX 0x0040 /* ADC_MONOMIX */ 28249a76f1ffSMark Brown #define WM8962_ADC_MONOMIX_MASK 0x0040 /* ADC_MONOMIX */ 28259a76f1ffSMark Brown #define WM8962_ADC_MONOMIX_SHIFT 6 /* ADC_MONOMIX */ 28269a76f1ffSMark Brown #define WM8962_ADC_MONOMIX_WIDTH 1 /* ADC_MONOMIX */ 28279a76f1ffSMark Brown #define WM8962_THREED_SIGN_L 0x0020 /* THREED_SIGN_L */ 28289a76f1ffSMark Brown #define WM8962_THREED_SIGN_L_MASK 0x0020 /* THREED_SIGN_L */ 28299a76f1ffSMark Brown #define WM8962_THREED_SIGN_L_SHIFT 5 /* THREED_SIGN_L */ 28309a76f1ffSMark Brown #define WM8962_THREED_SIGN_L_WIDTH 1 /* THREED_SIGN_L */ 28319a76f1ffSMark Brown #define WM8962_THREED_SIGN_R 0x0010 /* THREED_SIGN_R */ 28329a76f1ffSMark Brown #define WM8962_THREED_SIGN_R_MASK 0x0010 /* THREED_SIGN_R */ 28339a76f1ffSMark Brown #define WM8962_THREED_SIGN_R_SHIFT 4 /* THREED_SIGN_R */ 28349a76f1ffSMark Brown #define WM8962_THREED_SIGN_R_WIDTH 1 /* THREED_SIGN_R */ 28359a76f1ffSMark Brown #define WM8962_THREED_LHPF_MODE 0x0004 /* THREED_LHPF_MODE */ 28369a76f1ffSMark Brown #define WM8962_THREED_LHPF_MODE_MASK 0x0004 /* THREED_LHPF_MODE */ 28379a76f1ffSMark Brown #define WM8962_THREED_LHPF_MODE_SHIFT 2 /* THREED_LHPF_MODE */ 28389a76f1ffSMark Brown #define WM8962_THREED_LHPF_MODE_WIDTH 1 /* THREED_LHPF_MODE */ 28399a76f1ffSMark Brown #define WM8962_THREED_LHPF_ENA 0x0002 /* THREED_LHPF_ENA */ 28409a76f1ffSMark Brown #define WM8962_THREED_LHPF_ENA_MASK 0x0002 /* THREED_LHPF_ENA */ 28419a76f1ffSMark Brown #define WM8962_THREED_LHPF_ENA_SHIFT 1 /* THREED_LHPF_ENA */ 28429a76f1ffSMark Brown #define WM8962_THREED_LHPF_ENA_WIDTH 1 /* THREED_LHPF_ENA */ 28439a76f1ffSMark Brown #define WM8962_THREED_ENA 0x0001 /* THREED_ENA */ 28449a76f1ffSMark Brown #define WM8962_THREED_ENA_MASK 0x0001 /* THREED_ENA */ 28459a76f1ffSMark Brown #define WM8962_THREED_ENA_SHIFT 0 /* THREED_ENA */ 28469a76f1ffSMark Brown #define WM8962_THREED_ENA_WIDTH 1 /* THREED_ENA */ 28479a76f1ffSMark Brown 28489a76f1ffSMark Brown /* 28499a76f1ffSMark Brown * R269 (0x10D) - THREED2 28509a76f1ffSMark Brown */ 28519a76f1ffSMark Brown #define WM8962_THREED_FGAINL_MASK 0xF800 /* THREED_FGAINL - [15:11] */ 28529a76f1ffSMark Brown #define WM8962_THREED_FGAINL_SHIFT 11 /* THREED_FGAINL - [15:11] */ 28539a76f1ffSMark Brown #define WM8962_THREED_FGAINL_WIDTH 5 /* THREED_FGAINL - [15:11] */ 28549a76f1ffSMark Brown #define WM8962_THREED_CGAINL_MASK 0x07C0 /* THREED_CGAINL - [10:6] */ 28559a76f1ffSMark Brown #define WM8962_THREED_CGAINL_SHIFT 6 /* THREED_CGAINL - [10:6] */ 28569a76f1ffSMark Brown #define WM8962_THREED_CGAINL_WIDTH 5 /* THREED_CGAINL - [10:6] */ 28579a76f1ffSMark Brown #define WM8962_THREED_DELAYL_MASK 0x003C /* THREED_DELAYL - [5:2] */ 28589a76f1ffSMark Brown #define WM8962_THREED_DELAYL_SHIFT 2 /* THREED_DELAYL - [5:2] */ 28599a76f1ffSMark Brown #define WM8962_THREED_DELAYL_WIDTH 4 /* THREED_DELAYL - [5:2] */ 28609a76f1ffSMark Brown 28619a76f1ffSMark Brown /* 28629a76f1ffSMark Brown * R270 (0x10E) - THREED3 28639a76f1ffSMark Brown */ 28649a76f1ffSMark Brown #define WM8962_THREED_LHPF_COEFF_MASK 0xFFFF /* THREED_LHPF_COEFF - [15:0] */ 28659a76f1ffSMark Brown #define WM8962_THREED_LHPF_COEFF_SHIFT 0 /* THREED_LHPF_COEFF - [15:0] */ 28669a76f1ffSMark Brown #define WM8962_THREED_LHPF_COEFF_WIDTH 16 /* THREED_LHPF_COEFF - [15:0] */ 28679a76f1ffSMark Brown 28689a76f1ffSMark Brown /* 28699a76f1ffSMark Brown * R271 (0x10F) - THREED4 28709a76f1ffSMark Brown */ 28719a76f1ffSMark Brown #define WM8962_THREED_FGAINR_MASK 0xF800 /* THREED_FGAINR - [15:11] */ 28729a76f1ffSMark Brown #define WM8962_THREED_FGAINR_SHIFT 11 /* THREED_FGAINR - [15:11] */ 28739a76f1ffSMark Brown #define WM8962_THREED_FGAINR_WIDTH 5 /* THREED_FGAINR - [15:11] */ 28749a76f1ffSMark Brown #define WM8962_THREED_CGAINR_MASK 0x07C0 /* THREED_CGAINR - [10:6] */ 28759a76f1ffSMark Brown #define WM8962_THREED_CGAINR_SHIFT 6 /* THREED_CGAINR - [10:6] */ 28769a76f1ffSMark Brown #define WM8962_THREED_CGAINR_WIDTH 5 /* THREED_CGAINR - [10:6] */ 28779a76f1ffSMark Brown #define WM8962_THREED_DELAYR_MASK 0x003C /* THREED_DELAYR - [5:2] */ 28789a76f1ffSMark Brown #define WM8962_THREED_DELAYR_SHIFT 2 /* THREED_DELAYR - [5:2] */ 28799a76f1ffSMark Brown #define WM8962_THREED_DELAYR_WIDTH 4 /* THREED_DELAYR - [5:2] */ 28809a76f1ffSMark Brown 28819a76f1ffSMark Brown /* 28829a76f1ffSMark Brown * R276 (0x114) - DRC 1 28839a76f1ffSMark Brown */ 28849a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_RMS_MASK 0x7C00 /* DRC_SIG_DET_RMS - [14:10] */ 28859a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_RMS_SHIFT 10 /* DRC_SIG_DET_RMS - [14:10] */ 28869a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_RMS_WIDTH 5 /* DRC_SIG_DET_RMS - [14:10] */ 28879a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_PK_MASK 0x0300 /* DRC_SIG_DET_PK - [9:8] */ 28889a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_PK_SHIFT 8 /* DRC_SIG_DET_PK - [9:8] */ 28899a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_PK_WIDTH 2 /* DRC_SIG_DET_PK - [9:8] */ 28909a76f1ffSMark Brown #define WM8962_DRC_NG_ENA 0x0080 /* DRC_NG_ENA */ 28919a76f1ffSMark Brown #define WM8962_DRC_NG_ENA_MASK 0x0080 /* DRC_NG_ENA */ 28929a76f1ffSMark Brown #define WM8962_DRC_NG_ENA_SHIFT 7 /* DRC_NG_ENA */ 28939a76f1ffSMark Brown #define WM8962_DRC_NG_ENA_WIDTH 1 /* DRC_NG_ENA */ 28949a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_MODE 0x0040 /* DRC_SIG_DET_MODE */ 28959a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_MODE_MASK 0x0040 /* DRC_SIG_DET_MODE */ 28969a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_MODE_SHIFT 6 /* DRC_SIG_DET_MODE */ 28979a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_MODE_WIDTH 1 /* DRC_SIG_DET_MODE */ 28989a76f1ffSMark Brown #define WM8962_DRC_SIG_DET 0x0020 /* DRC_SIG_DET */ 28999a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_MASK 0x0020 /* DRC_SIG_DET */ 29009a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_SHIFT 5 /* DRC_SIG_DET */ 29019a76f1ffSMark Brown #define WM8962_DRC_SIG_DET_WIDTH 1 /* DRC_SIG_DET */ 29029a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_ENA 0x0010 /* DRC_KNEE2_OP_ENA */ 29039a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_ENA_MASK 0x0010 /* DRC_KNEE2_OP_ENA */ 29049a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_ENA_SHIFT 4 /* DRC_KNEE2_OP_ENA */ 29059a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_ENA_WIDTH 1 /* DRC_KNEE2_OP_ENA */ 29069a76f1ffSMark Brown #define WM8962_DRC_QR 0x0008 /* DRC_QR */ 29079a76f1ffSMark Brown #define WM8962_DRC_QR_MASK 0x0008 /* DRC_QR */ 29089a76f1ffSMark Brown #define WM8962_DRC_QR_SHIFT 3 /* DRC_QR */ 29099a76f1ffSMark Brown #define WM8962_DRC_QR_WIDTH 1 /* DRC_QR */ 29109a76f1ffSMark Brown #define WM8962_DRC_ANTICLIP 0x0004 /* DRC_ANTICLIP */ 29119a76f1ffSMark Brown #define WM8962_DRC_ANTICLIP_MASK 0x0004 /* DRC_ANTICLIP */ 29129a76f1ffSMark Brown #define WM8962_DRC_ANTICLIP_SHIFT 2 /* DRC_ANTICLIP */ 29139a76f1ffSMark Brown #define WM8962_DRC_ANTICLIP_WIDTH 1 /* DRC_ANTICLIP */ 29149a76f1ffSMark Brown #define WM8962_DRC_MODE 0x0002 /* DRC_MODE */ 29159a76f1ffSMark Brown #define WM8962_DRC_MODE_MASK 0x0002 /* DRC_MODE */ 29169a76f1ffSMark Brown #define WM8962_DRC_MODE_SHIFT 1 /* DRC_MODE */ 29179a76f1ffSMark Brown #define WM8962_DRC_MODE_WIDTH 1 /* DRC_MODE */ 29189a76f1ffSMark Brown #define WM8962_DRC_ENA 0x0001 /* DRC_ENA */ 29199a76f1ffSMark Brown #define WM8962_DRC_ENA_MASK 0x0001 /* DRC_ENA */ 29209a76f1ffSMark Brown #define WM8962_DRC_ENA_SHIFT 0 /* DRC_ENA */ 29219a76f1ffSMark Brown #define WM8962_DRC_ENA_WIDTH 1 /* DRC_ENA */ 29229a76f1ffSMark Brown 29239a76f1ffSMark Brown /* 29249a76f1ffSMark Brown * R277 (0x115) - DRC 2 29259a76f1ffSMark Brown */ 29269a76f1ffSMark Brown #define WM8962_DRC_ATK_MASK 0x1E00 /* DRC_ATK - [12:9] */ 29279a76f1ffSMark Brown #define WM8962_DRC_ATK_SHIFT 9 /* DRC_ATK - [12:9] */ 29289a76f1ffSMark Brown #define WM8962_DRC_ATK_WIDTH 4 /* DRC_ATK - [12:9] */ 29299a76f1ffSMark Brown #define WM8962_DRC_DCY_MASK 0x01E0 /* DRC_DCY - [8:5] */ 29309a76f1ffSMark Brown #define WM8962_DRC_DCY_SHIFT 5 /* DRC_DCY - [8:5] */ 29319a76f1ffSMark Brown #define WM8962_DRC_DCY_WIDTH 4 /* DRC_DCY - [8:5] */ 29329a76f1ffSMark Brown #define WM8962_DRC_MINGAIN_MASK 0x001C /* DRC_MINGAIN - [4:2] */ 29339a76f1ffSMark Brown #define WM8962_DRC_MINGAIN_SHIFT 2 /* DRC_MINGAIN - [4:2] */ 29349a76f1ffSMark Brown #define WM8962_DRC_MINGAIN_WIDTH 3 /* DRC_MINGAIN - [4:2] */ 29359a76f1ffSMark Brown #define WM8962_DRC_MAXGAIN_MASK 0x0003 /* DRC_MAXGAIN - [1:0] */ 29369a76f1ffSMark Brown #define WM8962_DRC_MAXGAIN_SHIFT 0 /* DRC_MAXGAIN - [1:0] */ 29379a76f1ffSMark Brown #define WM8962_DRC_MAXGAIN_WIDTH 2 /* DRC_MAXGAIN - [1:0] */ 29389a76f1ffSMark Brown 29399a76f1ffSMark Brown /* 29409a76f1ffSMark Brown * R278 (0x116) - DRC 3 29419a76f1ffSMark Brown */ 29429a76f1ffSMark Brown #define WM8962_DRC_NG_MINGAIN_MASK 0xF000 /* DRC_NG_MINGAIN - [15:12] */ 29439a76f1ffSMark Brown #define WM8962_DRC_NG_MINGAIN_SHIFT 12 /* DRC_NG_MINGAIN - [15:12] */ 29449a76f1ffSMark Brown #define WM8962_DRC_NG_MINGAIN_WIDTH 4 /* DRC_NG_MINGAIN - [15:12] */ 29459a76f1ffSMark Brown #define WM8962_DRC_QR_THR_MASK 0x0C00 /* DRC_QR_THR - [11:10] */ 29469a76f1ffSMark Brown #define WM8962_DRC_QR_THR_SHIFT 10 /* DRC_QR_THR - [11:10] */ 29479a76f1ffSMark Brown #define WM8962_DRC_QR_THR_WIDTH 2 /* DRC_QR_THR - [11:10] */ 29489a76f1ffSMark Brown #define WM8962_DRC_QR_DCY_MASK 0x0300 /* DRC_QR_DCY - [9:8] */ 29499a76f1ffSMark Brown #define WM8962_DRC_QR_DCY_SHIFT 8 /* DRC_QR_DCY - [9:8] */ 29509a76f1ffSMark Brown #define WM8962_DRC_QR_DCY_WIDTH 2 /* DRC_QR_DCY - [9:8] */ 29519a76f1ffSMark Brown #define WM8962_DRC_NG_EXP_MASK 0x00C0 /* DRC_NG_EXP - [7:6] */ 29529a76f1ffSMark Brown #define WM8962_DRC_NG_EXP_SHIFT 6 /* DRC_NG_EXP - [7:6] */ 29539a76f1ffSMark Brown #define WM8962_DRC_NG_EXP_WIDTH 2 /* DRC_NG_EXP - [7:6] */ 29549a76f1ffSMark Brown #define WM8962_DRC_HI_COMP_MASK 0x0038 /* DRC_HI_COMP - [5:3] */ 29559a76f1ffSMark Brown #define WM8962_DRC_HI_COMP_SHIFT 3 /* DRC_HI_COMP - [5:3] */ 29569a76f1ffSMark Brown #define WM8962_DRC_HI_COMP_WIDTH 3 /* DRC_HI_COMP - [5:3] */ 29579a76f1ffSMark Brown #define WM8962_DRC_LO_COMP_MASK 0x0007 /* DRC_LO_COMP - [2:0] */ 29589a76f1ffSMark Brown #define WM8962_DRC_LO_COMP_SHIFT 0 /* DRC_LO_COMP - [2:0] */ 29599a76f1ffSMark Brown #define WM8962_DRC_LO_COMP_WIDTH 3 /* DRC_LO_COMP - [2:0] */ 29609a76f1ffSMark Brown 29619a76f1ffSMark Brown /* 29629a76f1ffSMark Brown * R279 (0x117) - DRC 4 29639a76f1ffSMark Brown */ 29649a76f1ffSMark Brown #define WM8962_DRC_KNEE_IP_MASK 0x07E0 /* DRC_KNEE_IP - [10:5] */ 29659a76f1ffSMark Brown #define WM8962_DRC_KNEE_IP_SHIFT 5 /* DRC_KNEE_IP - [10:5] */ 29669a76f1ffSMark Brown #define WM8962_DRC_KNEE_IP_WIDTH 6 /* DRC_KNEE_IP - [10:5] */ 29679a76f1ffSMark Brown #define WM8962_DRC_KNEE_OP_MASK 0x001F /* DRC_KNEE_OP - [4:0] */ 29689a76f1ffSMark Brown #define WM8962_DRC_KNEE_OP_SHIFT 0 /* DRC_KNEE_OP - [4:0] */ 29699a76f1ffSMark Brown #define WM8962_DRC_KNEE_OP_WIDTH 5 /* DRC_KNEE_OP - [4:0] */ 29709a76f1ffSMark Brown 29719a76f1ffSMark Brown /* 29729a76f1ffSMark Brown * R280 (0x118) - DRC 5 29739a76f1ffSMark Brown */ 29749a76f1ffSMark Brown #define WM8962_DRC_KNEE2_IP_MASK 0x03E0 /* DRC_KNEE2_IP - [9:5] */ 29759a76f1ffSMark Brown #define WM8962_DRC_KNEE2_IP_SHIFT 5 /* DRC_KNEE2_IP - [9:5] */ 29769a76f1ffSMark Brown #define WM8962_DRC_KNEE2_IP_WIDTH 5 /* DRC_KNEE2_IP - [9:5] */ 29779a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_MASK 0x001F /* DRC_KNEE2_OP - [4:0] */ 29789a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_SHIFT 0 /* DRC_KNEE2_OP - [4:0] */ 29799a76f1ffSMark Brown #define WM8962_DRC_KNEE2_OP_WIDTH 5 /* DRC_KNEE2_OP - [4:0] */ 29809a76f1ffSMark Brown 29819a76f1ffSMark Brown /* 29829a76f1ffSMark Brown * R285 (0x11D) - Tloopback 29839a76f1ffSMark Brown */ 29849a76f1ffSMark Brown #define WM8962_TLB_ENA 0x0002 /* TLB_ENA */ 29859a76f1ffSMark Brown #define WM8962_TLB_ENA_MASK 0x0002 /* TLB_ENA */ 29869a76f1ffSMark Brown #define WM8962_TLB_ENA_SHIFT 1 /* TLB_ENA */ 29879a76f1ffSMark Brown #define WM8962_TLB_ENA_WIDTH 1 /* TLB_ENA */ 29889a76f1ffSMark Brown #define WM8962_TLB_MODE 0x0001 /* TLB_MODE */ 29899a76f1ffSMark Brown #define WM8962_TLB_MODE_MASK 0x0001 /* TLB_MODE */ 29909a76f1ffSMark Brown #define WM8962_TLB_MODE_SHIFT 0 /* TLB_MODE */ 29919a76f1ffSMark Brown #define WM8962_TLB_MODE_WIDTH 1 /* TLB_MODE */ 29929a76f1ffSMark Brown 29939a76f1ffSMark Brown /* 29949a76f1ffSMark Brown * R335 (0x14F) - EQ1 29959a76f1ffSMark Brown */ 29969a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF 0x0004 /* EQ_SHARED_COEFF */ 29979a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_MASK 0x0004 /* EQ_SHARED_COEFF */ 29989a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_SHIFT 2 /* EQ_SHARED_COEFF */ 29999a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_WIDTH 1 /* EQ_SHARED_COEFF */ 30009a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_SEL 0x0002 /* EQ_SHARED_COEFF_SEL */ 30019a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_SEL_MASK 0x0002 /* EQ_SHARED_COEFF_SEL */ 30029a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_SEL_SHIFT 1 /* EQ_SHARED_COEFF_SEL */ 30039a76f1ffSMark Brown #define WM8962_EQ_SHARED_COEFF_SEL_WIDTH 1 /* EQ_SHARED_COEFF_SEL */ 30049a76f1ffSMark Brown #define WM8962_EQ_ENA 0x0001 /* EQ_ENA */ 30059a76f1ffSMark Brown #define WM8962_EQ_ENA_MASK 0x0001 /* EQ_ENA */ 30069a76f1ffSMark Brown #define WM8962_EQ_ENA_SHIFT 0 /* EQ_ENA */ 30079a76f1ffSMark Brown #define WM8962_EQ_ENA_WIDTH 1 /* EQ_ENA */ 30089a76f1ffSMark Brown 30099a76f1ffSMark Brown /* 30109a76f1ffSMark Brown * R336 (0x150) - EQ2 30119a76f1ffSMark Brown */ 30129a76f1ffSMark Brown #define WM8962_EQL_B1_GAIN_MASK 0xF800 /* EQL_B1_GAIN - [15:11] */ 30139a76f1ffSMark Brown #define WM8962_EQL_B1_GAIN_SHIFT 11 /* EQL_B1_GAIN - [15:11] */ 30149a76f1ffSMark Brown #define WM8962_EQL_B1_GAIN_WIDTH 5 /* EQL_B1_GAIN - [15:11] */ 30159a76f1ffSMark Brown #define WM8962_EQL_B2_GAIN_MASK 0x07C0 /* EQL_B2_GAIN - [10:6] */ 30169a76f1ffSMark Brown #define WM8962_EQL_B2_GAIN_SHIFT 6 /* EQL_B2_GAIN - [10:6] */ 30179a76f1ffSMark Brown #define WM8962_EQL_B2_GAIN_WIDTH 5 /* EQL_B2_GAIN - [10:6] */ 30189a76f1ffSMark Brown #define WM8962_EQL_B3_GAIN_MASK 0x003E /* EQL_B3_GAIN - [5:1] */ 30199a76f1ffSMark Brown #define WM8962_EQL_B3_GAIN_SHIFT 1 /* EQL_B3_GAIN - [5:1] */ 30209a76f1ffSMark Brown #define WM8962_EQL_B3_GAIN_WIDTH 5 /* EQL_B3_GAIN - [5:1] */ 30219a76f1ffSMark Brown 30229a76f1ffSMark Brown /* 30239a76f1ffSMark Brown * R337 (0x151) - EQ3 30249a76f1ffSMark Brown */ 30259a76f1ffSMark Brown #define WM8962_EQL_B4_GAIN_MASK 0xF800 /* EQL_B4_GAIN - [15:11] */ 30269a76f1ffSMark Brown #define WM8962_EQL_B4_GAIN_SHIFT 11 /* EQL_B4_GAIN - [15:11] */ 30279a76f1ffSMark Brown #define WM8962_EQL_B4_GAIN_WIDTH 5 /* EQL_B4_GAIN - [15:11] */ 30289a76f1ffSMark Brown #define WM8962_EQL_B5_GAIN_MASK 0x07C0 /* EQL_B5_GAIN - [10:6] */ 30299a76f1ffSMark Brown #define WM8962_EQL_B5_GAIN_SHIFT 6 /* EQL_B5_GAIN - [10:6] */ 30309a76f1ffSMark Brown #define WM8962_EQL_B5_GAIN_WIDTH 5 /* EQL_B5_GAIN - [10:6] */ 30319a76f1ffSMark Brown 30329a76f1ffSMark Brown /* 30339a76f1ffSMark Brown * R338 (0x152) - EQ4 30349a76f1ffSMark Brown */ 30359a76f1ffSMark Brown #define WM8962_EQL_B1_A_MASK 0xFFFF /* EQL_B1_A - [15:0] */ 30369a76f1ffSMark Brown #define WM8962_EQL_B1_A_SHIFT 0 /* EQL_B1_A - [15:0] */ 30379a76f1ffSMark Brown #define WM8962_EQL_B1_A_WIDTH 16 /* EQL_B1_A - [15:0] */ 30389a76f1ffSMark Brown 30399a76f1ffSMark Brown /* 30409a76f1ffSMark Brown * R339 (0x153) - EQ5 30419a76f1ffSMark Brown */ 30429a76f1ffSMark Brown #define WM8962_EQL_B1_B_MASK 0xFFFF /* EQL_B1_B - [15:0] */ 30439a76f1ffSMark Brown #define WM8962_EQL_B1_B_SHIFT 0 /* EQL_B1_B - [15:0] */ 30449a76f1ffSMark Brown #define WM8962_EQL_B1_B_WIDTH 16 /* EQL_B1_B - [15:0] */ 30459a76f1ffSMark Brown 30469a76f1ffSMark Brown /* 30479a76f1ffSMark Brown * R340 (0x154) - EQ6 30489a76f1ffSMark Brown */ 30499a76f1ffSMark Brown #define WM8962_EQL_B1_PG_MASK 0xFFFF /* EQL_B1_PG - [15:0] */ 30509a76f1ffSMark Brown #define WM8962_EQL_B1_PG_SHIFT 0 /* EQL_B1_PG - [15:0] */ 30519a76f1ffSMark Brown #define WM8962_EQL_B1_PG_WIDTH 16 /* EQL_B1_PG - [15:0] */ 30529a76f1ffSMark Brown 30539a76f1ffSMark Brown /* 30549a76f1ffSMark Brown * R341 (0x155) - EQ7 30559a76f1ffSMark Brown */ 30569a76f1ffSMark Brown #define WM8962_EQL_B2_A_MASK 0xFFFF /* EQL_B2_A - [15:0] */ 30579a76f1ffSMark Brown #define WM8962_EQL_B2_A_SHIFT 0 /* EQL_B2_A - [15:0] */ 30589a76f1ffSMark Brown #define WM8962_EQL_B2_A_WIDTH 16 /* EQL_B2_A - [15:0] */ 30599a76f1ffSMark Brown 30609a76f1ffSMark Brown /* 30619a76f1ffSMark Brown * R342 (0x156) - EQ8 30629a76f1ffSMark Brown */ 30639a76f1ffSMark Brown #define WM8962_EQL_B2_B_MASK 0xFFFF /* EQL_B2_B - [15:0] */ 30649a76f1ffSMark Brown #define WM8962_EQL_B2_B_SHIFT 0 /* EQL_B2_B - [15:0] */ 30659a76f1ffSMark Brown #define WM8962_EQL_B2_B_WIDTH 16 /* EQL_B2_B - [15:0] */ 30669a76f1ffSMark Brown 30679a76f1ffSMark Brown /* 30689a76f1ffSMark Brown * R343 (0x157) - EQ9 30699a76f1ffSMark Brown */ 30709a76f1ffSMark Brown #define WM8962_EQL_B2_C_MASK 0xFFFF /* EQL_B2_C - [15:0] */ 30719a76f1ffSMark Brown #define WM8962_EQL_B2_C_SHIFT 0 /* EQL_B2_C - [15:0] */ 30729a76f1ffSMark Brown #define WM8962_EQL_B2_C_WIDTH 16 /* EQL_B2_C - [15:0] */ 30739a76f1ffSMark Brown 30749a76f1ffSMark Brown /* 30759a76f1ffSMark Brown * R344 (0x158) - EQ10 30769a76f1ffSMark Brown */ 30779a76f1ffSMark Brown #define WM8962_EQL_B2_PG_MASK 0xFFFF /* EQL_B2_PG - [15:0] */ 30789a76f1ffSMark Brown #define WM8962_EQL_B2_PG_SHIFT 0 /* EQL_B2_PG - [15:0] */ 30799a76f1ffSMark Brown #define WM8962_EQL_B2_PG_WIDTH 16 /* EQL_B2_PG - [15:0] */ 30809a76f1ffSMark Brown 30819a76f1ffSMark Brown /* 30829a76f1ffSMark Brown * R345 (0x159) - EQ11 30839a76f1ffSMark Brown */ 30849a76f1ffSMark Brown #define WM8962_EQL_B3_A_MASK 0xFFFF /* EQL_B3_A - [15:0] */ 30859a76f1ffSMark Brown #define WM8962_EQL_B3_A_SHIFT 0 /* EQL_B3_A - [15:0] */ 30869a76f1ffSMark Brown #define WM8962_EQL_B3_A_WIDTH 16 /* EQL_B3_A - [15:0] */ 30879a76f1ffSMark Brown 30889a76f1ffSMark Brown /* 30899a76f1ffSMark Brown * R346 (0x15A) - EQ12 30909a76f1ffSMark Brown */ 30919a76f1ffSMark Brown #define WM8962_EQL_B3_B_MASK 0xFFFF /* EQL_B3_B - [15:0] */ 30929a76f1ffSMark Brown #define WM8962_EQL_B3_B_SHIFT 0 /* EQL_B3_B - [15:0] */ 30939a76f1ffSMark Brown #define WM8962_EQL_B3_B_WIDTH 16 /* EQL_B3_B - [15:0] */ 30949a76f1ffSMark Brown 30959a76f1ffSMark Brown /* 30969a76f1ffSMark Brown * R347 (0x15B) - EQ13 30979a76f1ffSMark Brown */ 30989a76f1ffSMark Brown #define WM8962_EQL_B3_C_MASK 0xFFFF /* EQL_B3_C - [15:0] */ 30999a76f1ffSMark Brown #define WM8962_EQL_B3_C_SHIFT 0 /* EQL_B3_C - [15:0] */ 31009a76f1ffSMark Brown #define WM8962_EQL_B3_C_WIDTH 16 /* EQL_B3_C - [15:0] */ 31019a76f1ffSMark Brown 31029a76f1ffSMark Brown /* 31039a76f1ffSMark Brown * R348 (0x15C) - EQ14 31049a76f1ffSMark Brown */ 31059a76f1ffSMark Brown #define WM8962_EQL_B3_PG_MASK 0xFFFF /* EQL_B3_PG - [15:0] */ 31069a76f1ffSMark Brown #define WM8962_EQL_B3_PG_SHIFT 0 /* EQL_B3_PG - [15:0] */ 31079a76f1ffSMark Brown #define WM8962_EQL_B3_PG_WIDTH 16 /* EQL_B3_PG - [15:0] */ 31089a76f1ffSMark Brown 31099a76f1ffSMark Brown /* 31109a76f1ffSMark Brown * R349 (0x15D) - EQ15 31119a76f1ffSMark Brown */ 31129a76f1ffSMark Brown #define WM8962_EQL_B4_A_MASK 0xFFFF /* EQL_B4_A - [15:0] */ 31139a76f1ffSMark Brown #define WM8962_EQL_B4_A_SHIFT 0 /* EQL_B4_A - [15:0] */ 31149a76f1ffSMark Brown #define WM8962_EQL_B4_A_WIDTH 16 /* EQL_B4_A - [15:0] */ 31159a76f1ffSMark Brown 31169a76f1ffSMark Brown /* 31179a76f1ffSMark Brown * R350 (0x15E) - EQ16 31189a76f1ffSMark Brown */ 31199a76f1ffSMark Brown #define WM8962_EQL_B4_B_MASK 0xFFFF /* EQL_B4_B - [15:0] */ 31209a76f1ffSMark Brown #define WM8962_EQL_B4_B_SHIFT 0 /* EQL_B4_B - [15:0] */ 31219a76f1ffSMark Brown #define WM8962_EQL_B4_B_WIDTH 16 /* EQL_B4_B - [15:0] */ 31229a76f1ffSMark Brown 31239a76f1ffSMark Brown /* 31249a76f1ffSMark Brown * R351 (0x15F) - EQ17 31259a76f1ffSMark Brown */ 31269a76f1ffSMark Brown #define WM8962_EQL_B4_C_MASK 0xFFFF /* EQL_B4_C - [15:0] */ 31279a76f1ffSMark Brown #define WM8962_EQL_B4_C_SHIFT 0 /* EQL_B4_C - [15:0] */ 31289a76f1ffSMark Brown #define WM8962_EQL_B4_C_WIDTH 16 /* EQL_B4_C - [15:0] */ 31299a76f1ffSMark Brown 31309a76f1ffSMark Brown /* 31319a76f1ffSMark Brown * R352 (0x160) - EQ18 31329a76f1ffSMark Brown */ 31339a76f1ffSMark Brown #define WM8962_EQL_B4_PG_MASK 0xFFFF /* EQL_B4_PG - [15:0] */ 31349a76f1ffSMark Brown #define WM8962_EQL_B4_PG_SHIFT 0 /* EQL_B4_PG - [15:0] */ 31359a76f1ffSMark Brown #define WM8962_EQL_B4_PG_WIDTH 16 /* EQL_B4_PG - [15:0] */ 31369a76f1ffSMark Brown 31379a76f1ffSMark Brown /* 31389a76f1ffSMark Brown * R353 (0x161) - EQ19 31399a76f1ffSMark Brown */ 31409a76f1ffSMark Brown #define WM8962_EQL_B5_A_MASK 0xFFFF /* EQL_B5_A - [15:0] */ 31419a76f1ffSMark Brown #define WM8962_EQL_B5_A_SHIFT 0 /* EQL_B5_A - [15:0] */ 31429a76f1ffSMark Brown #define WM8962_EQL_B5_A_WIDTH 16 /* EQL_B5_A - [15:0] */ 31439a76f1ffSMark Brown 31449a76f1ffSMark Brown /* 31459a76f1ffSMark Brown * R354 (0x162) - EQ20 31469a76f1ffSMark Brown */ 31479a76f1ffSMark Brown #define WM8962_EQL_B5_B_MASK 0xFFFF /* EQL_B5_B - [15:0] */ 31489a76f1ffSMark Brown #define WM8962_EQL_B5_B_SHIFT 0 /* EQL_B5_B - [15:0] */ 31499a76f1ffSMark Brown #define WM8962_EQL_B5_B_WIDTH 16 /* EQL_B5_B - [15:0] */ 31509a76f1ffSMark Brown 31519a76f1ffSMark Brown /* 31529a76f1ffSMark Brown * R355 (0x163) - EQ21 31539a76f1ffSMark Brown */ 31549a76f1ffSMark Brown #define WM8962_EQL_B5_PG_MASK 0xFFFF /* EQL_B5_PG - [15:0] */ 31559a76f1ffSMark Brown #define WM8962_EQL_B5_PG_SHIFT 0 /* EQL_B5_PG - [15:0] */ 31569a76f1ffSMark Brown #define WM8962_EQL_B5_PG_WIDTH 16 /* EQL_B5_PG - [15:0] */ 31579a76f1ffSMark Brown 31589a76f1ffSMark Brown /* 31599a76f1ffSMark Brown * R356 (0x164) - EQ22 31609a76f1ffSMark Brown */ 31619a76f1ffSMark Brown #define WM8962_EQR_B1_GAIN_MASK 0xF800 /* EQR_B1_GAIN - [15:11] */ 31629a76f1ffSMark Brown #define WM8962_EQR_B1_GAIN_SHIFT 11 /* EQR_B1_GAIN - [15:11] */ 31639a76f1ffSMark Brown #define WM8962_EQR_B1_GAIN_WIDTH 5 /* EQR_B1_GAIN - [15:11] */ 31649a76f1ffSMark Brown #define WM8962_EQR_B2_GAIN_MASK 0x07C0 /* EQR_B2_GAIN - [10:6] */ 31659a76f1ffSMark Brown #define WM8962_EQR_B2_GAIN_SHIFT 6 /* EQR_B2_GAIN - [10:6] */ 31669a76f1ffSMark Brown #define WM8962_EQR_B2_GAIN_WIDTH 5 /* EQR_B2_GAIN - [10:6] */ 31679a76f1ffSMark Brown #define WM8962_EQR_B3_GAIN_MASK 0x003E /* EQR_B3_GAIN - [5:1] */ 31689a76f1ffSMark Brown #define WM8962_EQR_B3_GAIN_SHIFT 1 /* EQR_B3_GAIN - [5:1] */ 31699a76f1ffSMark Brown #define WM8962_EQR_B3_GAIN_WIDTH 5 /* EQR_B3_GAIN - [5:1] */ 31709a76f1ffSMark Brown 31719a76f1ffSMark Brown /* 31729a76f1ffSMark Brown * R357 (0x165) - EQ23 31739a76f1ffSMark Brown */ 31749a76f1ffSMark Brown #define WM8962_EQR_B4_GAIN_MASK 0xF800 /* EQR_B4_GAIN - [15:11] */ 31759a76f1ffSMark Brown #define WM8962_EQR_B4_GAIN_SHIFT 11 /* EQR_B4_GAIN - [15:11] */ 31769a76f1ffSMark Brown #define WM8962_EQR_B4_GAIN_WIDTH 5 /* EQR_B4_GAIN - [15:11] */ 31779a76f1ffSMark Brown #define WM8962_EQR_B5_GAIN_MASK 0x07C0 /* EQR_B5_GAIN - [10:6] */ 31789a76f1ffSMark Brown #define WM8962_EQR_B5_GAIN_SHIFT 6 /* EQR_B5_GAIN - [10:6] */ 31799a76f1ffSMark Brown #define WM8962_EQR_B5_GAIN_WIDTH 5 /* EQR_B5_GAIN - [10:6] */ 31809a76f1ffSMark Brown 31819a76f1ffSMark Brown /* 31829a76f1ffSMark Brown * R358 (0x166) - EQ24 31839a76f1ffSMark Brown */ 31849a76f1ffSMark Brown #define WM8962_EQR_B1_A_MASK 0xFFFF /* EQR_B1_A - [15:0] */ 31859a76f1ffSMark Brown #define WM8962_EQR_B1_A_SHIFT 0 /* EQR_B1_A - [15:0] */ 31869a76f1ffSMark Brown #define WM8962_EQR_B1_A_WIDTH 16 /* EQR_B1_A - [15:0] */ 31879a76f1ffSMark Brown 31889a76f1ffSMark Brown /* 31899a76f1ffSMark Brown * R359 (0x167) - EQ25 31909a76f1ffSMark Brown */ 31919a76f1ffSMark Brown #define WM8962_EQR_B1_B_MASK 0xFFFF /* EQR_B1_B - [15:0] */ 31929a76f1ffSMark Brown #define WM8962_EQR_B1_B_SHIFT 0 /* EQR_B1_B - [15:0] */ 31939a76f1ffSMark Brown #define WM8962_EQR_B1_B_WIDTH 16 /* EQR_B1_B - [15:0] */ 31949a76f1ffSMark Brown 31959a76f1ffSMark Brown /* 31969a76f1ffSMark Brown * R360 (0x168) - EQ26 31979a76f1ffSMark Brown */ 31989a76f1ffSMark Brown #define WM8962_EQR_B1_PG_MASK 0xFFFF /* EQR_B1_PG - [15:0] */ 31999a76f1ffSMark Brown #define WM8962_EQR_B1_PG_SHIFT 0 /* EQR_B1_PG - [15:0] */ 32009a76f1ffSMark Brown #define WM8962_EQR_B1_PG_WIDTH 16 /* EQR_B1_PG - [15:0] */ 32019a76f1ffSMark Brown 32029a76f1ffSMark Brown /* 32039a76f1ffSMark Brown * R361 (0x169) - EQ27 32049a76f1ffSMark Brown */ 32059a76f1ffSMark Brown #define WM8962_EQR_B2_A_MASK 0xFFFF /* EQR_B2_A - [15:0] */ 32069a76f1ffSMark Brown #define WM8962_EQR_B2_A_SHIFT 0 /* EQR_B2_A - [15:0] */ 32079a76f1ffSMark Brown #define WM8962_EQR_B2_A_WIDTH 16 /* EQR_B2_A - [15:0] */ 32089a76f1ffSMark Brown 32099a76f1ffSMark Brown /* 32109a76f1ffSMark Brown * R362 (0x16A) - EQ28 32119a76f1ffSMark Brown */ 32129a76f1ffSMark Brown #define WM8962_EQR_B2_B_MASK 0xFFFF /* EQR_B2_B - [15:0] */ 32139a76f1ffSMark Brown #define WM8962_EQR_B2_B_SHIFT 0 /* EQR_B2_B - [15:0] */ 32149a76f1ffSMark Brown #define WM8962_EQR_B2_B_WIDTH 16 /* EQR_B2_B - [15:0] */ 32159a76f1ffSMark Brown 32169a76f1ffSMark Brown /* 32179a76f1ffSMark Brown * R363 (0x16B) - EQ29 32189a76f1ffSMark Brown */ 32199a76f1ffSMark Brown #define WM8962_EQR_B2_C_MASK 0xFFFF /* EQR_B2_C - [15:0] */ 32209a76f1ffSMark Brown #define WM8962_EQR_B2_C_SHIFT 0 /* EQR_B2_C - [15:0] */ 32219a76f1ffSMark Brown #define WM8962_EQR_B2_C_WIDTH 16 /* EQR_B2_C - [15:0] */ 32229a76f1ffSMark Brown 32239a76f1ffSMark Brown /* 32249a76f1ffSMark Brown * R364 (0x16C) - EQ30 32259a76f1ffSMark Brown */ 32269a76f1ffSMark Brown #define WM8962_EQR_B2_PG_MASK 0xFFFF /* EQR_B2_PG - [15:0] */ 32279a76f1ffSMark Brown #define WM8962_EQR_B2_PG_SHIFT 0 /* EQR_B2_PG - [15:0] */ 32289a76f1ffSMark Brown #define WM8962_EQR_B2_PG_WIDTH 16 /* EQR_B2_PG - [15:0] */ 32299a76f1ffSMark Brown 32309a76f1ffSMark Brown /* 32319a76f1ffSMark Brown * R365 (0x16D) - EQ31 32329a76f1ffSMark Brown */ 32339a76f1ffSMark Brown #define WM8962_EQR_B3_A_MASK 0xFFFF /* EQR_B3_A - [15:0] */ 32349a76f1ffSMark Brown #define WM8962_EQR_B3_A_SHIFT 0 /* EQR_B3_A - [15:0] */ 32359a76f1ffSMark Brown #define WM8962_EQR_B3_A_WIDTH 16 /* EQR_B3_A - [15:0] */ 32369a76f1ffSMark Brown 32379a76f1ffSMark Brown /* 32389a76f1ffSMark Brown * R366 (0x16E) - EQ32 32399a76f1ffSMark Brown */ 32409a76f1ffSMark Brown #define WM8962_EQR_B3_B_MASK 0xFFFF /* EQR_B3_B - [15:0] */ 32419a76f1ffSMark Brown #define WM8962_EQR_B3_B_SHIFT 0 /* EQR_B3_B - [15:0] */ 32429a76f1ffSMark Brown #define WM8962_EQR_B3_B_WIDTH 16 /* EQR_B3_B - [15:0] */ 32439a76f1ffSMark Brown 32449a76f1ffSMark Brown /* 32459a76f1ffSMark Brown * R367 (0x16F) - EQ33 32469a76f1ffSMark Brown */ 32479a76f1ffSMark Brown #define WM8962_EQR_B3_C_MASK 0xFFFF /* EQR_B3_C - [15:0] */ 32489a76f1ffSMark Brown #define WM8962_EQR_B3_C_SHIFT 0 /* EQR_B3_C - [15:0] */ 32499a76f1ffSMark Brown #define WM8962_EQR_B3_C_WIDTH 16 /* EQR_B3_C - [15:0] */ 32509a76f1ffSMark Brown 32519a76f1ffSMark Brown /* 32529a76f1ffSMark Brown * R368 (0x170) - EQ34 32539a76f1ffSMark Brown */ 32549a76f1ffSMark Brown #define WM8962_EQR_B3_PG_MASK 0xFFFF /* EQR_B3_PG - [15:0] */ 32559a76f1ffSMark Brown #define WM8962_EQR_B3_PG_SHIFT 0 /* EQR_B3_PG - [15:0] */ 32569a76f1ffSMark Brown #define WM8962_EQR_B3_PG_WIDTH 16 /* EQR_B3_PG - [15:0] */ 32579a76f1ffSMark Brown 32589a76f1ffSMark Brown /* 32599a76f1ffSMark Brown * R369 (0x171) - EQ35 32609a76f1ffSMark Brown */ 32619a76f1ffSMark Brown #define WM8962_EQR_B4_A_MASK 0xFFFF /* EQR_B4_A - [15:0] */ 32629a76f1ffSMark Brown #define WM8962_EQR_B4_A_SHIFT 0 /* EQR_B4_A - [15:0] */ 32639a76f1ffSMark Brown #define WM8962_EQR_B4_A_WIDTH 16 /* EQR_B4_A - [15:0] */ 32649a76f1ffSMark Brown 32659a76f1ffSMark Brown /* 32669a76f1ffSMark Brown * R370 (0x172) - EQ36 32679a76f1ffSMark Brown */ 32689a76f1ffSMark Brown #define WM8962_EQR_B4_B_MASK 0xFFFF /* EQR_B4_B - [15:0] */ 32699a76f1ffSMark Brown #define WM8962_EQR_B4_B_SHIFT 0 /* EQR_B4_B - [15:0] */ 32709a76f1ffSMark Brown #define WM8962_EQR_B4_B_WIDTH 16 /* EQR_B4_B - [15:0] */ 32719a76f1ffSMark Brown 32729a76f1ffSMark Brown /* 32739a76f1ffSMark Brown * R371 (0x173) - EQ37 32749a76f1ffSMark Brown */ 32759a76f1ffSMark Brown #define WM8962_EQR_B4_C_MASK 0xFFFF /* EQR_B4_C - [15:0] */ 32769a76f1ffSMark Brown #define WM8962_EQR_B4_C_SHIFT 0 /* EQR_B4_C - [15:0] */ 32779a76f1ffSMark Brown #define WM8962_EQR_B4_C_WIDTH 16 /* EQR_B4_C - [15:0] */ 32789a76f1ffSMark Brown 32799a76f1ffSMark Brown /* 32809a76f1ffSMark Brown * R372 (0x174) - EQ38 32819a76f1ffSMark Brown */ 32829a76f1ffSMark Brown #define WM8962_EQR_B4_PG_MASK 0xFFFF /* EQR_B4_PG - [15:0] */ 32839a76f1ffSMark Brown #define WM8962_EQR_B4_PG_SHIFT 0 /* EQR_B4_PG - [15:0] */ 32849a76f1ffSMark Brown #define WM8962_EQR_B4_PG_WIDTH 16 /* EQR_B4_PG - [15:0] */ 32859a76f1ffSMark Brown 32869a76f1ffSMark Brown /* 32879a76f1ffSMark Brown * R373 (0x175) - EQ39 32889a76f1ffSMark Brown */ 32899a76f1ffSMark Brown #define WM8962_EQR_B5_A_MASK 0xFFFF /* EQR_B5_A - [15:0] */ 32909a76f1ffSMark Brown #define WM8962_EQR_B5_A_SHIFT 0 /* EQR_B5_A - [15:0] */ 32919a76f1ffSMark Brown #define WM8962_EQR_B5_A_WIDTH 16 /* EQR_B5_A - [15:0] */ 32929a76f1ffSMark Brown 32939a76f1ffSMark Brown /* 32949a76f1ffSMark Brown * R374 (0x176) - EQ40 32959a76f1ffSMark Brown */ 32969a76f1ffSMark Brown #define WM8962_EQR_B5_B_MASK 0xFFFF /* EQR_B5_B - [15:0] */ 32979a76f1ffSMark Brown #define WM8962_EQR_B5_B_SHIFT 0 /* EQR_B5_B - [15:0] */ 32989a76f1ffSMark Brown #define WM8962_EQR_B5_B_WIDTH 16 /* EQR_B5_B - [15:0] */ 32999a76f1ffSMark Brown 33009a76f1ffSMark Brown /* 33019a76f1ffSMark Brown * R375 (0x177) - EQ41 33029a76f1ffSMark Brown */ 33039a76f1ffSMark Brown #define WM8962_EQR_B5_PG_MASK 0xFFFF /* EQR_B5_PG - [15:0] */ 33049a76f1ffSMark Brown #define WM8962_EQR_B5_PG_SHIFT 0 /* EQR_B5_PG - [15:0] */ 33059a76f1ffSMark Brown #define WM8962_EQR_B5_PG_WIDTH 16 /* EQR_B5_PG - [15:0] */ 33069a76f1ffSMark Brown 33079a76f1ffSMark Brown /* 33089a76f1ffSMark Brown * R513 (0x201) - GPIO 2 33099a76f1ffSMark Brown */ 33109a76f1ffSMark Brown #define WM8962_GP2_POL 0x0400 /* GP2_POL */ 33119a76f1ffSMark Brown #define WM8962_GP2_POL_MASK 0x0400 /* GP2_POL */ 33129a76f1ffSMark Brown #define WM8962_GP2_POL_SHIFT 10 /* GP2_POL */ 33139a76f1ffSMark Brown #define WM8962_GP2_POL_WIDTH 1 /* GP2_POL */ 33149a76f1ffSMark Brown #define WM8962_GP2_LVL 0x0040 /* GP2_LVL */ 33159a76f1ffSMark Brown #define WM8962_GP2_LVL_MASK 0x0040 /* GP2_LVL */ 33169a76f1ffSMark Brown #define WM8962_GP2_LVL_SHIFT 6 /* GP2_LVL */ 33179a76f1ffSMark Brown #define WM8962_GP2_LVL_WIDTH 1 /* GP2_LVL */ 33189a76f1ffSMark Brown #define WM8962_GP2_FN_MASK 0x001F /* GP2_FN - [4:0] */ 33199a76f1ffSMark Brown #define WM8962_GP2_FN_SHIFT 0 /* GP2_FN - [4:0] */ 33209a76f1ffSMark Brown #define WM8962_GP2_FN_WIDTH 5 /* GP2_FN - [4:0] */ 33219a76f1ffSMark Brown 33229a76f1ffSMark Brown /* 33239a76f1ffSMark Brown * R514 (0x202) - GPIO 3 33249a76f1ffSMark Brown */ 33259a76f1ffSMark Brown #define WM8962_GP3_POL 0x0400 /* GP3_POL */ 33269a76f1ffSMark Brown #define WM8962_GP3_POL_MASK 0x0400 /* GP3_POL */ 33279a76f1ffSMark Brown #define WM8962_GP3_POL_SHIFT 10 /* GP3_POL */ 33289a76f1ffSMark Brown #define WM8962_GP3_POL_WIDTH 1 /* GP3_POL */ 33299a76f1ffSMark Brown #define WM8962_GP3_LVL 0x0040 /* GP3_LVL */ 33309a76f1ffSMark Brown #define WM8962_GP3_LVL_MASK 0x0040 /* GP3_LVL */ 33319a76f1ffSMark Brown #define WM8962_GP3_LVL_SHIFT 6 /* GP3_LVL */ 33329a76f1ffSMark Brown #define WM8962_GP3_LVL_WIDTH 1 /* GP3_LVL */ 33339a76f1ffSMark Brown #define WM8962_GP3_FN_MASK 0x001F /* GP3_FN - [4:0] */ 33349a76f1ffSMark Brown #define WM8962_GP3_FN_SHIFT 0 /* GP3_FN - [4:0] */ 33359a76f1ffSMark Brown #define WM8962_GP3_FN_WIDTH 5 /* GP3_FN - [4:0] */ 33369a76f1ffSMark Brown 33379a76f1ffSMark Brown /* 33389a76f1ffSMark Brown * R516 (0x204) - GPIO 5 33399a76f1ffSMark Brown */ 33409a76f1ffSMark Brown #define WM8962_GP5_DIR 0x8000 /* GP5_DIR */ 33419a76f1ffSMark Brown #define WM8962_GP5_DIR_MASK 0x8000 /* GP5_DIR */ 33429a76f1ffSMark Brown #define WM8962_GP5_DIR_SHIFT 15 /* GP5_DIR */ 33439a76f1ffSMark Brown #define WM8962_GP5_DIR_WIDTH 1 /* GP5_DIR */ 33449a76f1ffSMark Brown #define WM8962_GP5_PU 0x4000 /* GP5_PU */ 33459a76f1ffSMark Brown #define WM8962_GP5_PU_MASK 0x4000 /* GP5_PU */ 33469a76f1ffSMark Brown #define WM8962_GP5_PU_SHIFT 14 /* GP5_PU */ 33479a76f1ffSMark Brown #define WM8962_GP5_PU_WIDTH 1 /* GP5_PU */ 33489a76f1ffSMark Brown #define WM8962_GP5_PD 0x2000 /* GP5_PD */ 33499a76f1ffSMark Brown #define WM8962_GP5_PD_MASK 0x2000 /* GP5_PD */ 33509a76f1ffSMark Brown #define WM8962_GP5_PD_SHIFT 13 /* GP5_PD */ 33519a76f1ffSMark Brown #define WM8962_GP5_PD_WIDTH 1 /* GP5_PD */ 33529a76f1ffSMark Brown #define WM8962_GP5_POL 0x0400 /* GP5_POL */ 33539a76f1ffSMark Brown #define WM8962_GP5_POL_MASK 0x0400 /* GP5_POL */ 33549a76f1ffSMark Brown #define WM8962_GP5_POL_SHIFT 10 /* GP5_POL */ 33559a76f1ffSMark Brown #define WM8962_GP5_POL_WIDTH 1 /* GP5_POL */ 33569a76f1ffSMark Brown #define WM8962_GP5_OP_CFG 0x0200 /* GP5_OP_CFG */ 33579a76f1ffSMark Brown #define WM8962_GP5_OP_CFG_MASK 0x0200 /* GP5_OP_CFG */ 33589a76f1ffSMark Brown #define WM8962_GP5_OP_CFG_SHIFT 9 /* GP5_OP_CFG */ 33599a76f1ffSMark Brown #define WM8962_GP5_OP_CFG_WIDTH 1 /* GP5_OP_CFG */ 33609a76f1ffSMark Brown #define WM8962_GP5_DB 0x0100 /* GP5_DB */ 33619a76f1ffSMark Brown #define WM8962_GP5_DB_MASK 0x0100 /* GP5_DB */ 33629a76f1ffSMark Brown #define WM8962_GP5_DB_SHIFT 8 /* GP5_DB */ 33639a76f1ffSMark Brown #define WM8962_GP5_DB_WIDTH 1 /* GP5_DB */ 33649a76f1ffSMark Brown #define WM8962_GP5_LVL 0x0040 /* GP5_LVL */ 33659a76f1ffSMark Brown #define WM8962_GP5_LVL_MASK 0x0040 /* GP5_LVL */ 33669a76f1ffSMark Brown #define WM8962_GP5_LVL_SHIFT 6 /* GP5_LVL */ 33679a76f1ffSMark Brown #define WM8962_GP5_LVL_WIDTH 1 /* GP5_LVL */ 33689a76f1ffSMark Brown #define WM8962_GP5_FN_MASK 0x001F /* GP5_FN - [4:0] */ 33699a76f1ffSMark Brown #define WM8962_GP5_FN_SHIFT 0 /* GP5_FN - [4:0] */ 33709a76f1ffSMark Brown #define WM8962_GP5_FN_WIDTH 5 /* GP5_FN - [4:0] */ 33719a76f1ffSMark Brown 33729a76f1ffSMark Brown /* 33739a76f1ffSMark Brown * R517 (0x205) - GPIO 6 33749a76f1ffSMark Brown */ 33759a76f1ffSMark Brown #define WM8962_GP6_DIR 0x8000 /* GP6_DIR */ 33769a76f1ffSMark Brown #define WM8962_GP6_DIR_MASK 0x8000 /* GP6_DIR */ 33779a76f1ffSMark Brown #define WM8962_GP6_DIR_SHIFT 15 /* GP6_DIR */ 33789a76f1ffSMark Brown #define WM8962_GP6_DIR_WIDTH 1 /* GP6_DIR */ 33799a76f1ffSMark Brown #define WM8962_GP6_PU 0x4000 /* GP6_PU */ 33809a76f1ffSMark Brown #define WM8962_GP6_PU_MASK 0x4000 /* GP6_PU */ 33819a76f1ffSMark Brown #define WM8962_GP6_PU_SHIFT 14 /* GP6_PU */ 33829a76f1ffSMark Brown #define WM8962_GP6_PU_WIDTH 1 /* GP6_PU */ 33839a76f1ffSMark Brown #define WM8962_GP6_PD 0x2000 /* GP6_PD */ 33849a76f1ffSMark Brown #define WM8962_GP6_PD_MASK 0x2000 /* GP6_PD */ 33859a76f1ffSMark Brown #define WM8962_GP6_PD_SHIFT 13 /* GP6_PD */ 33869a76f1ffSMark Brown #define WM8962_GP6_PD_WIDTH 1 /* GP6_PD */ 33879a76f1ffSMark Brown #define WM8962_GP6_POL 0x0400 /* GP6_POL */ 33889a76f1ffSMark Brown #define WM8962_GP6_POL_MASK 0x0400 /* GP6_POL */ 33899a76f1ffSMark Brown #define WM8962_GP6_POL_SHIFT 10 /* GP6_POL */ 33909a76f1ffSMark Brown #define WM8962_GP6_POL_WIDTH 1 /* GP6_POL */ 33919a76f1ffSMark Brown #define WM8962_GP6_OP_CFG 0x0200 /* GP6_OP_CFG */ 33929a76f1ffSMark Brown #define WM8962_GP6_OP_CFG_MASK 0x0200 /* GP6_OP_CFG */ 33939a76f1ffSMark Brown #define WM8962_GP6_OP_CFG_SHIFT 9 /* GP6_OP_CFG */ 33949a76f1ffSMark Brown #define WM8962_GP6_OP_CFG_WIDTH 1 /* GP6_OP_CFG */ 33959a76f1ffSMark Brown #define WM8962_GP6_DB 0x0100 /* GP6_DB */ 33969a76f1ffSMark Brown #define WM8962_GP6_DB_MASK 0x0100 /* GP6_DB */ 33979a76f1ffSMark Brown #define WM8962_GP6_DB_SHIFT 8 /* GP6_DB */ 33989a76f1ffSMark Brown #define WM8962_GP6_DB_WIDTH 1 /* GP6_DB */ 33999a76f1ffSMark Brown #define WM8962_GP6_LVL 0x0040 /* GP6_LVL */ 34009a76f1ffSMark Brown #define WM8962_GP6_LVL_MASK 0x0040 /* GP6_LVL */ 34019a76f1ffSMark Brown #define WM8962_GP6_LVL_SHIFT 6 /* GP6_LVL */ 34029a76f1ffSMark Brown #define WM8962_GP6_LVL_WIDTH 1 /* GP6_LVL */ 34039a76f1ffSMark Brown #define WM8962_GP6_FN_MASK 0x001F /* GP6_FN - [4:0] */ 34049a76f1ffSMark Brown #define WM8962_GP6_FN_SHIFT 0 /* GP6_FN - [4:0] */ 34059a76f1ffSMark Brown #define WM8962_GP6_FN_WIDTH 5 /* GP6_FN - [4:0] */ 34069a76f1ffSMark Brown 34079a76f1ffSMark Brown /* 34089a76f1ffSMark Brown * R560 (0x230) - Interrupt Status 1 34099a76f1ffSMark Brown */ 34109a76f1ffSMark Brown #define WM8962_GP6_EINT 0x0020 /* GP6_EINT */ 34119a76f1ffSMark Brown #define WM8962_GP6_EINT_MASK 0x0020 /* GP6_EINT */ 34129a76f1ffSMark Brown #define WM8962_GP6_EINT_SHIFT 5 /* GP6_EINT */ 34139a76f1ffSMark Brown #define WM8962_GP6_EINT_WIDTH 1 /* GP6_EINT */ 34149a76f1ffSMark Brown #define WM8962_GP5_EINT 0x0010 /* GP5_EINT */ 34159a76f1ffSMark Brown #define WM8962_GP5_EINT_MASK 0x0010 /* GP5_EINT */ 34169a76f1ffSMark Brown #define WM8962_GP5_EINT_SHIFT 4 /* GP5_EINT */ 34179a76f1ffSMark Brown #define WM8962_GP5_EINT_WIDTH 1 /* GP5_EINT */ 34189a76f1ffSMark Brown 34199a76f1ffSMark Brown /* 34209a76f1ffSMark Brown * R561 (0x231) - Interrupt Status 2 34219a76f1ffSMark Brown */ 34229a76f1ffSMark Brown #define WM8962_MICSCD_EINT 0x8000 /* MICSCD_EINT */ 34239a76f1ffSMark Brown #define WM8962_MICSCD_EINT_MASK 0x8000 /* MICSCD_EINT */ 34249a76f1ffSMark Brown #define WM8962_MICSCD_EINT_SHIFT 15 /* MICSCD_EINT */ 34259a76f1ffSMark Brown #define WM8962_MICSCD_EINT_WIDTH 1 /* MICSCD_EINT */ 34269a76f1ffSMark Brown #define WM8962_MICD_EINT 0x4000 /* MICD_EINT */ 34279a76f1ffSMark Brown #define WM8962_MICD_EINT_MASK 0x4000 /* MICD_EINT */ 34289a76f1ffSMark Brown #define WM8962_MICD_EINT_SHIFT 14 /* MICD_EINT */ 34299a76f1ffSMark Brown #define WM8962_MICD_EINT_WIDTH 1 /* MICD_EINT */ 34309a76f1ffSMark Brown #define WM8962_FIFOS_ERR_EINT 0x2000 /* FIFOS_ERR_EINT */ 34319a76f1ffSMark Brown #define WM8962_FIFOS_ERR_EINT_MASK 0x2000 /* FIFOS_ERR_EINT */ 34329a76f1ffSMark Brown #define WM8962_FIFOS_ERR_EINT_SHIFT 13 /* FIFOS_ERR_EINT */ 34339a76f1ffSMark Brown #define WM8962_FIFOS_ERR_EINT_WIDTH 1 /* FIFOS_ERR_EINT */ 34349a76f1ffSMark Brown #define WM8962_ALC_LOCK_EINT 0x1000 /* ALC_LOCK_EINT */ 34359a76f1ffSMark Brown #define WM8962_ALC_LOCK_EINT_MASK 0x1000 /* ALC_LOCK_EINT */ 34369a76f1ffSMark Brown #define WM8962_ALC_LOCK_EINT_SHIFT 12 /* ALC_LOCK_EINT */ 34379a76f1ffSMark Brown #define WM8962_ALC_LOCK_EINT_WIDTH 1 /* ALC_LOCK_EINT */ 34389a76f1ffSMark Brown #define WM8962_ALC_THRESH_EINT 0x0800 /* ALC_THRESH_EINT */ 34399a76f1ffSMark Brown #define WM8962_ALC_THRESH_EINT_MASK 0x0800 /* ALC_THRESH_EINT */ 34409a76f1ffSMark Brown #define WM8962_ALC_THRESH_EINT_SHIFT 11 /* ALC_THRESH_EINT */ 34419a76f1ffSMark Brown #define WM8962_ALC_THRESH_EINT_WIDTH 1 /* ALC_THRESH_EINT */ 34429a76f1ffSMark Brown #define WM8962_ALC_SAT_EINT 0x0400 /* ALC_SAT_EINT */ 34439a76f1ffSMark Brown #define WM8962_ALC_SAT_EINT_MASK 0x0400 /* ALC_SAT_EINT */ 34449a76f1ffSMark Brown #define WM8962_ALC_SAT_EINT_SHIFT 10 /* ALC_SAT_EINT */ 34459a76f1ffSMark Brown #define WM8962_ALC_SAT_EINT_WIDTH 1 /* ALC_SAT_EINT */ 34469a76f1ffSMark Brown #define WM8962_ALC_PKOVR_EINT 0x0200 /* ALC_PKOVR_EINT */ 34479a76f1ffSMark Brown #define WM8962_ALC_PKOVR_EINT_MASK 0x0200 /* ALC_PKOVR_EINT */ 34489a76f1ffSMark Brown #define WM8962_ALC_PKOVR_EINT_SHIFT 9 /* ALC_PKOVR_EINT */ 34499a76f1ffSMark Brown #define WM8962_ALC_PKOVR_EINT_WIDTH 1 /* ALC_PKOVR_EINT */ 34509a76f1ffSMark Brown #define WM8962_ALC_NGATE_EINT 0x0100 /* ALC_NGATE_EINT */ 34519a76f1ffSMark Brown #define WM8962_ALC_NGATE_EINT_MASK 0x0100 /* ALC_NGATE_EINT */ 34529a76f1ffSMark Brown #define WM8962_ALC_NGATE_EINT_SHIFT 8 /* ALC_NGATE_EINT */ 34539a76f1ffSMark Brown #define WM8962_ALC_NGATE_EINT_WIDTH 1 /* ALC_NGATE_EINT */ 34549a76f1ffSMark Brown #define WM8962_WSEQ_DONE_EINT 0x0080 /* WSEQ_DONE_EINT */ 34559a76f1ffSMark Brown #define WM8962_WSEQ_DONE_EINT_MASK 0x0080 /* WSEQ_DONE_EINT */ 34569a76f1ffSMark Brown #define WM8962_WSEQ_DONE_EINT_SHIFT 7 /* WSEQ_DONE_EINT */ 34579a76f1ffSMark Brown #define WM8962_WSEQ_DONE_EINT_WIDTH 1 /* WSEQ_DONE_EINT */ 34589a76f1ffSMark Brown #define WM8962_DRC_ACTDET_EINT 0x0040 /* DRC_ACTDET_EINT */ 34599a76f1ffSMark Brown #define WM8962_DRC_ACTDET_EINT_MASK 0x0040 /* DRC_ACTDET_EINT */ 34609a76f1ffSMark Brown #define WM8962_DRC_ACTDET_EINT_SHIFT 6 /* DRC_ACTDET_EINT */ 34619a76f1ffSMark Brown #define WM8962_DRC_ACTDET_EINT_WIDTH 1 /* DRC_ACTDET_EINT */ 34629a76f1ffSMark Brown #define WM8962_FLL_LOCK_EINT 0x0020 /* FLL_LOCK_EINT */ 34639a76f1ffSMark Brown #define WM8962_FLL_LOCK_EINT_MASK 0x0020 /* FLL_LOCK_EINT */ 34649a76f1ffSMark Brown #define WM8962_FLL_LOCK_EINT_SHIFT 5 /* FLL_LOCK_EINT */ 34659a76f1ffSMark Brown #define WM8962_FLL_LOCK_EINT_WIDTH 1 /* FLL_LOCK_EINT */ 34669a76f1ffSMark Brown #define WM8962_PLL3_LOCK_EINT 0x0008 /* PLL3_LOCK_EINT */ 34679a76f1ffSMark Brown #define WM8962_PLL3_LOCK_EINT_MASK 0x0008 /* PLL3_LOCK_EINT */ 34689a76f1ffSMark Brown #define WM8962_PLL3_LOCK_EINT_SHIFT 3 /* PLL3_LOCK_EINT */ 34699a76f1ffSMark Brown #define WM8962_PLL3_LOCK_EINT_WIDTH 1 /* PLL3_LOCK_EINT */ 34709a76f1ffSMark Brown #define WM8962_PLL2_LOCK_EINT 0x0004 /* PLL2_LOCK_EINT */ 34719a76f1ffSMark Brown #define WM8962_PLL2_LOCK_EINT_MASK 0x0004 /* PLL2_LOCK_EINT */ 34729a76f1ffSMark Brown #define WM8962_PLL2_LOCK_EINT_SHIFT 2 /* PLL2_LOCK_EINT */ 34739a76f1ffSMark Brown #define WM8962_PLL2_LOCK_EINT_WIDTH 1 /* PLL2_LOCK_EINT */ 34749a76f1ffSMark Brown #define WM8962_TEMP_SHUT_EINT 0x0001 /* TEMP_SHUT_EINT */ 34759a76f1ffSMark Brown #define WM8962_TEMP_SHUT_EINT_MASK 0x0001 /* TEMP_SHUT_EINT */ 34769a76f1ffSMark Brown #define WM8962_TEMP_SHUT_EINT_SHIFT 0 /* TEMP_SHUT_EINT */ 34779a76f1ffSMark Brown #define WM8962_TEMP_SHUT_EINT_WIDTH 1 /* TEMP_SHUT_EINT */ 34789a76f1ffSMark Brown 34799a76f1ffSMark Brown /* 34809a76f1ffSMark Brown * R568 (0x238) - Interrupt Status 1 Mask 34819a76f1ffSMark Brown */ 34829a76f1ffSMark Brown #define WM8962_IM_GP6_EINT 0x0020 /* IM_GP6_EINT */ 34839a76f1ffSMark Brown #define WM8962_IM_GP6_EINT_MASK 0x0020 /* IM_GP6_EINT */ 34849a76f1ffSMark Brown #define WM8962_IM_GP6_EINT_SHIFT 5 /* IM_GP6_EINT */ 34859a76f1ffSMark Brown #define WM8962_IM_GP6_EINT_WIDTH 1 /* IM_GP6_EINT */ 34869a76f1ffSMark Brown #define WM8962_IM_GP5_EINT 0x0010 /* IM_GP5_EINT */ 34879a76f1ffSMark Brown #define WM8962_IM_GP5_EINT_MASK 0x0010 /* IM_GP5_EINT */ 34889a76f1ffSMark Brown #define WM8962_IM_GP5_EINT_SHIFT 4 /* IM_GP5_EINT */ 34899a76f1ffSMark Brown #define WM8962_IM_GP5_EINT_WIDTH 1 /* IM_GP5_EINT */ 34909a76f1ffSMark Brown 34919a76f1ffSMark Brown /* 34929a76f1ffSMark Brown * R569 (0x239) - Interrupt Status 2 Mask 34939a76f1ffSMark Brown */ 34949a76f1ffSMark Brown #define WM8962_IM_MICSCD_EINT 0x8000 /* IM_MICSCD_EINT */ 34959a76f1ffSMark Brown #define WM8962_IM_MICSCD_EINT_MASK 0x8000 /* IM_MICSCD_EINT */ 34969a76f1ffSMark Brown #define WM8962_IM_MICSCD_EINT_SHIFT 15 /* IM_MICSCD_EINT */ 34979a76f1ffSMark Brown #define WM8962_IM_MICSCD_EINT_WIDTH 1 /* IM_MICSCD_EINT */ 34989a76f1ffSMark Brown #define WM8962_IM_MICD_EINT 0x4000 /* IM_MICD_EINT */ 34999a76f1ffSMark Brown #define WM8962_IM_MICD_EINT_MASK 0x4000 /* IM_MICD_EINT */ 35009a76f1ffSMark Brown #define WM8962_IM_MICD_EINT_SHIFT 14 /* IM_MICD_EINT */ 35019a76f1ffSMark Brown #define WM8962_IM_MICD_EINT_WIDTH 1 /* IM_MICD_EINT */ 35029a76f1ffSMark Brown #define WM8962_IM_FIFOS_ERR_EINT 0x2000 /* IM_FIFOS_ERR_EINT */ 35039a76f1ffSMark Brown #define WM8962_IM_FIFOS_ERR_EINT_MASK 0x2000 /* IM_FIFOS_ERR_EINT */ 35049a76f1ffSMark Brown #define WM8962_IM_FIFOS_ERR_EINT_SHIFT 13 /* IM_FIFOS_ERR_EINT */ 35059a76f1ffSMark Brown #define WM8962_IM_FIFOS_ERR_EINT_WIDTH 1 /* IM_FIFOS_ERR_EINT */ 35069a76f1ffSMark Brown #define WM8962_IM_ALC_LOCK_EINT 0x1000 /* IM_ALC_LOCK_EINT */ 35079a76f1ffSMark Brown #define WM8962_IM_ALC_LOCK_EINT_MASK 0x1000 /* IM_ALC_LOCK_EINT */ 35089a76f1ffSMark Brown #define WM8962_IM_ALC_LOCK_EINT_SHIFT 12 /* IM_ALC_LOCK_EINT */ 35099a76f1ffSMark Brown #define WM8962_IM_ALC_LOCK_EINT_WIDTH 1 /* IM_ALC_LOCK_EINT */ 35109a76f1ffSMark Brown #define WM8962_IM_ALC_THRESH_EINT 0x0800 /* IM_ALC_THRESH_EINT */ 35119a76f1ffSMark Brown #define WM8962_IM_ALC_THRESH_EINT_MASK 0x0800 /* IM_ALC_THRESH_EINT */ 35129a76f1ffSMark Brown #define WM8962_IM_ALC_THRESH_EINT_SHIFT 11 /* IM_ALC_THRESH_EINT */ 35139a76f1ffSMark Brown #define WM8962_IM_ALC_THRESH_EINT_WIDTH 1 /* IM_ALC_THRESH_EINT */ 35149a76f1ffSMark Brown #define WM8962_IM_ALC_SAT_EINT 0x0400 /* IM_ALC_SAT_EINT */ 35159a76f1ffSMark Brown #define WM8962_IM_ALC_SAT_EINT_MASK 0x0400 /* IM_ALC_SAT_EINT */ 35169a76f1ffSMark Brown #define WM8962_IM_ALC_SAT_EINT_SHIFT 10 /* IM_ALC_SAT_EINT */ 35179a76f1ffSMark Brown #define WM8962_IM_ALC_SAT_EINT_WIDTH 1 /* IM_ALC_SAT_EINT */ 35189a76f1ffSMark Brown #define WM8962_IM_ALC_PKOVR_EINT 0x0200 /* IM_ALC_PKOVR_EINT */ 35199a76f1ffSMark Brown #define WM8962_IM_ALC_PKOVR_EINT_MASK 0x0200 /* IM_ALC_PKOVR_EINT */ 35209a76f1ffSMark Brown #define WM8962_IM_ALC_PKOVR_EINT_SHIFT 9 /* IM_ALC_PKOVR_EINT */ 35219a76f1ffSMark Brown #define WM8962_IM_ALC_PKOVR_EINT_WIDTH 1 /* IM_ALC_PKOVR_EINT */ 35229a76f1ffSMark Brown #define WM8962_IM_ALC_NGATE_EINT 0x0100 /* IM_ALC_NGATE_EINT */ 35239a76f1ffSMark Brown #define WM8962_IM_ALC_NGATE_EINT_MASK 0x0100 /* IM_ALC_NGATE_EINT */ 35249a76f1ffSMark Brown #define WM8962_IM_ALC_NGATE_EINT_SHIFT 8 /* IM_ALC_NGATE_EINT */ 35259a76f1ffSMark Brown #define WM8962_IM_ALC_NGATE_EINT_WIDTH 1 /* IM_ALC_NGATE_EINT */ 35269a76f1ffSMark Brown #define WM8962_IM_WSEQ_DONE_EINT 0x0080 /* IM_WSEQ_DONE_EINT */ 35279a76f1ffSMark Brown #define WM8962_IM_WSEQ_DONE_EINT_MASK 0x0080 /* IM_WSEQ_DONE_EINT */ 35289a76f1ffSMark Brown #define WM8962_IM_WSEQ_DONE_EINT_SHIFT 7 /* IM_WSEQ_DONE_EINT */ 35299a76f1ffSMark Brown #define WM8962_IM_WSEQ_DONE_EINT_WIDTH 1 /* IM_WSEQ_DONE_EINT */ 35309a76f1ffSMark Brown #define WM8962_IM_DRC_ACTDET_EINT 0x0040 /* IM_DRC_ACTDET_EINT */ 35319a76f1ffSMark Brown #define WM8962_IM_DRC_ACTDET_EINT_MASK 0x0040 /* IM_DRC_ACTDET_EINT */ 35329a76f1ffSMark Brown #define WM8962_IM_DRC_ACTDET_EINT_SHIFT 6 /* IM_DRC_ACTDET_EINT */ 35339a76f1ffSMark Brown #define WM8962_IM_DRC_ACTDET_EINT_WIDTH 1 /* IM_DRC_ACTDET_EINT */ 35349a76f1ffSMark Brown #define WM8962_IM_FLL_LOCK_EINT 0x0020 /* IM_FLL_LOCK_EINT */ 35359a76f1ffSMark Brown #define WM8962_IM_FLL_LOCK_EINT_MASK 0x0020 /* IM_FLL_LOCK_EINT */ 35369a76f1ffSMark Brown #define WM8962_IM_FLL_LOCK_EINT_SHIFT 5 /* IM_FLL_LOCK_EINT */ 35379a76f1ffSMark Brown #define WM8962_IM_FLL_LOCK_EINT_WIDTH 1 /* IM_FLL_LOCK_EINT */ 35389a76f1ffSMark Brown #define WM8962_IM_PLL3_LOCK_EINT 0x0008 /* IM_PLL3_LOCK_EINT */ 35399a76f1ffSMark Brown #define WM8962_IM_PLL3_LOCK_EINT_MASK 0x0008 /* IM_PLL3_LOCK_EINT */ 35409a76f1ffSMark Brown #define WM8962_IM_PLL3_LOCK_EINT_SHIFT 3 /* IM_PLL3_LOCK_EINT */ 35419a76f1ffSMark Brown #define WM8962_IM_PLL3_LOCK_EINT_WIDTH 1 /* IM_PLL3_LOCK_EINT */ 35429a76f1ffSMark Brown #define WM8962_IM_PLL2_LOCK_EINT 0x0004 /* IM_PLL2_LOCK_EINT */ 35439a76f1ffSMark Brown #define WM8962_IM_PLL2_LOCK_EINT_MASK 0x0004 /* IM_PLL2_LOCK_EINT */ 35449a76f1ffSMark Brown #define WM8962_IM_PLL2_LOCK_EINT_SHIFT 2 /* IM_PLL2_LOCK_EINT */ 35459a76f1ffSMark Brown #define WM8962_IM_PLL2_LOCK_EINT_WIDTH 1 /* IM_PLL2_LOCK_EINT */ 35469a76f1ffSMark Brown #define WM8962_IM_TEMP_SHUT_EINT 0x0001 /* IM_TEMP_SHUT_EINT */ 35479a76f1ffSMark Brown #define WM8962_IM_TEMP_SHUT_EINT_MASK 0x0001 /* IM_TEMP_SHUT_EINT */ 35489a76f1ffSMark Brown #define WM8962_IM_TEMP_SHUT_EINT_SHIFT 0 /* IM_TEMP_SHUT_EINT */ 35499a76f1ffSMark Brown #define WM8962_IM_TEMP_SHUT_EINT_WIDTH 1 /* IM_TEMP_SHUT_EINT */ 35509a76f1ffSMark Brown 35519a76f1ffSMark Brown /* 35529a76f1ffSMark Brown * R576 (0x240) - Interrupt Control 35539a76f1ffSMark Brown */ 35549a76f1ffSMark Brown #define WM8962_IRQ_POL 0x0001 /* IRQ_POL */ 35559a76f1ffSMark Brown #define WM8962_IRQ_POL_MASK 0x0001 /* IRQ_POL */ 35569a76f1ffSMark Brown #define WM8962_IRQ_POL_SHIFT 0 /* IRQ_POL */ 35579a76f1ffSMark Brown #define WM8962_IRQ_POL_WIDTH 1 /* IRQ_POL */ 35589a76f1ffSMark Brown 35599a76f1ffSMark Brown /* 35609a76f1ffSMark Brown * R584 (0x248) - IRQ Debounce 35619a76f1ffSMark Brown */ 35629a76f1ffSMark Brown #define WM8962_FLL_LOCK_DB 0x0020 /* FLL_LOCK_DB */ 35639a76f1ffSMark Brown #define WM8962_FLL_LOCK_DB_MASK 0x0020 /* FLL_LOCK_DB */ 35649a76f1ffSMark Brown #define WM8962_FLL_LOCK_DB_SHIFT 5 /* FLL_LOCK_DB */ 35659a76f1ffSMark Brown #define WM8962_FLL_LOCK_DB_WIDTH 1 /* FLL_LOCK_DB */ 35669a76f1ffSMark Brown #define WM8962_PLL3_LOCK_DB 0x0008 /* PLL3_LOCK_DB */ 35679a76f1ffSMark Brown #define WM8962_PLL3_LOCK_DB_MASK 0x0008 /* PLL3_LOCK_DB */ 35689a76f1ffSMark Brown #define WM8962_PLL3_LOCK_DB_SHIFT 3 /* PLL3_LOCK_DB */ 35699a76f1ffSMark Brown #define WM8962_PLL3_LOCK_DB_WIDTH 1 /* PLL3_LOCK_DB */ 35709a76f1ffSMark Brown #define WM8962_PLL2_LOCK_DB 0x0004 /* PLL2_LOCK_DB */ 35719a76f1ffSMark Brown #define WM8962_PLL2_LOCK_DB_MASK 0x0004 /* PLL2_LOCK_DB */ 35729a76f1ffSMark Brown #define WM8962_PLL2_LOCK_DB_SHIFT 2 /* PLL2_LOCK_DB */ 35739a76f1ffSMark Brown #define WM8962_PLL2_LOCK_DB_WIDTH 1 /* PLL2_LOCK_DB */ 35749a76f1ffSMark Brown #define WM8962_TEMP_SHUT_DB 0x0001 /* TEMP_SHUT_DB */ 35759a76f1ffSMark Brown #define WM8962_TEMP_SHUT_DB_MASK 0x0001 /* TEMP_SHUT_DB */ 35769a76f1ffSMark Brown #define WM8962_TEMP_SHUT_DB_SHIFT 0 /* TEMP_SHUT_DB */ 35779a76f1ffSMark Brown #define WM8962_TEMP_SHUT_DB_WIDTH 1 /* TEMP_SHUT_DB */ 35789a76f1ffSMark Brown 35799a76f1ffSMark Brown /* 35809a76f1ffSMark Brown * R586 (0x24A) - MICINT Source Pol 35819a76f1ffSMark Brown */ 35829a76f1ffSMark Brown #define WM8962_MICSCD_IRQ_POL 0x8000 /* MICSCD_IRQ_POL */ 35839a76f1ffSMark Brown #define WM8962_MICSCD_IRQ_POL_MASK 0x8000 /* MICSCD_IRQ_POL */ 35849a76f1ffSMark Brown #define WM8962_MICSCD_IRQ_POL_SHIFT 15 /* MICSCD_IRQ_POL */ 35859a76f1ffSMark Brown #define WM8962_MICSCD_IRQ_POL_WIDTH 1 /* MICSCD_IRQ_POL */ 35869a76f1ffSMark Brown #define WM8962_MICD_IRQ_POL 0x4000 /* MICD_IRQ_POL */ 35879a76f1ffSMark Brown #define WM8962_MICD_IRQ_POL_MASK 0x4000 /* MICD_IRQ_POL */ 35889a76f1ffSMark Brown #define WM8962_MICD_IRQ_POL_SHIFT 14 /* MICD_IRQ_POL */ 35899a76f1ffSMark Brown #define WM8962_MICD_IRQ_POL_WIDTH 1 /* MICD_IRQ_POL */ 35909a76f1ffSMark Brown 35919a76f1ffSMark Brown /* 35929a76f1ffSMark Brown * R768 (0x300) - DSP2 Power Management 35939a76f1ffSMark Brown */ 35949a76f1ffSMark Brown #define WM8962_DSP2_ENA 0x0001 /* DSP2_ENA */ 35959a76f1ffSMark Brown #define WM8962_DSP2_ENA_MASK 0x0001 /* DSP2_ENA */ 35969a76f1ffSMark Brown #define WM8962_DSP2_ENA_SHIFT 0 /* DSP2_ENA */ 35979a76f1ffSMark Brown #define WM8962_DSP2_ENA_WIDTH 1 /* DSP2_ENA */ 35989a76f1ffSMark Brown 35999a76f1ffSMark Brown /* 36009a76f1ffSMark Brown * R1037 (0x40D) - DSP2_ExecControl 36019a76f1ffSMark Brown */ 36029a76f1ffSMark Brown #define WM8962_DSP2_STOPC 0x0020 /* DSP2_STOPC */ 36039a76f1ffSMark Brown #define WM8962_DSP2_STOPC_MASK 0x0020 /* DSP2_STOPC */ 36049a76f1ffSMark Brown #define WM8962_DSP2_STOPC_SHIFT 5 /* DSP2_STOPC */ 36059a76f1ffSMark Brown #define WM8962_DSP2_STOPC_WIDTH 1 /* DSP2_STOPC */ 36069a76f1ffSMark Brown #define WM8962_DSP2_STOPS 0x0010 /* DSP2_STOPS */ 36079a76f1ffSMark Brown #define WM8962_DSP2_STOPS_MASK 0x0010 /* DSP2_STOPS */ 36089a76f1ffSMark Brown #define WM8962_DSP2_STOPS_SHIFT 4 /* DSP2_STOPS */ 36099a76f1ffSMark Brown #define WM8962_DSP2_STOPS_WIDTH 1 /* DSP2_STOPS */ 36109a76f1ffSMark Brown #define WM8962_DSP2_STOPI 0x0008 /* DSP2_STOPI */ 36119a76f1ffSMark Brown #define WM8962_DSP2_STOPI_MASK 0x0008 /* DSP2_STOPI */ 36129a76f1ffSMark Brown #define WM8962_DSP2_STOPI_SHIFT 3 /* DSP2_STOPI */ 36139a76f1ffSMark Brown #define WM8962_DSP2_STOPI_WIDTH 1 /* DSP2_STOPI */ 36149a76f1ffSMark Brown #define WM8962_DSP2_STOP 0x0004 /* DSP2_STOP */ 36159a76f1ffSMark Brown #define WM8962_DSP2_STOP_MASK 0x0004 /* DSP2_STOP */ 36169a76f1ffSMark Brown #define WM8962_DSP2_STOP_SHIFT 2 /* DSP2_STOP */ 36179a76f1ffSMark Brown #define WM8962_DSP2_STOP_WIDTH 1 /* DSP2_STOP */ 36189a76f1ffSMark Brown #define WM8962_DSP2_RUNR 0x0002 /* DSP2_RUNR */ 36199a76f1ffSMark Brown #define WM8962_DSP2_RUNR_MASK 0x0002 /* DSP2_RUNR */ 36209a76f1ffSMark Brown #define WM8962_DSP2_RUNR_SHIFT 1 /* DSP2_RUNR */ 36219a76f1ffSMark Brown #define WM8962_DSP2_RUNR_WIDTH 1 /* DSP2_RUNR */ 36229a76f1ffSMark Brown #define WM8962_DSP2_RUN 0x0001 /* DSP2_RUN */ 36239a76f1ffSMark Brown #define WM8962_DSP2_RUN_MASK 0x0001 /* DSP2_RUN */ 36249a76f1ffSMark Brown #define WM8962_DSP2_RUN_SHIFT 0 /* DSP2_RUN */ 36259a76f1ffSMark Brown #define WM8962_DSP2_RUN_WIDTH 1 /* DSP2_RUN */ 36269a76f1ffSMark Brown 36279a76f1ffSMark Brown /* 36289a76f1ffSMark Brown * R8192 (0x2000) - DSP2 Instruction RAM 0 36299a76f1ffSMark Brown */ 36309a76f1ffSMark Brown #define WM8962_DSP2_INSTR_RAM_1024_10_9_0_MASK 0x03FF /* DSP2_INSTR_RAM_1024_10_9_0 - [9:0] */ 36319a76f1ffSMark Brown #define WM8962_DSP2_INSTR_RAM_1024_10_9_0_SHIFT 0 /* DSP2_INSTR_RAM_1024_10_9_0 - [9:0] */ 36329a76f1ffSMark Brown #define WM8962_DSP2_INSTR_RAM_1024_10_9_0_WIDTH 10 /* DSP2_INSTR_RAM_1024_10_9_0 - [9:0] */ 36339a76f1ffSMark Brown 36349a76f1ffSMark Brown /* 36359a76f1ffSMark Brown * R9216 (0x2400) - DSP2 Address RAM 2 36369a76f1ffSMark Brown */ 36379a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_37_32_MASK 0x003F /* DSP2_ADDR_RAM_1024_38_37_32 - [5:0] */ 36389a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_37_32_SHIFT 0 /* DSP2_ADDR_RAM_1024_38_37_32 - [5:0] */ 36399a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_37_32_WIDTH 6 /* DSP2_ADDR_RAM_1024_38_37_32 - [5:0] */ 36409a76f1ffSMark Brown 36419a76f1ffSMark Brown /* 36429a76f1ffSMark Brown * R9217 (0x2401) - DSP2 Address RAM 1 36439a76f1ffSMark Brown */ 36449a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_31_16_MASK 0xFFFF /* DSP2_ADDR_RAM_1024_38_31_16 - [15:0] */ 36459a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_31_16_SHIFT 0 /* DSP2_ADDR_RAM_1024_38_31_16 - [15:0] */ 36469a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_31_16_WIDTH 16 /* DSP2_ADDR_RAM_1024_38_31_16 - [15:0] */ 36479a76f1ffSMark Brown 36489a76f1ffSMark Brown /* 36499a76f1ffSMark Brown * R9218 (0x2402) - DSP2 Address RAM 0 36509a76f1ffSMark Brown */ 36519a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_15_0_MASK 0xFFFF /* DSP2_ADDR_RAM_1024_38_15_0 - [15:0] */ 36529a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_15_0_SHIFT 0 /* DSP2_ADDR_RAM_1024_38_15_0 - [15:0] */ 36539a76f1ffSMark Brown #define WM8962_DSP2_ADDR_RAM_1024_38_15_0_WIDTH 16 /* DSP2_ADDR_RAM_1024_38_15_0 - [15:0] */ 36549a76f1ffSMark Brown 36559a76f1ffSMark Brown /* 36569a76f1ffSMark Brown * R12288 (0x3000) - DSP2 Data1 RAM 1 36579a76f1ffSMark Brown */ 36589a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_384_24_23_16_MASK 0x00FF /* DSP2_DATA1_RAM_384_24_23_16 - [7:0] */ 36599a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_384_24_23_16_SHIFT 0 /* DSP2_DATA1_RAM_384_24_23_16 - [7:0] */ 36609a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_384_24_23_16_WIDTH 8 /* DSP2_DATA1_RAM_384_24_23_16 - [7:0] */ 36619a76f1ffSMark Brown 36629a76f1ffSMark Brown /* 36639a76f1ffSMark Brown * R12289 (0x3001) - DSP2 Data1 RAM 0 36649a76f1ffSMark Brown */ 36659a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_384_24_15_0_MASK 0xFFFF /* DSP2_DATA1_RAM_384_24_15_0 - [15:0] */ 36669a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_384_24_15_0_SHIFT 0 /* DSP2_DATA1_RAM_384_24_15_0 - [15:0] */ 36679a76f1ffSMark Brown #define WM8962_DSP2_DATA1_RAM_384_24_15_0_WIDTH 16 /* DSP2_DATA1_RAM_384_24_15_0 - [15:0] */ 36689a76f1ffSMark Brown 36699a76f1ffSMark Brown /* 36709a76f1ffSMark Brown * R13312 (0x3400) - DSP2 Data2 RAM 1 36719a76f1ffSMark Brown */ 36729a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_384_24_23_16_MASK 0x00FF /* DSP2_DATA2_RAM_384_24_23_16 - [7:0] */ 36739a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_384_24_23_16_SHIFT 0 /* DSP2_DATA2_RAM_384_24_23_16 - [7:0] */ 36749a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_384_24_23_16_WIDTH 8 /* DSP2_DATA2_RAM_384_24_23_16 - [7:0] */ 36759a76f1ffSMark Brown 36769a76f1ffSMark Brown /* 36779a76f1ffSMark Brown * R13313 (0x3401) - DSP2 Data2 RAM 0 36789a76f1ffSMark Brown */ 36799a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_384_24_15_0_MASK 0xFFFF /* DSP2_DATA2_RAM_384_24_15_0 - [15:0] */ 36809a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_384_24_15_0_SHIFT 0 /* DSP2_DATA2_RAM_384_24_15_0 - [15:0] */ 36819a76f1ffSMark Brown #define WM8962_DSP2_DATA2_RAM_384_24_15_0_WIDTH 16 /* DSP2_DATA2_RAM_384_24_15_0 - [15:0] */ 36829a76f1ffSMark Brown 36839a76f1ffSMark Brown /* 36849a76f1ffSMark Brown * R14336 (0x3800) - DSP2 Data3 RAM 1 36859a76f1ffSMark Brown */ 36869a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_384_24_23_16_MASK 0x00FF /* DSP2_DATA3_RAM_384_24_23_16 - [7:0] */ 36879a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_384_24_23_16_SHIFT 0 /* DSP2_DATA3_RAM_384_24_23_16 - [7:0] */ 36889a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_384_24_23_16_WIDTH 8 /* DSP2_DATA3_RAM_384_24_23_16 - [7:0] */ 36899a76f1ffSMark Brown 36909a76f1ffSMark Brown /* 36919a76f1ffSMark Brown * R14337 (0x3801) - DSP2 Data3 RAM 0 36929a76f1ffSMark Brown */ 36939a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_384_24_15_0_MASK 0xFFFF /* DSP2_DATA3_RAM_384_24_15_0 - [15:0] */ 36949a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_384_24_15_0_SHIFT 0 /* DSP2_DATA3_RAM_384_24_15_0 - [15:0] */ 36959a76f1ffSMark Brown #define WM8962_DSP2_DATA3_RAM_384_24_15_0_WIDTH 16 /* DSP2_DATA3_RAM_384_24_15_0 - [15:0] */ 36969a76f1ffSMark Brown 36979a76f1ffSMark Brown /* 36989a76f1ffSMark Brown * R15360 (0x3C00) - DSP2 Coeff RAM 0 36999a76f1ffSMark Brown */ 37009a76f1ffSMark Brown #define WM8962_DSP2_CMAP_RAM_384_11_10_0_MASK 0x07FF /* DSP2_CMAP_RAM_384_11_10_0 - [10:0] */ 37019a76f1ffSMark Brown #define WM8962_DSP2_CMAP_RAM_384_11_10_0_SHIFT 0 /* DSP2_CMAP_RAM_384_11_10_0 - [10:0] */ 37029a76f1ffSMark Brown #define WM8962_DSP2_CMAP_RAM_384_11_10_0_WIDTH 11 /* DSP2_CMAP_RAM_384_11_10_0 - [10:0] */ 37039a76f1ffSMark Brown 37049a76f1ffSMark Brown /* 37059a76f1ffSMark Brown * R16384 (0x4000) - RETUNEADC_SHARED_COEFF_1 37069a76f1ffSMark Brown */ 37079a76f1ffSMark Brown #define WM8962_ADC_RETUNE_SCV 0x0080 /* ADC_RETUNE_SCV */ 37089a76f1ffSMark Brown #define WM8962_ADC_RETUNE_SCV_MASK 0x0080 /* ADC_RETUNE_SCV */ 37099a76f1ffSMark Brown #define WM8962_ADC_RETUNE_SCV_SHIFT 7 /* ADC_RETUNE_SCV */ 37109a76f1ffSMark Brown #define WM8962_ADC_RETUNE_SCV_WIDTH 1 /* ADC_RETUNE_SCV */ 37119a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_22_16_MASK 0x007F /* RETUNEADC_SHARED_COEFF_22_16 - [6:0] */ 37129a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_22_16_SHIFT 0 /* RETUNEADC_SHARED_COEFF_22_16 - [6:0] */ 37139a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_22_16_WIDTH 7 /* RETUNEADC_SHARED_COEFF_22_16 - [6:0] */ 37149a76f1ffSMark Brown 37159a76f1ffSMark Brown /* 37169a76f1ffSMark Brown * R16385 (0x4001) - RETUNEADC_SHARED_COEFF_0 37179a76f1ffSMark Brown */ 37189a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_15_00_MASK 0xFFFF /* RETUNEADC_SHARED_COEFF_15_00 - [15:0] */ 37199a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_15_00_SHIFT 0 /* RETUNEADC_SHARED_COEFF_15_00 - [15:0] */ 37209a76f1ffSMark Brown #define WM8962_RETUNEADC_SHARED_COEFF_15_00_WIDTH 16 /* RETUNEADC_SHARED_COEFF_15_00 - [15:0] */ 37219a76f1ffSMark Brown 37229a76f1ffSMark Brown /* 37239a76f1ffSMark Brown * R16386 (0x4002) - RETUNEDAC_SHARED_COEFF_1 37249a76f1ffSMark Brown */ 37259a76f1ffSMark Brown #define WM8962_DAC_RETUNE_SCV 0x0080 /* DAC_RETUNE_SCV */ 37269a76f1ffSMark Brown #define WM8962_DAC_RETUNE_SCV_MASK 0x0080 /* DAC_RETUNE_SCV */ 37279a76f1ffSMark Brown #define WM8962_DAC_RETUNE_SCV_SHIFT 7 /* DAC_RETUNE_SCV */ 37289a76f1ffSMark Brown #define WM8962_DAC_RETUNE_SCV_WIDTH 1 /* DAC_RETUNE_SCV */ 37299a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_23_16_MASK 0x007F /* RETUNEDAC_SHARED_COEFF_23_16 - [6:0] */ 37309a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_23_16_SHIFT 0 /* RETUNEDAC_SHARED_COEFF_23_16 - [6:0] */ 37319a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_23_16_WIDTH 7 /* RETUNEDAC_SHARED_COEFF_23_16 - [6:0] */ 37329a76f1ffSMark Brown 37339a76f1ffSMark Brown /* 37349a76f1ffSMark Brown * R16387 (0x4003) - RETUNEDAC_SHARED_COEFF_0 37359a76f1ffSMark Brown */ 37369a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_15_00_MASK 0xFFFF /* RETUNEDAC_SHARED_COEFF_15_00 - [15:0] */ 37379a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_15_00_SHIFT 0 /* RETUNEDAC_SHARED_COEFF_15_00 - [15:0] */ 37389a76f1ffSMark Brown #define WM8962_RETUNEDAC_SHARED_COEFF_15_00_WIDTH 16 /* RETUNEDAC_SHARED_COEFF_15_00 - [15:0] */ 37399a76f1ffSMark Brown 37409a76f1ffSMark Brown /* 37419a76f1ffSMark Brown * R16388 (0x4004) - SOUNDSTAGE_ENABLES_1 37429a76f1ffSMark Brown */ 37439a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_23_16_MASK 0x00FF /* SOUNDSTAGE_ENABLES_23_16 - [7:0] */ 37449a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_23_16_SHIFT 0 /* SOUNDSTAGE_ENABLES_23_16 - [7:0] */ 37459a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_23_16_WIDTH 8 /* SOUNDSTAGE_ENABLES_23_16 - [7:0] */ 37469a76f1ffSMark Brown 37479a76f1ffSMark Brown /* 37489a76f1ffSMark Brown * R16389 (0x4005) - SOUNDSTAGE_ENABLES_0 37499a76f1ffSMark Brown */ 37509a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_15_06_MASK 0xFFC0 /* SOUNDSTAGE_ENABLES_15_06 - [15:6] */ 37519a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_15_06_SHIFT 6 /* SOUNDSTAGE_ENABLES_15_06 - [15:6] */ 37529a76f1ffSMark Brown #define WM8962_SOUNDSTAGE_ENABLES_15_06_WIDTH 10 /* SOUNDSTAGE_ENABLES_15_06 - [15:6] */ 37539a76f1ffSMark Brown #define WM8962_RTN_ADC_ENA 0x0020 /* RTN_ADC_ENA */ 37549a76f1ffSMark Brown #define WM8962_RTN_ADC_ENA_MASK 0x0020 /* RTN_ADC_ENA */ 37559a76f1ffSMark Brown #define WM8962_RTN_ADC_ENA_SHIFT 5 /* RTN_ADC_ENA */ 37569a76f1ffSMark Brown #define WM8962_RTN_ADC_ENA_WIDTH 1 /* RTN_ADC_ENA */ 37579a76f1ffSMark Brown #define WM8962_RTN_DAC_ENA 0x0010 /* RTN_DAC_ENA */ 37589a76f1ffSMark Brown #define WM8962_RTN_DAC_ENA_MASK 0x0010 /* RTN_DAC_ENA */ 37599a76f1ffSMark Brown #define WM8962_RTN_DAC_ENA_SHIFT 4 /* RTN_DAC_ENA */ 37609a76f1ffSMark Brown #define WM8962_RTN_DAC_ENA_WIDTH 1 /* RTN_DAC_ENA */ 37619a76f1ffSMark Brown #define WM8962_HDBASS_ENA 0x0008 /* HDBASS_ENA */ 37629a76f1ffSMark Brown #define WM8962_HDBASS_ENA_MASK 0x0008 /* HDBASS_ENA */ 37639a76f1ffSMark Brown #define WM8962_HDBASS_ENA_SHIFT 3 /* HDBASS_ENA */ 37649a76f1ffSMark Brown #define WM8962_HDBASS_ENA_WIDTH 1 /* HDBASS_ENA */ 37659a76f1ffSMark Brown #define WM8962_HPF2_ENA 0x0004 /* HPF2_ENA */ 37669a76f1ffSMark Brown #define WM8962_HPF2_ENA_MASK 0x0004 /* HPF2_ENA */ 37679a76f1ffSMark Brown #define WM8962_HPF2_ENA_SHIFT 2 /* HPF2_ENA */ 37689a76f1ffSMark Brown #define WM8962_HPF2_ENA_WIDTH 1 /* HPF2_ENA */ 37699a76f1ffSMark Brown #define WM8962_HPF1_ENA 0x0002 /* HPF1_ENA */ 37709a76f1ffSMark Brown #define WM8962_HPF1_ENA_MASK 0x0002 /* HPF1_ENA */ 37719a76f1ffSMark Brown #define WM8962_HPF1_ENA_SHIFT 1 /* HPF1_ENA */ 37729a76f1ffSMark Brown #define WM8962_HPF1_ENA_WIDTH 1 /* HPF1_ENA */ 37739a76f1ffSMark Brown #define WM8962_VSS_ENA 0x0001 /* VSS_ENA */ 37749a76f1ffSMark Brown #define WM8962_VSS_ENA_MASK 0x0001 /* VSS_ENA */ 37759a76f1ffSMark Brown #define WM8962_VSS_ENA_SHIFT 0 /* VSS_ENA */ 37769a76f1ffSMark Brown #define WM8962_VSS_ENA_WIDTH 1 /* VSS_ENA */ 37779a76f1ffSMark Brown 37789a76f1ffSMark Brown extern const u16 wm8962_reg[WM8962_MAX_REGISTER + 1]; 37799a76f1ffSMark Brown 37809a76f1ffSMark Brown struct wm8962_reg_access { 37819a76f1ffSMark Brown u16 read; 37829a76f1ffSMark Brown u16 write; 37839a76f1ffSMark Brown u16 vol; 37849a76f1ffSMark Brown }; 37859a76f1ffSMark Brown 37869a76f1ffSMark Brown extern 37879a76f1ffSMark Brown const struct wm8962_reg_access wm8962_reg_access[WM8962_MAX_REGISTER + 1]; 37889a76f1ffSMark Brown 37897711308aSMark Brown int wm8962_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack); 37907711308aSMark Brown 37919a76f1ffSMark Brown #endif 3792