Skip to contentSkip to conversation

ASoC: Add support for DA7217 and DA7218 audio codecs

PATCH Superseded Adam Thomson 4 participants 7 messages Nov 19, 2015 – Nov 23, 2015

Subsystems (4)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v3 cover ASoC: Add support for DA7217 and DA7218 audio codecs

This patch set adds DT and ASoC codec driver support for DA7217 and DA7218.

Changes are based against v4.4-rc1 kernel version.

Changes in v3:
- At request of Rob Herring, added units suffix to applicable binding names.
- Add changes for codec Kconfig and Makefile which were somehow missed from previous patches.

Changes in v2:
- Removed Internal LDO voltage selection from DT
- BiQuad filter coefficients removed from DT, no programmed using mixer controls.
- ALC calibration no longer bypasses regmap cache and instead saves & restores registers around procedure, to avoid issues with concurrent regmap access.
- Removed all unnecessary default settings for mixers in probe.
- Reporting of mic level detection event to user-space, through input VOICECOMMAND key event, removed as not intended for this purpose. Alternative solution required as follow up. Event masked off until solution in place.
- Additional error checking & loggin around mclk usage, in sysclk and bias_level functions.

Adam Thomson (2):
ASoC: da7218: Add bindings documentation for DA7218 audio codec
ASoC: codecs: Add da7218 codec driver

 Documentation/devicetree/bindings/sound/da7218.txt |  104 +
 include/sound/da7218.h                             |  109 +
 sound/soc/codecs/Kconfig                           |    4 +
 sound/soc/codecs/Makefile                          |    2 +
 sound/soc/codecs/da7218.c                          | 3305 ++++++++++++++++++++
 sound/soc/codecs/da7218.h                          | 1414 +++++++++
 6 files changed, 4938 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/da7218.txt
 create mode 100644 include/sound/da7218.h
 create mode 100644 sound/soc/codecs/da7218.c
 create mode 100644 sound/soc/codecs/da7218.h

--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#1 lore raw

PATCH v3 1/2 ASoC: da7218: Add bindings documentation for DA7218 audio codec

---
 Documentation/devicetree/bindings/sound/da7218.txt | 104 +++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/da7218.txt
