Skip to contentSkip to conversation

ASoC: dt-bindings: max98396: add amplifier driver

PATCH Superseded Ryan Lee 4 participants 6 messages Apr 16, 2022 – Apr 21, 2022

Subsystems (4)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore

Ryan Lee

author
#0 lore raw

PATCH 1/2 ASoC: dt-bindings: max98396: add amplifier driver

From: Ryan Lee <[email protected]>

This patch adds dt-bindings information for Analog Devices MAX98396 and MAX98397 Smart Amplifier.

---
 .../bindings/sound/adi,max98396.yaml          | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/adi,max98396.yaml
Documentation/devicetree/bindings/sound/adi,max98396.yaml new file +84 -0
new file mode 100644
index 000000000000..4aee32f43ad1
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/adi,max98396.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices MAX98396 Speaker Amplifier Device Tree Bindings
+
+maintainers:
+  - Ryan Lee <[email protected]>
+
+description:
+  The MAX98396 is a mono Class-DG speaker amplifier with I/V sense.
+  The device provides a PCM interface for audio data and a standard
+  I2C interface for control data communication.
+  The MAX98397 is a variant of MAX98396 with wide input supply range.
+
+properties:
+  compatible:
+    enum:
+      - adi,max98396
+      - adi,max98397
+  reg:
+    maxItems: 1
+    description: I2C address of the device.
+
+  adi,vmon-slot-no:
+    description: slot number of the voltage sense monitor
+    minimum: 0
+    maximum: 15
+    default: 0
+
+  adi,imon-slot-no:
+    description: slot number of the current sense monitor
+    minimum: 0
+    maximum: 15
+    default: 0
+
+  adi,spkfb-slot-no:
+    description: slot number of speaker DSP monitor
+    minimum: 0
+    maximum: 15
+    default: 0
+
+  adi,interleave-mode:
+    type: boolean
+    description: For cases where a single combined channel for the I/V sense data is not sufficient,
+                the device can also be configured to share a single data output channel on alternating frames.
+                In this configuration, the current and voltage data will be frame interleaved on a single output channel.
+    default: false
+
+  reset-gpios:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        max98396: amplifier@39 {
+            compatible = "adi,max98396";
+            reg = <0x39>;
+            adi,vmon-slot-no = <0>;
+            adi,imon-slot-no = <1>;
+            adi,interleave-mode = <0>;
+            reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+        };
+        max98397: amplifier@3c {
+            compatible = "adi,max98397";
+            reg = <0x3c>;
+            adi,vmon-slot-no = <0>;
+            adi,imon-slot-no = <1>;
+            adi,interleave-mode = <0>;
+            reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+        };
+    };
+
Signature · 1 line
2.25.1
author
#1 lore raw

PATCH 2/2 ASoC: max98396: add amplifier driver

This series of patches adds support for Analog Devices MAX98396 mono amplifier with IV sense. The device provides a PCM interface for audio data and a standard I2C interface for control data communication. This driver also supports MAX98397 which is a variant of MAX98396 with wide input supply range.

---
 sound/soc/codecs/Kconfig    |   10 +
 sound/soc/codecs/Makefile   |    2 +
 sound/soc/codecs/max98396.c | 1623 +++++++++++++++++++++++++++++++++++
 sound/soc/codecs/max98396.h |  303 +++++++
 4 files changed, 1938 insertions(+)
 create mode 100644 sound/soc/codecs/max98396.c
 create mode 100644 sound/soc/codecs/max98396.h
sound/soc/codecs/Kconfig +10 -0
index f46a22660103..7881e6120dea 100644
@@ -127,6 +127,7 @@ config SND_SOC_ALL_CODECS
 	imply SND_SOC_MAX98373_I2C
 	imply SND_SOC_MAX98373_SDW
 	imply SND_SOC_MAX98390
+	imply SND_SOC_MAX98396
 	imply SND_SOC_MAX9850
 	imply SND_SOC_MAX9860
 	imply SND_SOC_MAX9759
@@ -1015,6 +1016,15 @@ config SND_SOC_MAX98390
 	tristate "Maxim Integrated MAX98390 Speaker Amplifier"
 	depends on I2C
 
+config SND_SOC_MAX98396
+	tristate "Analog Devices MAX98396 Speaker Amplifier"
+	depends on I2C
+	help
+	  Enable support for Analog Devices MAX98396 audio
+	  amplifier. The device provides a PCM interface for
+	  audio data and a standard I2C interface for control
+	  data communication.
+
 config SND_SOC_MAX9850
 	tristate
 	depends on I2C
sound/soc/codecs/Makefile +2 -0
index 8637e9e869e3..8bfe32cbcb06 100644
@@ -135,6 +135,7 @@ snd-soc-max98373-objs := max98373.o
 snd-soc-max98373-i2c-objs := max98373-i2c.o
 snd-soc-max98373-sdw-objs := max98373-sdw.o
 snd-soc-max98390-objs := max98390.o
+snd-soc-max98396-objs := max98396.o
 snd-soc-max9850-objs := max9850.o
 snd-soc-max9860-objs := max9860.o
 snd-soc-mc13783-objs := mc13783.o
@@ -474,6 +475,7 @@ obj-$(CONFIG_SND_SOC_MAX98373)	+= snd-soc-max98373.o
 obj-$(CONFIG_SND_SOC_MAX98373_I2C)   += snd-soc-max98373-i2c.o
 obj-$(CONFIG_SND_SOC_MAX98373_SDW)   += snd-soc-max98373-sdw.o
 obj-$(CONFIG_SND_SOC_MAX98390)	+= snd-soc-max98390.o
+obj-$(CONFIG_SND_SOC_MAX98396)	+= snd-soc-max98396.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
sound/soc/codecs/max98396.c new file +1623 -0

1,623 lines not on this page · raw message

sound/soc/codecs/max98396.h new file +303 -0

303 lines not on this page · raw message

Signature · 1 line
2.25.1
maintainer
#2 lore raw

Re: [PATCH 2/2] ASoC: max98396: add amplifier driver

On Fri, Apr 15, 2022 at 05:40:24PM -0700, Ryan Lee wrote:

This looks mostly good - some issues below but nothing structural.

sound/soc/codecs/max98396.c line 355

Quoted 4 lines
sound/soc/codecs/max98396.c new file +4 -0
+	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
+	case SND_SOC_DAIFMT_NB_NF:
+	case SND_SOC_DAIFMT_NB_IF:
+		break;

One of these must be wrong - the device needs to know if it's handling a normal or inverted frame clock, otherwise the audio will be corrupted.

Quoted 18 lines
sound/soc/codecs/max98396.c new file +18 -0
+static int max98396_mux_put(struct snd_kcontrol *kcontrol,
+			    struct snd_ctl_elem_value *ucontrol)
+{
+	struct snd_soc_component *component =
+		snd_soc_dapm_kcontrol_component(kcontrol);
+	struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kcontrol);
+	struct max98396_priv *max98396 = snd_soc_component_get_drvdata(component);
+	struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
+	unsigned int *item = ucontrol->value.enumerated.item;
+	int reg, val;
+
+	if (item[0] >= e->items)
+		return -EINVAL;
+
+	val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l;
+
+	if (max98396->device_id == CODEC_TYPE_MAX98396)
+		reg = MAX98396_R2055_PCM_RX_SRC1;

sound/soc/codecs/max98396.c line 926

Quoted 10 lines
sound/soc/codecs/max98396.c new file +10 -0
+	else
+		reg = MAX98397_R2056_PCM_RX_SRC1;
+
+	regmap_update_bits(max98396->regmap, reg,
+			   MAX98396_PCM_RX_MASK, val);
+
+	snd_soc_dapm_mux_update_power(dapm, kcontrol, item[0], e, NULL);
+
+	return 0;
+}

This should return 1 if the value changed - you should get an error reported by mixer-test from selftests if you run them on a sound card with the driver.

