-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mfd: Immutable branch between MFD, Pinctrl and soundwire due for the …
…v6.6 merge window Merge tag 'ib-mfd-pinctrl-soundwire-v6.6' of https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into tmp Immutable branch between MFD, Pinctrl and soundwire due for the v6.6 merge window
- Loading branch information
Showing
16 changed files
with
3,856 additions
and
0 deletions.
There are no files selected for viewing
313 changes: 313 additions & 0 deletions
313
Documentation/devicetree/bindings/sound/cirrus,cs42l43.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,313 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/sound/cirrus,cs42l43.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Cirrus Logic CS42L43 Audio CODEC | ||
|
||
maintainers: | ||
- patches@opensource.cirrus.com | ||
|
||
description: | | ||
The CS42L43 is an audio CODEC with integrated MIPI SoundWire interface | ||
(Version 1.2.1 compliant), I2C, SPI, and I2S/TDM interfaces designed | ||
for portable applications. It provides a high dynamic range, stereo | ||
DAC for headphone output, two integrated Class D amplifiers for | ||
loudspeakers, and two ADCs for wired headset microphone input or | ||
stereo line input. PDM inputs are provided for digital microphones. | ||
allOf: | ||
- $ref: dai-common.yaml# | ||
|
||
properties: | ||
compatible: | ||
enum: | ||
- cirrus,cs42l43 | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
vdd-p-supply: | ||
description: | ||
Power supply for the high voltage interface. | ||
|
||
vdd-a-supply: | ||
description: | ||
Power supply for internal analog circuits. | ||
|
||
vdd-d-supply: | ||
description: | ||
Power supply for internal digital circuits. Can be internally supplied. | ||
|
||
vdd-io-supply: | ||
description: | ||
Power supply for external interface and internal digital logic. | ||
|
||
vdd-cp-supply: | ||
description: | ||
Power supply for the amplifier 3 and 4 charge pump. | ||
|
||
vdd-amp-supply: | ||
description: | ||
Power supply for amplifier 1 and 2. | ||
|
||
reset-gpios: | ||
maxItems: 1 | ||
|
||
interrupt-controller: true | ||
|
||
"#interrupt-cells": | ||
const: 2 | ||
|
||
interrupts: | ||
maxItems: 1 | ||
|
||
"#sound-dai-cells": | ||
const: 1 | ||
|
||
clocks: | ||
items: | ||
- description: Synchronous audio clock provided on mclk_in. | ||
|
||
clock-names: | ||
const: mclk | ||
|
||
cirrus,bias-low: | ||
type: boolean | ||
description: | ||
Select a 1.8V headset micbias rather than 2.8V. | ||
|
||
cirrus,bias-sense-microamp: | ||
description: | ||
Current at which the headset micbias sense clamp will engage, 0 to | ||
disable. | ||
enum: [ 0, 14, 23, 41, 50, 60, 68, 86, 95 ] | ||
default: 0 | ||
|
||
cirrus,bias-ramp-ms: | ||
description: | ||
Time in milliseconds the hardware allows for the headset micbias to | ||
ramp up. | ||
enum: [ 10, 40, 90, 170 ] | ||
default: 170 | ||
|
||
cirrus,detect-us: | ||
description: | ||
Time in microseconds the type detection will run for. Long values will | ||
cause more audible effects, but give more accurate detection. | ||
enum: [ 20, 100, 1000, 10000, 50000, 75000, 100000, 200000 ] | ||
default: 10000 | ||
|
||
cirrus,button-automute: | ||
type: boolean | ||
description: | ||
Enable the hardware automuting of decimator 1 when a headset button is | ||
pressed. | ||
|
||
cirrus,buttons-ohms: | ||
description: | ||
Impedance in Ohms for each headset button, these should be listed in | ||
ascending order. | ||
minItems: 1 | ||
maxItems: 6 | ||
|
||
cirrus,tip-debounce-ms: | ||
description: | ||
Software debounce on tip sense triggering in milliseconds. | ||
default: 0 | ||
|
||
cirrus,tip-invert: | ||
type: boolean | ||
description: | ||
Indicates tip detect polarity, inverted implies open-circuit whilst the | ||
jack is inserted. | ||
|
||
cirrus,tip-disable-pullup: | ||
type: boolean | ||
description: | ||
Indicates if the internal pullup on the tip detect should be disabled. | ||
|
||
cirrus,tip-fall-db-ms: | ||
description: | ||
Time in milliseconds a falling edge on the tip detect should be hardware | ||
debounced for. Note the falling edge is considered after the invert. | ||
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ] | ||
default: 500 | ||
|
||
cirrus,tip-rise-db-ms: | ||
description: | ||
Time in milliseconds a rising edge on the tip detect should be hardware | ||
debounced for. Note the rising edge is considered after the invert. | ||
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ] | ||
default: 500 | ||
|
||
cirrus,use-ring-sense: | ||
type: boolean | ||
description: | ||
Indicates if the ring sense should be used. | ||
|
||
cirrus,ring-invert: | ||
type: boolean | ||
description: | ||
Indicates ring detect polarity, inverted implies open-circuit whilst the | ||
jack is inserted. | ||
|
||
cirrus,ring-disable-pullup: | ||
type: boolean | ||
description: | ||
Indicates if the internal pullup on the ring detect should be disabled. | ||
|
||
cirrus,ring-fall-db-ms: | ||
description: | ||
Time in milliseconds a falling edge on the ring detect should be hardware | ||
debounced for. Note the falling edge is considered after the invert. | ||
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ] | ||
default: 500 | ||
|
||
cirrus,ring-rise-db-ms: | ||
description: | ||
Time in milliseconds a rising edge on the ring detect should be hardware | ||
debounced for. Note the rising edge is considered after the invert. | ||
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ] | ||
default: 500 | ||
|
||
pinctrl: | ||
type: object | ||
$ref: /schemas/pinctrl/pinctrl.yaml# | ||
additionalProperties: false | ||
|
||
properties: | ||
gpio-controller: true | ||
|
||
"#gpio-cells": | ||
const: 2 | ||
|
||
gpio-ranges: | ||
items: | ||
- description: A phandle to the CODEC pinctrl node | ||
minimum: 0 | ||
- const: 0 | ||
- const: 0 | ||
- const: 3 | ||
|
||
patternProperties: | ||
"-state$": | ||
oneOf: | ||
- $ref: "#/$defs/cirrus-cs42l43-state" | ||
- patternProperties: | ||
"-pins$": | ||
$ref: "#/$defs/cirrus-cs42l43-state" | ||
additionalProperties: false | ||
|
||
spi: | ||
type: object | ||
$ref: /schemas/spi/spi-controller.yaml# | ||
unevaluatedProperties: false | ||
|
||
$defs: | ||
cirrus-cs42l43-state: | ||
type: object | ||
|
||
allOf: | ||
- $ref: /schemas/pinctrl/pincfg-node.yaml# | ||
- $ref: /schemas/pinctrl/pinmux-node.yaml# | ||
|
||
oneOf: | ||
- required: [ groups ] | ||
- required: [ pins ] | ||
|
||
additionalProperties: false | ||
|
||
properties: | ||
groups: | ||
enum: [ gpio1, gpio2, gpio3, asp, pdmout2, pdmout1, i2c, spi ] | ||
|
||
pins: | ||
enum: [ gpio1, gpio2, gpio3, | ||
asp_dout, asp_fsync, asp_bclk, | ||
pdmout2_clk, pdmout2_data, pdmout1_clk, pdmout1_data, | ||
i2c_sda, i2c_scl, | ||
spi_miso, spi_sck, spi_ssb ] | ||
|
||
function: | ||
enum: [ gpio, spdif, irq, mic-shutter, spk-shutter ] | ||
|
||
drive-strength: | ||
description: Set drive strength in mA | ||
enum: [ 1, 2, 4, 8, 9, 10, 12, 16 ] | ||
|
||
input-debounce: | ||
description: Set input debounce in uS | ||
enum: [ 0, 85 ] | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- vdd-p-supply | ||
- vdd-a-supply | ||
- vdd-io-supply | ||
- vdd-cp-supply | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/interrupt-controller/irq.h> | ||
i2c { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cs42l43: codec@1a { | ||
compatible = "cirrus,cs42l43"; | ||
reg = <0x1a>; | ||
vdd-p-supply = <&vdd5v0>; | ||
vdd-a-supply = <&vdd1v8>; | ||
vdd-io-supply = <&vdd1v8>; | ||
vdd-cp-supply = <&vdd1v8>; | ||
vdd-amp-supply = <&vdd5v0>; | ||
reset-gpios = <&gpio 0>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
interrupt-parent = <&gpio>; | ||
interrupts = <56 IRQ_TYPE_LEVEL_LOW>; | ||
#sound-dai-cells = <1>; | ||
clocks = <&clks 0>; | ||
clock-names = "mclk"; | ||
cs42l43_pins: pinctrl { | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
gpio-ranges = <&cs42l43_pins 0 0 3>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pinsettings>; | ||
pinsettings: default-state { | ||
shutter-pins { | ||
groups = "gpio3"; | ||
function = "mic-shutter"; | ||
}; | ||
}; | ||
}; | ||
spi { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
cs-gpios = <&cs42l43_pins 1 0>; | ||
sensor@0 { | ||
compatible = "bosch,bme680"; | ||
reg = <0>; | ||
spi-max-frequency = <1400000>; | ||
}; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.