Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1235306 > unrolled thread

[PATCH v3 0/4] ASoC: Add support for DA7219 audio codec

Started byAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
First post2015-09-29 17:50 +0200
Last post2015-09-29 18:00 +0200
Articles 4 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/4] ASoC: Add support for DA7219 audio codec Adam Thomson <Adam.Thomson.Opensource@diasemi.com> - 2015-09-29 17:50 +0200
    [PATCH v3 1/4] ASoC: Add SOC_DOUBLE_R_EXT Adam Thomson <Adam.Thomson.Opensource@diasemi.com> - 2015-09-29 17:50 +0200
    [PATCH v3 4/4] MAINTAINERS: da7219: Add entry to cover DA7219 bindings  document Adam Thomson <Adam.Thomson.Opensource@diasemi.com> - 2015-09-29 18:00 +0200
    [PATCH v3 3/4] ASoC: da7219: Add bindings documentation for DA7219 audio  codec Adam Thomson <Adam.Thomson.Opensource@diasemi.com> - 2015-09-29 18:00 +0200

#1235306 — [PATCH v3 0/4] ASoC: Add support for DA7219 audio codec

FromAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Date2015-09-29 17:50 +0200
Subject[PATCH v3 0/4] ASoC: Add support for DA7219 audio codec
Message-ID<qe5ke-2lV-5@gated-at.bofh.it>
This patch set adds support for the DA7219 audio codec with built-in
advanced accessory detection functionality. Patch set includes codec driver,
associated DT bindings documentation and MAINTAINERS file updates to cover new
bindings.

This patch set is baselined against the v4.3-rc3 kernel version.

Changes in v3:
 - Actually set clk_src in dai_sysclk() function of codec, so future calls can
   correctly identify if work is to be done or not.

Changes in v2:
 - Add SOC_DOUBLE_R_EXT support to ASoC core.
 - Use of upper-case naming for controls, where missing.
 - Use of Playback/Capture Digital naming for certain ADC/DAC controls.
 - CP mchange and vol_thresh DT bindings removed, now Kcontrols
 - Kcontrols and DAPM now locked as part of hptest work, and specific controls
   affected have had locking introduced.
 - Timeout for btn_det work when checking micbias status.
 - Added comments to describe reasoning for work use with hptest, btn_det.
 - Added comments to tonegen_freq_put/get to clarify endian conversion, and
   code now uses regmap_raw_read/write calls instead of bulk.
 - DT parsing code now prints dev_warn() for invalid settings.
 - SOC_VALUE_ENUM_SINGLE now used for hpf_mode handling, instead of customer
   get/put handlers.
 - DTMF key control now a SOC_ENUM to correctly describe supported keys,
   including non-numeric.
 - MIXIN_L_MIX_EN bit set as part of DAPM now (SUPPLY), rather than in probe.
 - Fix dai_sysclk() function to correctly check for no change, using clk_id as
   well as freq.
 - Error checking added for clk_set_rate() call.
 - Improved error checking for devm_clk_get() call.
 - Removed explicit use of device_may_wakeup() and enable/disable_irq_wake().
   Now taken care of by I2C core so DT bindings updated accordingly to
   document this.
 - hptest work now uses cache to keep state, instead of reading registers
   individually. Cache is bypassed, then when test executed and complete,
   regcache_sync_region() used to restore settings to pre-test values.
 - Regulator consumer framework usage added, in particular to determine VDDIO
   level in use so device can be configured accordingly. DT documents updated
   to reflect this.

