kernel
This commit is contained in:
parent
b59f84ee36
commit
cfab1d3ce7
83468 changed files with 37938688 additions and 0 deletions
|
@ -0,0 +1,226 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs42l42.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS42L42 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description:
|
||||
The CS42L42 is a low-power audio codec designed for portable applications.
|
||||
It provides a high-dynamic range, stereo DAC for audio playback and a mono
|
||||
high-dynamic-range ADC for audio capture. There is an integrated headset
|
||||
detection block.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs42l42
|
||||
- cirrus,cs42l83
|
||||
|
||||
reg:
|
||||
description:
|
||||
The I2C address of the CS42L42.
|
||||
maxItems: 1
|
||||
|
||||
VP-supply:
|
||||
description:
|
||||
VP power supply.
|
||||
|
||||
VCP-supply:
|
||||
description:
|
||||
Charge pump power supply.
|
||||
|
||||
VD_FILT-supply:
|
||||
description:
|
||||
FILT+ power supply.
|
||||
|
||||
VL-supply:
|
||||
description:
|
||||
Logic power supply.
|
||||
|
||||
VA-supply:
|
||||
description:
|
||||
Analog power supply.
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
This pin will be asserted and then deasserted to reset the
|
||||
CS42L42 before communication starts.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
Interrupt for CS42L42 IRQ line.
|
||||
maxItems: 1
|
||||
|
||||
cirrus,ts-inv:
|
||||
description: |
|
||||
Sets the behaviour of the jack plug detect switch.
|
||||
|
||||
0 - (Default) Shorted to tip when unplugged, open when plugged.
|
||||
This is "inverted tip sense (ITS)" in the datasheet.
|
||||
|
||||
1 - Open when unplugged, shorted to tip when plugged.
|
||||
This is "normal tip sense (TS)" in the datasheet.
|
||||
|
||||
The CS42L42_TS_INV_* defines are available for this.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
|
||||
cirrus,ts-dbnc-rise:
|
||||
description: |
|
||||
Debounce the rising edge of TIP_SENSE_PLUG. With no
|
||||
debounce, the tip sense pin might be noisy on a plug event.
|
||||
|
||||
0 - 0ms
|
||||
1 - 125ms
|
||||
2 - 250ms
|
||||
3 - 500ms
|
||||
4 - 750ms
|
||||
5 - 1s (Default)
|
||||
6 - 1.25s
|
||||
7 - 1.5s
|
||||
|
||||
The CS42L42_TS_DBNCE_* defines are available for this.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
cirrus,ts-dbnc-fall:
|
||||
description: |
|
||||
Debounce the falling edge of TIP_SENSE_UNPLUG. With no
|
||||
debounce, the tip sense pin might be noisy on an unplug event.
|
||||
|
||||
0 - 0ms
|
||||
1 - 125ms
|
||||
2 - 250ms
|
||||
3 - 500ms
|
||||
4 - 750ms
|
||||
5 - 1s (Default)
|
||||
6 - 1.25s
|
||||
7 - 1.5s
|
||||
|
||||
The CS42L42_TS_DBNCE_* defines are available for this.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
cirrus,btn-det-init-dbnce:
|
||||
description: |
|
||||
This sets how long to wait after enabling button detection
|
||||
interrupts before servicing button interrupts, to allow the
|
||||
HS bias time to settle. Value is in milliseconds.
|
||||
There may be erroneous button interrupts if this debounce time
|
||||
is too short.
|
||||
|
||||
0ms - 200ms,
|
||||
Default = 100ms
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 200
|
||||
|
||||
cirrus,btn-det-event-dbnce:
|
||||
description: |
|
||||
This sets how long to wait after receiving a button press
|
||||
interrupt before processing it. Allows time for the button
|
||||
press to make a clean connection with the bias resistors.
|
||||
Value is in milliseconds.
|
||||
|
||||
0ms - 20ms,
|
||||
Default = 10ms
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 20
|
||||
|
||||
cirrus,bias-lvls:
|
||||
description: |
|
||||
For a level-detect headset button scheme, each button will bias
|
||||
the mic pin to a certain voltage. To determine which button was
|
||||
pressed, the voltage is compared to sequential, decreasing
|
||||
voltages, until the compared voltage < bias voltage.
|
||||
For different hardware setups, a designer might want to tweak this.
|
||||
This is an array of descending values for the comparator voltage,
|
||||
given as percent of the HSBIAS voltage.
|
||||
|
||||
Array of 4 values, each 0-63
|
||||
< x1 x2 x3 x4 >
|
||||
Default = < 15 8 4 1 >
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
|
||||
cirrus,hs-bias-ramp-rate:
|
||||
description: |
|
||||
If present this sets the rate that the HS bias should rise and fall.
|
||||
The actual rise and fall times depend on external hardware (the
|
||||
datasheet gives several rise and fall time examples).
|
||||
|
||||
0 - Fast rise time; slow, load-dependent fall time
|
||||
1 - Fast
|
||||
2 - Slow (default)
|
||||
3 - Slowest
|
||||
|
||||
The CS42L42_HSBIAS_RAMP_* defines are available for this.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
|
||||
cirrus,hs-bias-sense-disable:
|
||||
description: |
|
||||
If present the HSBIAS sense is disabled. Configures HSBIAS output
|
||||
current sense through the external 2.21-k resistor. HSBIAS_SENSE
|
||||
is a hardware feature to reduce the potential pop noise when the
|
||||
headset plug is removed slowly. But on some platforms ESD voltage
|
||||
will affect it causing plug detection to fail, especially with CTIA
|
||||
headset type. For different hardware setups, a designer might want
|
||||
to tweak default behavior.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- VP-supply
|
||||
- VCP-supply
|
||||
- VD_FILT-supply
|
||||
- VL-supply
|
||||
- VA-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/cs42l42.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cs42l42: cs42l42@48 {
|
||||
compatible = "cirrus,cs42l42";
|
||||
reg = <0x48>;
|
||||
VA-supply = <&dummy_vreg>;
|
||||
VP-supply = <&dummy_vreg>;
|
||||
VCP-supply = <&dummy_vreg>;
|
||||
VD_FILT-supply = <&dummy_vreg>;
|
||||
VL-supply = <&dummy_vreg>;
|
||||
|
||||
reset-gpios = <&axi_gpio_0 1 0>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <55 8>;
|
||||
|
||||
cirrus,ts-inv = <CS42L42_TS_INV_DIS>;
|
||||
cirrus,ts-dbnc-rise = <CS42L42_TS_DBNCE_1000>;
|
||||
cirrus,ts-dbnc-fall = <CS42L42_TS_DBNCE_0>;
|
||||
cirrus,btn-det-init-dbnce = <100>;
|
||||
cirrus,btn-det-event-dbnce = <10>;
|
||||
cirrus,bias-lvls = <0x0F 0x08 0x04 0x01>;
|
||||
cirrus,hs-bias-ramp-rate = <CS42L42_HSBIAS_RAMP_SLOW>;
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue