// SPDX-License-Identifier: BSD-3-Clause /* * sc7280 device tree source for boards using Max98360 and wcd9385 codec * * Copyright (c) 2022, The Linux Foundation. All rights reserved. */ / { /* BOARD-SPECIFIC TOP LEVEL NODES */ sound: sound { compatible = "google,sc7280-herobrine"; model = "sc7280-wcd938x-max98360a-1mic"; audio-routing = "IN1_HPHL", "HPHL_OUT", "IN2_HPHR", "HPHR_OUT", "AMIC1", "MIC BIAS1", "AMIC2", "MIC BIAS2", "VA DMIC0", "MIC BIAS1", "VA DMIC1", "MIC BIAS1", "VA DMIC2", "MIC BIAS3", "VA DMIC3", "MIC BIAS3", "TX SWR_ADC0", "ADC1_OUTPUT", "TX SWR_ADC1", "ADC2_OUTPUT", "TX SWR_ADC2", "ADC3_OUTPUT", "TX SWR_DMIC0", "DMIC1_OUTPUT", "TX SWR_DMIC1", "DMIC2_OUTPUT", "TX SWR_DMIC2", "DMIC3_OUTPUT", "TX SWR_DMIC3", "DMIC4_OUTPUT", "TX SWR_DMIC4", "DMIC5_OUTPUT", "TX SWR_DMIC5", "DMIC6_OUTPUT", "TX SWR_DMIC6", "DMIC7_OUTPUT", "TX SWR_DMIC7", "DMIC8_OUTPUT"; #address-cells = <1>; #size-cells = <0>; dai-link@0 { link-name = "MAX98360A"; 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 = "WCD9385 Playback"; reg = <2>; cpu { sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>; }; codec { sound-dai = <&wcd9385 0>, <&swr0 0>, <&lpass_rx_macro 0>; }; }; dai-link@3 { link-name = "WCD9385 Capture"; reg = <3>; cpu { sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>; }; codec { sound-dai = <&wcd9385 1>, <&swr1 0>, <&lpass_tx_macro 0>; }; }; 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>; }; }; }; }; /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */ &lpass_cpu { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&mi2s1_data0>, <&mi2s1_sclk>, <&mi2s1_ws>; dai-link@1 { reg = ; qcom,playback-sd-lines = <0>; }; dai-link@5 { reg = ; }; dai-link@6 { reg = ; }; dai-link@19 { reg = ; }; dai-link@25 { reg = ; }; }; &lpass_rx_macro { status = "okay"; }; &lpass_tx_macro { status = "okay"; }; &lpass_va_macro { status = "okay"; }; &swr0 { status = "okay"; }; &swr1 { status = "okay"; }; &wcd9385 { status = "okay"; }; /* PINCTRL */ &lpass_dmic01_clk { drive-strength = <8>; bias-disable; }; &lpass_dmic01_data { bias-pull-down; }; &lpass_dmic23_clk { drive-strength = <8>; bias-disable; }; &lpass_dmic23_data { bias-pull-down; }; &lpass_rx_swr_clk { drive-strength = <2>; slew-rate = <1>; bias-disable; }; &lpass_rx_swr_data { drive-strength = <2>; slew-rate = <1>; bias-bus-hold; }; &lpass_tx_swr_clk { drive-strength = <2>; slew-rate = <1>; bias-disable; }; &lpass_tx_swr_data { drive-strength = <2>; slew-rate = <1>; bias-bus-hold; }; &mi2s1_data0 { drive-strength = <6>; bias-disable; }; &mi2s1_sclk { drive-strength = <6>; bias-disable; }; &mi2s1_ws { drive-strength = <6>; };