brintos

brintos / linux-shallow public Read only

0
0
Text · 24.4 KiB · f4d6758 Raw
668 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright (c) 2020, Maxim Integrated.4 */5 6#ifndef _MAX98390_H7#define _MAX98390_H8 9/* MAX98390 Register Address */10#define MAX98390_SOFTWARE_RESET 0x200011#define MAX98390_INT_RAW1 0x200212#define MAX98390_INT_RAW2 0x200313#define MAX98390_INT_RAW3 0x200414#define MAX98390_INT_STATE1 0x200515#define MAX98390_INT_STATE2 0x200616#define MAX98390_INT_STATE3 0x200717#define MAX98390_INT_FLAG1 0x200818#define MAX98390_INT_FLAG2 0x200919#define MAX98390_INT_FLAG3 0x200a20#define MAX98390_INT_EN1 0x200b21#define MAX98390_INT_EN2 0x200c22#define MAX98390_INT_EN3 0x200d23#define MAX98390_INT_FLAG_CLR1 0x200e24#define MAX98390_INT_FLAG_CLR2 0x200f25#define MAX98390_INT_FLAG_CLR3 0x201026#define MAX98390_IRQ_CTRL 0x201127#define MAX98390_CLK_MON 0x201228#define MAX98390_DAT_MON 0x201429#define MAX98390_WDOG_CTRL 0x201530#define MAX98390_WDOG_RST 0x201631#define MAX98390_MEAS_ADC_THERM_WARN_THRESH 0x201732#define MAX98390_MEAS_ADC_THERM_SHDN_THRESH 0x201833#define MAX98390_MEAS_ADC_THERM_HYSTERESIS 0x201934#define MAX98390_PIN_CFG 0x201a35#define MAX98390_PCM_RX_EN_A 0x201b36#define MAX98390_PCM_RX_EN_B 0x201c37#define MAX98390_PCM_TX_EN_A 0x201d38#define MAX98390_PCM_TX_EN_B 0x201e39#define MAX98390_PCM_TX_HIZ_CTRL_A 0x201f40#define MAX98390_PCM_TX_HIZ_CTRL_B 0x202041#define MAX98390_PCM_CH_SRC_1 0x202142#define MAX98390_PCM_CH_SRC_2 0x202243#define MAX98390_PCM_CH_SRC_3 0x202344#define MAX98390_PCM_MODE_CFG 0x202445#define MAX98390_PCM_MASTER_MODE 0x202546#define MAX98390_PCM_CLK_SETUP 0x202647#define MAX98390_PCM_SR_SETUP 0x202748#define MAX98390_ICC_RX_EN_A 0x202c49#define MAX98390_ICC_RX_EN_B 0x202d50#define MAX98390_ICC_TX_EN_A 0x202e51#define MAX98390_ICC_TX_EN_B 0x202f52#define MAX98390_ICC_HIZ_MANUAL_MODE 0x203053#define MAX98390_ICC_TX_HIZ_EN_A 0x203154#define MAX98390_ICC_TX_HIZ_EN_B 0x203255#define MAX98390_ICC_LNK_EN 0x203356#define MAX98390_R2039_AMP_DSP_CFG 0x203957#define MAX98390_R203A_AMP_EN 0x203a58#define MAX98390_TONE_GEN_DC_CFG 0x203b59#define MAX98390_SPK_SRC_SEL 0x203c60#define MAX98390_R203D_SPK_GAIN 0x203d61#define MAX98390_SSM_CFG 0x203e62#define MAX98390_MEAS_EN 0x203f63#define MAX98390_MEAS_DSP_CFG 0x204064#define MAX98390_BOOST_CTRL0 0x204165#define MAX98390_BOOST_CTRL3 0x204266#define MAX98390_BOOST_CTRL1 0x204367#define MAX98390_MEAS_ADC_CFG 0x204468#define MAX98390_MEAS_ADC_BASE_MSB 0x204569#define MAX98390_MEAS_ADC_BASE_LSB 0x204670#define MAX98390_ADC_CH0_DIVIDE 0x204771#define MAX98390_ADC_CH1_DIVIDE 0x204872#define MAX98390_ADC_CH2_DIVIDE 0x204973#define MAX98390_ADC_CH0_FILT_CFG 0x204a74#define MAX98390_ADC_CH1_FILT_CFG 0x204b75#define MAX98390_ADC_CH2_FILT_CFG 0x204c76#define MAX98390_MEAS_ADC_CH0_READ 0x204d77#define MAX98390_MEAS_ADC_CH1_READ 0x204e78#define MAX98390_MEAS_ADC_CH2_READ 0x204f79#define MAX98390_PWR_GATE_CTL 0x205080#define MAX98390_PWR_GATE_STATUS 0x205181#define MAX98390_VBAT_LOW_STATUS 0x205282#define MAX98390_PVDD_LOW_STATUS 0x205383#define MAX98390_BROWNOUT_STATUS 0x205484#define MAX98390_BROWNOUT_EN 0x205585#define MAX98390_BROWNOUT_INFINITE_HOLD 0x205686#define MAX98390_BROWNOUT_INFINITE_HOLD_CLR 0x205787#define MAX98390_BROWNOUT_LVL_HOLD 0x205888#define MAX98390_BROWNOUT_LVL1_THRESH 0x205989#define MAX98390_BROWNOUT_LVL2_THRESH 0x205a90#define MAX98390_BROWNOUT_LVL3_THRESH 0x205b91#define MAX98390_BROWNOUT_LVL4_THRESH 0x205c92#define MAX98390_BROWNOUT_THRESH_HYSTERYSIS 0x205d93#define MAX98390_BROWNOUT_AMP_LIMITER_ATK_REL 0x205e94#define MAX98390_BROWNOUT_AMP_GAIN_ATK_REL 0x205f95#define MAX98390_BROWNOUT_AMP1_CLIP_MODE 0x206096#define MAX98390_BROWNOUT_LVL1_CUR_LIMIT 0x206197#define MAX98390_BROWNOUT_LVL1_AMP1_CTRL1 0x206298#define MAX98390_BROWNOUT_LVL1_AMP1_CTRL2 0x206399#define MAX98390_BROWNOUT_LVL1_AMP1_CTRL3 0x2064100#define MAX98390_BROWNOUT_LVL2_CUR_LIMIT 0x2065101#define MAX98390_BROWNOUT_LVL2_AMP1_CTRL1 0x2066102#define MAX98390_BROWNOUT_LVL2_AMP1_CTRL2 0x2067103#define MAX98390_BROWNOUT_LVL2_AMP1_CTRL3 0x2068104#define MAX98390_BROWNOUT_LVL3_CUR_LIMIT 0x2069105#define MAX98390_BROWNOUT_LVL3_AMP1_CTRL1 0x206a106#define MAX98390_BROWNOUT_LVL3_AMP1_CTRL2 0x206b107#define MAX98390_BROWNOUT_LVL3_AMP1_CTRL3 0x206c108#define MAX98390_BROWNOUT_LVL4_CUR_LIMIT 0x206d109#define MAX98390_BROWNOUT_LVL4_AMP1_CTRL1 0x206e110#define MAX98390_BROWNOUT_LVL4_AMP1_CTRL2 0x206f111#define MAX98390_BROWNOUT_LVL4_AMP1_CTRL3 0x2070112#define MAX98390_BROWNOUT_LOWEST_STATUS 0x2071113#define MAX98390_BROWNOUT_ILIM_HLD 0x2072114#define MAX98390_BROWNOUT_LIM_HLD 0x2073115#define MAX98390_BROWNOUT_CLIP_HLD 0x2074116#define MAX98390_BROWNOUT_GAIN_HLD 0x2075117#define MAX98390_ENV_TRACK_VOUT_HEADROOM 0x2076118#define MAX98390_ENV_TRACK_BOOST_VOUT_DELAY 0x2077119#define MAX98390_ENV_TRACK_REL_RATE 0x2078120#define MAX98390_ENV_TRACK_HOLD_RATE 0x2079121#define MAX98390_ENV_TRACK_CTRL 0x207a122#define MAX98390_ENV_TRACK_BOOST_VOUT_READ 0x207b123#define MAX98390_BOOST_BYPASS1 0x207c124#define MAX98390_BOOST_BYPASS2 0x207d125#define MAX98390_BOOST_BYPASS3 0x207e126#define MAX98390_FET_SCALING1 0x207f127#define MAX98390_FET_SCALING2 0x2080128#define MAX98390_FET_SCALING3 0x2081129#define MAX98390_FET_SCALING4 0x2082130#define MAX98390_SPK_SPEEDUP 0x2084131 132#define DSM_STBASS_HPF_B0_BYTE0 0x2101133#define DSM_STBASS_HPF_B0_BYTE1 0x2102134#define DSM_STBASS_HPF_B0_BYTE2 0x2103135#define DSM_STBASS_HPF_B1_BYTE0 0x2105136#define DSM_STBASS_HPF_B1_BYTE1 0x2106137#define DSM_STBASS_HPF_B1_BYTE2 0x2107138#define DSM_STBASS_HPF_B2_BYTE0 0x2109139#define DSM_STBASS_HPF_B2_BYTE1 0x210a140#define DSM_STBASS_HPF_B2_BYTE2 0x210b141#define DSM_STBASS_HPF_A1_BYTE0 0x210d142#define DSM_STBASS_HPF_A1_BYTE1 0x210e143#define DSM_STBASS_HPF_A1_BYTE2 0x210f144#define DSM_STBASS_HPF_A2_BYTE0 0x2111145#define DSM_STBASS_HPF_A2_BYTE1 0x2112146#define DSM_STBASS_HPF_A2_BYTE2 0x2113147#define DSM_STBASS_LPF_B0_BYTE0 0x2115148#define DSM_STBASS_LPF_B0_BYTE1 0x2116149#define DSM_STBASS_LPF_B0_BYTE2 0x2117150#define DSM_STBASS_LPF_B1_BYTE0 0x2119151#define DSM_STBASS_LPF_B1_BYTE1 0x211a152#define DSM_STBASS_LPF_B1_BYTE2 0x211b153#define DSM_STBASS_LPF_B2_BYTE0 0x211d154#define DSM_STBASS_LPF_B2_BYTE1 0x211e155#define DSM_STBASS_LPF_B2_BYTE2 0x211f156#define DSM_STBASS_LPF_A1_BYTE0 0x2121157#define DSM_STBASS_LPF_A1_BYTE1 0x2122158#define DSM_STBASS_LPF_A1_BYTE2 0x2123159#define DSM_STBASS_LPF_A2_BYTE0 0x2125160#define DSM_STBASS_LPF_A2_BYTE1 0x2126161#define DSM_STBASS_LPF_A2_BYTE2 0x2127162#define DSM_EQ_BQ1_B0_BYTE0 0x2129163#define DSM_EQ_BQ1_B0_BYTE1 0x212a164#define DSM_EQ_BQ1_B0_BYTE2 0x212b165#define DSM_EQ_BQ1_B1_BYTE0 0x212d166#define DSM_EQ_BQ1_B1_BYTE1 0x212e167#define DSM_EQ_BQ1_B1_BYTE2 0x212f168#define DSM_EQ_BQ1_B2_BYTE0 0x2131169#define DSM_EQ_BQ1_B2_BYTE1 0x2132170#define DSM_EQ_BQ1_B2_BYTE2 0x2133171#define DSM_EQ_BQ1_A1_BYTE0 0x2135172#define DSM_EQ_BQ1_A1_BYTE1 0x2136173#define DSM_EQ_BQ1_A1_BYTE2 0x2137174#define DSM_EQ_BQ1_A2_BYTE0 0x2139175#define DSM_EQ_BQ1_A2_BYTE1 0x213a176#define DSM_EQ_BQ1_A2_BYTE2 0x213b177#define DSM_EQ_BQ2_B0_BYTE0 0x213d178#define DSM_EQ_BQ2_B0_BYTE1 0x213e179#define DSM_EQ_BQ2_B0_BYTE2 0x213f180#define DSM_EQ_BQ2_B1_BYTE0 0x2141181#define DSM_EQ_BQ2_B1_BYTE1 0x2142182#define DSM_EQ_BQ2_B1_BYTE2 0x2143183#define DSM_EQ_BQ2_B2_BYTE0 0x2145184#define DSM_EQ_BQ2_B2_BYTE1 0x2146185#define DSM_EQ_BQ2_B2_BYTE2 0x2147186#define DSM_EQ_BQ2_A1_BYTE0 0x2149187#define DSM_EQ_BQ2_A1_BYTE1 0x214a188#define DSM_EQ_BQ2_A1_BYTE2 0x214b189#define DSM_EQ_BQ2_A2_BYTE0 0x214d190#define DSM_EQ_BQ2_A2_BYTE1 0x214e191#define DSM_EQ_BQ2_A2_BYTE2 0x214f192#define DSM_EQ_BQ3_B0_BYTE0 0x2151193#define DSM_EQ_BQ3_B0_BYTE1 0x2152194#define DSM_EQ_BQ3_B0_BYTE2 0x2153195#define DSM_EQ_BQ3_B1_BYTE0 0x2155196#define DSM_EQ_BQ3_B1_BYTE1 0x2156197#define DSM_EQ_BQ3_B1_BYTE2 0x2157198#define DSM_EQ_BQ3_B2_BYTE0 0x2159199#define DSM_EQ_BQ3_B2_BYTE1 0x215a200#define DSM_EQ_BQ3_B2_BYTE2 0x215b201#define DSM_EQ_BQ3_A1_BYTE0 0x215d202#define DSM_EQ_BQ3_A1_BYTE1 0x215e203#define DSM_EQ_BQ3_A1_BYTE2 0x215f204#define DSM_EQ_BQ3_A2_BYTE0 0x2161205#define DSM_EQ_BQ3_A2_BYTE1 0x2162206#define DSM_EQ_BQ3_A2_BYTE2 0x2163207#define DSM_EQ_BQ4_B0_BYTE0 0x2165208#define DSM_EQ_BQ4_B0_BYTE1 0x2166209#define DSM_EQ_BQ4_B0_BYTE2 0x2167210#define DSM_EQ_BQ4_B1_BYTE0 0x2169211#define DSM_EQ_BQ4_B1_BYTE1 0x216a212#define DSM_EQ_BQ4_B1_BYTE2 0x216b213#define DSM_EQ_BQ4_B2_BYTE0 0x216d214#define DSM_EQ_BQ4_B2_BYTE1 0x216e215#define DSM_EQ_BQ4_B2_BYTE2 0x216f216#define DSM_EQ_BQ4_A1_BYTE0 0x2171217#define DSM_EQ_BQ4_A1_BYTE1 0x2172218#define DSM_EQ_BQ4_A1_BYTE2 0x2173219#define DSM_EQ_BQ4_A2_BYTE0 0x2175220#define DSM_EQ_BQ4_A2_BYTE1 0x2176221#define DSM_EQ_BQ4_A2_BYTE2 0x2177222#define DSM_EQ_BQ5_B0_BYTE0 0x2179223#define DSM_EQ_BQ5_B0_BYTE1 0x217a224#define DSM_EQ_BQ5_B0_BYTE2 0x217b225#define DSM_EQ_BQ5_B1_BYTE0 0x217d226#define DSM_EQ_BQ5_B1_BYTE1 0x217e227#define DSM_EQ_BQ5_B1_BYTE2 0x217f228#define DSM_EQ_BQ5_B2_BYTE0 0x2181229#define DSM_EQ_BQ5_B2_BYTE1 0x2182230#define DSM_EQ_BQ5_B2_BYTE2 0x2183231#define DSM_EQ_BQ5_A1_BYTE0 0x2185232#define DSM_EQ_BQ5_A1_BYTE1 0x2186233#define DSM_EQ_BQ5_A1_BYTE2 0x2187234#define DSM_EQ_BQ5_A2_BYTE0 0x2189235#define DSM_EQ_BQ5_A2_BYTE1 0x218a236#define DSM_EQ_BQ5_A2_BYTE2 0x218b237#define DSM_EQ_BQ6_B0_BYTE0 0x218d238#define DSM_EQ_BQ6_B0_BYTE1 0x218e239#define DSM_EQ_BQ6_B0_BYTE2 0x218f240#define DSM_EQ_BQ6_B1_BYTE0 0x2191241#define DSM_EQ_BQ6_B1_BYTE1 0x2192242#define DSM_EQ_BQ6_B1_BYTE2 0x2193243#define DSM_EQ_BQ6_B2_BYTE0 0x2195244#define DSM_EQ_BQ6_B2_BYTE1 0x2196245#define DSM_EQ_BQ6_B2_BYTE2 0x2197246#define DSM_EQ_BQ6_A1_BYTE0 0x2199247#define DSM_EQ_BQ6_A1_BYTE1 0x219a248#define DSM_EQ_BQ6_A1_BYTE2 0x219b249#define DSM_EQ_BQ6_A2_BYTE0 0x219d250#define DSM_EQ_BQ6_A2_BYTE1 0x219e251#define DSM_EQ_BQ6_A2_BYTE2 0x219f252#define DSM_EQ_BQ7_B0_BYTE0 0x21a1253#define DSM_EQ_BQ7_B0_BYTE1 0x21a2254#define DSM_EQ_BQ7_B0_BYTE2 0x21a3255#define DSM_EQ_BQ7_B1_BYTE0 0x21a5256#define DSM_EQ_BQ7_B1_BYTE1 0x21a6257#define DSM_EQ_BQ7_B1_BYTE2 0x21a7258#define DSM_EQ_BQ7_B2_BYTE0 0x21a9259#define DSM_EQ_BQ7_B2_BYTE1 0x21aa260#define DSM_EQ_BQ7_B2_BYTE2 0x21ab261#define DSM_EQ_BQ7_A1_BYTE0 0x21ad262#define DSM_EQ_BQ7_A1_BYTE1 0x21ae263#define DSM_EQ_BQ7_A1_BYTE2 0x21af264#define DSM_EQ_BQ7_A2_BYTE0 0x21b1265#define DSM_EQ_BQ7_A2_BYTE1 0x21b2266#define DSM_EQ_BQ7_A2_BYTE2 0x21b3267#define DSM_EQ_BQ8_B0_BYTE0 0x21b5268#define DSM_EQ_BQ8_B0_BYTE1 0x21b6269#define DSM_EQ_BQ8_B0_BYTE2 0x21b7270#define DSM_EQ_BQ8_B1_BYTE0 0x21b9271#define DSM_EQ_BQ8_B1_BYTE1 0x21ba272#define DSM_EQ_BQ8_B1_BYTE2 0x21bb273#define DSM_EQ_BQ8_B2_BYTE0 0x21bd274#define DSM_EQ_BQ8_B2_BYTE1 0x21be275#define DSM_EQ_BQ8_B2_BYTE2 0x21bf276#define DSM_EQ_BQ8_A1_BYTE0 0x21c1277#define DSM_EQ_BQ8_A1_BYTE1 0x21c2278#define DSM_EQ_BQ8_A1_BYTE2 0x21c3279#define DSM_EQ_BQ8_A2_BYTE0 0x21c5280#define DSM_EQ_BQ8_A2_BYTE1 0x21c6281#define DSM_EQ_BQ8_A2_BYTE2 0x21c7282#define DSM_LFX_BQ_B0_BYTE0 0x21c9283#define DSM_LFX_BQ_B0_BYTE1 0x21ca284#define DSM_LFX_BQ_B0_BYTE2 0x21cb285#define DSM_LFX_BQ_B1_BYTE0 0x21cd286#define DSM_LFX_BQ_B1_BYTE1 0x21ce287#define DSM_LFX_BQ_B1_BYTE2 0x21cf288#define DSM_LFX_BQ_B2_BYTE0 0x21d1289#define DSM_LFX_BQ_B2_BYTE1 0x21d2290#define DSM_LFX_BQ_B2_BYTE2 0x21d3291#define DSM_LFX_BQ_A1_BYTE0 0x21d5292#define DSM_LFX_BQ_A1_BYTE1 0x21d6293#define DSM_LFX_BQ_A1_BYTE2 0x21d7294#define DSM_LFX_BQ_A2_BYTE0 0x21d9295#define DSM_LFX_BQ_A2_BYTE1 0x21da296#define DSM_LFX_BQ_A2_BYTE2 0x21db297#define DSM_PPR_HPF_B0_BYTE0 0x21dd298#define DSM_PPR_HPF_B0_BYTE1 0x21de299#define DSM_PPR_HPF_B0_BYTE2 0x21df300#define DSM_PPR_HPF_B1_BYTE0 0x21e1301#define DSM_PPR_HPF_B1_BYTE1 0x21e2302#define DSM_PPR_HPF_B1_BYTE2 0x21e3303#define DSM_PPR_HPF_B2_BYTE0 0x21e5304#define DSM_PPR_HPF_B2_BYTE1 0x21e6305#define DSM_PPR_HPF_B2_BYTE2 0x21e7306#define DSM_PPR_HPF_A1_BYTE0 0x21e9307#define DSM_PPR_HPF_A1_BYTE1 0x21ea308#define DSM_PPR_HPF_A1_BYTE2 0x21eb309#define DSM_PPR_HPF_A2_BYTE0 0x21ed310#define DSM_PPR_HPF_A2_BYTE1 0x21ee311#define DSM_PPR_HPF_A2_BYTE2 0x21ef312#define DSM_PPR_LPF_B0_BYTE0 0x21f1313#define DSM_PPR_LPF_B0_BYTE1 0x21f2314#define DSM_PPR_LPF_B0_BYTE2 0x21f3315#define DSM_PPR_LPF_B1_BYTE0 0x21f5316#define DSM_PPR_LPF_B1_BYTE1 0x21f6317#define DSM_PPR_LPF_B1_BYTE2 0x21f7318#define DSM_PPR_LPF_B2_BYTE0 0x21f9319#define DSM_PPR_LPF_B2_BYTE1 0x21fa320#define DSM_PPR_LPF_B2_BYTE2 0x21fb321#define DSM_PPR_LPF_A1_BYTE0 0x21fd322#define DSM_PPR_LPF_A1_BYTE1 0x21fe323#define DSM_PPR_LPF_A1_BYTE2 0x21ff324#define DSM_PPR_LPF_A2_BYTE0 0x2201325#define DSM_PPR_LPF_A2_BYTE1 0x2202326#define DSM_PPR_LPF_A2_BYTE2 0x2203327#define DSM_SPL_BQ_B0_BYTE0 0x2205328#define DSM_SPL_BQ_B0_BYTE1 0x2206329#define DSM_SPL_BQ_B0_BYTE2 0x2207330#define DSM_SPL_BQ_B1_BYTE0 0x2209331#define DSM_SPL_BQ_B1_BYTE1 0x220a332#define DSM_SPL_BQ_B1_BYTE2 0x220b333#define DSM_SPL_BQ_B2_BYTE0 0x220d334#define DSM_SPL_BQ_B2_BYTE1 0x220e335#define DSM_SPL_BQ_B2_BYTE2 0x220f336#define DSM_SPL_BQ_A1_BYTE0 0x2211337#define DSM_SPL_BQ_A1_BYTE1 0x2212338#define DSM_SPL_BQ_A1_BYTE2 0x2213339#define DSM_SPL_BQ_A2_BYTE0 0x2215340#define DSM_SPL_BQ_A2_BYTE1 0x2216341#define DSM_SPL_BQ_A2_BYTE2 0x2217342#define DSM_EXCUR_BQ_B0_BYTE0 0x2219343#define DSM_EXCUR_BQ_B0_BYTE1 0x221a344#define DSM_EXCUR_BQ_B0_BYTE2 0x221b345#define DSM_EXCUR_BQ_B1_BYTE0 0x221d346#define DSM_EXCUR_BQ_B1_BYTE1 0x221e347#define DSM_EXCUR_BQ_B1_BYTE2 0x221f348#define DSM_EXCUR_BQ_B2_BYTE0 0x2221349#define DSM_EXCUR_BQ_B2_BYTE1 0x2222350#define DSM_EXCUR_BQ_B2_BYTE2 0x2223351#define DSM_EXCUR_BQ_A1_BYTE0 0x2225352#define DSM_EXCUR_BQ_A1_BYTE1 0x2226353#define DSM_EXCUR_BQ_A1_BYTE2 0x2227354#define DSM_EXCUR_BQ_A2_BYTE0 0x2229355#define DSM_EXCUR_BQ_A2_BYTE1 0x222a356#define DSM_EXCUR_BQ_A2_BYTE2 0x222b357#define DSM_EXCPROT_HPF1_B0_BYTE0 0x222d358#define DSM_EXCPROT_HPF1_B0_BYTE1 0x222e359#define DSM_EXCPROT_HPF1_B0_BYTE2 0x222f360#define DSM_EXCPROT_HPF1_B1_BYTE0 0x2231361#define DSM_EXCPROT_HPF1_B1_BYTE1 0x2232362#define DSM_EXCPROT_HPF1_B1_BYTE2 0x2233363#define DSM_EXCPROT_HPF1_B2_BYTE0 0x2235364#define DSM_EXCPROT_HPF1_B2_BYTE1 0x2236365#define DSM_EXCPROT_HPF1_B2_BYTE2 0x2237366#define DSM_EXCPROT_HPF1_A1_BYTE0 0x2239367#define DSM_EXCPROT_HPF1_A1_BYTE1 0x223a368#define DSM_EXCPROT_HPF1_A1_BYTE2 0x223b369#define DSM_EXCPROT_HPF1_A2_BYTE0 0x223d370#define DSM_EXCPROT_HPF1_A2_BYTE1 0x223e371#define DSM_EXCPROT_HPF1_A2_BYTE2 0x223f372#define DSM_EXCPROT_HPF2_B0_BYTE0 0x2241373#define DSM_EXCPROT_HPF2_B0_BYTE1 0x2242374#define DSM_EXCPROT_HPF2_B0_BYTE2 0x2243375#define DSM_EXCPROT_HPF2_B1_BYTE0 0x2245376#define DSM_EXCPROT_HPF2_B1_BYTE1 0x2246377#define DSM_EXCPROT_HPF2_B1_BYTE2 0x2247378#define DSM_EXCPROT_HPF2_B2_BYTE0 0x2249379#define DSM_EXCPROT_HPF2_B2_BYTE1 0x224a380#define DSM_EXCPROT_HPF2_B2_BYTE2 0x224b381#define DSM_EXCPROT_HPF2_A1_BYTE0 0x224d382#define DSM_EXCPROT_HPF2_A1_BYTE1 0x224e383#define DSM_EXCPROT_HPF2_A1_BYTE2 0x224f384#define DSM_EXCPROT_HPF2_A2_BYTE0 0x2251385#define DSM_EXCPROT_HPF2_A2_BYTE1 0x2252386#define DSM_EXCPROT_HPF2_A2_BYTE2 0x2253387#define DSM_EXCPROT_HPF3_B0_BYTE0 0x2255388#define DSM_EXCPROT_HPF3_B0_BYTE1 0x2256389#define DSM_EXCPROT_HPF3_B0_BYTE2 0x2257390#define DSM_EXCPROT_HPF3_B1_BYTE0 0x2259391#define DSM_EXCPROT_HPF3_B1_BYTE1 0x225a392#define DSM_EXCPROT_HPF3_B1_BYTE2 0x225b393#define DSM_EXCPROT_HPF3_B2_BYTE0 0x225d394#define DSM_EXCPROT_HPF3_B2_BYTE1 0x225e395#define DSM_EXCPROT_HPF3_B2_BYTE2 0x225f396#define DSM_EXCPROT_HPF3_A1_BYTE0 0x2261397#define DSM_EXCPROT_HPF3_A1_BYTE1 0x2262398#define DSM_EXCPROT_HPF3_A1_BYTE2 0x2263399#define DSM_EXCPROT_HPF3_A2_BYTE0 0x2265400#define DSM_EXCPROT_HPF3_A2_BYTE1 0x2266401#define DSM_EXCPROT_HPF3_A2_BYTE2 0x2267402#define DSM_EXCPROT_HPF4_B0_BYTE0 0x2269403#define DSM_EXCPROT_HPF4_B0_BYTE1 0x226a404#define DSM_EXCPROT_HPF4_B0_BYTE2 0x226b405#define DSM_EXCPROT_HPF4_B1_BYTE0 0x226d406#define DSM_EXCPROT_HPF4_B1_BYTE1 0x226e407#define DSM_EXCPROT_HPF4_B1_BYTE2 0x226f408#define DSM_EXCPROT_HPF4_B2_BYTE0 0x2271409#define DSM_EXCPROT_HPF4_B2_BYTE1 0x2272410#define DSM_EXCPROT_HPF4_B2_BYTE2 0x2273411#define DSM_EXCPROT_HPF4_A1_BYTE0 0x2275412#define DSM_EXCPROT_HPF4_A1_BYTE1 0x2276413#define DSM_EXCPROT_HPF4_A1_BYTE2 0x2277414#define DSM_EXCPROT_HPF4_A2_BYTE0 0x2279415#define DSM_EXCPROT_HPF4_A2_BYTE1 0x227a416#define DSM_EXCPROT_HPF4_A2_BYTE2 0x227b417#define DSM_EXCPROT_HPF5_B0_BYTE0 0x227d418#define DSM_EXCPROT_HPF5_B0_BYTE1 0x227e419#define DSM_EXCPROT_HPF5_B0_BYTE2 0x227f420#define DSM_EXCPROT_HPF5_B1_BYTE0 0x2281421#define DSM_EXCPROT_HPF5_B1_BYTE1 0x2282422#define DSM_EXCPROT_HPF5_B1_BYTE2 0x2283423#define DSM_EXCPROT_HPF5_B2_BYTE0 0x2285424#define DSM_EXCPROT_HPF5_B2_BYTE1 0x2286425#define DSM_EXCPROT_HPF5_B2_BYTE2 0x2287426#define DSM_EXCPROT_HPF5_A1_BYTE0 0x2289427#define DSM_EXCPROT_HPF5_A1_BYTE1 0x228a428#define DSM_EXCPROT_HPF5_A1_BYTE2 0x228b429#define DSM_EXCPROT_HPF5_A2_BYTE0 0x228d430#define DSM_EXCPROT_HPF5_A2_BYTE1 0x228e431#define DSM_EXCPROT_HPF5_A2_BYTE2 0x228f432#define DSM_DEBUZZ_BPF_B0_BYTE0 0x2291433#define DSM_DEBUZZ_BPF_B0_BYTE1 0x2292434#define DSM_DEBUZZ_BPF_B0_BYTE2 0x2293435#define DSM_DEBUZZ_BPF_B1_BYTE0 0x2295436#define DSM_DEBUZZ_BPF_B1_BYTE1 0x2296437#define DSM_DEBUZZ_BPF_B1_BYTE2 0x2297438#define DSM_DEBUZZ_BPF_B2_BYTE0 0x2299439#define DSM_DEBUZZ_BPF_B2_BYTE1 0x229a440#define DSM_DEBUZZ_BPF_B2_BYTE2 0x229b441#define DSM_DEBUZZ_BPF_A1_BYTE0 0x229d442#define DSM_DEBUZZ_BPF_A1_BYTE1 0x229e443#define DSM_DEBUZZ_BPF_A1_BYTE2 0x229f444#define DSM_DEBUZZ_BPF_A2_BYTE0 0x22a1445#define DSM_DEBUZZ_BPF_A2_BYTE1 0x22a2446#define DSM_DEBUZZ_BPF_A2_BYTE2 0x22a3447#define DSM_DEBUZZ_PORT_B0_BYTE0 0x22a5448#define DSM_DEBUZZ_PORT_B0_BYTE1 0x22a6449#define DSM_DEBUZZ_PORT_B0_BYTE2 0x22a7450#define DSM_DEBUZZ_PORT_B1_BYTE0 0x22a9451#define DSM_DEBUZZ_PORT_B1_BYTE1 0x22aa452#define DSM_DEBUZZ_PORT_B1_BYTE2 0x22ab453#define DSM_DEBUZZ_PORT_B2_BYTE0 0x22ad454#define DSM_DEBUZZ_PORT_B2_BYTE1 0x22ae455#define DSM_DEBUZZ_PORT_B2_BYTE2 0x22af456#define DSM_DEBUZZ_PORT_A1_BYTE0 0x22b1457#define DSM_DEBUZZ_PORT_A1_BYTE1 0x22b2458#define DSM_DEBUZZ_PORT_A1_BYTE2 0x22b3459#define DSM_DEBUZZ_PORT_A2_BYTE0 0x22b5460#define DSM_DEBUZZ_PORT_A2_BYTE1 0x22b6461#define DSM_DEBUZZ_PORT_A2_BYTE2 0x22b7462#define DSM_DEBUZZ_NOTCH_B0_BYTE0 0x22b9463#define DSM_DEBUZZ_NOTCH_B0_BYTE1 0x22ba464#define DSM_DEBUZZ_NOTCH_B0_BYTE2 0x22bb465#define DSM_DEBUZZ_NOTCH_B1_BYTE0 0x22bd466#define DSM_DEBUZZ_NOTCH_B1_BYTE1 0x22be467#define DSM_DEBUZZ_NOTCH_B1_BYTE2 0x22bf468#define DSM_DEBUZZ_NOTCH_B2_BYTE0 0x22c1469#define DSM_DEBUZZ_NOTCH_B2_BYTE1 0x22c2470#define DSM_DEBUZZ_NOTCH_B2_BYTE2 0x22c3471#define DSM_DEBUZZ_NOTCH_A1_BYTE0 0x22c5472#define DSM_DEBUZZ_NOTCH_A1_BYTE1 0x22c6473#define DSM_DEBUZZ_NOTCH_A1_BYTE2 0x22c7474#define DSM_DEBUZZ_NOTCH_A2_BYTE0 0x22c9475#define DSM_DEBUZZ_NOTCH_A2_BYTE1 0x22ca476#define DSM_DEBUZZ_NOTCH_A2_BYTE2 0x22cb477#define DSM_THERMAL_BQ_B0_BYTE0 0x22cd478#define DSM_THERMAL_BQ_B0_BYTE1 0x22ce479#define DSM_THERMAL_BQ_B0_BYTE2 0x22cf480#define DSM_THERMAL_BQ_B1_BYTE0 0x22d1481#define DSM_THERMAL_BQ_B1_BYTE1 0x22d2482#define DSM_THERMAL_BQ_B1_BYTE2 0x22d3483#define DSM_THERMAL_BQ_B2_BYTE0 0x22d5484#define DSM_THERMAL_BQ_B2_BYTE1 0x22d6485#define DSM_THERMAL_BQ_B2_BYTE2 0x22d7486#define DSM_THERMAL_BQ_A1_BYTE0 0x22d9487#define DSM_THERMAL_BQ_A1_BYTE1 0x22da488#define DSM_THERMAL_BQ_A1_BYTE2 0x22db489#define DSM_THERMAL_BQ_A2_BYTE0 0x22dd490#define DSM_THERMAL_BQ_A2_BYTE1 0x22de491#define DSM_THERMAL_BQ_A2_BYTE2 0x22df492#define DSM_WBDRC_FILT1_B0_BYTE0 0x22e1493#define DSM_WBDRC_FILT1_B0_BYTE1 0x22e2494#define DSM_WBDRC_FILT1_B0_BYTE2 0x22e3495#define DSM_WBDRC_FILT1_B1_BYTE0 0x22e5496#define DSM_WBDRC_FILT1_B1_BYTE1 0x22e6497#define DSM_WBDRC_FILT1_B1_BYTE2 0x22e7498#define DSM_WBDRC_FILT1_B2_BYTE0 0x22e9499#define DSM_WBDRC_FILT1_B2_BYTE1 0x22ea500#define DSM_WBDRC_FILT1_B2_BYTE2 0x22eb501#define DSM_WBDRC_FILT1_A1_BYTE0 0x22ed502#define DSM_WBDRC_FILT1_A1_BYTE1 0x22ee503#define DSM_WBDRC_FILT1_A1_BYTE2 0x22ef504#define DSM_WBDRC_FILT1_A2_BYTE0 0x22f1505#define DSM_WBDRC_FILT1_A2_BYTE1 0x22f2506#define DSM_WBDRC_FILT1_A2_BYTE2 0x22f3507#define DSM_WBDRC_FILT2_B0_BYTE0 0x22f5508#define DSM_WBDRC_FILT2_B0_BYTE1 0x22f6509#define DSM_WBDRC_FILT2_B0_BYTE2 0x22f7510#define DSM_WBDRC_FILT2_B1_BYTE0 0x22f9511#define DSM_WBDRC_FILT2_B1_BYTE1 0x22fa512#define DSM_WBDRC_FILT2_B1_BYTE2 0x22fb513#define DSM_WBDRC_FILT2_B2_BYTE0 0x22fd514#define DSM_WBDRC_FILT2_B2_BYTE1 0x22fe515#define DSM_WBDRC_FILT2_B2_BYTE2 0x22ff516#define DSM_WBDRC_FILT2_A1_BYTE0 0x2301517#define DSM_WBDRC_FILT2_A1_BYTE1 0x2302518#define DSM_WBDRC_FILT2_A1_BYTE2 0x2303519#define DSM_WBDRC_FILT2_A2_BYTE0 0x2305520#define DSM_WBDRC_FILT2_A2_BYTE1 0x2306521#define DSM_WBDRC_FILT2_A2_BYTE2 0x2307522#define DSM_PPR_RELEASE_TIME_BYTE0 0x2309523#define DSM_PPR_RELEASE_TIME_BYTE1 0x230a524#define DSM_PPR_RELEASE_TIME_BYTE2 0x230b525#define DSM_PPR_ATTACK_TIME_BYTE0 0x230d526#define DSM_PPR_ATTACK_TIME_BYTE1 0x230e527#define DSM_PPR_ATTACK_TIME_BYTE2 0x230f528#define DSM_DEBUZZER_RELEASE_TIME_BYTE0 0x2311529#define DSM_DEBUZZER_RELEASE_TIME_BYTE1 0x2312530#define DSM_DEBUZZER_RELEASE_TIME_BYTE2 0x2313531#define DSM_DEBUZZER_ATTACK_TIME_BYTE0 0x2315532#define DSM_DEBUZZER_ATTACK_TIME_BYTE1 0x2316533#define DSM_DEBUZZER_ATTACK_TIME_BYTE2 0x2317534 535#define DSMIG_WB_DRC_RELEASE_TIME_1 0x2380536#define DSMIG_WB_DRC_RELEASE_TIME_2 0x2381537#define DSMIG_WB_DRC_ATTACK_TIME_1 0x2382538#define DSMIG_WB_DRC_ATTACK_TIME_2 0x2383539#define DSMIG_WB_DRC_COMPRESSION_RATIO 0x2384540#define DSMIG_WB_DRC_COMPRESSION_THRESHOLD 0x2385541#define DSMIG_WB_DRC_MAKEUPGAIN 0x2386542#define DSMIG_WB_DRC_NOISE_GATE_THRESHOLD 0x2387543#define DSMIG_WBDRC_HPF_ENABLE 0x2388544#define DSMIG_WB_DRC_TEST_SMOOTHER_OUT_EN 0x2389545#define DSMIG_PPR_THRESHOLD 0x238b546#define DSM_STEREO_BASS_CHANNEL_SELECT 0x238d547#define DSM_TPROT_THRESHOLD_BYTE0 0x238e548#define DSM_TPROT_THRESHOLD_BYTE1 0x238f549#define DSM_TPROT_ROOM_TEMPERATURE_BYTE0 0x2390550#define DSM_TPROT_ROOM_TEMPERATURE_BYTE1 0x2391551#define DSM_TPROT_RECIP_RDC_ROOM_BYTE0 0x2392552#define DSM_TPROT_RECIP_RDC_ROOM_BYTE1 0x2393553#define DSM_TPROT_RECIP_RDC_ROOM_BYTE2 0x2394554#define DSM_TPROT_RECIP_TCONST_BYTE0 0x2395555#define DSM_TPROT_RECIP_TCONST_BYTE1 0x2396556#define DSM_TPROT_RECIP_TCONST_BYTE2 0x2397557#define DSM_THERMAL_ATTENUATION_SETTINGS 0x2398558#define DSM_THERMAL_PILOT_TONE_ATTENUATION 0x2399559#define DSM_TPROT_PG_TEMP_THRESH_BYTE0 0x239a560#define DSM_TPROT_PG_TEMP_THRESH_BYTE1 0x239b561 562#define THERMAL_RDC_RD_BACK_BYTE1 0x239c563#define THERMAL_RDC_RD_BACK_BYTE0 0x239d564#define THERMAL_COILTEMP_RD_BACK_BYTE1 0x239e565#define THERMAL_COILTEMP_RD_BACK_BYTE0 0x239f566 567#define DSMIG_DEBUZZER_THRESHOLD 0x23b5568#define DSMIG_DEBUZZER_ALPHA_COEF_TEST_ONLY 0x23b6569#define DSM_VOL_ENA 0x23b9570#define DSM_VOL_CTRL 0x23ba571 572#define DSMIG_EN 0x23e0573#define MAX98390_R23E1_DSP_GLOBAL_EN 0x23e1574 575#define DSM_THERMAL_GAIN 0x23f0576#define DSM_PPR_GAIN 0x23f1577#define DSM_DBZ_GAIN 0x23f2578#define DSM_WBDRC_GAIN 0x23f3579 580#define MAX98390_R23FF_GLOBAL_EN 0x23FF581#define MAX98390_R24FF_REV_ID 0x24FF582 583/* MAX98390_R2021_PCM_RX_SRC_1 */584#define MAX98390_PCM_RX_CH_SRC_SHIFT (0)585#define MAX98390_PCM_RX_CH_SRC_BASS_SHIFT (4)586 587/* MAX98390_R2022_PCM_TX_SRC_1 */588#define MAX98390_PCM_TX_CH_SRC_A_V_SHIFT (0)589#define MAX98390_PCM_TX_CH_SRC_A_I_SHIFT (4)590 591/* MAX98390_R2024_PCM_DATA_FMT_CFG */592#define MAX98390_PCM_MODE_CFG_FORMAT_MASK (0x7 << 3)593#define MAX98390_PCM_MODE_CFG_FORMAT_SHIFT (3)594#define MAX98390_PCM_TX_CH_INTERLEAVE_MASK (0x1 << 2)595#define MAX98390_PCM_FORMAT_I2S (0x0 << 0)596#define MAX98390_PCM_FORMAT_LJ (0x1 << 0)597#define MAX98390_PCM_FORMAT_TDM_MODE0 (0x3 << 0)598#define MAX98390_PCM_FORMAT_TDM_MODE1 (0x4 << 0)599#define MAX98390_PCM_FORMAT_TDM_MODE2 (0x5 << 0)600#define MAX98390_PCM_MODE_CFG_CHANSZ_MASK (0x3 << 6)601#define MAX98390_PCM_MODE_CFG_CHANSZ_16 (0x1 << 6)602#define MAX98390_PCM_MODE_CFG_CHANSZ_24 (0x2 << 6)603#define MAX98390_PCM_MODE_CFG_CHANSZ_32 (0x3 << 6)604 605/* MAX98390_R2039_AMP_DSP_CFG */606#define MAX98390_AMP_DSP_CFG_RMP_UP_SHIFT (4)607#define MAX98390_AMP_DSP_CFG_RMP_DN_SHIFT (5)608 609/* MAX98390_R203A_AMP_EN */610#define MAX98390_R203A_AMP_EN_SHIFT (0)611 612/* MAX98390_PCM_MASTER_MODE */613#define MAX98390_PCM_MASTER_MODE_MASK (0x3 << 0)614#define MAX98390_PCM_MASTER_MODE_SLAVE (0x0 << 0)615#define MAX98390_PCM_MASTER_MODE_MASTER (0x3 << 0)616 617#define MAX98390_PCM_MASTER_MODE_MCLK_MASK (0xF << 2)618#define MAX98390_PCM_MASTER_MODE_MCLK_RATE_SHIFT (2)619 620/* PCM_CLK_SETUP */621#define MAX98390_PCM_MODE_CFG_PCM_BCLKEDGE (0x1 << 2)622#define MAX98390_PCM_CLK_SETUP_BSEL_MASK (0xF << 0)623 624/* PCM_SR_SETUP */625#define MAX98390_PCM_SR_SET1_SR_MASK (0xF << 0)626#define MAX98390_PCM_SR_SET1_SR_8000 (0x0 << 0)627#define MAX98390_PCM_SR_SET1_SR_11025 (0x1 << 0)628#define MAX98390_PCM_SR_SET1_SR_12000 (0x2 << 0)629#define MAX98390_PCM_SR_SET1_SR_16000 (0x3 << 0)630#define MAX98390_PCM_SR_SET1_SR_22050 (0x4 << 0)631#define MAX98390_PCM_SR_SET1_SR_24000 (0x5 << 0)632#define MAX98390_PCM_SR_SET1_SR_32000 (0x6 << 0)633#define MAX98390_PCM_SR_SET1_SR_44100 (0x7 << 0)634#define MAX98390_PCM_SR_SET1_SR_48000 (0x8 << 0)635 636/* PCM_TO_SPK_MONO_MIX_1 */637#define MAX98390_PCM_TO_SPK_MONOMIX_CFG_MASK (0x3 << 6)638#define MAX98390_PCM_TO_SPK_MONOMIX_CFG_SHIFT (6)639#define MAX98390_PCM_TO_SPK_CH0_SRC_MASK (0xF << 0)640#define MAX98390_PCM_TO_SPK_CH1_SRC_MASK (0xF << 4)641 642/* MAX98390_BOOST_CTRL3 */643#define MAX98390_BOOST_CLK_PHASE_CFG_SHIFT (2)644 645/* SOFT_RESET */646#define MAX98390_SOFT_RESET_MASK (0x1 << 0)647 648#define MAX98390_GLOBAL_EN_MASK (0x1 << 0)649#define MAX98390_AMP_EN_MASK (0x1 << 0)650 651/* DSM register offset */652#define MAX98390_DSM_PAYLOAD_OFFSET 16653#define MAX98390_DSM_PARAM_MAX_SIZE 1024654#define MAX98390_DSM_PARAM_MIN_SIZE 670655 656struct max98390_priv {657	struct regmap *regmap;658	unsigned int sysclk;659	unsigned int provider;660	unsigned int tdm_mode;661	unsigned int v_l_slot;662	unsigned int i_l_slot;663	unsigned int ref_rdc_value;664	unsigned int ambient_temp_value;665	const char *dsm_param_name;666};667#endif668