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

RT5640/RT5639 audio CODEC

This device supports I2C only.

Required properties:

- compatible : One of "realtek,rt5640" or "realtek,rt5639".

- 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,in2-differential
- realtek,in3-differential
  Boolean. Indicate MIC1/2/3 input are differential, rather than single-ended.

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

- realtek,dmic1-data-pin
  0: dmic1 is not used
  1: using IN1P pin as dmic1 data pin
  2: using GPIO3 pin as dmic1 data pin

- realtek,dmic2-data-pin
  0: dmic2 is not used
  1: using IN1N pin as dmic2 data pin
  2: using GPIO4 pin as dmic2 data pin

- realtek,jack-detect-source
  u32. Valid values:
  0: jack-detect is not used
  1: Use GPIO1 for jack-detect
  2: Use JD1_IN4P for jack-detect
  3: Use JD2_IN4N for jack-detect
  4: Use GPIO2 for jack-detect
  5: Use GPIO3 for jack-detect
  6: Use GPIO4 for jack-detect

- realtek,jack-detect-not-inverted
  bool. Normal jack-detect switches give an inverted signal, set this bool
  in the rare case you've a jack-detect switch which is not inverted.

- realtek,over-current-threshold-microamp
  u32, micbias over-current detection threshold in µA, valid values are
  600, 1500 and 2000µA.

- realtek,over-current-scale-factor
  u32, micbias over-current detection scale-factor, valid values are:
  0: Scale current by 0.5
  1: Scale current by 0.75
  2: Scale current by 1.0
  3: Scale current by 1.5

Pins on the device (for linking into audio routes) for RT5639/RT5640:

  * DMIC1
  * DMIC2
  * MICBIAS1
  * IN1P
  * IN1N
  * IN2P
  * IN2N
  * IN3P
  * IN3N
  * HPOL
  * HPOR
  * LOUTL
  * LOUTR
  * SPOLP
  * SPOLN
  * SPORP
  * SPORN

Additional pins on the device for RT5640:

  * MONOP
  * MONON

Example:

rt5640 {
	compatible = "realtek,rt5640";
	reg = <0x1c>;
	interrupt-parent = <&gpio>;
	interrupts = <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>;
	realtek,ldo1-en-gpios =
		<&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
};