Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

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:

- clocks: The phandle of the master clock to the CODEC
- clock-names: Should be "mclk"

- 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>;
};