xref: /linux/Documentation/devicetree/bindings/sound/wlf,wm8903.yaml (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
15ecc573dSDavid Heidelberg# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
25ecc573dSDavid Heidelberg%YAML 1.2
35ecc573dSDavid Heidelberg---
4*e09eb6acSRob Herring$id: http://devicetree.org/schemas/sound/wlf,wm8903.yaml#
5*e09eb6acSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
65ecc573dSDavid Heidelberg
75ecc573dSDavid Heidelbergtitle: WM8903 audio codec
85ecc573dSDavid Heidelberg
95ecc573dSDavid Heidelbergdescription: |
105ecc573dSDavid Heidelberg  This device supports I2C only.
115ecc573dSDavid Heidelberg  Pins on the device (for linking into audio routes):
125ecc573dSDavid Heidelberg      * IN1L
135ecc573dSDavid Heidelberg      * IN1R
145ecc573dSDavid Heidelberg      * IN2L
155ecc573dSDavid Heidelberg      * IN2R
165ecc573dSDavid Heidelberg      * IN3L
175ecc573dSDavid Heidelberg      * IN3R
185ecc573dSDavid Heidelberg      * DMICDAT
195ecc573dSDavid Heidelberg      * HPOUTL
205ecc573dSDavid Heidelberg      * HPOUTR
215ecc573dSDavid Heidelberg      * LINEOUTL
225ecc573dSDavid Heidelberg      * LINEOUTR
235ecc573dSDavid Heidelberg      * LOP
245ecc573dSDavid Heidelberg      * LON
255ecc573dSDavid Heidelberg      * ROP
265ecc573dSDavid Heidelberg      * RON
275ecc573dSDavid Heidelberg      * MICBIAS
285ecc573dSDavid Heidelberg
295ecc573dSDavid Heidelbergmaintainers:
305ecc573dSDavid Heidelberg  - patches@opensource.cirrus.com
315ecc573dSDavid Heidelberg
325ecc573dSDavid Heidelbergproperties:
335ecc573dSDavid Heidelberg  compatible:
345ecc573dSDavid Heidelberg    const: wlf,wm8903
355ecc573dSDavid Heidelberg
365ecc573dSDavid Heidelberg  reg:
375ecc573dSDavid Heidelberg    maxItems: 1
385ecc573dSDavid Heidelberg
395ecc573dSDavid Heidelberg  gpio-controller: true
405ecc573dSDavid Heidelberg  '#gpio-cells':
415ecc573dSDavid Heidelberg    const: 2
425ecc573dSDavid Heidelberg
435ecc573dSDavid Heidelberg  interrupts:
445ecc573dSDavid Heidelberg    maxItems: 1
455ecc573dSDavid Heidelberg
465ecc573dSDavid Heidelberg  micdet-cfg:
475ecc573dSDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/uint32
485ecc573dSDavid Heidelberg    default: 0
495ecc573dSDavid Heidelberg    description: Default register value for R6 (Mic Bias).
505ecc573dSDavid Heidelberg
515ecc573dSDavid Heidelberg  micdet-delay:
525ecc573dSDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/uint32
535ecc573dSDavid Heidelberg    default: 100
545ecc573dSDavid Heidelberg    description: The debounce delay for microphone detection in mS.
555ecc573dSDavid Heidelberg
565ecc573dSDavid Heidelberg  gpio-cfg:
575ecc573dSDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/uint32-array
585ecc573dSDavid Heidelberg    description: |
595ecc573dSDavid Heidelberg      minItems: 5
605ecc573dSDavid Heidelberg      maxItems: 5
615ecc573dSDavid Heidelberg      A list of GPIO configuration register values.
625ecc573dSDavid Heidelberg      If absent, no configuration of these registers is performed.
635ecc573dSDavid Heidelberg      If any entry has the value 0xffffffff, that GPIO's
645ecc573dSDavid Heidelberg      configuration will not be modified.
655ecc573dSDavid Heidelberg
665ecc573dSDavid Heidelberg  AVDD-supply:
675ecc573dSDavid Heidelberg    description: Analog power supply regulator on the AVDD pin.
685ecc573dSDavid Heidelberg
695ecc573dSDavid Heidelberg  CPVDD-supply:
705ecc573dSDavid Heidelberg    description: Charge pump supply regulator on the CPVDD pin.
715ecc573dSDavid Heidelberg
725ecc573dSDavid Heidelberg  DBVDD-supply:
735ecc573dSDavid Heidelberg    description: Digital buffer supply regulator for the DBVDD pin.
745ecc573dSDavid Heidelberg
755ecc573dSDavid Heidelberg  DCVDD-supply:
765ecc573dSDavid Heidelberg    description: Digital core supply regulator for the DCVDD pin.
775ecc573dSDavid Heidelberg
785ecc573dSDavid Heidelberg
795ecc573dSDavid Heidelbergrequired:
805ecc573dSDavid Heidelberg  - compatible
815ecc573dSDavid Heidelberg  - reg
825ecc573dSDavid Heidelberg  - gpio-controller
835ecc573dSDavid Heidelberg  - '#gpio-cells'
845ecc573dSDavid Heidelberg
855ecc573dSDavid HeidelbergadditionalProperties: false
865ecc573dSDavid Heidelberg
875ecc573dSDavid Heidelbergexamples:
885ecc573dSDavid Heidelberg  - |
895ecc573dSDavid Heidelberg    i2c {
905ecc573dSDavid Heidelberg      #address-cells = <1>;
915ecc573dSDavid Heidelberg      #size-cells = <0>;
925ecc573dSDavid Heidelberg
935ecc573dSDavid Heidelberg      wm8903: codec@1a {
945ecc573dSDavid Heidelberg        compatible = "wlf,wm8903";
955ecc573dSDavid Heidelberg        reg = <0x1a>;
965ecc573dSDavid Heidelberg        interrupts = <347>;
975ecc573dSDavid Heidelberg
985ecc573dSDavid Heidelberg        AVDD-supply = <&fooreg_a>;
995ecc573dSDavid Heidelberg        CPVDD-supply = <&fooreg_b>;
1005ecc573dSDavid Heidelberg        DBVDD-supply = <&fooreg_c>;
1015ecc573dSDavid Heidelberg        DCVDD-supply = <&fooreg_d>;
1025ecc573dSDavid Heidelberg
1035ecc573dSDavid Heidelberg        gpio-controller;
1045ecc573dSDavid Heidelberg        #gpio-cells = <2>;
1055ecc573dSDavid Heidelberg
1065ecc573dSDavid Heidelberg        micdet-cfg = <0>;
1075ecc573dSDavid Heidelberg        micdet-delay = <100>;
1085ecc573dSDavid Heidelberg        gpio-cfg = <
1095ecc573dSDavid Heidelberg          0x0600 /* DMIC_LR, output */
1105ecc573dSDavid Heidelberg          0x0680 /* DMIC_DAT, input */
1115ecc573dSDavid Heidelberg          0x0000 /* GPIO, output, low */
1125ecc573dSDavid Heidelberg          0x0200 /* Interrupt, output */
1135ecc573dSDavid Heidelberg          0x01a0 /* BCLK, input, active high */
1145ecc573dSDavid Heidelberg        >;
1155ecc573dSDavid Heidelberg      };
1165ecc573dSDavid Heidelberg    };
117