sound/soc/codecs/max98396.c line 1316

Quoted 12 lines
sound/soc/codecs/max98396.c new file +12 -0
+	/* L/R mix configuration */
+	if (max98396->device_id == CODEC_TYPE_MAX98396) {
+		regmap_write(max98396->regmap,
+			     MAX98396_R2055_PCM_RX_SRC1, 0x02);
+		regmap_write(max98396->regmap,
+			     MAX98396_R2056_PCM_RX_SRC2, 0x10);
+	} else {
+		regmap_write(max98396->regmap,
+			     MAX98397_R2056_PCM_RX_SRC1, 0x02);
+		regmap_write(max98396->regmap,
+			     MAX98397_R2057_PCM_RX_SRC2, 0x10);
+	}

Shouldn't these be user controllable? Most of the setup being done here looks system specific, especially the routing stuff.

#3 lore raw

RE: [PATCH 2/2] ASoC: max98396: add amplifier driver

Quoted 21 lines

-----Original Message-----
From: Mark Brown <[email protected]>
Sent: Wednesday, April 20, 2022 9:18 AM
To: Ryan Lee <[email protected]>
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; Lee, RyanS <[email protected]>
Subject: Re: [PATCH 2/2] ASoC: max98396: add amplifier driver

[External]

On Fri, Apr 15, 2022 at 05:40:24PM -0700, Ryan Lee wrote:

This looks mostly good - some issues below but nothing structural.

Quoted 8 lines

sound/soc/codecs/max98396.c line 355

Quoted 4 lines
sound/soc/codecs/max98396.c new file +4 -0
+	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
+	case SND_SOC_DAIFMT_NB_NF:
+	case SND_SOC_DAIFMT_NB_IF:
+		break;

One of these must be wrong - the device needs to know if it's handling a normal or inverted frame clock, otherwise the audio will be corrupted.

Thanks for pointing this out.
BCLK and FSYNC clock polarity configuration was inappropriate. I shall fix this.

Quoted 29 lines

sound/soc/codecs/max98396.c

Quoted 6 lines
sound/soc/codecs/max98396.c new file +5 -0
+static int max98396_mux_put(struct snd_kcontrol *kcontrol,
+			    struct snd_ctl_elem_value *ucontrol) {
+	struct snd_soc_component *component =
+		snd_soc_dapm_kcontrol_component(kcontrol);
+	struct snd_soc_dapm_context *dapm =

snd_soc_dapm_kcontrol_dapm(kcontrol);

Review

Quoted 1 line
(quoted diff) +1 -0
+	struct max98396_priv *max98396 =

snd_soc_component_get_drvdata(component);

Quoted 9 lines
(quoted diff) +1 -0
+	struct soc_enum *e = (struct soc_enum *)kcontrol-

private_value;

sound/soc/codecs/max98396.c new file +7 -0
+	unsigned int *item = ucontrol->value.enumerated.item;
+	int reg, val;
+
+	if (item[0] >= e->items)
+		return -EINVAL;
+
+	val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l;

sound/soc/codecs/max98396.c

Quoted 10 lines
sound/soc/codecs/max98396.c new file +10 -0
+
+	if (max98396->device_id == CODEC_TYPE_MAX98396)
+		reg = MAX98396_R2055_PCM_RX_SRC1;
+	else
+		reg = MAX98397_R2056_PCM_RX_SRC1;
+
+	regmap_update_bits(max98396->regmap, reg,
+			   MAX98396_PCM_RX_MASK, val);
+
+	snd_soc_dapm_mux_update_power(dapm, kcontrol, item[0],

e, NULL);

Quoted 7 lines

sound/soc/codecs/max98396.c line 411

Quoted 3 lines
sound/soc/codecs/max98396.c new file +3 -0
+
+	return 0;
+}

This should return 1 if the value changed - you should get an error reported by mixer-test from selftests if you run them on a sound card with the driver.

Thanks. Shall fix this on the v2.

Quoted 16 lines

sound/soc/codecs/max98396.c line 1316

