Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1bf9f29a authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/sta32x',...

Merge remote-tracking branches 'asoc/topic/simple', 'asoc/topic/sta32x', 'asoc/topic/tdm-slot', 'asoc/topic/tegra' and 'asoc/topic/tlv320aic3x' into asoc-next
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
NVIDIA Tegra audio complex, with RT5677 CODEC

Required properties:
- compatible : "nvidia,tegra-audio-rt5677"
- clocks : Must contain an entry for each entry in clock-names.
  See ../clocks/clock-bindings.txt for details.
- clock-names : Must include the following entries:
  - pll_a
  - pll_a_out0
  - mclk (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk)
- nvidia,model : The user-visible name of this sound complex.
- nvidia,audio-routing : A list of the connections between audio components.
  Each entry is a pair of strings, the first being the connection's sink,
  the second being the connection's source. Valid names for sources and
  sinks are the RT5677's pins (as documented in its binding), and the jacks
  on the board:

  * Headphone
  * Speaker
  * Headset Mic
  * Internal Mic 1
  * Internal Mic 2

- nvidia,i2s-controller : The phandle of the Tegra I2S controller that's
  connected to the CODEC.
- nvidia,audio-codec : The phandle of the RT5677 audio codec. This binding
  assumes that AIF1 on the CODEC is connected to Tegra.

Optional properties:
- nvidia,hp-det-gpios : The GPIO that detects headphones are plugged in
- nvidia,hp-en-gpios : The GPIO that enables headphone amplifier
- nvidia,mic-present-gpios: The GPIO that mic jack is plugged in
- nvidia,dmic-clk-en-gpios : The GPIO that gates DMIC clock signal

Example:

sound {
	compatible = "nvidia,tegra-audio-rt5677-ryu",
	        "nvidia,tegra-audio-rt5677";
	nvidia,model = "NVIDIA Tegra Ryu";

	nvidia,audio-routing =
		"Headphone", "LOUT2",
		"Headphone", "LOUT1",
		"Headset Mic", "MICBIAS1",
		"IN1P", "Headset Mic",
		"IN1N", "Headset Mic",
		"DMIC L1", "Internal Mic 1",
		"DMIC R1", "Internal Mic 1",
		"DMIC L2", "Internal Mic 2",
		"DMIC R2", "Internal Mic 2",
		"Speaker", "PDM1L",
		"Speaker", "PDM1R";

	nvidia,i2s-controller = <&tegra_i2s1>;
	nvidia,audio-codec = <&rt5677>;

	nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
	nvidia,mic-present-gpios = <&gpio TEGRA_GPIO(O, 5) GPIO_ACTIVE_LOW>;
	nvidia,hp-en-gpios = <&rt5677 1 GPIO_ACTIVE_HIGH>;
	nvidia,dmic-clk-en-gpios = <&rt5677 2 GPIO_ACTIVE_HIGH>;

	clocks = <&tegra_car TEGRA124_CLK_PLL_A>,
	         <&tegra_car TEGRA124_CLK_PLL_A_OUT0>,
	         <&tegra_car TEGRA124_CLK_EXTERN1>;
	clock-names = "pll_a", "pll_a_out0", "mclk";
};
+5 −0
Original line number Diff line number Diff line
@@ -75,6 +75,11 @@ Optional CPU/CODEC subnodes properties:
					  it can be specified via "clocks" if system has
					  clock node (= common clock), or "system-clock-frequency"
					  (if system doens't support common clock)
					  If a clock is specified, it is
					  enabled with clk_prepare_enable()
					  in dai startup() and disabled with
					  clk_disable_unprepare() in dai
					  shutdown().

Example 1 - single DAI link:

+92 −0
Original line number Diff line number Diff line
STA32X audio CODEC

The driver for this device only supports I2C.

Required properties:

  - compatible: "st,sta32x"
  - reg: the I2C address of the device for I2C
  - reset-gpios: a GPIO spec for the reset pin. If specified, it will be
		 deasserted before communication to the codec starts.

  - power-down-gpios: a GPIO spec for the power down pin. If specified,
		      it will be deasserted before communication to the codec
		      starts.

  - Vdda-supply: regulator spec, providing 3.3V
  - Vdd3-supply: regulator spec, providing 3.3V
  - Vcc-supply: regulator spec, providing 5V - 26V

Optional properties:

  -  st,output-conf: number, Selects the output configuration:
	0: 2-channel (full-bridge) power, 2-channel data-out
	1: 2 (half-bridge). 1 (full-bridge) on-board power
	2: 2 Channel (Full-Bridge) Power, 1 Channel FFX
	3: 1 Channel Mono-Parallel
	If parameter is missing, mode 0 will be enabled.
	This property has to be specified as '/bits/ 8' value.

  -  st,ch1-output-mapping: Channel 1 output mapping
  -  st,ch2-output-mapping: Channel 2 output mapping
  -  st,ch3-output-mapping: Channel 3 output mapping
	0: Channel 1
	1: Channel 2
	2: Channel 3
	If parameter is missing, channel 1 is chosen.
	This properties have to be specified as '/bits/ 8' values.

  -  st,thermal-warning-recover:
	If present, thermal warning recovery is enabled.

  -  st,thermal-warning-adjustment:
	If present, thermal warning adjustment is enabled.

  -  st,fault-detect-recovery:
	If present, then fault recovery will be enabled.

  -  st,drop-compensation-ns: number
	Only required for "st,ffx-power-output-mode" ==
	"variable-drop-compensation".
	Specifies the drop compensation in nanoseconds.
	The value must be in the range of 0..300, and only
	multiples of 20 are allowed. Default is 140ns.

  -  st,max-power-use-mpcc:
	If present, then MPCC bits are used for MPC coefficients,
	otherwise standard MPC coefficients are used.

  -  st,max-power-corr:
	If present, power bridge correction for THD reduction near maximum
	power output is enabled.

  -  st,am-reduction-mode:
	If present, FFX mode runs in AM reduction mode, otherwise normal
	FFX mode is used.

  -  st,odd-pwm-speed-mode:
	If present, PWM speed mode run on odd speed mode (341.3 kHz) on all
	channels. If not present, normal PWM spped mode (384 kHz) will be used.

  -  st,invalid-input-detect-mute:
	If present, automatic invalid input detect mute is enabled.

Example:

codec: sta32x@38 {
	compatible = "st,sta32x";
	reg = <0x1c>;
	reset-gpios = <&gpio1 19 0>;
	power-down-gpios = <&gpio1 16 0>;
	st,output-conf = /bits/ 8  <0x3>;	// set output to 2-channel
						// (full-bridge) power,
						// 2-channel data-out
	st,ch1-output-mapping = /bits/ 8 <0>;	// set channel 1 output ch 1
	st,ch2-output-mapping = /bits/ 8 <0>;	// set channel 2 output ch 1
	st,ch3-output-mapping = /bits/ 8 <0>;	// set channel 3 output ch 1
	st,max-power-correction;		// enables power bridge
						// correction for THD reduction
						// near maximum power output
	st,invalid-input-detect-mute;		// mute if no valid digital
						// audio signal is provided.
};
+9 −1
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ Required properties:
    "ti,tlv320aic33" - TLV320AIC33
    "ti,tlv320aic3007" - TLV320AIC3007
    "ti,tlv320aic3106" - TLV320AIC3106
    "ti,tlv320aic3104" - TLV320AIC3104


- reg - <int> -  I2C slave address
@@ -18,6 +19,7 @@ Optional properties:

- gpio-reset - gpio pin number used for codec reset
- ai3x-gpio-func - <array of 2 int> - AIC3X_GPIO1 & AIC3X_GPIO2 Functionality
				    - Not supported on tlv320aic3104
- ai3x-micbias-vg - MicBias Voltage required.
	1 - MICBIAS output is powered to 2.0V,
	2 - MICBIAS output is powered to 2.5V,
@@ -36,7 +38,13 @@ CODEC output pins:
  * HPLCOM
  * HPRCOM

CODEC input pins:
CODEC input pins for TLV320AIC3104:
  * MIC2L
  * MIC2R
  * LINE1L
  * LINE1R

CODEC input pins for other compatible codecs:
  * MIC3L
  * MIC3R
  * LINE1L
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ struct asoc_simple_dai {
	unsigned int sysclk;
	int slots;
	int slot_width;
	struct clk *clk;
};

struct asoc_simple_card_info {
Loading