Documentation/devicetree/bindings/sound/da7218.txt new file +104 -0
new file mode 100644
index 0000000..18f8f09
@@ -0,0 +1,104 @@
+Dialog Semiconductor DA7218 Audio Codec bindings
+
+DA7218 is an audio codec with HP detect feature.
+
+======
+
+Required properties:
+- compatible : Should be "dlg,da7217" or "dlg,da7218"
+- reg: Specifies the I2C slave address
+
+- VDD-supply: VDD power supply for the device
+- VDDMIC-supply: VDDMIC power supply for the device
+- VDDIO-supply: VDDIO power supply for the device
+  (See Documentation/devicetree/bindings/regulator/regulator.txt for further
+   information relating to regulators)
+
+Optional properties:
+- interrupt-parent: Specifies the phandle of the interrupt controller to which
+  the IRQs from DA7218 are delivered to.
+- interrupts: IRQ line info for DA7218 chip.
+  (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
+   further information relating to interrupt properties)
+- interrupt-names : Name associated with interrupt line. Should be "wakeup" if
+  interrupt is to be used to wake system, otherwise "irq" should be used.
+- wakeup-source: Flag to indicate this device can wake system (suspend/resume).
+
+- clocks : phandle and clock specifier for codec MCLK.
+- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
+
+- dlg,micbias1-lvl-millivolt : Voltage (mV) for Mic Bias 1
+	[<1200>, <1600>, <1800>, <2000>, <2200>, <2400>, <2600>, <2800>, <3000>]
+- dlg,micbias2-lvl-millivolt : Voltage (mV) for Mic Bias 2
+	[<1200>, <1600>, <1800>, <2000>, <2200>, <2400>, <2600>, <2800>, <3000>]
+- dlg,mic1-amp-in-sel : Mic1 input source type
+	["diff", "se_p", "se_n"]
+- dlg,mic2-amp-in-sel : Mic2 input source type
+	["diff", "se_p", "se_n"]
+- dlg,dmic1-data-sel : DMIC1 channel select based on clock edge.
+	["lrise_rfall", "lfall_rrise"]
+- dlg,dmic1-samplephase : When to sample audio from DMIC1.
+	["on_clkedge", "between_clkedge"]
+- dlg,dmic1-clkrate-hertz : DMic1 clock frequency (Hz).
+	[<1500000>, <3000000>]
+- dlg,dmic2-data-sel : DMic2 channel select based on clock edge.
+	["lrise_rfall", "lfall_rrise"]
+- dlg,dmic2-samplephase : When to sample audio from DMic2.
+	["on_clkedge", "between_clkedge"]
+- dlg,dmic2-clkrate-hertz : DMic2 clock frequency (Hz).
+	[<1500000>, <3000000>]
+- dlg,hp-diff-single-supply : Boolean flag, use single supply for HP
+			      (DA7217 only)
+
+======
+
+Optional Child node - 'da7218_hpldet' (DA7218 only):
+
+Optional properties:
+- dlg,jack-rate-microsecond : Time between jack detect measurements (us)
+	[<5>, <10>, <20>, <40>, <80>, <160>, <320>, <640>]
+- dlg,jack-debounce : Number of debounce measurements taken for jack detect
+	[<0>, <2>, <3>, <4>]
+- dlg,jack-threshold-percent : Threshold level for jack detection (% of VDD)
+	[<84>, <88>, <92>, <96>]
+- dlg,comp-inv : Boolean flag, invert comparator output
+- dlg,hyst : Boolean flag, enable hysteresis
+- dlg,discharge : Boolean flag, auto discharge of Mic Bias on jack removal
+
+======
+
+Example:
+
+	codec: da7218@1a {
+		compatible = "dlg,da7218";
+		reg = <0x1a>;
+		interrupt-parent = <&gpio6>;
+		interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+		wakeup-source;
+
+		VDD-supply = <&reg_audio>;
+		VDDMIC-supply = <&reg_audio>;
+		VDDIO-supply = <&reg_audio>;
+
+		clocks = <&clks 201>;
+		clock-names = "mclk";
+
+		dlg,micbias1-lvl-millivolt = <2600>;
+		dlg,micbias2-lvl-millivolt = <2600>;
+		dlg,mic1-amp-in-sel = "diff";
+		dlg,mic2-amp-in-sel = "diff";
+
+		dlg,dmic1-data-sel = "lrise_rfall";
+		dlg,dmic1-samplephase = "on_clkedge";
+		dlg,dmic1-clkrate-hertz = <3000000>;
+		dlg,dmic2-data-sel = "lrise_rfall";
+		dlg,dmic2-samplephase = "on_clkedge";
+		dlg,dmic2-clkrate-hertz = <3000000>;
+
+		da7218_hpldet {
+			dlg,jack-rate-microsecond = <40>;
+			dlg,jack-debounce = <2>;
+			dlg,jack-threshold-percent = <84>;
+			dlg,hyst;
+		};
+	};

--
1.9.3

maintainer
#2 lore raw

Re: [PATCH v3 1/2] ASoC: da7218: Add bindings documentation for DA7218 audio codec

Quoted 15 lines · Adam Thomson
---
 Documentation/devicetree/bindings/sound/da7218.txt | 104 +++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/da7218.txt
Documentation/devicetree/bindings/sound/da7218.txt new file +3 -0
new file mode 100644
index 0000000..18f8f09
@@ -0,0 +1,104 @@
+Dialog Semiconductor DA7218 Audio Codec bindings
+
+DA7218 is an audio codec with HP detect feature.

Documentation/devicetree/bindings/sound/da7218.txt line 13

Quoted 10 lines
Documentation/devicetree/bindings/sound/da7218.txt new file +10 -0
+
+======
+
+Required properties:
+- compatible : Should be "dlg,da7217" or "dlg,da7218"
+- reg: Specifies the I2C slave address
+
+- VDD-supply: VDD power supply for the device
+- VDDMIC-supply: VDDMIC power supply for the device
+- VDDIO-supply: VDDIO power supply for the device

These should be lower case (that is documented in ePAPR BTW :)).