Quoted 13 lines
sound/soc/codecs/max98396.c new file +12 -0
+	/* L/R mix configuration */
+	if (max98396->device_id == CODEC_TYPE_MAX98396) {
+		regmap_write(max98396->regmap,
+			     MAX98396_R2055_PCM_RX_SRC1, 0x02);
+		regmap_write(max98396->regmap,
+			     MAX98396_R2056_PCM_RX_SRC2, 0x10);
+	} else {
+		regmap_write(max98396->regmap,
+			     MAX98397_R2056_PCM_RX_SRC1, 0x02);
+		regmap_write(max98396->regmap,
+			     MAX98397_R2057_PCM_RX_SRC2, 0x10);
+	}

Shouldn't these be user controllable? Most of the setup being done here looks system specific, especially the routing stuff.

MAX98396 is a mono amplifer and 'DAI MUX Sel' mixer control is provided for audio mono mix. The chip default configuration take the left channel only, so I wanted to set (L+R)/2 as default. The user still can change this value. 0x2057 is an extra register for the left and the right channel selection. The user do not need to control this register because 'DAI MUX Sel' already supports same function. Thank you.

maintainer
#4 lore raw
In reply to Ryan Lee
Quoted 11 lines · Ryan Lee

From: Ryan Lee <[email protected]>

This patch adds dt-bindings information for Analog Devices MAX98396 and MAX98397 Smart Amplifier.

---
 .../bindings/sound/adi,max98396.yaml          | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/adi,max98396.yaml

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:
./Documentation/devicetree/bindings/sound/adi,max98396.yaml:49:111: [warning] line too long (121 > 110 characters) (line-length)

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,spkfb-slot-no: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type: boolean"
Additional properties are not allowed ('maximum', 'default', 'minimum' were unexpected)
hint: A vendor boolean property can use "type: boolean"
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,spkfb-slot-no: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an implicit type
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,spkfb-slot-no: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,interleave-mode: 'oneOf' conditional failed, one must be fixed:
Additional properties are not allowed ('default' was unexpected)
hint: A vendor boolean property can use "type: boolean"
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,interleave-mode: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an implicit type
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
Additional properties are not allowed ('type', 'default' were unexpected)
hint: A vendor string property with exact values has an implicit type
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,interleave-mode: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,vmon-slot-no: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type: boolean"
Additional properties are not allowed ('maximum', 'default', 'minimum' were unexpected)
hint: A vendor boolean property can use "type: boolean"
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,vmon-slot-no: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an implicit type
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,vmon-slot-no: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,imon-slot-no: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type: boolean"
Additional properties are not allowed ('maximum', 'default', 'minimum' were unexpected)
hint: A vendor boolean property can use "type: boolean"
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,imon-slot-no: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an implicit type
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: properties:adi,imon-slot-no: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/adi,max98396.yaml: ignoring, error in schema: properties: adi,spkfb-slot-no Documentation/devicetree/bindings/sound/adi,max98396.example.dtb:0:0: /example-0/i2c/amplifier@39: failed to match any schema with compatible: ['adi,max98396'] Documentation/devicetree/bindings/sound/adi,max98396.example.dtb:0:0: /example-0/i2c/amplifier@3c: failed to match any schema with compatible: ['adi,max98397']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/

This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:

pip3 install dtschema --upgrade

Please check and re-submit.

#5 lore raw
Quoted 30 lines

