ASoC: Add bindings for Samsung Aries audio complex

The audio system on S5PV210 Aries boards have a wm8994 codec connected
to the Samsung I2S0 DAI.  Jack detection is done via GPIOs, an ADC, and
an extcon device (fsa9480).

There are two main variants, one with an FM radio and where the wm8994 is
the master for the modem audio and the other without FM and the modem is
the master.

Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
Link: https://lore.kernel.org/r/BN6PR04MB0660866A9B5FD4B9E74D7C31A39F0@BN6PR04MB0660.namprd04.prod.outlook.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Jonathan Bakker 2020-06-14 13:24:10 -07:00 committed by Mark Brown
parent 3f2ec71cb8
commit 14ebd62c12
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -0,0 +1,147 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/samsung,aries-wm8994.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Aries audio complex with WM8994 codec
maintainers:
- Jonathan Bakker <xc-racer2@live.ca>
properties:
compatible:
oneOf:
- const: samsung,aries-wm8994
description: With FM radio and modem master
- const: samsung,fascinate4g-wm8994
description: Without FM radio and modem slave
model:
$ref: /schemas/types.yaml#/definitions/string
description: The user-visible name of this sound complex.
cpu:
type: object
properties:
sound-dai:
minItems: 2
maxItems: 2
$ref: /schemas/types.yaml#/definitions/phandle-array
description: |
phandles to the I2S controller and bluetooth codec,
in that order
codec:
type: object
properties:
sound-dai:
$ref: /schemas/types.yaml#/definitions/phandle-array
description: phandle to the WM8994 CODEC
samsung,audio-routing:
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
description: |
List of the connections between audio
components; each entry is a pair of strings, the first being the
connection's sink, the second being the connection's source;
valid names for sources and sinks are the WM8994's pins (as
documented in its binding), and the jacks on the board -
For samsung,aries-wm8994: HP, SPK, RCV, LINE, Main Mic, Headset Mic,
or FM In
For samsung,fascinate4g-wm8994: HP, SPK, RCV, LINE, Main Mic,
or HeadsetMic
extcon:
description: Extcon phandle for dock detection
main-micbias-supply:
description: Supply for the micbias on the main mic
headset-micbias-supply:
description: Supply for the micbias on the headset mic
earpath-sel-gpios:
description: GPIO for switching between tv-out and mic paths
headset-detect-gpios:
description: GPIO for detection of headset insertion
headset-key-gpios:
description: GPIO for detection of headset key press
io-channels:
maxItems: 1
description: IO channel to read micbias voltage for headset detection
io-channel-names:
const: headset-detect
required:
- compatible
- model
- cpu
- codec
- samsung,audio-routing
- extcon
- main-micbias-supply
- headset-micbias-supply
- earpath-sel-gpios
- headset-detect-gpios
- headset-key-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
sound {
compatible = "samsung,fascinate4g-wm8994";
model = "Fascinate4G";
extcon = <&fsa9480>;
main-micbias-supply = <&main_micbias_reg>;
headset-micbias-supply = <&headset_micbias_reg>;
earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>;
io-channels = <&adc 3>;
io-channel-names = "headset-detect";
headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_HIGH>;
headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>;
samsung,audio-routing =
"HP", "HPOUT1L",
"HP", "HPOUT1R",
"SPK", "SPKOUTLN",
"SPK", "SPKOUTLP",
"RCV", "HPOUT2N",
"RCV", "HPOUT2P",
"LINE", "LINEOUT2N",
"LINE", "LINEOUT2P",
"IN1LP", "Main Mic",
"IN1LN", "Main Mic",
"IN1RP", "Headset Mic",
"IN1RN", "Headset Mic";
pinctrl-names = "default";
pinctrl-0 = <&headset_det &earpath_sel>;
cpu {
sound-dai = <&i2s0>, <&bt_codec>;
};
codec {
sound-dai = <&wm8994>;
};
};