Quoted 19 lines
Documentation/devicetree/bindings/sound/da7218.txt new file +19 -0
+  (See Documentation/devicetree/bindings/regulator/regulator.txt for further
+   information relating to regulators)
+
+Optional properties:
+- interrupt-parent: Specifies the phandle of the interrupt controller to which
+  the IRQs from DA7218 are delivered to.
+- interrupts: IRQ line info for DA7218 chip.
+  (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
+   further information relating to interrupt properties)
+- interrupt-names : Name associated with interrupt line. Should be "wakeup" if
+  interrupt is to be used to wake system, otherwise "irq" should be used.
+- wakeup-source: Flag to indicate this device can wake system (suspend/resume).
+
+- clocks : phandle and clock specifier for codec MCLK.
+- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
+
+- dlg,micbias1-lvl-millivolt : Voltage (mV) for Mic Bias 1
+	[<1200>, <1600>, <1800>, <2000>, <2200>, <2400>, <2600>, <2800>, <3000>]
+- dlg,micbias2-lvl-millivolt : Voltage (mV) for Mic Bias 2

Documentation/devicetree/bindings/sound/da7218.txt line 42

Quoted 10 lines
Documentation/devicetree/bindings/sound/da7218.txt new file +10 -0
+	[<1200>, <1600>, <1800>, <2000>, <2200>, <2400>, <2600>, <2800>, <3000>]
+- dlg,mic1-amp-in-sel : Mic1 input source type
+	["diff", "se_p", "se_n"]
+- dlg,mic2-amp-in-sel : Mic2 input source type
+	["diff", "se_p", "se_n"]
+- dlg,dmic1-data-sel : DMIC1 channel select based on clock edge.
+	["lrise_rfall", "lfall_rrise"]
+- dlg,dmic1-samplephase : When to sample audio from DMIC1.
+	["on_clkedge", "between_clkedge"]
+- dlg,dmic1-clkrate-hertz : DMic1 clock frequency (Hz).

-hz

Documenting the unit suffixes is on my todo list...

Documentation/devicetree/bindings/sound/da7218.txt line 48

Quoted 6 lines
Documentation/devicetree/bindings/sound/da7218.txt new file +6 -0
+	[<1500000>, <3000000>]
+- dlg,dmic2-data-sel : DMic2 channel select based on clock edge.
+	["lrise_rfall", "lfall_rrise"]
+- dlg,dmic2-samplephase : When to sample audio from DMic2.
+	["on_clkedge", "between_clkedge"]
+- dlg,dmic2-clkrate-hertz : DMic2 clock frequency (Hz).

-hz

Documentation/devicetree/bindings/sound/da7218.txt line 58

Quoted 10 lines
Documentation/devicetree/bindings/sound/da7218.txt new file +10 -0
+	[<1500000>, <3000000>]
+- dlg,hp-diff-single-supply : Boolean flag, use single supply for HP
+			      (DA7217 only)
+
+======
+
+Optional Child node - 'da7218_hpldet' (DA7218 only):
+
+Optional properties:
+- dlg,jack-rate-microsecond : Time between jack detect measurements (us)

-us

Completely consistent, isn't it. Why we did -microvolt I don't know.

Rob

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

maintainer
#3 lore raw

Re: [PATCH v3 1/2] ASoC: da7218: Add bindings documentation for DA7218 audio codec

Quoted 7 lines · Rob Herring
Quoted 3 lines · Adam Thomson
+- VDD-supply: VDD power supply for the device
+- VDDMIC-supply: VDDMIC power supply for the device
+- VDDIO-supply: VDDIO power supply for the device

These should be lower case (that is documented in ePAPR BTW :)).

Does that actually make a meaningful difference to anything? Things end up this way because the strings we use to request the supplies end up in the property names, we've also got a few other things like representing microvolts as uV which just look very wrong when written all lowercase. We could work around it for the supply names by force lowercasing the name if we don't find the property with the passed name (to avoid breaking existing users) though.

There's a bunch of stuff in ePAPR that we're ignoring, and a bunch of other stuff that has no real value like the class naming stuff.

#4 lore raw