-----Original Message-----
From: Rob Herring <[email protected]>
Sent: Saturday, April 16, 2022 3:18 PM
To: Ryan Lee <[email protected]>
Cc: [email protected]; [email protected]; linux- [email protected]; [email protected]; [email protected]; [email protected]; pierre- [email protected]; [email protected]; alsa- [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; Lee, RyanS <[email protected]>; [email protected]
Subject: Re: [PATCH 1/2] ASoC: dt-bindings: max98396: add amplifier driver

[External]

Quoted 3 lines · Ryan Lee

From: Ryan Lee <[email protected]>

This patch adds dt-bindings information for Analog Devices

MAX98396

Quoted 5 lines

and MAX98397 Smart Amplifier.

---
 .../bindings/sound/adi,max98396.yaml          | 84

+++++++++++++++++++

Quoted 9 lines
Quoted 4 lines
 1 file changed, 84 insertions(+)
 create mode 100644

Documentation/devicetree/bindings/sound/adi,max98396.yaml

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

I appreciate your feedback. I was able to check the same issues on my side. I shall fix the problem and submit the updated patch.

Quoted 205 lines

yamllint warnings/errors:
./Documentation/devicetree/bindings/sound/adi,max98396.yaml:49:1 11: [warning] line too long (121 > 110 characters) (line-length)

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt- review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,spkfb-slot-no: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type:
boolean"
Additional properties are not allowed ('maximum', 'default',
'minimum' were unexpected)
hint: A vendor boolean property can use "type:
boolean"
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,spkfb-slot-no: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an
implicit type
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,spkfb-slot-no: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
hint: Vendor specific properties must have a type and
description unless they have a defined, common suffix.
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$ /builds/robherring/linux-dt- review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,interleave-mode: 'oneOf' conditional failed, one must be fixed:
Additional properties are not allowed ('default' was
unexpected)
hint: A vendor boolean property can use "type:
boolean"
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,interleave-mode: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an
implicit type
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
Additional properties are not allowed ('type', 'default' were
unexpected)
hint: A vendor string property with exact values has an
implicit type
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,interleave-mode: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
hint: Vendor specific properties must have a type and
description unless they have a defined, common suffix.
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$ /builds/robherring/linux-dt- review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,vmon-slot-no: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type:
boolean"
Additional properties are not allowed ('maximum', 'default',
'minimum' were unexpected)
hint: A vendor boolean property can use "type:
boolean"
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,vmon-slot-no: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an
implicit type
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,vmon-slot-no: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
hint: Vendor specific properties must have a type and
description unless they have a defined, common suffix.
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$ /builds/robherring/linux-dt- review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,imon-slot-no: 'oneOf' conditional failed, one must be fixed:
'type' is a required property
hint: A vendor boolean property can use "type:
boolean"
Additional properties are not allowed ('maximum', 'default',
'minimum' were unexpected)
hint: A vendor boolean property can use "type:
boolean"
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,imon-slot-no: 'oneOf' conditional failed, one must be fixed:
'enum' is a required property
'const' is a required property
hint: A vendor string property with exact values has an
implicit type
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
/builds/robherring/linux-dt-
review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: properties:adi,imon-slot-no: 'oneOf' conditional failed, one must be fixed:
'$ref' is a required property
'allOf' is a required property
hint: A vendor property needs a $ref to types.yaml from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$
hint: Vendor specific properties must have a type and
description unless they have a defined, common suffix.
from schema $id:
https://urldefense.com/v3/__http://devicetree.org/meta-
schemas/vendor- props.yaml*__;Iw!!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGa Nyp2EOec4EnuAYY4aQ25BDE2H4waOpyi0_juZ-wiHiNs8$ /builds/robherring/linux-dt- review/Documentation/devicetree/bindings/sound/adi,max98396.ya
ml: ignoring, error in schema: properties: adi,spkfb-slot-no Documentation/devicetree/bindings/sound/adi,max98396.example.dt b:0:0: /example-0/i2c/amplifier@39: failed to match any schema with
compatible: ['adi,max98396'] Documentation/devicetree/bindings/sound/adi,max98396.example.dt b:0:0: /example-0/i2c/amplifier@3c: failed to match any schema with
compatible: ['adi,max98397']

doc reference errors (make refcheckdocs):

See
https://urldefense.com/v3/__https://patchwork.ozlabs.org/patch/__;!
!A3Ni8CS0y2Y!6AbqO57BdHk8HsfdSgsIJ96PVLttFGaNyp2EOec4EnuAYY 4aQ25BDE2H4waOpyi0_juZ-xmX_4-e$

This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:

pip3 install dtschema --upgrade

Please check and re-submit.