mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	Convert the NAU8825 audio CODEC bindings to DT schema. Signed-off-by: David Lin <CTLIN0@nuvoton.com Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org Link: https://lore.kernel.org/r/20230511113607.595184-1-CTLIN0@nuvoton.com Signed-off-by: Mark Brown <broonie@kernel.org
		
			
				
	
	
		
			239 lines
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			239 lines
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
$id: http://devicetree.org/schemas/sound/nuvoton,nau8825.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: NAU8825 audio CODEC
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - John Hsu <KCHSU0@nuvoton.com>
 | 
						|
 | 
						|
allOf:
 | 
						|
  - $ref: dai-common.yaml#
 | 
						|
 | 
						|
properties:
 | 
						|
  compatible:
 | 
						|
    enum:
 | 
						|
      - nuvoton,nau8825
 | 
						|
 | 
						|
  reg:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  interrupts:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  nuvoton,jkdet-enable:
 | 
						|
    description:
 | 
						|
      Enable jack detection via JKDET pin.
 | 
						|
    type: boolean
 | 
						|
 | 
						|
  nuvoton,jkdet-pull-enable:
 | 
						|
    description:
 | 
						|
      Enable JKDET pin pull.
 | 
						|
      If set - pin pull enabled, otherwise pin in high impedance state.
 | 
						|
    type: boolean
 | 
						|
 | 
						|
  nuvoton,jkdet-pull-up:
 | 
						|
    description:
 | 
						|
      Pull-up JKDET pin.
 | 
						|
      If set then JKDET pin is pull up, otherwise pull down.
 | 
						|
    type: boolean
 | 
						|
 | 
						|
  nuvoton,jkdet-polarity:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      JKDET pin polarity.
 | 
						|
    enum:
 | 
						|
      - 0 # active high
 | 
						|
      - 1 # active low
 | 
						|
    default: 1
 | 
						|
 | 
						|
  nuvoton,vref-impedance:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      VREF Impedance selection.
 | 
						|
    enum:
 | 
						|
      - 0 # Open
 | 
						|
      - 1 # 25 kOhm
 | 
						|
      - 2 # 125 kOhm
 | 
						|
      - 3 # 2.5 kOhm
 | 
						|
    default: 2
 | 
						|
 | 
						|
  nuvoton,micbias-voltage:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Micbias voltage level.
 | 
						|
    enum:
 | 
						|
      - 0 # VDDA
 | 
						|
      - 1 # VDDA
 | 
						|
      - 2 # VDDA * 1.1
 | 
						|
      - 3 # VDDA * 1.2
 | 
						|
      - 4 # VDDA * 1.3
 | 
						|
      - 5 # VDDA * 1.4
 | 
						|
      - 6 # VDDA * 1.53
 | 
						|
      - 7 # VDDA * 1.53
 | 
						|
    default: 6
 | 
						|
 | 
						|
  nuvoton,sar-threshold-num:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Number of buttons supported.
 | 
						|
    minimum: 1
 | 
						|
    maximum: 4
 | 
						|
    default: 4
 | 
						|
 | 
						|
  nuvoton,sar-threshold:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32-array
 | 
						|
    description:
 | 
						|
      Impedance threshold for each button. Array that contains up to 8 buttons
 | 
						|
      configuration. SAR value is calculated as
 | 
						|
      SAR = 255 * MICBIAS / SAR_VOLTAGE * R / (2000 + R) where MICBIAS is
 | 
						|
      configured by 'nuvoton,micbias-voltage', SAR_VOLTAGE is configured by
 | 
						|
      'nuvoton,sar-voltage', R - button impedance.
 | 
						|
      Refer datasheet section 10.2 for more information about threshold
 | 
						|
      calculation.
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 4
 | 
						|
    items:
 | 
						|
      minimum: 0
 | 
						|
      maximum: 255
 | 
						|
 | 
						|
  nuvoton,sar-hysteresis:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Button impedance measurement hysteresis.
 | 
						|
    default: 0
 | 
						|
 | 
						|
  nuvoton,sar-voltage:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Reference voltage for button impedance measurement.
 | 
						|
    enum:
 | 
						|
      - 0 # VDDA
 | 
						|
      - 1 # VDDA
 | 
						|
      - 2 # VDDA * 1.1
 | 
						|
      - 3 # VDDA * 1.2
 | 
						|
      - 4 # VDDA * 1.3
 | 
						|
      - 5 # VDDA * 1.4
 | 
						|
      - 6 # VDDA * 1.53
 | 
						|
      - 7 # VDDA * 1.53
 | 
						|
    default: 6
 | 
						|
 | 
						|
  nuvoton,sar-compare-time:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      SAR compare time.
 | 
						|
    enum:
 | 
						|
      - 0 # 500 ns
 | 
						|
      - 1 # 1 us
 | 
						|
      - 2 # 2 us
 | 
						|
      - 3 # 4 us
 | 
						|
    default: 1
 | 
						|
 | 
						|
  nuvoton,sar-sampling-time:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      SAR sampling time.
 | 
						|
    enum:
 | 
						|
      - 0 # 2 us
 | 
						|
      - 1 # 4 us
 | 
						|
      - 2 # 8 us
 | 
						|
      - 3 # 16 us
 | 
						|
    default: 1
 | 
						|
 | 
						|
  nuvoton,short-key-debounce:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      Button short key press debounce time.
 | 
						|
    enum:
 | 
						|
      - 0 # 30 ms
 | 
						|
      - 1 # 50 ms
 | 
						|
      - 2 # 100 ms
 | 
						|
      - 3 # 30 ms
 | 
						|
    default: 3
 | 
						|
 | 
						|
  nuvoton,jack-insert-debounce:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      number from 0 to 7 that sets debounce time to 2^(n+2) ms.
 | 
						|
    maximum: 7
 | 
						|
    default: 7
 | 
						|
 | 
						|
  nuvoton,jack-eject-debounce:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    description:
 | 
						|
      number from 0 to 7 that sets debounce time to 2^(n+2) ms
 | 
						|
    maximum: 7
 | 
						|
    default: 0
 | 
						|
 | 
						|
  nuvoton,crosstalk-enable:
 | 
						|
    description:
 | 
						|
      make crosstalk function enable if set.
 | 
						|
    type: boolean
 | 
						|
 | 
						|
  nuvoton,adcout-drive-strong:
 | 
						|
    description:
 | 
						|
      make the drive strength of ADCOUT IO PIN strong if set.
 | 
						|
      Otherwise, the drive keeps normal strength.
 | 
						|
    type: boolean
 | 
						|
 | 
						|
  nuvoton,adc-delay-ms:
 | 
						|
    description:
 | 
						|
      Delay (in ms) to make input path stable and avoid pop noise.
 | 
						|
      The default value is 125 and range between 125 to 500 ms.
 | 
						|
    minimum: 125
 | 
						|
    maximum: 500
 | 
						|
    default: 125
 | 
						|
 | 
						|
  clocks:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  clock-names:
 | 
						|
    items:
 | 
						|
      - const: mclk
 | 
						|
 | 
						|
  '#sound-dai-cells':
 | 
						|
    const: 0
 | 
						|
 | 
						|
