Kernel-4.18.0-80.el8_wm8903

WM8903 audio CODEC

This device supports I2C only.

Required properties:

  • compatible : “wlf,wm8903”

  • reg : the I2C address of the device.

  • gpio-controller : Indicates this device is a GPIO controller.

  • #gpio-cells : Should be two. The first cell is the pin number and the
    second cell is used to specify optional parameters (currently unused).

Optional properties:

  • interrupts : The interrupt line the codec is connected to.

  • micdet-cfg : Default register value for R6 (Mic Bias). If absent, the
    default is 0.

  • micdet-delay : The debounce delay for microphone detection in mS. If
    absent, the default is 100.

  • gpio-cfg : A list of GPIO configuration register values. The list must
    be 5 entries long. If absent, no configuration of these registers is
    performed. If any entry has the value 0xffffffff, that GPIO’s
    configuration will not be modified.

  • AVDD-supply : Analog power supply regulator on the AVDD pin.

  • CPVDD-supply : Charge pump supply regulator on the CPVDD pin.

  • DBVDD-supply : Digital buffer supply regulator for the DBVDD pin.

  • DCVDD-supply : Digital core supply regulator for the DCVDD pin.

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

  • IN1L
  • IN1R
  • IN2L
  • IN2R
  • IN3L
  • IN3R
  • DMICDAT
  • HPOUTL
  • HPOUTR
  • LINEOUTL
  • LINEOUTR
  • LOP
  • LON
  • ROP
  • RON
  • MICBIAS

Example:

wm8903: codec@1a {
compatible = “wlf,wm8903”;
reg = <0x1a>;
interrupts = < 347 >;

AVDD-supply = <&fooreg_a>;
CPVDD-supply = <&fooreg_b>;
DBVDD-supply = <&fooreg_c>;
DCVDC-supply = <&fooreg_d>;

gpio-controller;
#gpio-cells = <2>;

micdet-cfg = <0>;
micdet-delay = <100>;
gpio-cfg = <
    0x0600 /* DMIC_LR, output */
    0x0680 /* DMIC_DAT, input */
    0x0000 /* GPIO, output, low */
    0x0200 /* Interrupt, output */
    0x01a0 /* BCLK, input, active high */
>;

};