From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Caleb Connolly <caleb.connolly@linaro.org>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Rob Herring <robh+dt@kernel.org>
Cc: phone-devel@vger.kernel.org,
Dylan Van Assche <me@dylanvanassche.be>,
devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH] arm64: dts: qcom: sdm845-oneplus-*: add audio devices
Date: Wed, 18 Jan 2023 10:37:19 +0100 [thread overview]
Message-ID: <a516cca3-acf6-61cd-20d8-9961c6bf3e52@linaro.org> (raw)
In-Reply-To: <20230118092040.1444129-1-caleb.connolly@linaro.org>
On 18/01/2023 10:20, Caleb Connolly wrote:
> Populate the audio devices found on the OnePlus 6 and 6T using the
> sdm845-sndcard driver.
>
> Both devices have the earpiece and headphone jack connected to the
> WCD9341 codec. The OnePlus 6 uses the MAX98927 speaker codec which is
> already supported upstream. The OnePlus 6T uses a currently unsupported
> TFA9894 codec.
>
> Two internal microphones are supported, as well as an external headset
> mic. Each DAI link is expected to be used for a single device.
>
> Alsa UCM2 configs for this setup can be found here, they are not yet
> upstream and include support for call audio which is missing in this
> patch
>
> https://gitlab.com/sdm845-mainline/alsa-ucm-conf/-/tree/9ed12836b269764c4a853411d38ccb6abb70b383/ucm2/OnePlus
>
> Co-developed-by: Dylan Van Assche <me@dylanvanassche.be>
> Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
> Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
> ---
> .../boot/dts/qcom/sdm845-oneplus-common.dtsi | 208 ++++++++++++++++++
> .../dts/qcom/sdm845-oneplus-enchilada.dts | 40 ++++
> .../boot/dts/qcom/sdm845-oneplus-fajita.dts | 29 +++
> 3 files changed, 277 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> index 42cf4dd5ea28..76017fad4443 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> @@ -9,6 +9,8 @@
>
> #include <dt-bindings/input/linux-event-codes.h>
> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include <dt-bindings/sound/qcom,q6afe.h>
> +#include <dt-bindings/sound/qcom,q6asm.h>
>
> #include "sdm845.dtsi"
> #include "pm8998.dtsi"
> @@ -466,6 +468,44 @@ &pmi8998_rradc {
> status = "okay";
> };
>
> +&q6afedai {
> + qi2s@22 {
> + reg = <22>;
> + qcom,sd-lines = <1>;
> + };
> +
> + qi2s@23 {
> + reg = <23>;
> + qcom,sd-lines = <0>;
> + };
> +};
> +
> +&q6asmdai {
> + dai@0 {
> + reg = <0>;
> + };
> +
> + dai@1 {
> + reg = <1>;
> + };
> +
> + dai@2 {
> + reg = <2>;
> + };
> +
> + dai@3 {
> + reg = <3>;
> + };
> +
> + dai@4 {
> + reg = <4>;
> + };
> +
> + dai@5 {
> + reg = <5>;
> + };
> +};
> +
> &qupv3_id_1 {
> status = "okay";
> };
> @@ -505,6 +545,140 @@ pinconf-rx {
> };
> };
>
> +&sound {
> + compatible = "qcom,sdm845-sndcard";
> + pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active &quat_mi2s_sd1_active>;
> + pinctrl-names = "default";
> +
> + mm1-dai-link {
> + link-name = "MultiMedia1";
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
> + };
> + };
> +
> + mm2-dai-link {
> + link-name = "MultiMedia2";
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
> + };
> + };
> +
> + mm3-dai-link {
> + link-name = "MultiMedia3";
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
> + };
> + };
> +
> + mm4-dai-link {
> + link-name = "MultiMedia4";
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
> + };
> + };
> +
> + mm5-dai-link {
> + link-name = "MultiMedia5";
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA5>;
> + };
> + };
> +
> + mm6-dai-link {
> + link-name = "MultiMedia6";
> + cpu {
> + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA6>;
> + };
> + };
> +
> + speaker_playback: speaker-dai-link {
> + link-name = "Speaker Playback";
> + cpu {
> + sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> + };
> +
> + slim1-dai-link {
> + link-name = "SLIM Playback 1";
> + cpu {
> + sound-dai = <&q6afedai SLIMBUS_0_RX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&wcd9340 0>; /* AIF1_PB */
> + };
> + };
> +
> + slimcap1-dai-link {
> + link-name = "SLIM Capture 1";
> + cpu {
> + sound-dai = <&q6afedai SLIMBUS_0_TX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&wcd9340 1>; /* AIF1_CAP */
> + };
> + };
> +
> + slim2-dai-link {
> + link-name = "SLIM Playback 2";
> + cpu {
> + sound-dai = <&q6afedai SLIMBUS_1_RX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&wcd9340 2>; /* AIF2_PB */
> + };
> + };
> +
> + slimcap2-dai-link {
> + link-name = "SLIM Capture 2";
> + cpu {
> + sound-dai = <&q6afedai SLIMBUS_1_TX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&wcd9340 3>; /* AIF2_CAP */
> + };
> + };
> +
> + slimcap3-dai-link {
> + link-name = "SLIM Capture 3";
> + cpu {
> + sound-dai = <&q6afedai SLIMBUS_2_TX>;
> + };
> +
> + platform {
> + sound-dai = <&q6routing>;
> + };
> +
> + codec {
> + sound-dai = <&wcd9340 5>; /* AIF3_CAP */
> + };
> + };
> +};
> +
> &uart6 {
> status = "okay";
>
> @@ -634,6 +808,27 @@ mux {
> input-enable;
> };
> };
> +
> + speaker_default: speaker-default-state {
> + mux {
Drop and test dtbs_check with pinctrl bindings.
> + pins = "gpio69";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-pull-up;
> + output-high;
> + };
> + };
> +
> + wcd_default: wcd-default-state {
> + mux {
Drop
> + pins = "gpio54";
> + function = "gpio";
> +
> + input-enable;
> + bias-pull-down;
> + drive-strength = <2>;
> + };
> + };
> };
>
> &venus {
> @@ -641,6 +836,19 @@ &venus {
> firmware-name = "qcom/sdm845/oneplus6/venus.mbn";
> };
>
> +&wcd9340 {
I will send today v2 of
https://lore.kernel.org/all/20230113162245.117324-2-krzysztof.kozlowski@linaro.org/
which will conflict here. If my patch gets first, please rebase on top
of it.
> + pinctrl-0 = <&wcd_default>;
> + pinctrl-names = "default";
> + clock-names = "extclk";
> + clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
> + reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
> + vdd-buck-supply = <&vreg_s4a_1p8>;
> + vdd-buck-sido-supply = <&vreg_s4a_1p8>;
> + vdd-tx-supply = <&vreg_s4a_1p8>;
> + vdd-rx-supply = <&vreg_s4a_1p8>;
> + vdd-io-supply = <&vreg_s4a_1p8>;
> +};
> +
> &wifi {
> status = "okay";
> vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> index bf2cf92e8976..aae1a3a27144 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> @@ -32,3 +32,43 @@ &display_panel {
> &bq27441_fg {
> monitored-battery = <&battery>;
> };
> +
> +&i2c4 {
> + status = "okay";
> +
> + max98927_codec: max98927@3a {
audio-codec
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> + compatible = "maxim,max98927";
> + reg = <0x3a>;
> + #sound-dai-cells = <1>;
> +
> + pinctrl-0 = <&speaker_default>;
> + pinctrl-names = "default";
> +
> + reset-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
> +
> + vmon-slot-no = <1>;
> + imon-slot-no = <0>;
> + };
> +};
> +
> +&sound {
> + model = "OnePlus 6";
> + audio-routing = "RX_BIAS", "MCLK",
> + "AMIC2", "MIC BIAS2",
> + "AMIC3", "MIC BIAS4",
> + "AMIC4", "MIC BIAS1",
> + "AMIC5", "MIC BIAS4";
> +
> + speaker-dai-link {
> + codec {
> + sound-dai = <&max98927_codec 0>;
> + };
> + };
> +};
> +
> +&wcd9340 {
> + qcom,micbias1-microvolt = <1800000>;
> + qcom,micbias2-microvolt = <2700000>;
> + qcom,micbias3-microvolt = <1800000>;
> + qcom,micbias4-microvolt = <1800000>;
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts
> index 1b6b5bf368df..4b1a5d3c3713 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts
> @@ -29,10 +29,39 @@ &display_panel {
> compatible = "samsung,s6e3fc2x01";
> };
>
> +&i2c4 {
> + /* nxp,tfa9894 @ 0x34 */
I don't think this is related to this patch.
> +};
> +
> &bq27441_fg {
> monitored-battery = <&battery>;
> };
>
> +&sound {
> + model = "OnePlus 6T";
> + audio-routing = "RX_BIAS", "MCLK",
> + "AMIC1", "MIC BIAS3",
> + "AMIC2", "MIC BIAS2",
> + "AMIC3", "MIC BIAS4",
> + "AMIC4", "MIC BIAS1",
> + "AMIC5", "MIC BIAS3";
> +
> +};
> +
> +/*
> + * The TFA9894 codec is currently unsupported.
> + * We need to delete the node to allow the soundcard
> + * to probe for headphones/earpiece.
> + */
> +/delete-node/ &speaker_playback;
> +
> &rmi4_f12 {
> touchscreen-y-mm = <148>;
> };
> +
> +&wcd9340 {
> + qcom,micbias1-microvolt = <2700000>;
> + qcom,micbias2-microvolt = <2700000>;
> + qcom,micbias3-microvolt = <2700000>;
> + qcom,micbias4-microvolt = <2700000>;
> +};
Best regards,
Krzysztof
prev parent reply other threads:[~2023-01-18 10:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-18 9:20 [PATCH] arm64: dts: qcom: sdm845-oneplus-*: add audio devices Caleb Connolly
2023-01-18 9:37 ` Krzysztof Kozlowski [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a516cca3-acf6-61cd-20d8-9961c6bf3e52@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=caleb.connolly@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=me@dylanvanassche.be \
--cc=phone-devel@vger.kernel.org \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).