Re: [V6 PATCH 2/2] ASoC: max98390: Added Amplifier Driver

2020-05-31 Thread Steve Lee
On Fri, May 29, 2020 at 6:35 PM Mark Brown  wrote:
>
> On Fri, May 29, 2020 at 05:04:36PM +0900, Steve Lee wrote:
> > On Thu, May 28, 2020 at 8:54 PM Mark Brown  wrote:
>
> > > > Reported-by: kbuild test robot 
>
> > > Don't think the lkp bot asked for this driver! :P
>
> >   Thanks, I will send split patch for this.
>
> No, just don't add the line when it's a new driver.

 Now I understand, thanks for guide.


Re: [V6 PATCH 2/2] ASoC: max98390: Added Amplifier Driver

2020-05-29 Thread Mark Brown
On Fri, May 29, 2020 at 05:04:36PM +0900, Steve Lee wrote:
> On Thu, May 28, 2020 at 8:54 PM Mark Brown  wrote:

> > > Reported-by: kbuild test robot 

> > Don't think the lkp bot asked for this driver! :P

>   Thanks, I will send split patch for this.

No, just don't add the line when it's a new driver.


signature.asc
Description: PGP signature


Re: [V6 PATCH 2/2] ASoC: max98390: Added Amplifier Driver

2020-05-29 Thread Steve Lee
On Thu, May 28, 2020 at 8:54 PM Mark Brown  wrote:
>
> On Thu, May 28, 2020 at 07:39:42PM +0900, Steve Lee wrote:
> > This is the initial amplifier driver for max98390.
>
> Please do not submit new versions of already applied patches, please
> submit incremental updates to the existing code.  Modifying existing
> commits creates problems for other users building on top of those
> commits so it's best practice to only change pubished git commits if
> absolutely essential.
>

  Thanks for feedback. I will send incremental patches.

> > Reported-by: kbuild test robot 
>
> Don't think the lkp bot asked for this driver! :P

  Thanks, I will send split patch for this.


Re: [V6 PATCH 2/2] ASoC: max98390: Added Amplifier Driver

2020-05-28 Thread Mark Brown
On Thu, May 28, 2020 at 07:39:42PM +0900, Steve Lee wrote:
> This is the initial amplifier driver for max98390.

Please do not submit new versions of already applied patches, please
submit incremental updates to the existing code.  Modifying existing
commits creates problems for other users building on top of those
commits so it's best practice to only change pubished git commits if
absolutely essential.

> Reported-by: kbuild test robot 

Don't think the lkp bot asked for this driver! :P


signature.asc
Description: PGP signature


[V6 PATCH 2/2] ASoC: max98390: Added Amplifier Driver

2020-05-28 Thread Steve Lee
This is the initial amplifier driver for max98390.

Reported-by: kbuild test robot 
Signed-off-by: Steve Lee 
---
Changes since V5:
* Fixed warning message reported by kbuild.
* Finalize default register value.
* Update missed AMP_EN register setting during dsm_init.
* Modified SPDEX header style.
Changes since V4:
* Revert return calibration status in max98390_dsm_calib_get:
There is no need to return calibration status in get function 
because there is mixer control lock protecting mixer control 
access.
And set function of DSM calib finishes calibration 
synchronously.
* Fix sprintf in max98390_dsm_init func:
Use snprintf to avoid any unreasonable value from DMI.
Changes since V3:
* Add operation at max98390_dsm_calib_get:
Add cal_running variable at max98390_priv structure
Add return cal_running at max98390_dsm_calib_get
Update cal_running value during calibration
* Update max98390_dsm_init func
Add dsm_param bin name can select upon vendor and product name.
Changes since V2:
* Removed warn massage in max98390_dsm_calib_get func 
  and add comment.
Changes since V1:
* Updated according to Mark's comments.
* Updated according to Tzung-Bi's comments.
* Removed Enum structure and use TLV data for Volume control

 sound/soc/codecs/Kconfig|5 +
 sound/soc/codecs/Makefile   |2 +
 sound/soc/codecs/max98390.c | 1041 +++
 sound/soc/codecs/max98390.h |  663 ++
 4 files changed, 1711 insertions(+)
 create mode 100644 sound/soc/codecs/max98390.c
 create mode 100644 sound/soc/codecs/max98390.h

diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index e60e0b6a689c..93f88cd9970a 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -116,6 +116,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_MAX98926
imply SND_SOC_MAX98927
imply SND_SOC_MAX98373
+   imply SND_SOC_MAX98390
imply SND_SOC_MAX9850
imply SND_SOC_MAX9860
imply SND_SOC_MAX9759
@@ -867,6 +868,10 @@ config SND_SOC_MAX98373
tristate "Maxim Integrated MAX98373 Speaker Amplifier"
depends on I2C
 
+config SND_SOC_MAX98390
+   tristate "Maxim Integrated MAX98390 Speaker Amplifier"
+   depends on I2C
+
 config SND_SOC_MAX9850
tristate
depends on I2C
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 03533157cda6..e7c17f701529 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -115,6 +115,7 @@ snd-soc-max98925-objs := max98925.o
 snd-soc-max98926-objs := max98926.o
 snd-soc-max98927-objs := max98927.o
 snd-soc-max98373-objs := max98373.o
+snd-soc-max98390-objs := max98390.o
 snd-soc-max9850-objs := max9850.o
 snd-soc-max9860-objs := max9860.o
 snd-soc-mc13783-objs := mc13783.o
@@ -415,6 +416,7 @@ obj-$(CONFIG_SND_SOC_MAX98925)  += snd-soc-max98925.o
 obj-$(CONFIG_SND_SOC_MAX98926) += snd-soc-max98926.o
 obj-$(CONFIG_SND_SOC_MAX98927) += snd-soc-max98927.o
 obj-$(CONFIG_SND_SOC_MAX98373) += snd-soc-max98373.o
+obj-$(CONFIG_SND_SOC_MAX98390) += snd-soc-max98390.o
 obj-$(CONFIG_SND_SOC_MAX9850)  += snd-soc-max9850.o
 obj-$(CONFIG_SND_SOC_MAX9860)  += snd-soc-max9860.o
 obj-$(CONFIG_SND_SOC_MC13783)  += snd-soc-mc13783.o
diff --git a/sound/soc/codecs/max98390.c b/sound/soc/codecs/max98390.c
new file mode 100644
index ..dc02ee151b52
--- /dev/null
+++ b/sound/soc/codecs/max98390.c
@@ -0,0 +1,1041 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+//
+// max98390.c  --  MAX98390 ALSA Soc Audio driver
+//
+// Copyright (C) 2020 Maxim Integrated Products
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include "max98390.h"
+
+static struct reg_default max98390_reg_defaults[] = {
+   {MAX98390_INT_EN1, 0xf0},
+   {MAX98390_INT_EN2, 0x00},
+   {MAX98390_INT_EN3, 0x00},
+   {MAX98390_INT_FLAG_CLR1, 0x00},
+   {MAX98390_INT_FLAG_CLR2, 0x00},
+   {MAX98390_INT_FLAG_CLR3, 0x00},
+   {MAX98390_IRQ_CTRL, 0x01},
+   {MAX98390_CLK_MON, 0x6d},
+   {MAX98390_DAT_MON, 0x03},
+   {MAX98390_WDOG_CTRL, 0x00},
+   {MAX98390_WDOG_RST, 0x00},
+   {MAX98390_MEAS_ADC_THERM_WARN_THRESH, 0x75},
+   {MAX98390_MEAS_ADC_THERM_SHDN_THRESH, 0x8c},
+   {MAX98390_MEAS_ADC_THERM_HYSTERESIS, 0x08},
+   {MAX98390_PIN_CFG, 0x55},
+   {MAX98390_PCM_RX_EN_A, 0x00},
+   {MAX98390_PCM_RX_EN_B, 0x00},
+   {MAX98390_PCM_TX_EN_A, 0x00},
+   {MAX98390_PCM_TX_EN_B, 0x00},
+   {MAX98390_PCM_TX_HIZ_CTRL_A, 0xff},
+   {MAX98390_PCM_TX_HIZ_CTRL_B, 0xff},
+   {MAX98390_PCM_CH_SRC_1, 0x00},
+   {MAX98390_PCM_CH_SRC_2, 0x00},
+   {MAX98390_PCM_