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

Commit d1587e34 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/topic/rt286', 'asoc/topic/rt5616' and...

Merge remote-tracking branches 'asoc/topic/rt286', 'asoc/topic/rt5616' and 'asoc/topic/rt5677' into asoc-next
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
RT5616 audio CODEC

This device supports I2C only.

Required properties:

- compatible : "realtek,rt5616".

- reg : The I2C address of the device.

Pins on the device (for linking into audio routes) for RT5616:

  * IN1P
  * IN2P
  * IN2N
  * LOUTL
  * LOUTR
  * HPOL
  * HPOR

Example:

codec: rt5616@1b {
	compatible = "realtek,rt5616";
	reg = <0x1b>;
};
+75 −0
Original line number Diff line number Diff line
RT5659/RT5658 audio CODEC

This device supports I2C only.

Required properties:

- compatible : One of "realtek,rt5659" or "realtek,rt5658".

- reg : The I2C address of the device.

- interrupts : The CODEC's interrupt output.

Optional properties:

- realtek,in1-differential
- realtek,in3-differential
- realtek,in4-differential
  Boolean. Indicate MIC1/3/4 input are differential, rather than single-ended.

- realtek,dmic1-data-pin
  0: dmic1 is not used
  1: using IN2N pin as dmic1 data pin
  2: using GPIO5 pin as dmic1 data pin
  3: using GPIO9 pin as dmic1 data pin
  4: using GPIO11 pin as dmic1 data pin

- realtek,dmic2-data-pin
  0: dmic2 is not used
  1: using IN2P pin as dmic2 data pin
  2: using GPIO6 pin as dmic2 data pin
  3: using GPIO10 pin as dmic2 data pin
  4: using GPIO12 pin as dmic2 data pin

- realtek,jd-src
  0: No JD is used
  1: using JD3 as JD source

- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
- realtek,reset-gpios : The GPIO that controls the CODEC's RESET pin.

Pins on the device (for linking into audio routes) for RT5659/RT5658:

  * DMIC L1
  * DMIC R1
  * DMIC L2
  * DMIC R2
  * IN1P
  * IN1N
  * IN2P
  * IN2N
  * IN3P
  * IN3N
  * IN4P
  * IN4N
  * HPOL
  * HPOR
  * SPOL
  * SPOR
  * LOUTL
  * LOUTR
  * MONOOUT
  * PDML
  * PDMR
  * SPDIF

Example:

rt5659 {
	compatible = "realtek,rt5659";
	reg = <0x1b>;
	interrupt-parent = <&gpio>;
	interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
	realtek,ldo1-en-gpios =
		<&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
};
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ Required properties:
Optional properties:

- realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin.
- realtek,reset-gpio : The GPIO that controls the CODEC's RESET pin.
- realtek,reset-gpio : The GPIO that controls the CODEC's RESET pin. Active low.

- realtek,in1-differential
- realtek,in2-differential

include/sound/rt5659.h

0 → 100644
+49 −0
Original line number Diff line number Diff line
/*
 * linux/sound/rt5659.h -- Platform data for RT5659
 *
 * Copyright 2013 Realtek Microelectronics
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef __LINUX_SND_RT5659_H
#define __LINUX_SND_RT5659_H

enum rt5659_dmic1_data_pin {
	RT5659_DMIC1_NULL,
	RT5659_DMIC1_DATA_IN2N,
	RT5659_DMIC1_DATA_GPIO5,
	RT5659_DMIC1_DATA_GPIO9,
	RT5659_DMIC1_DATA_GPIO11,
};

enum rt5659_dmic2_data_pin {
	RT5659_DMIC2_NULL,
	RT5659_DMIC2_DATA_IN2P,
	RT5659_DMIC2_DATA_GPIO6,
	RT5659_DMIC2_DATA_GPIO10,
	RT5659_DMIC2_DATA_GPIO12,
};

enum rt5659_jd_src {
	RT5659_JD_NULL,
	RT5659_JD3,
};

struct rt5659_platform_data {
	bool in1_diff;
	bool in3_diff;
	bool in4_diff;

	int ldo1_en; /* GPIO for LDO1_EN */
	int reset; /* GPIO for RESET */

	enum rt5659_dmic1_data_pin dmic1_data_pin;
	enum rt5659_dmic2_data_pin dmic2_data_pin;
	enum rt5659_jd_src jd_src;
};

#endif
+12 −0
Original line number Diff line number Diff line
@@ -95,10 +95,12 @@ config SND_SOC_ALL_CODECS
	select SND_SOC_PCM512x_SPI if SPI_MASTER
	select SND_SOC_RT286 if I2C
	select SND_SOC_RT298 if I2C
	select SND_SOC_RT5616 if I2C
	select SND_SOC_RT5631 if I2C
	select SND_SOC_RT5640 if I2C
	select SND_SOC_RT5645 if I2C
	select SND_SOC_RT5651 if I2C
	select SND_SOC_RT5659 if I2C
	select SND_SOC_RT5670 if I2C
	select SND_SOC_RT5677 if I2C && SPI_MASTER
	select SND_SOC_SGTL5000 if I2C
@@ -563,14 +565,18 @@ config SND_SOC_PCM512x_SPI

config SND_SOC_RL6231
	tristate
	default y if SND_SOC_RT5616=y
	default y if SND_SOC_RT5640=y
	default y if SND_SOC_RT5645=y
	default y if SND_SOC_RT5651=y
	default y if SND_SOC_RT5659=y
	default y if SND_SOC_RT5670=y
	default y if SND_SOC_RT5677=y
	default m if SND_SOC_RT5616=m
	default m if SND_SOC_RT5640=m
	default m if SND_SOC_RT5645=m
	default m if SND_SOC_RT5651=m
	default m if SND_SOC_RT5659=m
	default m if SND_SOC_RT5670=m
	default m if SND_SOC_RT5677=m

@@ -589,6 +595,9 @@ config SND_SOC_RT298
	tristate
	depends on I2C

config SND_SOC_RT5616
	tristate

config SND_SOC_RT5631
	tristate "Realtek ALC5631/RT5631 CODEC"
	depends on I2C
@@ -602,6 +611,9 @@ config SND_SOC_RT5645
config SND_SOC_RT5651
	tristate

config SND_SOC_RT5659
	tristate

config SND_SOC_RT5670
	tristate

Loading