1a6e3f4f3SSteve Lee /* SPDX-License-Identifier: GPL-2.0 */ 2a6e3f4f3SSteve Lee /* 3a6e3f4f3SSteve Lee * Copyright (c) 2020, Maxim Integrated. 4a6e3f4f3SSteve Lee */ 5a6e3f4f3SSteve Lee 6a6e3f4f3SSteve Lee #ifndef _MAX98390_H 7a6e3f4f3SSteve Lee #define _MAX98390_H 8a6e3f4f3SSteve Lee 9a6e3f4f3SSteve Lee /* MAX98390 Register Address */ 10a6e3f4f3SSteve Lee #define MAX98390_SOFTWARE_RESET 0x2000 11a6e3f4f3SSteve Lee #define MAX98390_INT_RAW1 0x2002 12a6e3f4f3SSteve Lee #define MAX98390_INT_RAW2 0x2003 13a6e3f4f3SSteve Lee #define MAX98390_INT_RAW3 0x2004 14a6e3f4f3SSteve Lee #define MAX98390_INT_STATE1 0x2005 15a6e3f4f3SSteve Lee #define MAX98390_INT_STATE2 0x2006 16a6e3f4f3SSteve Lee #define MAX98390_INT_STATE3 0x2007 17a6e3f4f3SSteve Lee #define MAX98390_INT_FLAG1 0x2008 18a6e3f4f3SSteve Lee #define MAX98390_INT_FLAG2 0x2009 19a6e3f4f3SSteve Lee #define MAX98390_INT_FLAG3 0x200a 20a6e3f4f3SSteve Lee #define MAX98390_INT_EN1 0x200b 21a6e3f4f3SSteve Lee #define MAX98390_INT_EN2 0x200c 22a6e3f4f3SSteve Lee #define MAX98390_INT_EN3 0x200d 23a6e3f4f3SSteve Lee #define MAX98390_INT_FLAG_CLR1 0x200e 24a6e3f4f3SSteve Lee #define MAX98390_INT_FLAG_CLR2 0x200f 25a6e3f4f3SSteve Lee #define MAX98390_INT_FLAG_CLR3 0x2010 26a6e3f4f3SSteve Lee #define MAX98390_IRQ_CTRL 0x2011 27a6e3f4f3SSteve Lee #define MAX98390_CLK_MON 0x2012 28a6e3f4f3SSteve Lee #define MAX98390_DAT_MON 0x2014 29a6e3f4f3SSteve Lee #define MAX98390_WDOG_CTRL 0x2015 30a6e3f4f3SSteve Lee #define MAX98390_WDOG_RST 0x2016 31a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_THERM_WARN_THRESH 0x2017 32a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_THERM_SHDN_THRESH 0x2018 33a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_THERM_HYSTERESIS 0x2019 34a6e3f4f3SSteve Lee #define MAX98390_PIN_CFG 0x201a 35a6e3f4f3SSteve Lee #define MAX98390_PCM_RX_EN_A 0x201b 36a6e3f4f3SSteve Lee #define MAX98390_PCM_RX_EN_B 0x201c 37a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_EN_A 0x201d 38a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_EN_B 0x201e 39a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_HIZ_CTRL_A 0x201f 40a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_HIZ_CTRL_B 0x2020 41a6e3f4f3SSteve Lee #define MAX98390_PCM_CH_SRC_1 0x2021 42a6e3f4f3SSteve Lee #define MAX98390_PCM_CH_SRC_2 0x2022 43a6e3f4f3SSteve Lee #define MAX98390_PCM_CH_SRC_3 0x2023 44a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG 0x2024 45a6e3f4f3SSteve Lee #define MAX98390_PCM_MASTER_MODE 0x2025 46a6e3f4f3SSteve Lee #define MAX98390_PCM_CLK_SETUP 0x2026 47a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SETUP 0x2027 48a6e3f4f3SSteve Lee #define MAX98390_ICC_RX_EN_A 0x202c 49a6e3f4f3SSteve Lee #define MAX98390_ICC_RX_EN_B 0x202d 50a6e3f4f3SSteve Lee #define MAX98390_ICC_TX_EN_A 0x202e 51a6e3f4f3SSteve Lee #define MAX98390_ICC_TX_EN_B 0x202f 52a6e3f4f3SSteve Lee #define MAX98390_ICC_HIZ_MANUAL_MODE 0x2030 53a6e3f4f3SSteve Lee #define MAX98390_ICC_TX_HIZ_EN_A 0x2031 54a6e3f4f3SSteve Lee #define MAX98390_ICC_TX_HIZ_EN_B 0x2032 55a6e3f4f3SSteve Lee #define MAX98390_ICC_LNK_EN 0x2033 56a6e3f4f3SSteve Lee #define MAX98390_R2039_AMP_DSP_CFG 0x2039 57a6e3f4f3SSteve Lee #define MAX98390_R203A_AMP_EN 0x203a 58a6e3f4f3SSteve Lee #define MAX98390_TONE_GEN_DC_CFG 0x203b 59a6e3f4f3SSteve Lee #define MAX98390_SPK_SRC_SEL 0x203c 60a6e3f4f3SSteve Lee #define MAX98390_R203D_SPK_GAIN 0x203d 61a6e3f4f3SSteve Lee #define MAX98390_SSM_CFG 0x203e 62a6e3f4f3SSteve Lee #define MAX98390_MEAS_EN 0x203f 63a6e3f4f3SSteve Lee #define MAX98390_MEAS_DSP_CFG 0x2040 64a6e3f4f3SSteve Lee #define MAX98390_BOOST_CTRL0 0x2041 65a6e3f4f3SSteve Lee #define MAX98390_BOOST_CTRL3 0x2042 66a6e3f4f3SSteve Lee #define MAX98390_BOOST_CTRL1 0x2043 67a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_CFG 0x2044 68a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_BASE_MSB 0x2045 69a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_BASE_LSB 0x2046 70a6e3f4f3SSteve Lee #define MAX98390_ADC_CH0_DIVIDE 0x2047 71a6e3f4f3SSteve Lee #define MAX98390_ADC_CH1_DIVIDE 0x2048 72a6e3f4f3SSteve Lee #define MAX98390_ADC_CH2_DIVIDE 0x2049 73a6e3f4f3SSteve Lee #define MAX98390_ADC_CH0_FILT_CFG 0x204a 74a6e3f4f3SSteve Lee #define MAX98390_ADC_CH1_FILT_CFG 0x204b 75a6e3f4f3SSteve Lee #define MAX98390_ADC_CH2_FILT_CFG 0x204c 76a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_CH0_READ 0x204d 77a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_CH1_READ 0x204e 78a6e3f4f3SSteve Lee #define MAX98390_MEAS_ADC_CH2_READ 0x204f 79a6e3f4f3SSteve Lee #define MAX98390_PWR_GATE_CTL 0x2050 80a6e3f4f3SSteve Lee #define MAX98390_PWR_GATE_STATUS 0x2051 81a6e3f4f3SSteve Lee #define MAX98390_VBAT_LOW_STATUS 0x2052 82a6e3f4f3SSteve Lee #define MAX98390_PVDD_LOW_STATUS 0x2053 83a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_STATUS 0x2054 84a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_EN 0x2055 85a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_INFINITE_HOLD 0x2056 86a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_INFINITE_HOLD_CLR 0x2057 87a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL_HOLD 0x2058 88a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL1_THRESH 0x2059 89a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL2_THRESH 0x205a 90a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL3_THRESH 0x205b 91a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL4_THRESH 0x205c 92a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_THRESH_HYSTERYSIS 0x205d 93a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_AMP_LIMITER_ATK_REL 0x205e 94a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_AMP_GAIN_ATK_REL 0x205f 95a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_AMP1_CLIP_MODE 0x2060 96a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL1_CUR_LIMIT 0x2061 97a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL1_AMP1_CTRL1 0x2062 98a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL1_AMP1_CTRL2 0x2063 99a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL1_AMP1_CTRL3 0x2064 100a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL2_CUR_LIMIT 0x2065 101a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL2_AMP1_CTRL1 0x2066 102a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL2_AMP1_CTRL2 0x2067 103a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL2_AMP1_CTRL3 0x2068 104a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL3_CUR_LIMIT 0x2069 105a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL3_AMP1_CTRL1 0x206a 106a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL3_AMP1_CTRL2 0x206b 107a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL3_AMP1_CTRL3 0x206c 108a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL4_CUR_LIMIT 0x206d 109a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL4_AMP1_CTRL1 0x206e 110a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL4_AMP1_CTRL2 0x206f 111a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LVL4_AMP1_CTRL3 0x2070 112a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LOWEST_STATUS 0x2071 113a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_ILIM_HLD 0x2072 114a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_LIM_HLD 0x2073 115a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_CLIP_HLD 0x2074 116a6e3f4f3SSteve Lee #define MAX98390_BROWNOUT_GAIN_HLD 0x2075 117a6e3f4f3SSteve Lee #define MAX98390_ENV_TRACK_VOUT_HEADROOM 0x2076 118a6e3f4f3SSteve Lee #define MAX98390_ENV_TRACK_BOOST_VOUT_DELAY 0x2077 119a6e3f4f3SSteve Lee #define MAX98390_ENV_TRACK_REL_RATE 0x2078 120a6e3f4f3SSteve Lee #define MAX98390_ENV_TRACK_HOLD_RATE 0x2079 121a6e3f4f3SSteve Lee #define MAX98390_ENV_TRACK_CTRL 0x207a 122a6e3f4f3SSteve Lee #define MAX98390_ENV_TRACK_BOOST_VOUT_READ 0x207b 123a6e3f4f3SSteve Lee #define MAX98390_BOOST_BYPASS1 0x207c 124a6e3f4f3SSteve Lee #define MAX98390_BOOST_BYPASS2 0x207d 125a6e3f4f3SSteve Lee #define MAX98390_BOOST_BYPASS3 0x207e 126a6e3f4f3SSteve Lee #define MAX98390_FET_SCALING1 0x207f 127a6e3f4f3SSteve Lee #define MAX98390_FET_SCALING2 0x2080 128a6e3f4f3SSteve Lee #define MAX98390_FET_SCALING3 0x2081 129a6e3f4f3SSteve Lee #define MAX98390_FET_SCALING4 0x2082 130a6e3f4f3SSteve Lee #define MAX98390_SPK_SPEEDUP 0x2084 131a6e3f4f3SSteve Lee 132a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B0_BYTE0 0x2101 133a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B0_BYTE1 0x2102 134a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B0_BYTE2 0x2103 135a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B1_BYTE0 0x2105 136a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B1_BYTE1 0x2106 137a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B1_BYTE2 0x2107 138a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B2_BYTE0 0x2109 139a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B2_BYTE1 0x210a 140a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_B2_BYTE2 0x210b 141a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_A1_BYTE0 0x210d 142a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_A1_BYTE1 0x210e 143a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_A1_BYTE2 0x210f 144a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_A2_BYTE0 0x2111 145a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_A2_BYTE1 0x2112 146a6e3f4f3SSteve Lee #define DSM_STBASS_HPF_A2_BYTE2 0x2113 147a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B0_BYTE0 0x2115 148a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B0_BYTE1 0x2116 149a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B0_BYTE2 0x2117 150a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B1_BYTE0 0x2119 151a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B1_BYTE1 0x211a 152a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B1_BYTE2 0x211b 153a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B2_BYTE0 0x211d 154a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B2_BYTE1 0x211e 155a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_B2_BYTE2 0x211f 156a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_A1_BYTE0 0x2121 157a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_A1_BYTE1 0x2122 158a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_A1_BYTE2 0x2123 159a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_A2_BYTE0 0x2125 160a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_A2_BYTE1 0x2126 161a6e3f4f3SSteve Lee #define DSM_STBASS_LPF_A2_BYTE2 0x2127 162a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B0_BYTE0 0x2129 163a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B0_BYTE1 0x212a 164a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B0_BYTE2 0x212b 165a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B1_BYTE0 0x212d 166a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B1_BYTE1 0x212e 167a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B1_BYTE2 0x212f 168a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B2_BYTE0 0x2131 169a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B2_BYTE1 0x2132 170a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_B2_BYTE2 0x2133 171a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_A1_BYTE0 0x2135 172a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_A1_BYTE1 0x2136 173a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_A1_BYTE2 0x2137 174a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_A2_BYTE0 0x2139 175a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_A2_BYTE1 0x213a 176a6e3f4f3SSteve Lee #define DSM_EQ_BQ1_A2_BYTE2 0x213b 177a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B0_BYTE0 0x213d 178a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B0_BYTE1 0x213e 179a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B0_BYTE2 0x213f 180a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B1_BYTE0 0x2141 181a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B1_BYTE1 0x2142 182a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B1_BYTE2 0x2143 183a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B2_BYTE0 0x2145 184a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B2_BYTE1 0x2146 185a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_B2_BYTE2 0x2147 186a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_A1_BYTE0 0x2149 187a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_A1_BYTE1 0x214a 188a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_A1_BYTE2 0x214b 189a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_A2_BYTE0 0x214d 190a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_A2_BYTE1 0x214e 191a6e3f4f3SSteve Lee #define DSM_EQ_BQ2_A2_BYTE2 0x214f 192a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B0_BYTE0 0x2151 193a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B0_BYTE1 0x2152 194a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B0_BYTE2 0x2153 195a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B1_BYTE0 0x2155 196a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B1_BYTE1 0x2156 197a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B1_BYTE2 0x2157 198a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B2_BYTE0 0x2159 199a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B2_BYTE1 0x215a 200a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_B2_BYTE2 0x215b 201a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_A1_BYTE0 0x215d 202a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_A1_BYTE1 0x215e 203a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_A1_BYTE2 0x215f 204a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_A2_BYTE0 0x2161 205a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_A2_BYTE1 0x2162 206a6e3f4f3SSteve Lee #define DSM_EQ_BQ3_A2_BYTE2 0x2163 207a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B0_BYTE0 0x2165 208a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B0_BYTE1 0x2166 209a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B0_BYTE2 0x2167 210a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B1_BYTE0 0x2169 211a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B1_BYTE1 0x216a 212a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B1_BYTE2 0x216b 213a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B2_BYTE0 0x216d 214a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B2_BYTE1 0x216e 215a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_B2_BYTE2 0x216f 216a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_A1_BYTE0 0x2171 217a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_A1_BYTE1 0x2172 218a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_A1_BYTE2 0x2173 219a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_A2_BYTE0 0x2175 220a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_A2_BYTE1 0x2176 221a6e3f4f3SSteve Lee #define DSM_EQ_BQ4_A2_BYTE2 0x2177 222a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B0_BYTE0 0x2179 223a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B0_BYTE1 0x217a 224a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B0_BYTE2 0x217b 225a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B1_BYTE0 0x217d 226a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B1_BYTE1 0x217e 227a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B1_BYTE2 0x217f 228a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B2_BYTE0 0x2181 229a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B2_BYTE1 0x2182 230a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_B2_BYTE2 0x2183 231a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_A1_BYTE0 0x2185 232a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_A1_BYTE1 0x2186 233a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_A1_BYTE2 0x2187 234a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_A2_BYTE0 0x2189 235a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_A2_BYTE1 0x218a 236a6e3f4f3SSteve Lee #define DSM_EQ_BQ5_A2_BYTE2 0x218b 237a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B0_BYTE0 0x218d 238a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B0_BYTE1 0x218e 239a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B0_BYTE2 0x218f 240a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B1_BYTE0 0x2191 241a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B1_BYTE1 0x2192 242a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B1_BYTE2 0x2193 243a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B2_BYTE0 0x2195 244a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B2_BYTE1 0x2196 245a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_B2_BYTE2 0x2197 246a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_A1_BYTE0 0x2199 247a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_A1_BYTE1 0x219a 248a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_A1_BYTE2 0x219b 249a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_A2_BYTE0 0x219d 250a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_A2_BYTE1 0x219e 251a6e3f4f3SSteve Lee #define DSM_EQ_BQ6_A2_BYTE2 0x219f 252a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B0_BYTE0 0x21a1 253a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B0_BYTE1 0x21a2 254a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B0_BYTE2 0x21a3 255a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B1_BYTE0 0x21a5 256a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B1_BYTE1 0x21a6 257a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B1_BYTE2 0x21a7 258a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B2_BYTE0 0x21a9 259a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B2_BYTE1 0x21aa 260a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_B2_BYTE2 0x21ab 261a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_A1_BYTE0 0x21ad 262a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_A1_BYTE1 0x21ae 263a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_A1_BYTE2 0x21af 264a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_A2_BYTE0 0x21b1 265a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_A2_BYTE1 0x21b2 266a6e3f4f3SSteve Lee #define DSM_EQ_BQ7_A2_BYTE2 0x21b3 267a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B0_BYTE0 0x21b5 268a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B0_BYTE1 0x21b6 269a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B0_BYTE2 0x21b7 270a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B1_BYTE0 0x21b9 271a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B1_BYTE1 0x21ba 272a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B1_BYTE2 0x21bb 273a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B2_BYTE0 0x21bd 274a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B2_BYTE1 0x21be 275a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_B2_BYTE2 0x21bf 276a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_A1_BYTE0 0x21c1 277a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_A1_BYTE1 0x21c2 278a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_A1_BYTE2 0x21c3 279a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_A2_BYTE0 0x21c5 280a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_A2_BYTE1 0x21c6 281a6e3f4f3SSteve Lee #define DSM_EQ_BQ8_A2_BYTE2 0x21c7 282a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B0_BYTE0 0x21c9 283a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B0_BYTE1 0x21ca 284a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B0_BYTE2 0x21cb 285a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B1_BYTE0 0x21cd 286a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B1_BYTE1 0x21ce 287a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B1_BYTE2 0x21cf 288a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B2_BYTE0 0x21d1 289a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B2_BYTE1 0x21d2 290a6e3f4f3SSteve Lee #define DSM_LFX_BQ_B2_BYTE2 0x21d3 291a6e3f4f3SSteve Lee #define DSM_LFX_BQ_A1_BYTE0 0x21d5 292a6e3f4f3SSteve Lee #define DSM_LFX_BQ_A1_BYTE1 0x21d6 293a6e3f4f3SSteve Lee #define DSM_LFX_BQ_A1_BYTE2 0x21d7 294a6e3f4f3SSteve Lee #define DSM_LFX_BQ_A2_BYTE0 0x21d9 295a6e3f4f3SSteve Lee #define DSM_LFX_BQ_A2_BYTE1 0x21da 296a6e3f4f3SSteve Lee #define DSM_LFX_BQ_A2_BYTE2 0x21db 297a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B0_BYTE0 0x21dd 298a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B0_BYTE1 0x21de 299a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B0_BYTE2 0x21df 300a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B1_BYTE0 0x21e1 301a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B1_BYTE1 0x21e2 302a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B1_BYTE2 0x21e3 303a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B2_BYTE0 0x21e5 304a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B2_BYTE1 0x21e6 305a6e3f4f3SSteve Lee #define DSM_PPR_HPF_B2_BYTE2 0x21e7 306a6e3f4f3SSteve Lee #define DSM_PPR_HPF_A1_BYTE0 0x21e9 307a6e3f4f3SSteve Lee #define DSM_PPR_HPF_A1_BYTE1 0x21ea 308a6e3f4f3SSteve Lee #define DSM_PPR_HPF_A1_BYTE2 0x21eb 309a6e3f4f3SSteve Lee #define DSM_PPR_HPF_A2_BYTE0 0x21ed 310a6e3f4f3SSteve Lee #define DSM_PPR_HPF_A2_BYTE1 0x21ee 311a6e3f4f3SSteve Lee #define DSM_PPR_HPF_A2_BYTE2 0x21ef 312a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B0_BYTE0 0x21f1 313a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B0_BYTE1 0x21f2 314a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B0_BYTE2 0x21f3 315a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B1_BYTE0 0x21f5 316a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B1_BYTE1 0x21f6 317a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B1_BYTE2 0x21f7 318a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B2_BYTE0 0x21f9 319a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B2_BYTE1 0x21fa 320a6e3f4f3SSteve Lee #define DSM_PPR_LPF_B2_BYTE2 0x21fb 321a6e3f4f3SSteve Lee #define DSM_PPR_LPF_A1_BYTE0 0x21fd 322a6e3f4f3SSteve Lee #define DSM_PPR_LPF_A1_BYTE1 0x21fe 323a6e3f4f3SSteve Lee #define DSM_PPR_LPF_A1_BYTE2 0x21ff 324a6e3f4f3SSteve Lee #define DSM_PPR_LPF_A2_BYTE0 0x2201 325a6e3f4f3SSteve Lee #define DSM_PPR_LPF_A2_BYTE1 0x2202 326a6e3f4f3SSteve Lee #define DSM_PPR_LPF_A2_BYTE2 0x2203 327a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B0_BYTE0 0x2205 328a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B0_BYTE1 0x2206 329a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B0_BYTE2 0x2207 330a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B1_BYTE0 0x2209 331a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B1_BYTE1 0x220a 332a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B1_BYTE2 0x220b 333a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B2_BYTE0 0x220d 334a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B2_BYTE1 0x220e 335a6e3f4f3SSteve Lee #define DSM_SPL_BQ_B2_BYTE2 0x220f 336a6e3f4f3SSteve Lee #define DSM_SPL_BQ_A1_BYTE0 0x2211 337a6e3f4f3SSteve Lee #define DSM_SPL_BQ_A1_BYTE1 0x2212 338a6e3f4f3SSteve Lee #define DSM_SPL_BQ_A1_BYTE2 0x2213 339a6e3f4f3SSteve Lee #define DSM_SPL_BQ_A2_BYTE0 0x2215 340a6e3f4f3SSteve Lee #define DSM_SPL_BQ_A2_BYTE1 0x2216 341a6e3f4f3SSteve Lee #define DSM_SPL_BQ_A2_BYTE2 0x2217 342a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B0_BYTE0 0x2219 343a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B0_BYTE1 0x221a 344a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B0_BYTE2 0x221b 345a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B1_BYTE0 0x221d 346a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B1_BYTE1 0x221e 347a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B1_BYTE2 0x221f 348a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B2_BYTE0 0x2221 349a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B2_BYTE1 0x2222 350a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_B2_BYTE2 0x2223 351a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_A1_BYTE0 0x2225 352a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_A1_BYTE1 0x2226 353a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_A1_BYTE2 0x2227 354a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_A2_BYTE0 0x2229 355a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_A2_BYTE1 0x222a 356a6e3f4f3SSteve Lee #define DSM_EXCUR_BQ_A2_BYTE2 0x222b 357a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B0_BYTE0 0x222d 358a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B0_BYTE1 0x222e 359a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B0_BYTE2 0x222f 360a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B1_BYTE0 0x2231 361a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B1_BYTE1 0x2232 362a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B1_BYTE2 0x2233 363a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B2_BYTE0 0x2235 364a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B2_BYTE1 0x2236 365a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_B2_BYTE2 0x2237 366a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_A1_BYTE0 0x2239 367a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_A1_BYTE1 0x223a 368a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_A1_BYTE2 0x223b 369a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_A2_BYTE0 0x223d 370a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_A2_BYTE1 0x223e 371a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF1_A2_BYTE2 0x223f 372a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B0_BYTE0 0x2241 373a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B0_BYTE1 0x2242 374a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B0_BYTE2 0x2243 375a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B1_BYTE0 0x2245 376a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B1_BYTE1 0x2246 377a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B1_BYTE2 0x2247 378a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B2_BYTE0 0x2249 379a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B2_BYTE1 0x224a 380a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_B2_BYTE2 0x224b 381a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_A1_BYTE0 0x224d 382a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_A1_BYTE1 0x224e 383a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_A1_BYTE2 0x224f 384a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_A2_BYTE0 0x2251 385a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_A2_BYTE1 0x2252 386a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF2_A2_BYTE2 0x2253 387a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B0_BYTE0 0x2255 388a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B0_BYTE1 0x2256 389a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B0_BYTE2 0x2257 390a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B1_BYTE0 0x2259 391a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B1_BYTE1 0x225a 392a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B1_BYTE2 0x225b 393a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B2_BYTE0 0x225d 394a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B2_BYTE1 0x225e 395a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_B2_BYTE2 0x225f 396a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_A1_BYTE0 0x2261 397a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_A1_BYTE1 0x2262 398a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_A1_BYTE2 0x2263 399a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_A2_BYTE0 0x2265 400a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_A2_BYTE1 0x2266 401a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF3_A2_BYTE2 0x2267 402a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B0_BYTE0 0x2269 403a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B0_BYTE1 0x226a 404a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B0_BYTE2 0x226b 405a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B1_BYTE0 0x226d 406a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B1_BYTE1 0x226e 407a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B1_BYTE2 0x226f 408a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B2_BYTE0 0x2271 409a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B2_BYTE1 0x2272 410a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_B2_BYTE2 0x2273 411a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_A1_BYTE0 0x2275 412a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_A1_BYTE1 0x2276 413a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_A1_BYTE2 0x2277 414a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_A2_BYTE0 0x2279 415a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_A2_BYTE1 0x227a 416a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF4_A2_BYTE2 0x227b 417a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B0_BYTE0 0x227d 418a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B0_BYTE1 0x227e 419a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B0_BYTE2 0x227f 420a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B1_BYTE0 0x2281 421a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B1_BYTE1 0x2282 422a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B1_BYTE2 0x2283 423a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B2_BYTE0 0x2285 424a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B2_BYTE1 0x2286 425a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_B2_BYTE2 0x2287 426a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_A1_BYTE0 0x2289 427a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_A1_BYTE1 0x228a 428a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_A1_BYTE2 0x228b 429a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_A2_BYTE0 0x228d 430a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_A2_BYTE1 0x228e 431a6e3f4f3SSteve Lee #define DSM_EXCPROT_HPF5_A2_BYTE2 0x228f 432a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B0_BYTE0 0x2291 433a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B0_BYTE1 0x2292 434a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B0_BYTE2 0x2293 435a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B1_BYTE0 0x2295 436a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B1_BYTE1 0x2296 437a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B1_BYTE2 0x2297 438a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B2_BYTE0 0x2299 439a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B2_BYTE1 0x229a 440a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_B2_BYTE2 0x229b 441a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_A1_BYTE0 0x229d 442a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_A1_BYTE1 0x229e 443a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_A1_BYTE2 0x229f 444a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_A2_BYTE0 0x22a1 445a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_A2_BYTE1 0x22a2 446a6e3f4f3SSteve Lee #define DSM_DEBUZZ_BPF_A2_BYTE2 0x22a3 447a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B0_BYTE0 0x22a5 448a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B0_BYTE1 0x22a6 449a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B0_BYTE2 0x22a7 450a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B1_BYTE0 0x22a9 451a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B1_BYTE1 0x22aa 452a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B1_BYTE2 0x22ab 453a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B2_BYTE0 0x22ad 454a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B2_BYTE1 0x22ae 455a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_B2_BYTE2 0x22af 456a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_A1_BYTE0 0x22b1 457a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_A1_BYTE1 0x22b2 458a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_A1_BYTE2 0x22b3 459a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_A2_BYTE0 0x22b5 460a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_A2_BYTE1 0x22b6 461a6e3f4f3SSteve Lee #define DSM_DEBUZZ_PORT_A2_BYTE2 0x22b7 462a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B0_BYTE0 0x22b9 463a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B0_BYTE1 0x22ba 464a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B0_BYTE2 0x22bb 465a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B1_BYTE0 0x22bd 466a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B1_BYTE1 0x22be 467a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B1_BYTE2 0x22bf 468a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B2_BYTE0 0x22c1 469a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B2_BYTE1 0x22c2 470a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_B2_BYTE2 0x22c3 471a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_A1_BYTE0 0x22c5 472a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_A1_BYTE1 0x22c6 473a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_A1_BYTE2 0x22c7 474a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_A2_BYTE0 0x22c9 475a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_A2_BYTE1 0x22ca 476a6e3f4f3SSteve Lee #define DSM_DEBUZZ_NOTCH_A2_BYTE2 0x22cb 477a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B0_BYTE0 0x22cd 478a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B0_BYTE1 0x22ce 479a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B0_BYTE2 0x22cf 480a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B1_BYTE0 0x22d1 481a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B1_BYTE1 0x22d2 482a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B1_BYTE2 0x22d3 483a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B2_BYTE0 0x22d5 484a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B2_BYTE1 0x22d6 485a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_B2_BYTE2 0x22d7 486a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_A1_BYTE0 0x22d9 487a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_A1_BYTE1 0x22da 488a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_A1_BYTE2 0x22db 489a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_A2_BYTE0 0x22dd 490a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_A2_BYTE1 0x22de 491a6e3f4f3SSteve Lee #define DSM_THERMAL_BQ_A2_BYTE2 0x22df 492a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B0_BYTE0 0x22e1 493a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B0_BYTE1 0x22e2 494a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B0_BYTE2 0x22e3 495a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B1_BYTE0 0x22e5 496a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B1_BYTE1 0x22e6 497a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B1_BYTE2 0x22e7 498a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B2_BYTE0 0x22e9 499a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B2_BYTE1 0x22ea 500a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_B2_BYTE2 0x22eb 501a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_A1_BYTE0 0x22ed 502a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_A1_BYTE1 0x22ee 503a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_A1_BYTE2 0x22ef 504a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_A2_BYTE0 0x22f1 505a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_A2_BYTE1 0x22f2 506a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT1_A2_BYTE2 0x22f3 507a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B0_BYTE0 0x22f5 508a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B0_BYTE1 0x22f6 509a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B0_BYTE2 0x22f7 510a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B1_BYTE0 0x22f9 511a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B1_BYTE1 0x22fa 512a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B1_BYTE2 0x22fb 513a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B2_BYTE0 0x22fd 514a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B2_BYTE1 0x22fe 515a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_B2_BYTE2 0x22ff 516a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_A1_BYTE0 0x2301 517a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_A1_BYTE1 0x2302 518a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_A1_BYTE2 0x2303 519a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_A2_BYTE0 0x2305 520a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_A2_BYTE1 0x2306 521a6e3f4f3SSteve Lee #define DSM_WBDRC_FILT2_A2_BYTE2 0x2307 522a6e3f4f3SSteve Lee #define DSM_PPR_RELEASE_TIME_BYTE0 0x2309 523a6e3f4f3SSteve Lee #define DSM_PPR_RELEASE_TIME_BYTE1 0x230a 524a6e3f4f3SSteve Lee #define DSM_PPR_RELEASE_TIME_BYTE2 0x230b 525a6e3f4f3SSteve Lee #define DSM_PPR_ATTACK_TIME_BYTE0 0x230d 526a6e3f4f3SSteve Lee #define DSM_PPR_ATTACK_TIME_BYTE1 0x230e 527a6e3f4f3SSteve Lee #define DSM_PPR_ATTACK_TIME_BYTE2 0x230f 528a6e3f4f3SSteve Lee #define DSM_DEBUZZER_RELEASE_TIME_BYTE0 0x2311 529a6e3f4f3SSteve Lee #define DSM_DEBUZZER_RELEASE_TIME_BYTE1 0x2312 530a6e3f4f3SSteve Lee #define DSM_DEBUZZER_RELEASE_TIME_BYTE2 0x2313 531a6e3f4f3SSteve Lee #define DSM_DEBUZZER_ATTACK_TIME_BYTE0 0x2315 532a6e3f4f3SSteve Lee #define DSM_DEBUZZER_ATTACK_TIME_BYTE1 0x2316 533a6e3f4f3SSteve Lee #define DSM_DEBUZZER_ATTACK_TIME_BYTE2 0x2317 534a6e3f4f3SSteve Lee 535a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_RELEASE_TIME_1 0x2380 536a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_RELEASE_TIME_2 0x2381 537a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_ATTACK_TIME_1 0x2382 538a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_ATTACK_TIME_2 0x2383 539a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_COMPRESSION_RATIO 0x2384 540a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_COMPRESSION_THRESHOLD 0x2385 541a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_MAKEUPGAIN 0x2386 542a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_NOISE_GATE_THRESHOLD 0x2387 543a6e3f4f3SSteve Lee #define DSMIG_WBDRC_HPF_ENABLE 0x2388 544a6e3f4f3SSteve Lee #define DSMIG_WB_DRC_TEST_SMOOTHER_OUT_EN 0x2389 545a6e3f4f3SSteve Lee #define DSMIG_PPR_THRESHOLD 0x238b 546a6e3f4f3SSteve Lee #define DSM_STEREO_BASS_CHANNEL_SELECT 0x238d 547a6e3f4f3SSteve Lee #define DSM_TPROT_THRESHOLD_BYTE0 0x238e 548a6e3f4f3SSteve Lee #define DSM_TPROT_THRESHOLD_BYTE1 0x238f 549a6e3f4f3SSteve Lee #define DSM_TPROT_ROOM_TEMPERATURE_BYTE0 0x2390 550a6e3f4f3SSteve Lee #define DSM_TPROT_ROOM_TEMPERATURE_BYTE1 0x2391 551a6e3f4f3SSteve Lee #define DSM_TPROT_RECIP_RDC_ROOM_BYTE0 0x2392 552a6e3f4f3SSteve Lee #define DSM_TPROT_RECIP_RDC_ROOM_BYTE1 0x2393 553a6e3f4f3SSteve Lee #define DSM_TPROT_RECIP_RDC_ROOM_BYTE2 0x2394 554a6e3f4f3SSteve Lee #define DSM_TPROT_RECIP_TCONST_BYTE0 0x2395 555a6e3f4f3SSteve Lee #define DSM_TPROT_RECIP_TCONST_BYTE1 0x2396 556a6e3f4f3SSteve Lee #define DSM_TPROT_RECIP_TCONST_BYTE2 0x2397 557a6e3f4f3SSteve Lee #define DSM_THERMAL_ATTENUATION_SETTINGS 0x2398 558a6e3f4f3SSteve Lee #define DSM_THERMAL_PILOT_TONE_ATTENUATION 0x2399 559a6e3f4f3SSteve Lee #define DSM_TPROT_PG_TEMP_THRESH_BYTE0 0x239a 560a6e3f4f3SSteve Lee #define DSM_TPROT_PG_TEMP_THRESH_BYTE1 0x239b 561a6e3f4f3SSteve Lee 562a6e3f4f3SSteve Lee #define THERMAL_RDC_RD_BACK_BYTE1 0x239c 563a6e3f4f3SSteve Lee #define THERMAL_RDC_RD_BACK_BYTE0 0x239d 564a6e3f4f3SSteve Lee #define THERMAL_COILTEMP_RD_BACK_BYTE1 0x239e 565a6e3f4f3SSteve Lee #define THERMAL_COILTEMP_RD_BACK_BYTE0 0x239f 566a6e3f4f3SSteve Lee 567a6e3f4f3SSteve Lee #define DSMIG_DEBUZZER_THRESHOLD 0x23b5 568a6e3f4f3SSteve Lee #define DSMIG_DEBUZZER_ALPHA_COEF_TEST_ONLY 0x23b6 569a6e3f4f3SSteve Lee #define DSM_VOL_ENA 0x23b9 570a6e3f4f3SSteve Lee #define DSM_VOL_CTRL 0x23ba 571a6e3f4f3SSteve Lee 572a6e3f4f3SSteve Lee #define DSMIG_EN 0x23e0 573a6e3f4f3SSteve Lee #define MAX98390_R23E1_DSP_GLOBAL_EN 0x23e1 574a6e3f4f3SSteve Lee 575a6e3f4f3SSteve Lee #define DSM_THERMAL_GAIN 0x23f0 576a6e3f4f3SSteve Lee #define DSM_PPR_GAIN 0x23f1 577a6e3f4f3SSteve Lee #define DSM_DBZ_GAIN 0x23f2 578a6e3f4f3SSteve Lee #define DSM_WBDRC_GAIN 0x23f3 579a6e3f4f3SSteve Lee 580a6e3f4f3SSteve Lee #define MAX98390_R23FF_GLOBAL_EN 0x23FF 581a6e3f4f3SSteve Lee #define MAX98390_R24FF_REV_ID 0x24FF 582a6e3f4f3SSteve Lee 583a6e3f4f3SSteve Lee /* MAX98390_R2021_PCM_RX_SRC_1 */ 584a6e3f4f3SSteve Lee #define MAX98390_PCM_RX_CH_SRC_SHIFT (0) 585a6e3f4f3SSteve Lee #define MAX98390_PCM_RX_CH_SRC_BASS_SHIFT (4) 586a6e3f4f3SSteve Lee 587a6e3f4f3SSteve Lee /* MAX98390_R2022_PCM_TX_SRC_1 */ 588a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_CH_SRC_A_V_SHIFT (0) 589a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_CH_SRC_A_I_SHIFT (4) 590a6e3f4f3SSteve Lee 591a6e3f4f3SSteve Lee /* MAX98390_R2024_PCM_DATA_FMT_CFG */ 592a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_FORMAT_MASK (0x7 << 3) 593a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_FORMAT_SHIFT (3) 594a6e3f4f3SSteve Lee #define MAX98390_PCM_TX_CH_INTERLEAVE_MASK (0x1 << 2) 595a6e3f4f3SSteve Lee #define MAX98390_PCM_FORMAT_I2S (0x0 << 0) 596a6e3f4f3SSteve Lee #define MAX98390_PCM_FORMAT_LJ (0x1 << 0) 597a6e3f4f3SSteve Lee #define MAX98390_PCM_FORMAT_TDM_MODE0 (0x3 << 0) 598a6e3f4f3SSteve Lee #define MAX98390_PCM_FORMAT_TDM_MODE1 (0x4 << 0) 599a6e3f4f3SSteve Lee #define MAX98390_PCM_FORMAT_TDM_MODE2 (0x5 << 0) 600a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_CHANSZ_MASK (0x3 << 6) 601a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_CHANSZ_16 (0x1 << 6) 602a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_CHANSZ_24 (0x2 << 6) 603a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_CHANSZ_32 (0x3 << 6) 604a6e3f4f3SSteve Lee 605a6e3f4f3SSteve Lee /* MAX98390_R2039_AMP_DSP_CFG */ 606a6e3f4f3SSteve Lee #define MAX98390_AMP_DSP_CFG_RMP_UP_SHIFT (4) 607a6e3f4f3SSteve Lee #define MAX98390_AMP_DSP_CFG_RMP_DN_SHIFT (5) 608a6e3f4f3SSteve Lee 609a6e3f4f3SSteve Lee /* MAX98390_R203A_AMP_EN */ 610a6e3f4f3SSteve Lee #define MAX98390_R203A_AMP_EN_SHIFT (0) 611a6e3f4f3SSteve Lee 612a6e3f4f3SSteve Lee /* MAX98390_PCM_MASTER_MODE */ 613a6e3f4f3SSteve Lee #define MAX98390_PCM_MASTER_MODE_MASK (0x3 << 0) 614a6e3f4f3SSteve Lee #define MAX98390_PCM_MASTER_MODE_SLAVE (0x0 << 0) 615a6e3f4f3SSteve Lee #define MAX98390_PCM_MASTER_MODE_MASTER (0x3 << 0) 616a6e3f4f3SSteve Lee 617a6e3f4f3SSteve Lee #define MAX98390_PCM_MASTER_MODE_MCLK_MASK (0xF << 2) 618a6e3f4f3SSteve Lee #define MAX98390_PCM_MASTER_MODE_MCLK_RATE_SHIFT (2) 619a6e3f4f3SSteve Lee 620a6e3f4f3SSteve Lee /* PCM_CLK_SETUP */ 621a6e3f4f3SSteve Lee #define MAX98390_PCM_MODE_CFG_PCM_BCLKEDGE (0x1 << 2) 622a6e3f4f3SSteve Lee #define MAX98390_PCM_CLK_SETUP_BSEL_MASK (0xF << 0) 623a6e3f4f3SSteve Lee 624a6e3f4f3SSteve Lee /* PCM_SR_SETUP */ 625a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_MASK (0xF << 0) 626a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_8000 (0x0 << 0) 627a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_11025 (0x1 << 0) 628a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_12000 (0x2 << 0) 629a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_16000 (0x3 << 0) 630a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_22050 (0x4 << 0) 631a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_24000 (0x5 << 0) 632a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_32000 (0x6 << 0) 633a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_44100 (0x7 << 0) 634a6e3f4f3SSteve Lee #define MAX98390_PCM_SR_SET1_SR_48000 (0x8 << 0) 635a6e3f4f3SSteve Lee 636a6e3f4f3SSteve Lee /* PCM_TO_SPK_MONO_MIX_1 */ 637a6e3f4f3SSteve Lee #define MAX98390_PCM_TO_SPK_MONOMIX_CFG_MASK (0x3 << 6) 638a6e3f4f3SSteve Lee #define MAX98390_PCM_TO_SPK_MONOMIX_CFG_SHIFT (6) 639a6e3f4f3SSteve Lee #define MAX98390_PCM_TO_SPK_CH0_SRC_MASK (0xF << 0) 640a6e3f4f3SSteve Lee #define MAX98390_PCM_TO_SPK_CH1_SRC_MASK (0xF << 4) 641a6e3f4f3SSteve Lee 642a6e3f4f3SSteve Lee /* MAX98390_BOOST_CTRL3 */ 643a6e3f4f3SSteve Lee #define MAX98390_BOOST_CLK_PHASE_CFG_SHIFT (2) 644a6e3f4f3SSteve Lee 645a6e3f4f3SSteve Lee /* SOFT_RESET */ 646a6e3f4f3SSteve Lee #define MAX98390_SOFT_RESET_MASK (0x1 << 0) 647a6e3f4f3SSteve Lee 648a6e3f4f3SSteve Lee #define MAX98390_GLOBAL_EN_MASK (0x1 << 0) 649a6e3f4f3SSteve Lee #define MAX98390_AMP_EN_MASK (0x1 << 0) 650a6e3f4f3SSteve Lee 651a6e3f4f3SSteve Lee /* DSM register offset */ 652a6e3f4f3SSteve Lee #define MAX98390_DSM_PAYLOAD_OFFSET 16 65362f2c779SSteve Lee #define MAX98390_DSM_PARAM_MAX_SIZE 1024 65497ed3e50SSteve Lee #define MAX98390_DSM_PARAM_MIN_SIZE 670 655a6e3f4f3SSteve Lee 656a6e3f4f3SSteve Lee struct max98390_priv { 657a6e3f4f3SSteve Lee struct regmap *regmap; 658a6e3f4f3SSteve Lee unsigned int sysclk; 659*c536d745SMark Brown unsigned int provider; 660a6e3f4f3SSteve Lee unsigned int tdm_mode; 661e5870bd0SSteve Lee unsigned int v_l_slot; 662e5870bd0SSteve Lee unsigned int i_l_slot; 663a6e3f4f3SSteve Lee unsigned int ref_rdc_value; 664a6e3f4f3SSteve Lee unsigned int ambient_temp_value; 665a10facb7SSteve Lee const char *dsm_param_name; 666a6e3f4f3SSteve Lee }; 667a6e3f4f3SSteve Lee #endif 668