diff mbox

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

Message ID add67c0ebac7a516d3cf515fea10a08b7cabadbc.1447941395.git.Adam.Thomson.Opensource@diasemi.com (mailing list archive)
State New, archived
Headers show

Commit Message

Adam Thomson Nov. 19, 2015, 1:59 p.m. UTC
Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
---
 Documentation/devicetree/bindings/sound/da7218.txt | 104 +++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/da7218.txt

--
1.9.3

Comments

Rob Herring Nov. 20, 2015, 3:53 p.m. UTC | #1
On Thu, Nov 19, 2015 at 01:59:34PM +0000, Adam Thomson wrote:
> Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
> ---
>  Documentation/devicetree/bindings/sound/da7218.txt | 104 +++++++++++++++++++++
>  1 file changed, 104 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/da7218.txt
> 
> diff --git a/Documentation/devicetree/bindings/sound/da7218.txt b/Documentation/devicetree/bindings/sound/da7218.txt
> new file mode 100644
> index 0000000..18f8f09
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/da7218.txt
> @@ -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

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

> +  (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).

-hz

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

> +	[<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

> +	[<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
Mark Brown Nov. 21, 2015, 12:52 p.m. UTC | #2
On Fri, Nov 20, 2015 at 09:53:51AM -0600, Rob Herring wrote:
> On Thu, Nov 19, 2015 at 01:59:34PM +0000, Adam Thomson wrote:

> > +- 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.
Adam Thomson Nov. 23, 2015, 11:51 a.m. UTC | #3
On November 20, 2015 15:54, Rob Herring wrote:

> > +- 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).
> 
> -hz
> 
> Documenting the unit suffixes is on my todo list...

So is the general rule to use abbreviated suffixes, apart from millivolts,
microvolts, etc, or are there some other rules that I should be aware of? I
don't want to have to keep re-submitting patches in the future because I'm not
following a rule I have no way of knowing about?

> > +	[<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
> 
> > +	[<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.

I would guess this is due to the all lower-case rule, as 'uv' doesn't look right
when indicating microvolts. Maybe the lower-case rule should not apply for
abbreviations like this so we can use 'mV', 'uV', etc...? In theory then it
could be 'Hz' as well, if we're being absolutely correct.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/sound/da7218.txt b/Documentation/devicetree/bindings/sound/da7218.txt
new file mode 100644
index 0000000..18f8f09
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/da7218.txt
@@ -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;
+		};
+	};