blob: f9c8e3e2d8a7ead7491831b8825a9afb2d74ec0c [file] [log] [blame]
#include "../qcom/sdm670-audio-overlay.dtsi"
&tlmm {
cs35l36_pins {
cs35l36_reset_top: cs35l36_reset_top {
mux {
pins = "gpio14";
function = "gpio";
};
config {
pins = "gpio14";
drive-strength = <2>;
output-high;
};
};
cs35l36_irq_top: cs35l36_irq_top {
mux {
pins = "gpio80";
function = "gpio";
};
config {
pins = "gpio80";
drive-strength = <2>;
bias-pull-down;
input-enable;
};
};
cs35l36_reset_bottom: cs35l36_reset_bottom {
mux {
pins = "gpio16";
function = "gpio";
};
config {
pins = "gpio16";
drive-strength = <2>;
output-high;
};
};
cs35l36_irq_bottom: cs35l36_irq_bottom {
mux {
pins = "gpio79";
function = "gpio";
};
config {
pins = "gpio79";
drive-strength = <2>;
bias-pull-down;
input-enable;
};
};
};
rt5514_pin {
rt5514_irq: rt5514_irq {
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
drive-strength = <2>;
pull-down;
input-enable;
};
};
};
pri_tdm {
pri_tdm_sleep: pri_tdm_sleep {
mux {
pins = "gpio65";
function = "pri_mi2s";
};
config {
pins = "gpio65";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
};
};
pri_tdm_active: pri_tdm_active {
mux {
pins = "gpio65";
function = "pri_mi2s";
};
config {
pins = "gpio65";
drive-strength = <8>; /* 8 mA */
};
};
};
pri_tdm_ws {
pri_tdm_ws_sleep: pri_tdm_ws_sleep {
mux {
pins = "gpio66";
function = "pri_mi2s_ws";
};
config {
pins = "gpio66";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
};
};
pri_tdm_ws_active: pri_tdm_ws_active {
mux {
pins = "gpio66";
function = "pri_mi2s_ws";
};
config {
pins = "gpio66";
drive-strength = <8>; /* 8 mA */
};
};
};
pri_tdm_dout {
pri_tdm_dout_sleep: pri_tdm_dout_sleep {
mux {
pins = "gpio67";
function = "pri_mi2s";
};
config {
pins = "gpio67";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
};
};
pri_tdm_dout_active: pri_tdm_dout_active {
mux {
pins = "gpio67";
function = "pri_mi2s";
};
config {
pins = "gpio67";
drive-strength = <8>; /* 2 mA */
};
};
};
pri_tdm_din {
pri_tdm_din_sleep: pri_tdm_din_sleep {
mux {
pins = "gpio68";
function = "pri_mi2s";
};
config {
pins = "gpio68";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
};
};
pri_tdm_din_active: pri_tdm_din_active {
mux {
pins = "gpio68";
function = "pri_mi2s";
};
config {
pins = "gpio68";
drive-strength = <8>; /* 2 mA */
};
};
};
};
&lpi_tlmm {
sec_tdm {
sec_tdm_sleep: sec_tdm_sleep {
mux {
pins = "gpio8", "gpio9";
function = "func3";
};
config {
pins = "gpio8", "gpio9";
drive-strength = <2>; /* 2 mA */
pull-down;
input-enable;
};
};
sec_tdm_active: sec_tdm_active {
mux {
pins = "gpio8", "gpio9";
function = "func3";
};
config {
pins = "gpio8", "gpio9";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
};
};
sec_tdm_din {
sec_tdm_din_sleep: sec_tdm_din_sleep {
mux {
pins = "gpio10";
function = "func4";
};
config {
pins = "gpio10";
drive-strength = <2>; /* 2 mA */
pull-down;
input-enable;
};
};
sec_tdm_din_active: sec_tdm_din_active {
mux {
pins = "gpio10";
function = "func4";
};
config {
pins = "gpio10";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
};
};
sec_tdm_dout {
sec_tdm_dout_sleep: sec_tdm_dout_sleep {
mux {
pins = "gpio11";
function = "func2";
};
config {
pins = "gpio11";
drive-strength = <2>; /* 2 mA */
pull-down;
input-enable;
};
};
sec_tdm_dout_active: sec_tdm_dout_active {
mux {
pins = "gpio11";
function = "func2";
};
config {
pins = "gpio11";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
};
};
};
&soc {
msm_cirrus_playback {
compatible = "cirrus,msm-cirrus-playback";
usecase-names = "Playback";
/* the resistance is 7.7996 ohm */
cirrus,top-speaker-impedance = <10909>;
/* the percentage of tolerance is 20 */
cirrus,top-speaker-tolerance = <20>;
/* the resistance is 7.7996 ohm */
cirrus,top-speaker-mean = <10909>;
/* the resistance is 6.7994 ohm */
cirrus,bottom-speaker-impedance = <9510>;
/* the percentage of tolerance is 20 */
cirrus,bottom-speaker-tolerance = <20>;
/* the resistance is 6.7994 ohm */
cirrus,bottom-speaker-mean = <9510>;
};
};
&qupv3_se10_i2c {
status = "ok";
cs35l36_codec1: cs35l36@41 {
/* bottom speaker - portrait right */
compatible = "cirrus,cs35l36";
reg = <0x41>;
reset-gpios = <&tlmm 16 0>;
irq-gpio = <&tlmm 79 0>;
interrupt-parent = <&tlmm>;
interrupts = <79 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cs35l36_reset_bottom &cs35l36_irq_bottom>;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-ctl-select = <0x01>;
cirrus,boost-ctl-millivolt = <10000>;
cirrus,boost-peak-milliamp = <1800>;
cirrus,amp-gain-zc;
cirrus,ldm-mode-select = <0x01>;
cirrus,pdm-ldm-exit;
cirrus,pdm-ldm-enter;
cirrus,weak-fet-delay = <0x04>;
cirrus,weak-fet-thld = <0x01>;
cirrus,temp-warn-threshold = <0x01>;
cirrus,multi-amp-mode;
cirrus,irq-config {
cirrus,irq-drive-select = <0x01>;
cirrus,irq-polarity = <0x01>;
cirrus,irq-gpio-select = <0x00>;
cirrus,irq-output-enable = <0x01>;
cirrus,irq-src-select = <0x01>;
};
};
cs35l36_codec2: cs35l36@40 {
/* top speaker - portrait left */
compatible = "cirrus,cs35l36";
reg = <0x40>;
reset-gpios = <&tlmm 14 0>;
irq-gpio = <&tlmm 80 0>;
interrupt-parent = <&tlmm>;
interrupts = <80 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&cs35l36_reset_top &cs35l36_irq_top>;
cirrus,boost-ind-nanohenry = <1000>;
cirrus,boost-ctl-select = <0x01>;
cirrus,boost-ctl-millivolt = <10000>;
cirrus,boost-peak-milliamp = <1800>;
cirrus,amp-gain-zc;
cirrus,ldm-mode-select = <0x01>;
cirrus,pdm-ldm-exit;
cirrus,pdm-ldm-enter;
cirrus,weak-fet-delay = <0x04>;
cirrus,weak-fet-thld = <0x01>;
cirrus,temp-warn-threshold = <0x01>;
cirrus,multi-amp-mode;
cirrus,irq-config {
cirrus,irq-drive-select = <0x01>;
cirrus,irq-polarity = <0x01>;
cirrus,irq-gpio-select = <0x00>;
cirrus,irq-output-enable = <0x01>;
cirrus,irq-src-select = <0x01>;
};
};
rt5514: audio-codec@57 {
compatible = "realtek,rt5514";
reg = <0x57>;
};
};
&msm_dai_tdm_pri_tx {
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-sync-mode = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
};
&dai_pri_tdm_tx_0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pri_tdm_active &pri_tdm_ws_active
&pri_tdm_dout_active &pri_tdm_din_active>;
pinctrl-1 = <&pri_tdm_sleep &pri_tdm_ws_sleep
&pri_tdm_dout_sleep &pri_tdm_din_sleep>;
};
&msm_dai_tdm_sec_rx {
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-sync-mode = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
};
&msm_dai_tdm_sec_tx {
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-sync-mode = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
};
&dai_sec_tdm_rx_0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sec_tdm_active &sec_tdm_din_active
&sec_tdm_dout_active>;
pinctrl-1 = <&sec_tdm_sleep &sec_tdm_din_sleep
&sec_tdm_dout_sleep>;
};
&int_codec {
vdd_mic-supply = <&pm660_l11>;
qcom,audio-routing =
"RX_BIAS", "INT_MCLK0",
"SPK_RX_BIAS", "INT_MCLK0",
"INT_LDO_H", "INT_MCLK0",
"RX_I2S_CLK", "INT_MCLK0",
"TX_I2S_CLK", "INT_MCLK0",
"PDM_IN_RX1", "PDM_OUT_RX1",
"PDM_IN_RX2", "PDM_OUT_RX2",
"PDM_IN_RX3", "PDM_OUT_RX3",
"ADC1_IN", "ADC1_OUT",
"ADC2_IN", "ADC2_OUT",
"ADC3_IN", "ADC3_OUT",
"MIC1_REC BIAS", "Handset Mic",
"MIC1_ST BIAS", "SoundTrigger Mic1",
"MIC2_3 BIAS", "SoundTrigger Mic2",
"MIC2_3 BIAS", "Mic2_3 REGULATOR",
"Stereo1 DMIC Mux", "MIC BIAS Internal1",
"Stereo2 DMIC Mux", "Mic2_3 REGULATOR",
"DSP_IN", "SoundTrigger Switch";
qcom,wsa-disable;
qcom,wsa-max-devs = <0>;
qcom,msm-micbias1-ext-cap;
};
&msm_sdw_codec {
status = "disabled";
};
&qupv3_se2_spi {
status = "ok";
mnh-spi@0 {
compatible = "realtek,rt5514";
reg = <0>;
interrupt-parent = <&tlmm>;
interrupts = <126 0>;
irq-gpio = <&tlmm 126 0>;
pinctrl-names = "default";
pinctrl-0 = <&rt5514_irq>;
spi-max-frequency = <10000000>;
spi-cpol;
spi-cpha;
realtek,hotword-ignore-ms = <1000>;
realtek,musdet-ignore-ms = <2000>;
};
};
&wcd_usbc_analog_en1_gpio {
status = "disabled";
};
&cdc_sdw_gpios {
status = "disabled";
};
&wsa_spkr_en1 {
status = "disabled";
};
&wsa_spkr_en2 {
status = "disabled";
};
&pm660_gpios {
gpio@c100 {
reg = <0xc100 0x100>;
qcom,pin-num = <2>;
qcom,mode = <1>;
qcom,vin-sel = <0>;
qcom,src-sel = <2>;
qcom,pull = <5>;
qcom,out-strength = <2>;
qcom,master-en = <1>;
status = "okay";
};
};