Adam Thomson (4):
  ASoC: Add SOC_DOUBLE_R_EXT
  ASoC: codecs: Add da7219 codec driver
  ASoC: da7219: Add bindings documentation for DA7219 audio codec
  MAINTAINERS: da7219: Add entry to cover DA7219 bindings document

 Documentation/devicetree/bindings/sound/da7219.txt |  106 ++
 MAINTAINERS                                        |    1 +
 include/sound/da7219-aad.h                         |   99 +
 include/sound/da7219.h                             |   55 +
 include/sound/soc.h                                |    7 +
 sound/soc/codecs/Kconfig                           |    4 +
 sound/soc/codecs/Makefile                          |    2 +
 sound/soc/codecs/da7219-aad.c                      |  823 +++++++++
 sound/soc/codecs/da7219-aad.h                      |  212 +++
 sound/soc/codecs/da7219.c                          | 1940 ++++++++++++++++++++
 sound/soc/codecs/da7219.h                          |  820 +++++++++
 11 files changed, 4069 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/da7219.txt
 create mode 100644 include/sound/da7219-aad.h
 create mode 100644 include/sound/da7219.h
 create mode 100644 sound/soc/codecs/da7219-aad.c
 create mode 100644 sound/soc/codecs/da7219-aad.h
 create mode 100644 sound/soc/codecs/da7219.c
 create mode 100644 sound/soc/codecs/da7219.h

--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1235325 — [PATCH v3 1/4] ASoC: Add SOC_DOUBLE_R_EXT

FromAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Date2015-09-29 17:50 +0200
Subject[PATCH v3 1/4] ASoC: Add SOC_DOUBLE_R_EXT
Message-ID<qe5kg-2lV-47@gated-at.bofh.it>
In reply to#1235306
_EXT version of SOC_DOUBLE_R required to allow for custom handlers.

Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
---
 include/sound/soc.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/sound/soc.h b/include/sound/soc.h
index 884e728..2d79cb5 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -217,6 +217,13 @@
 	.get = xhandler_get, .put = xhandler_put, \
 	.private_value = \
 		SOC_DOUBLE_VALUE(reg, shift_left, shift_right, max, invert, 0) }