required:
 | 
						|
  - compatible
 | 
						|
  - reg
 | 
						|
 | 
						|
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 {
 | 
						|
            #sound-dai-cells = <0>;
 | 
						|
            compatible = "nuvoton,nau8825";
 | 
						|
            reg = <0x1a>;
 | 
						|
            interrupt-parent = <&gpio>;
 | 
						|
            interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
 | 
						|
            nuvoton,jkdet-enable;
 | 
						|
            nuvoton,jkdet-pull-enable;
 | 
						|
            nuvoton,jkdet-pull-up;
 | 
						|
            nuvoton,jkdet-polarity = <GPIO_ACTIVE_LOW>;
 | 
						|
            nuvoton,vref-impedance = <2>;
 | 
						|
            nuvoton,micbias-voltage = <6>;
 | 
						|
            // Setup 4 buttons impedance according to Android specification
 | 
						|
            nuvoton,sar-threshold-num = <4>;
 | 
						|
            nuvoton,sar-threshold = <0xc 0x1e 0x38 0x60>;
 | 
						|
            nuvoton,sar-hysteresis = <1>;
 | 
						|
            nuvoton,sar-voltage = <0>;
 | 
						|
            nuvoton,sar-compare-time = <0>;
 | 
						|
            nuvoton,sar-sampling-time = <0>;
 | 
						|
            nuvoton,short-key-debounce = <2>;
 | 
						|
            nuvoton,jack-insert-debounce = <7>;
 | 
						|
            nuvoton,jack-eject-debounce = <7>;
 | 
						|
            nuvoton,crosstalk-enable;
 | 
						|
 | 
						|
            clock-names = "mclk";
 | 
						|
            clocks = <&tegra_pmc 1>;
 | 
						|
        };
 | 
						|
    };
 |