RE: [PATCH v3 1/2] ASoC: da7218: Add bindings documentation for DA7218 audio codec

In reply to Rob Herring

T24gTm92ZW1iZXIgMjAsIDIwMTUgMTU6NTQsIFJvYiBIZXJyaW5nIHdyb3RlOg0KDQo+ID4gKy0g ZGxnLG1pY2JpYXMxLWx2bC1taWxsaXZvbHQgOiBWb2x0YWdlIChtVikgZm9yIE1pYyBCaWFzIDEN Cj4gPiArCVs8MTIwMD4sIDwxNjAwPiwgPDE4MDA+LCA8MjAwMD4sIDwyMjAwPiwgPDI0MDA+LCA8 MjYwMD4sIDwyODAwPiwNCj4gPDMwMDA+XQ0KPiA+ICstIGRsZyxtaWNiaWFzMi1sdmwtbWlsbGl2 b2x0IDogVm9sdGFnZSAobVYpIGZvciBNaWMgQmlhcyAyDQo+ID4gKwlbPDEyMDA+LCA8MTYwMD4s IDwxODAwPiwgPDIwMDA+LCA8MjIwMD4sIDwyNDAwPiwgPDI2MDA+LCA8MjgwMD4sDQo+IDwzMDAw Pl0NCj4gPiArLSBkbGcsbWljMS1hbXAtaW4tc2VsIDogTWljMSBpbnB1dCBzb3VyY2UgdHlwZQ0K PiA+ICsJWyJkaWZmIiwgInNlX3AiLCAic2VfbiJdDQo+ID4gKy0gZGxnLG1pYzItYW1wLWluLXNl bCA6IE1pYzIgaW5wdXQgc291cmNlIHR5cGUNCj4gPiArCVsiZGlmZiIsICJzZV9wIiwgInNlX24i XQ0KPiA+ICstIGRsZyxkbWljMS1kYXRhLXNlbCA6IERNSUMxIGNoYW5uZWwgc2VsZWN0IGJhc2Vk IG9uIGNsb2NrIGVkZ2UuDQo+ID4gKwlbImxyaXNlX3JmYWxsIiwgImxmYWxsX3JyaXNlIl0NCj4g PiArLSBkbGcsZG1pYzEtc2FtcGxlcGhhc2UgOiBXaGVuIHRvIHNhbXBsZSBhdWRpbyBmcm9tIERN SUMxLg0KPiA+ICsJWyJvbl9jbGtlZGdlIiwgImJldHdlZW5fY2xrZWRnZSJdDQo+ID4gKy0gZGxn LGRtaWMxLWNsa3JhdGUtaGVydHogOiBETWljMSBjbG9jayBmcmVxdWVuY3kgKEh6KS4NCj4gDQo+ IC1oeg0KPiANCj4gRG9jdW1lbnRpbmcgdGhlIHVuaXQgc3VmZml4ZXMgaXMgb24gbXkgdG9kbyBs aXN0Li4uDQoNClNvIGlzIHRoZSBnZW5lcmFsIHJ1bGUgdG8gdXNlIGFiYnJldmlhdGVkIHN1ZmZp eGVzLCBhcGFydCBmcm9tIG1pbGxpdm9sdHMsDQptaWNyb3ZvbHRzLCBldGMsIG9yIGFyZSB0aGVy ZSBzb21lIG90aGVyIHJ1bGVzIHRoYXQgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEkNCmRvbid0IHdh bnQgdG8gaGF2ZSB0byBrZWVwIHJlLXN1Ym1pdHRpbmcgcGF0Y2hlcyBpbiB0aGUgZnV0dXJlIGJl Y2F1c2UgSSdtIG5vdA0KZm9sbG93aW5nIGEgcnVsZSBJIGhhdmUgbm8gd2F5IG9mIGtub3dpbmcg YWJvdXQ/DQoNCj4gPiArCVs8MTUwMDAwMD4sIDwzMDAwMDAwPl0NCj4gPiArLSBkbGcsZG1pYzIt ZGF0YS1zZWwgOiBETWljMiBjaGFubmVsIHNlbGVjdCBiYXNlZCBvbiBjbG9jayBlZGdlLg0KPiA+ ICsJWyJscmlzZV9yZmFsbCIsICJsZmFsbF9ycmlzZSJdDQo+ID4gKy0gZGxnLGRtaWMyLXNhbXBs ZXBoYXNlIDogV2hlbiB0byBzYW1wbGUgYXVkaW8gZnJvbSBETWljMi4NCj4gPiArCVsib25fY2xr ZWRnZSIsICJiZXR3ZWVuX2Nsa2VkZ2UiXQ0KPiA+ICstIGRsZyxkbWljMi1jbGtyYXRlLWhlcnR6 IDogRE1pYzIgY2xvY2sgZnJlcXVlbmN5IChIeikuDQo+IA0KPiAtaHoNCj4gDQo+ID4gKwlbPDE1 MDAwMDA+LCA8MzAwMDAwMD5dDQo+ID4gKy0gZGxnLGhwLWRpZmYtc2luZ2xlLXN1cHBseSA6IEJv b2xlYW4gZmxhZywgdXNlIHNpbmdsZSBzdXBwbHkgZm9yIEhQDQo+ID4gKwkJCSAgICAgIChEQTcy MTcgb25seSkNCj4gPiArDQo+ID4gKz09PT09PQ0KPiA+ICsNCj4gPiArT3B0aW9uYWwgQ2hpbGQg bm9kZSAtICdkYTcyMThfaHBsZGV0JyAoREE3MjE4IG9ubHkpOg0KPiA+ICsNCj4gPiArT3B0aW9u YWwgcHJvcGVydGllczoNCj4gPiArLSBkbGcsamFjay1yYXRlLW1pY3Jvc2Vjb25kIDogVGltZSBi ZXR3ZWVuIGphY2sgZGV0ZWN0IG1lYXN1cmVtZW50cyAodXMpDQo+IA0KPiAtdXMNCj4gDQo+IENv bXBsZXRlbHkgY29uc2lzdGVudCwgaXNuJ3QgaXQuIFdoeSB3ZSBkaWQgLW1pY3Jvdm9sdCBJIGRv bid0IGtub3cuDQoNCkkgd291bGQgZ3Vlc3MgdGhpcyBpcyBkdWUgdG8gdGhlIGFsbCBsb3dlci1j YXNlIHJ1bGUsIGFzICd1dicgZG9lc24ndCBsb29rIHJpZ2h0DQp3aGVuIGluZGljYXRpbmcgbWlj cm92b2x0cy4gTWF5YmUgdGhlIGxvd2VyLWNhc2UgcnVsZSBzaG91bGQgbm90IGFwcGx5IGZvcg0K YWJicmV2aWF0aW9ucyBsaWtlIHRoaXMgc28gd2UgY2FuIHVzZSAnbVYnLCAndVYnLCBldGMuLi4/ IEluIHRoZW9yeSB0aGVuIGl0DQpjb3VsZCBiZSAnSHonIGFzIHdlbGwsIGlmIHdlJ3JlIGJlaW5n IGFic29sdXRlbHkgY29ycmVjdC4NCg==
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#5 lore raw

PATCH v3 2/2 ASoC: codecs: Add da7218 codec driver

In reply to Adam Thomson

This adds support for DA7217 and DA7218 audio codecs.

---
 include/sound/da7218.h    |  109 ++
 sound/soc/codecs/Kconfig  |    4 +
 sound/soc/codecs/Makefile |    2 +
 sound/soc/codecs/da7218.c | 3305 +++++++++++++++++++++++++++++++++++++++++++++
 sound/soc/codecs/da7218.h | 1414 +++++++++++++++++++
 5 files changed, 4834 insertions(+)
 create mode 100644 include/sound/da7218.h
 create mode 100644 sound/soc/codecs/da7218.c
 create mode 100644 sound/soc/codecs/da7218.h
include/sound/da7218.h new file +109 -0
new file mode 100644
index 0000000..0dbb818
@@ -0,0 +1,109 @@
+/*
+ * da7218.h - DA7218 ASoC Codec Driver Platform Data
+ *
+ * Copyright (c) 2015 Dialog Semiconductor
+ *
+ * Author: Adam Thomson <[email protected]>
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#ifndef _DA7218_PDATA_H
+#define _DA7218_PDATA_H
+
+/* Mic Bias */
+enum da7218_micbias_voltage {
+	DA7218_MICBIAS_1_2V = -1,
+	DA7218_MICBIAS_1_6V,
+	DA7218_MICBIAS_1_8V,
+	DA7218_MICBIAS_2_0V,
+	DA7218_MICBIAS_2_2V,
+	DA7218_MICBIAS_2_4V,
+	DA7218_MICBIAS_2_6V,
+	DA7218_MICBIAS_2_8V,
+	DA7218_MICBIAS_3_0V,
+};
+
+enum da7218_mic_amp_in_sel {
+	DA7218_MIC_AMP_IN_SEL_DIFF = 0,
+	DA7218_MIC_AMP_IN_SEL_SE_P,
+	DA7218_MIC_AMP_IN_SEL_SE_N,
+};
+
+/* DMIC */
+enum da7218_dmic_data_sel {
+	DA7218_DMIC_DATA_LRISE_RFALL = 0,
+	DA7218_DMIC_DATA_LFALL_RRISE,
+};
+
+enum da7218_dmic_samplephase {
+	DA7218_DMIC_SAMPLE_ON_CLKEDGE = 0,
+	DA7218_DMIC_SAMPLE_BETWEEN_CLKEDGE,
+};
+
+enum da7218_dmic_clk_rate {
+	DA7218_DMIC_CLK_3_0MHZ = 0,
+	DA7218_DMIC_CLK_1_5MHZ,
+};
+
+/* Headphone Detect */
+enum da7218_hpldet_jack_rate {
+	DA7218_HPLDET_JACK_RATE_5US = 0,
+	DA7218_HPLDET_JACK_RATE_10US,
+	DA7218_HPLDET_JACK_RATE_20US,
+	DA7218_HPLDET_JACK_RATE_40US,
+	DA7218_HPLDET_JACK_RATE_80US,
+	DA7218_HPLDET_JACK_RATE_160US,
+	DA7218_HPLDET_JACK_RATE_320US,
+	DA7218_HPLDET_JACK_RATE_640US,
+};
+
+enum da7218_hpldet_jack_debounce {
+	DA7218_HPLDET_JACK_DEBOUNCE_OFF = 0,
+	DA7218_HPLDET_JACK_DEBOUNCE_2,
+	DA7218_HPLDET_JACK_DEBOUNCE_3,
+	DA7218_HPLDET_JACK_DEBOUNCE_4,
+};
+
+enum da7218_hpldet_jack_thr {
+	DA7218_HPLDET_JACK_THR_84PCT = 0,
+	DA7218_HPLDET_JACK_THR_88PCT,
+	DA7218_HPLDET_JACK_THR_92PCT,
+	DA7218_HPLDET_JACK_THR_96PCT,
+};
+
+struct da7218_hpldet_pdata {
+	enum da7218_hpldet_jack_rate jack_rate;
+	enum da7218_hpldet_jack_debounce jack_debounce;
+	enum da7218_hpldet_jack_thr jack_thr;
+	bool comp_inv;
+	bool hyst;
+	bool discharge;
+};
+
+struct da7218_pdata {
+	/* Mic */
+	enum da7218_micbias_voltage micbias1_lvl;
+	enum da7218_micbias_voltage micbias2_lvl;
+	enum da7218_mic_amp_in_sel mic1_amp_in_sel;
+	enum da7218_mic_amp_in_sel mic2_amp_in_sel;
+
+	/* DMIC */
+	enum da7218_dmic_data_sel dmic1_data_sel;
+	enum da7218_dmic_data_sel dmic2_data_sel;
+	enum da7218_dmic_samplephase dmic1_samplephase;
+	enum da7218_dmic_samplephase dmic2_samplephase;
+	enum da7218_dmic_clk_rate dmic1_clk_rate;
+	enum da7218_dmic_clk_rate dmic2_clk_rate;
+
+	/* HP Diff Supply - DA7217 only */
+	bool hp_diff_single_supply;
+
+	/* HP Detect - DA7218 only */
+	struct da7218_hpldet_pdata *hpldet_pdata;
+};
+
+#endif /* _DA7218_PDATA_H */
sound/soc/codecs/Kconfig +4 -0
index cfdafc4..6dd87ee 100644
@@ -58,6 +58,7 @@ config SND_SOC_ALL_CODECS
 	select SND_SOC_CX20442 if TTY
 	select SND_SOC_DA7210 if SND_SOC_I2C_AND_SPI
 	select SND_SOC_DA7213 if I2C