+#define SOC_DOUBLE_R_EXT(xname, reg_left, reg_right, xshift, xmax, xinvert,\
+	 xhandler_get, xhandler_put) \
+{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
+	.info = snd_soc_info_volsw, \
+	.get = xhandler_get, .put = xhandler_put, \
+	.private_value = SOC_DOUBLE_R_VALUE(reg_left, reg_right, xshift, \
+					    xmax, xinvert) }
 #define SOC_SINGLE_EXT_TLV(xname, xreg, xshift, xmax, xinvert,\
 	 xhandler_get, xhandler_put, tlv_array) \
 {	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1235334 — [PATCH v3 4/4] MAINTAINERS: da7219: Add entry to cover DA7219 bindings document

FromAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Date2015-09-29 18:00 +0200
Subject[PATCH v3 4/4] MAINTAINERS: da7219: Add entry to cover DA7219 bindings document
Message-ID<qe5tT-2x8-7@gated-at.bofh.it>
In reply to#1235306
This adds an entry to indicate the DA7219 bindings document (and
other Dialog codecs bindings documents) are supported.

Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 9f6685f..2a14a19 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3367,6 +3367,7 @@ M:	Support Opensource <support.opensource@diasemi.com>
 W:	http://www.dialog-semiconductor.com/products
 S:	Supported
 F:	Documentation/hwmon/da90??
+F:	Documentation/devicetree/bindings/sound/da[79]*.txt
 F:	drivers/gpio/gpio-da90??.c
 F:	drivers/hwmon/da90??-hwmon.c
 F:	drivers/iio/adc/da91??-*.c
--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1235340 — [PATCH v3 3/4] ASoC: da7219: Add bindings documentation for DA7219 audio codec

FromAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Date2015-09-29 18:00 +0200
Subject[PATCH v3 3/4] ASoC: da7219: Add bindings documentation for DA7219 audio codec
Message-ID<qe5tU-2x8-21@gated-at.bofh.it>
In reply to#1235306
Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
---
 Documentation/devicetree/bindings/sound/da7219.txt | 106 +++++++++++++++++++++
 1 file changed, 106 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/da7219.txt

diff --git a/Documentation/devicetree/bindings/sound/da7219.txt b/Documentation/devicetree/bindings/sound/da7219.txt
new file mode 100644
index 0000000..1b70309
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/da7219.txt
@@ -0,0 +1,106 @@
+Dialog Semiconductor DA7219 Audio Codec bindings
+
+DA7219 is an audio codec with advanced accessory detect features.
+
+======
+
+Required properties:
+- compatible : Should be "dlg,da7219"
+- reg: Specifies the I2C slave address
+
+- interrupt-parent : Specifies the phandle of the interrupt controller to which
+  the IRQs from DA7219 are delivered to.
+- interrupts : IRQ line info for DA7219.
+  (See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt for
+   further information relating to interrupt properties)
+
+- 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-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,ldo-lvl : Required internal LDO voltage (mV) level for digital engine
+	[<1050>, <1100>, <1200>, <1400>]
+- dlg,micbias-lvl : Voltage (mV) for Mic Bias
+	[<1800>, <2000>, <2200>, <2400>, <2600>]
+- dlg,mic-amp-in-sel : Mic input source type
+	["diff", "se_p", "se_n"]
+
+======
+
+Child node - 'da7219_aad':
+
+Optional properties:
+- dlg,micbias-pulse-lvl : Mic bias higher voltage pulse level (mV).
+	[<2800>, <2900>]
+- dlg,micbias-pulse-time : Mic bias higher voltage pulse duration (ms)
+- dlg,btn-cfg : Periodic button press measurements for 4-pole jack (ms)
+	[<2>, <5>, <10>, <50>, <100>, <200>, <500>]
+- dlg,mic-det-thr : Impedance threshold for mic detection measurement (Ohms)
+	[<200>, <500>, <750>, <1000>]
+- dlg,jack-ins-deb : Debounce time for jack insertion (ms)
+	[<5>, <10>, <20>, <50>, <100>, <200>, <500>, <1000>]
+- dlg,jack-det-rate: Jack type detection latency (3/4 pole)
+	["32ms_64ms", "64ms_128ms", "128ms_256ms", "256ms_512ms"]
+- dlg,jack-rem-deb : Debounce time for jack removal (ms)
+	[<1>, <5>, <10>, <20>]
+- dlg,a-d-btn-thr : Impedance threshold between buttons A and D
+	[0x0 - 0xFF]
+- dlg,d-b-btn-thr : Impedance threshold between buttons D and B
+	[0x0 - 0xFF]
+- dlg,b-c-btn-thr : Impedance threshold between buttons B and C
+	[0x0 - 0xFF]
+- dlg,c-mic-btn-thr : Impedance threshold between button C and Mic
+	[0x0 - 0xFF]
+- dlg,btn-avg : Number of 8-bit readings for averaged button measurement
+	[<1>, <2>, <4>, <8>]
+- dlg,adc-1bit-rpt : Repeat count for 1-bit button measurement
+	[<1>, <2>, <4>, <8>]
+
+======
+
+Example:
+
+	codec: da7219@1a {
+		compatible = "dlg,da7219";
+		reg = <0x1a>;
+
+		interrupt-parent = <&gpio6>;
+		interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+
+		VDD-supply = <&reg_audio>;
+		VDDMIC-supply = <&reg_audio>;
+		VDDIO-supply = <&reg_audio>;
+
+		clocks = <&clks 201>;
+		clock-names = "mclk";
+
+		dlg,ldo-lvl = <1200>;
+		dlg,micbias-lvl = <2600>;
+		dlg,mic-amp-in-sel = "diff";
+
+		da7219_aad {
+			dlg,btn-cfg = <50>;
+			dlg,mic-det-thr = <500>;
+			dlg,jack-ins-deb = <20>;
+			dlg,jack-det-rate = "32ms_64ms";
+			dlg,jack-rem-deb = <1>;
+
+			dlg,a-d-btn-thr = <0xa>;
+			dlg,d-b-btn-thr = <0x16>;
+			dlg,b-c-btn-thr = <0x21>;
+			dlg,c-mic-btn-thr = <0x3E>;
+
+			dlg,btn-avg = <4>;
+			dlg,adc-1bit-rpt = <1>;
+		};
+	};
--
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web