max98390.c (17212e7188783de75d2a1226c32d3fd7af96ad5d) max98390.c (9ba4af79c94b184c1a9b3c637511e6ffcb4fa09d)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * max98390.c -- MAX98390 ALSA Soc Audio driver
4 *
5 * Copyright (C) 2020 Maxim Integrated Products
6 *
7 */
8

--- 828 unchanged lines hidden (view full) ---

837 rdc_integer, rdc_factor, rdc_cal_result, temp);
838
839 regmap_write(max98390->regmap, MAX98390_R23FF_GLOBAL_EN, 0x00);
840 regmap_write(max98390->regmap, MAX98390_R203A_AMP_EN, 0x80);
841
842 return 0;
843}
844
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * max98390.c -- MAX98390 ALSA Soc Audio driver
4 *
5 * Copyright (C) 2020 Maxim Integrated Products
6 *
7 */
8

--- 828 unchanged lines hidden (view full) ---

837 rdc_integer, rdc_factor, rdc_cal_result, temp);
838
839 regmap_write(max98390->regmap, MAX98390_R23FF_GLOBAL_EN, 0x00);
840 regmap_write(max98390->regmap, MAX98390_R203A_AMP_EN, 0x80);
841
842 return 0;
843}
844
845static void max98390_init_regs(struct snd_soc_component *component)
846{
847 struct max98390_priv *max98390 =
848 snd_soc_component_get_drvdata(component);
849
850 regmap_write(max98390->regmap, MAX98390_CLK_MON, 0x6f);
851 regmap_write(max98390->regmap, MAX98390_DAT_MON, 0x00);
852 regmap_write(max98390->regmap, MAX98390_PWR_GATE_CTL, 0x00);
853 regmap_write(max98390->regmap, MAX98390_PCM_RX_EN_A, 0x03);
854 regmap_write(max98390->regmap, MAX98390_ENV_TRACK_VOUT_HEADROOM, 0x0e);
855 regmap_write(max98390->regmap, MAX98390_BOOST_BYPASS1, 0x46);
856 regmap_write(max98390->regmap, MAX98390_FET_SCALING3, 0x03);
857}
858
845static int max98390_probe(struct snd_soc_component *component)
846{
847 struct max98390_priv *max98390 =
848 snd_soc_component_get_drvdata(component);
849
850 regmap_write(max98390->regmap, MAX98390_SOFTWARE_RESET, 0x01);
851 /* Sleep reset settle time */
852 msleep(20);
853 /* Update dsm bin param */
854 max98390_dsm_init(component);
855
859static int max98390_probe(struct snd_soc_component *component)
860{
861 struct max98390_priv *max98390 =
862 snd_soc_component_get_drvdata(component);
863
864 regmap_write(max98390->regmap, MAX98390_SOFTWARE_RESET, 0x01);
865 /* Sleep reset settle time */
866 msleep(20);
867 /* Update dsm bin param */
868 max98390_dsm_init(component);
869
856 /* Amp Setting */
857 regmap_write(max98390->regmap, MAX98390_CLK_MON, 0x6f);
858 regmap_write(max98390->regmap, MAX98390_PCM_RX_EN_A, 0x03);
859 regmap_write(max98390->regmap, MAX98390_PWR_GATE_CTL, 0x2d);
860 regmap_write(max98390->regmap, MAX98390_ENV_TRACK_VOUT_HEADROOM, 0x0e);
861 regmap_write(max98390->regmap, MAX98390_BOOST_BYPASS1, 0x46);
862 regmap_write(max98390->regmap, MAX98390_FET_SCALING3, 0x03);
870 /* Amp init setting */
871 max98390_init_regs(component);
863
864 /* Dsm Setting */
872
873 /* Dsm Setting */
865 regmap_write(max98390->regmap, DSM_VOL_CTRL, 0x94);
866 regmap_write(max98390->regmap, DSMIG_EN, 0x19);
867 regmap_write(max98390->regmap, MAX98390_R203A_AMP_EN, 0x80);
868 if (max98390->ref_rdc_value) {
869 regmap_write(max98390->regmap, DSM_TPROT_RECIP_RDC_ROOM_BYTE0,
870 max98390->ref_rdc_value & 0x000000ff);
871 regmap_write(max98390->regmap, DSM_TPROT_RECIP_RDC_ROOM_BYTE1,
872 (max98390->ref_rdc_value >> 8) & 0x000000ff);
873 regmap_write(max98390->regmap, DSM_TPROT_RECIP_RDC_ROOM_BYTE2,
874 (max98390->ref_rdc_value >> 16) & 0x000000ff);
875 }

--- 181 unchanged lines hidden ---
874 if (max98390->ref_rdc_value) {
875 regmap_write(max98390->regmap, DSM_TPROT_RECIP_RDC_ROOM_BYTE0,
876 max98390->ref_rdc_value & 0x000000ff);
877 regmap_write(max98390->regmap, DSM_TPROT_RECIP_RDC_ROOM_BYTE1,
878 (max98390->ref_rdc_value >> 8) & 0x000000ff);
879 regmap_write(max98390->regmap, DSM_TPROT_RECIP_RDC_ROOM_BYTE2,
880 (max98390->ref_rdc_value >> 16) & 0x000000ff);
881 }

--- 181 unchanged lines hidden ---