mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
arm64: dts: qcom: msm8916-samsung-a2015: Add sound and modem
Enable sound and modem for the Samsung A2015 based devices (A3, A5, E5, E7, Grand Max). The setup is similar to most MSM8916 devices, i.e.: - QDSP6 audio - Earpiece/headphones/microphones via digital/analog codec in MSM8916/PM8916 - WWAN Internet via BAM-DMUX except: - NXP TFA9895 codec for speaker on Quaternary MI2S - Samsung-specific audio jack detection (not supported yet) [Lin: Add e2015 and grandmax] Co-developed-by: "Lin, Meng-Bo" <linmengbo0689@protonmail.com> Signed-off-by: "Lin, Meng-Bo" <linmengbo0689@protonmail.com> Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Link: https://lore.kernel.org/r/20231003-msm8916-modem-v2-5-61b684be55c0@gerhold.net Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
8abbd235b2
commit
f276411d0f
|
|
@ -1,10 +1,13 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
#include "msm8916-pm8916.dtsi"
|
||||
#include "msm8916-modem-qdsp6.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
|
||||
#include <dt-bindings/sound/apq8016-lpass.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
|
|
@ -196,6 +199,18 @@ vibrator: vibrator {
|
|||
};
|
||||
};
|
||||
|
||||
&blsp_i2c1 {
|
||||
status = "okay";
|
||||
|
||||
speaker_codec: audio-codec@34 {
|
||||
compatible = "nxp,tfa9895";
|
||||
reg = <0x34>;
|
||||
vddd-supply = <&pm8916_l5>;
|
||||
sound-name-prefix = "Speaker";
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&blsp_i2c2 {
|
||||
status = "okay";
|
||||
|
||||
|
|
@ -243,6 +258,25 @@ &gpu {
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
/*
|
||||
* For some reason the speaker amplifier is connected to the second SD line
|
||||
* (MI2S_2_D1) instead of the first (MI2S_2_D0). This must be configured in the
|
||||
* device tree, otherwise audio will seemingly play fine on the wrong SD line
|
||||
* but the speaker stays silent.
|
||||
*
|
||||
* When routing audio via QDSP6 (the default) the &lpass node is reserved and
|
||||
* the definitions from &q6afedai are used. When the modem is disabled audio can
|
||||
* be alternatively routed directly to the LPASS hardware with reduced latency.
|
||||
* The definitions for &lpass are here for completeness to simplify changing the
|
||||
* setup with minor changes to the DT (either manually or with DT overlays).
|
||||
*/
|
||||
&lpass {
|
||||
dai-link@3 {
|
||||
reg = <MI2S_QUATERNARY>;
|
||||
qcom,playback-sd-lines = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdss {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -253,6 +287,10 @@ &mdss_dsi0 {
|
|||
pinctrl-1 = <&mdss_sleep>;
|
||||
};
|
||||
|
||||
&mpss_mem {
|
||||
reg = <0x0 0x86800000 0x0 0x5400000>;
|
||||
};
|
||||
|
||||
&pm8916_resin {
|
||||
status = "okay";
|
||||
linux,code = <KEY_VOLUMEDOWN>;
|
||||
|
|
@ -265,6 +303,13 @@ pm8916_l17: l17 {
|
|||
};
|
||||
};
|
||||
|
||||
&q6afedai {
|
||||
dai@22 {
|
||||
reg = <QUATERNARY_MI2S_RX>;
|
||||
qcom,sd-lines = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhc_1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -279,6 +324,32 @@ &sdhc_2 {
|
|||
cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&sound {
|
||||
model = "samsung-a2015";
|
||||
audio-routing =
|
||||
"AMIC1", "MIC BIAS External1",
|
||||
"AMIC2", "MIC BIAS Internal2",
|
||||
"AMIC3", "MIC BIAS External1";
|
||||
|
||||
pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
|
||||
pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
|
||||
sound_link_backend2: backend2-dai-link {
|
||||
link-name = "Quaternary MI2S";
|
||||
|
||||
cpu {
|
||||
sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
|
||||
};
|
||||
platform {
|
||||
sound-dai = <&q6routing>;
|
||||
};
|
||||
codec {
|
||||
sound-dai = <&speaker_codec>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
extcon = <&muic>, <&muic>;
|
||||
|
|
|
|||
|
|
@ -65,6 +65,10 @@ accelerometer@1d {
|
|||
};
|
||||
};
|
||||
|
||||
&mpss_mem {
|
||||
reg = <0x0 0x86800000 0x0 0x5a00000>;
|
||||
};
|
||||
|
||||
®_motor_vdd {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@ ®_touch_key {
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
&sound {
|
||||
model = "samsung-gmax"; /* No secondary microphone */
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
gpio_leds_default: gpio-led-default-state {
|
||||
pins = "gpio60";
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user