Unverified Commit eba5a0ba authored by Neil Armstrong's avatar Neil Armstrong Committed by Mark Brown
Browse files

ASoC: dt-bindings: realtek,rt5640: Convert to dtschema

parent bbeffdda
Loading
Loading
Loading
Loading
+146 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/realtek,rt5640.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RT5640/RT5639 audio CODEC

maintainers:
  - Neil Armstrong <neil.armstrong@linaro.org>

description: |
  This device supports I2C only.

  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

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
      - realtek,rt5640
      - realtek,rt5639

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description: The CODEC's interrupt output.

  realtek,in1-differential:
    description:
      Indicate MIC1 input is differential, rather than single-ended.
    type: boolean

  realtek,in2-differential:
    description:
      Indicate MIC2 input is differential, rather than single-ended.
    type: boolean

  realtek,in3-differential:
    description:
      Indicate MIC3 input is differential, rather than single-ended.
    type: boolean

  realtek,lout-differential:
    description:
      Indicate LOUT output is differential, rather than single-ended.
    type: boolean

  realtek,dmic1-data-pin:
    description: Specify which pin to be used as DMIC1 data pin.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # dmic1 is not used
      - 1 # using IN2P pin as dmic1 data pin
      - 2 # using GPIO3 pin as dmic1 data pin

  realtek,dmic2-data-pin:
    description: Specify which pin to be used as DMIC2 data pin.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # dmic2 is not used
      - 1 # using IN2N pin as dmic2 data pin
      - 2 # using GPIO4 pin as dmic2 data pin

  realtek,jack-detect-source:
    description: The Jack Detect source.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # Jack Detect function 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:
    description:
      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.
    type: boolean

  realtek,over-current-threshold-microamp:
    description: micbias over-current detection threshold in µA
    enum:
      - 600
      - 1500
      - 2000

  realtek,over-current-scale-factor:
    description: micbias over-current detection scale-factor
    $ref: /schemas/types.yaml#/definitions/uint32
    enum:
      - 0 # Scale current by 0.5
      - 1 # Scale current by 0.75
      - 2 # Scale current by 1.0
      - 3 # Scale current by 1.5

required:
  - compatible
  - reg
  - interrupts

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        codec@1a {
            compatible = "realtek,rt5640";
            reg = <0x1a>;
            interrupt-parent = <&gpio>;
            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
        };
    };
+0 −97
Original line number Diff line number Diff line
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,lout-differential
  Boolean. Indicate LOUT output is differential, rather than stereo.

- 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) IRQ_TYPE_LEVEL_HIGH>;
	realtek,ldo1-en-gpios =
		<&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
};