Hi, On Thu, Nov 3, 2022 at 11:29 PM Sheng-Liang Pan <sheng-liang.pan@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > add specific 3mic setting as sc7280-herobrine-audio-rt5682-3mic.dtsi, > so we can include sc7280-herobrine-audio-rt5682-3mic.dtsi for evoker > as it uses rt5682 with 3 mics. > > Signed-off-by: Sheng-Liang Pan <sheng-liang.pan@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> > --- > > Changes in v10: > - add evoker include specific sc7280-herobrine-audio-rt5682-3mic.dtsi setting > > .../sc7280-herobrine-audio-rt5682-3mic.dtsi | 194 ++++++++++++++++++ > .../boot/dts/qcom/sc7280-herobrine-evoker.dts | 2 + > 2 files changed, 196 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi > > diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi > new file mode 100644 > index 0000000000000..01bc8ee93b19a > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-audio-rt5682-3mic.dtsi > @@ -0,0 +1,194 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * > + * This file defines the common audio settings for the child boards > + * using rt5682 codec and having 3 dmics connected to sc7280. > + * > + * Copyright 2022 Google LLC. > + */ > + > +/ { > + /* BOARD-SPECIFIC TOP LEVEL NODES */ > + sound: sound { > + compatible = "google,sc7280-herobrine"; > + model = "sc7280-rt5682-max98360a-3mic"; > + > + status = "okay"; As others have mentioned, you don't need the status "okay" here. You only need that if you're overriding a parent dtsi file's "disabled" status. > + audio-routing = > + "VA DMIC0", "vdd-micb", > + "VA DMIC1", "vdd-micb", > + "VA DMIC2", "vdd-micb", > + "VA DMIC3", "vdd-micb", > + > + "Headphone Jack", "HPOL", > + "Headphone Jack", "HPOR"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + dai-link@0 { > + link-name = "MAX98360"; > + reg = <0>; > + > + cpu { > + sound-dai = <&lpass_cpu MI2S_SECONDARY>; > + }; > + > + codec { > + sound-dai = <&max98360a>; > + }; > + }; > + > + dai-link@1 { > + link-name = "DisplayPort"; > + reg = <1>; > + > + cpu { > + sound-dai = <&lpass_cpu LPASS_DP_RX>; > + }; > + > + codec { > + sound-dai = <&mdss_dp>; > + }; > + }; > + > + dai-link@2 { > + link-name = "ALC5682"; > + reg = <2>; > + > + cpu { > + sound-dai = <&lpass_cpu MI2S_PRIMARY>; > + }; > + > + codec { > + sound-dai = <&alc5682 0 /* aif1 */>; > + }; > + }; > + > + dai-link@4 { > + link-name = "DMIC"; > + reg = <4>; > + > + cpu { > + sound-dai = <&lpass_cpu LPASS_CDC_DMA_VA_TX0>; > + }; > + > + codec { > + sound-dai = <&lpass_va_macro 0>; > + }; > + }; > + }; > +}; > + > +hp_i2c: &i2c2 { > + status = "okay"; As others have mentioned, the new convention is for status to be the last property so you should update this. ...ideally you could add a patch to your series that makes similar cleanups to the 1-mic version to keep diffs clean. > + clock-frequency = <400000>; > + > + alc5682: codec@1a { > + compatible = "realtek,rt5682s"; > + reg = <0x1a>; > + pinctrl-names = "default"; > + pinctrl-0 = <&hp_irq>; > + > + #sound-dai-cells = <1>; > + > + interrupt-parent = <&tlmm>; > + interrupts = <101 IRQ_TYPE_EDGE_BOTH>; > + > + AVDD-supply = <&pp1800_alc5682>; > + MICVDD-supply = <&pp3300_codec>; > + > + realtek,dmic1-data-pin = <1>; > + realtek,dmic1-clk-pin = <2>; > + realtek,jd-src = <1>; > + realtek,dmic-clk-rate-hz = <2048000>; > + }; > +}; > + > +&lpass_cpu { > + status = "okay"; > + > + pinctrl-names = "default"; > + pinctrl-0 = <&mi2s0_data0>, <&mi2s0_data1>, <&mi2s0_mclk>, <&mi2s0_sclk>, <&mi2s0_ws>, > + <&mi2s1_data0>, <&mi2s1_sclk>, <&mi2s1_ws>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + dai-link@0 { > + reg = <MI2S_PRIMARY>; > + qcom,playback-sd-lines = <1>; > + qcom,capture-sd-lines = <0>; > + }; > + > + dai-link@1 { > + reg = <MI2S_SECONDARY>; > + qcom,playback-sd-lines = <0>; > + }; > + > + dai-link@5 { > + reg = <LPASS_DP_RX>; > + }; > + > + dai-link@25 { > + reg = <LPASS_CDC_DMA_VA_TX0>; > + }; > +}; > + > +&lpass_va_macro { > + status = "okay"; > + vdd-micb-supply = <&pp1800_l2c>; > + pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>, <&lpass_dmic23_clk>, > + <&lpass_dmic23_data>; > +}; Can you add here: /* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */ ...which will make it obvious that the sort order resets. Our current convention is that pinctrl stuff is at the bottom of the file and sorted separately from the non-pinctrl stuff. > +&mi2s0_data0 { > + drive-strength = <6>; > + bias-disable; > +}; > + > +&mi2s0_data1 { > + drive-strength = <6>; > + bias-disable; > +}; > + > +&mi2s0_mclk { > + drive-strength = <6>; > + bias-disable; > +}; > + > +&mi2s0_sclk { > + drive-strength = <6>; > + bias-disable; > +}; > + > +&mi2s0_ws { > + drive-strength = <6>; > + bias-disable; > +}; > + > +&lpass_dmic01_clk { > + drive-strength = <8>; > + bias-disable; > +}; As others have mentioned, "&lpass" sorts before "&mi2s" so these should be listed above. > +&lpass_dmic01_clk_sleep { > + drive-strength = <2>; > +}; > + > +&lpass_dmic01_data { > + bias-pull-down; > +}; > + > +&lpass_dmic23_clk { > + drive-strength = <8>; > + bias-disable; > +}; > + > +&lpass_dmic23_clk_sleep { > + drive-strength = <2>; > +}; > + > +&lpass_dmic23_data { > + bias-pull-down; > +}; > diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dts > index dcdd4eecfe670..d608682f9742b 100644 > --- a/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dts > +++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine-evoker.dts > @@ -8,6 +8,8 @@ > /dts-v1/; > > #include "sc7280-herobrine-evoker.dtsi" > +#include "sc7280-herobrine-audio-rt5682-3mic.dtsi" > + Get rid of extra blank line you added here. > / { > model = "Google Evoker"; > -- > 2.34.1 >