+	select SND_SOC_DA7218 if I2C
 	select SND_SOC_DA7219 if I2C
 	select SND_SOC_DA732X if I2C
 	select SND_SOC_DA9055 if I2C
@@ -439,6 +440,9 @@ config SND_SOC_DA7210
 config SND_SOC_DA7213
         tristate
 
+config SND_SOC_DA7218
+	tristate
+
 config SND_SOC_DA7219
         tristate
 
sound/soc/codecs/Makefile +2 -0
index f632fc4..02057d6 100644
@@ -50,6 +50,7 @@ snd-soc-cs4349-objs := cs4349.o
 snd-soc-cx20442-objs := cx20442.o
 snd-soc-da7210-objs := da7210.o
 snd-soc-da7213-objs := da7213.o
+snd-soc-da7218-objs := da7218.o
 snd-soc-da7219-objs := da7219.o da7219-aad.o
 snd-soc-da732x-objs := da732x.o
 snd-soc-da9055-objs := da9055.o
@@ -245,6 +246,7 @@ obj-$(CONFIG_SND_SOC_CS4349)	+= snd-soc-cs4349.o
 obj-$(CONFIG_SND_SOC_CX20442)	+= snd-soc-cx20442.o
 obj-$(CONFIG_SND_SOC_DA7210)	+= snd-soc-da7210.o
 obj-$(CONFIG_SND_SOC_DA7213)	+= snd-soc-da7213.o
+obj-$(CONFIG_SND_SOC_DA7218)	+= snd-soc-da7218.o
 obj-$(CONFIG_SND_SOC_DA7219)	+= snd-soc-da7219.o
 obj-$(CONFIG_SND_SOC_DA732X)	+= snd-soc-da732x.o
 obj-$(CONFIG_SND_SOC_DA9055)	+= snd-soc-da9055.o
sound/soc/codecs/da7218.c new file +3305 -0

2,861 lines not on this page · raw message

sound/soc/codecs/da7218.h new file +1414 -0

1,414 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

Part of the diff is not shown here. View the raw message.

#6 lore raw

Re: [PATCH v3 2/2] ASoC: codecs: Add da7218 codec driver

reproduce:

Hi Adam,

[auto build test WARNING on: asoc/for-next] [also build test WARNING on: v4.4-rc1 next-20151119]

url:    https://github.com/0day-ci/linux/commits/Adam-Thomson/ASoC-da7218-Add-bindings-documentation-for-DA7218-audio-codec/20151120-014315
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: x86_64-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

sound/soc/codecs/da7218.c: In function 'da7218_of_get_id':

>> sound/soc/codecs/da7218.c:2261:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      return (int) id->data;
             ^

vim +2261 sound/soc/codecs/da7218.c

2245 /*
2246 * DT
2247 */
2248
2249 static const struct of_device_id da7218_of_match[] = {
2250 { .compatible = "dlg,da7217", .data = (void *) DA7217_DEV_ID },
2251 { .compatible = "dlg,da7218", .data = (void *) DA7218_DEV_ID },
2252 { }
2253 };
2254 MODULE_DEVICE_TABLE(of, da7218_of_match);
2255
2256 static inline int da7218_of_get_id(struct device *dev)
2257 {
2258 const struct of_device_id *id = of_match_device(da7218_of_match, dev);
2259
2260 if (id)

> 2261			return (int) id->data;

2262 else
2263 return -EINVAL;
2264 }
2265
2266 static enum da7218_micbias_voltage
2267 da7218_of_micbias_lvl(struct snd_soc_codec *codec, u32 val)
2268 {
2269 switch (val) {

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation