| Qualcomm audio devices for ALSA sound SoC |
| |
| * msm-pcm |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-dsp" |
| |
| * msm-pcm-routing |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-routing" |
| |
| * msm-pcm-lpa |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-lpa" |
| |
| * msm-compr-dsp |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-compr-dsp" |
| |
| * msm-voip-dsp |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-voip-dsp" |
| |
| * msm-pcm-voice |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-voice" |
| |
| * msm-stub-codec |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-stub-codec" |
| |
| * msm-dai-fe |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-dai-fe" |
| |
| * msm-pcm-afe |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-afe" |
| |
| * msm-pcm-dtmf |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-dtmf" |
| - qcom,msm-pcm-dtmf : Enable DTMF driver in Audio. DTMF driver is |
| used for generation and detection of DTMF tones, when user is in |
| active voice call. APR commands are sent from DTMF driver to ADSP. |
| |
| * msm-dai-stub |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-dai-stub" |
| - qcom,msm-dai-stub : This enables stub CPU dai in Audio. |
| The stub dai is used when there is no real backend in Audio. |
| |
| * msm-dai-q6-hdmi |
| |
| Required properties: |
| - compatible : "msm-dai-q6-hdmi" |
| - qcom,msm-dai-q6-dev-id : The hdmi multi channel port ID. |
| It is passed onto the dsp from the apps to form an audio |
| path to the HDMI device. Currently the only supported value |
| is 8, which indicates the rx path used for audio playback |
| on HDMI device. |
| |
| * msm-dai-q6 |
| |
| [First Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "msm-dai-q6" |
| |
| Optional properties: |
| |
| - qcom,ext-spk-amp-supply : External speaker amplifier power supply. |
| - qcom,ext-spk-amp-gpio : External speaker amplifier enable signal. |
| |
| [Second Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-dai-q6-dev" |
| - qcom,msm-dai-q6-dev-id : The slimbus multi channel port ID |
| Value is from 16384 to 16393 |
| BT SCO port ID value from 12288 to 12289 |
| RT Proxy port ID values from 224 to 225 and 240 to |
| 241 |
| FM Rx and TX port ID values from 12292 to 12293 |
| incall record Rx and TX port ID values from 32771 to 32772 |
| inCall Music Delivery port ID is 32773 |
| |
| * msm-auxpcm |
| |
| [First Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-auxpcm-resource" |
| |
| - qcom,msm-cpudai-auxpcm-clk: clock for auxpcm. The first value is |
| for 8khz mode, the second is for |
| 16khz |
| |
| - qcom,msm-cpudai-auxpcm-mode: mode information. The first value is |
| for 8khz mode, the second is for |
| 16khz |
| 0 - for PCM |
| |
| - qcom,msm-cpudai-auxpcm-sync: sync information. The first value is |
| for 8khz mode, the second is for |
| 16khz |
| |
| - qcom,msm-cpudai-auxpcm-frame: No.of bytes per frame. The first |
| value is for 8khz mode, the second |
| is for 16khz |
| 5 - 256BPF |
| 4 - 128BPF |
| |
| - qcom,msm-cpudai-auxpcm-quant: Type of quantization. The first |
| value is for 8khz mode, the second |
| is for 16khz |
| 2 - Linear quantization |
| |
| - qcom,msm-cpudai-auxpcm-slot: Slot number for multichannel scenario |
| The first value is for 8khz mode the |
| second is for 16khz |
| Value is 1 |
| |
| - qcom,msm-cpudai-auxpcm-data: Data field - 0. The first value is |
| for 8khz mode, the second is for |
| 16khz |
| |
| - qcom,msm-cpudai-auxpcm-pcm-clk-rate: Clock rate for pcm - 2048000. The |
| first value is for 8khz mode, the |
| second is for auxpcm |
| |
| [Second Level Nodes] |
| |
| Required Properties: |
| |
| - qcom,msm-auxpcm-dev-id: This property specifies the device |
| port id. |
| For Rx device, the port id is 4106 |
| and for Tx device, the port id is 4107 |
| |
| - compatible: "qcom,msm-auxpcm-dev" |
| |
| * msm-pcm-hostless |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-hostless" |
| |
| * msm-ocmem-audio |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-ocmem-audio" |
| |
| - qcom,msm_bus,name: Client name |
| |
| - qcom,msm_bus,num_cases: Total number of use cases |
| |
| - qcom,msm_bus,active_only: Context flag for requests in active |
| or dual (active & sleep) contex |
| |
| - qcom,msm_bus,num_paths: Total number of master-slave pairs |
| |
| - qcom,msm_bus,vectors: Arrays of unsigned integers |
| representing: |
| master-id, slave-id, arbitrated |
| bandwidth, |
| instantaneous bandwidth |
| * wcd9xxx_intc |
| |
| Required properties: |
| |
| - compatible : "qcom,wcd9xxx-irq" |
| |
| - interrupt-controller : Mark this device node as an |
| interrupt controller |
| |
| - #interrupt-cells : Should be 1 |
| |
| - interrupt-parent : Parent interrupt controller |
| |
| - interrupts : Interrupt number on the parent |
| interrupt controller |
| |
| - interrupt-names : Name of interrupt on the parent |
| interrupt controller |
| |
| Example: |
| |
| qcom,msm-pcm { |
| compatible = "qcom,msm-pcm-dsp"; |
| }; |
| |
| qcom,msm-pcm-routing { |
| compatible = "qcom,msm-pcm-routing"; |
| }; |
| |
| qcom,msm-pcm-lpa { |
| compatible = "qcom,msm-pcm-lpa"; |
| }; |
| |
| qcom,msm-compr-dsp { |
| compatible = "qcom,msm-compr-dsp"; |
| }; |
| |
| qcom,msm-voip-dsp { |
| compatible = "qcom,msm-voip-dsp"; |
| }; |
| |
| qcom,msm-stub-codec { |
| compatible = "qcom,msm-stub-codec"; |
| }; |
| |
| qcom,msm-dai-fe { |
| compatible = "qcom,msm-dai-fe"; |
| }; |
| |
| qcom,msm-pcm-dtmf { |
| compatible = "qcom,msm-pcm-dtmf"; |
| }; |
| |
| qcom,msm-dai-stub { |
| compatible = "qcom,msm-dai-stub"; |
| }; |
| |
| qcom,msm-dai-q6-hdmi { |
| compatible = "qcom,msm-dai-q6-hdmi"; |
| qcom,msm-dai-q6-dev-id = <8>; |
| }; |
| |
| qcom,msm-dai-q6 { |
| compatible = "qcom,msm-dai-q6"; |
| qcom,msm-dai-q6-sb-0-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16384>; |
| }; |
| |
| qcom,msm-dai-q6-sb-0-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16385>; |
| }; |
| |
| qcom,msm-dai-q6-sb-1-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16386>; |
| }; |
| |
| qcom,msm-dai-q6-sb-1-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16387>; |
| }; |
| |
| qcom,msm-dai-q6-sb-3-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16390>; |
| }; |
| |
| qcom,msm-dai-q6-sb-3-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16391>; |
| }; |
| |
| qcom,msm-dai-q6-sb-4-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16392>; |
| }; |
| |
| qcom,msm-dai-q6-sb-4-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16393>; |
| }; |
| |
| qcom,msm-dai-q6-bt-sco-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <12288>; |
| }; |
| |
| qcom,msm-dai-q6-bt-sco-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <12289>; |
| }; |
| |
| qcom,msm-dai-q6-int-fm-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <12292>; |
| }; |
| |
| qcom,msm-dai-q6-int-fm-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <12293>; |
| }; |
| |
| qcom,msm-dai-q6-be-afe-pcm-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <224>; |
| }; |
| |
| qcom,msm-dai-q6-be-afe-pcm-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <225>; |
| }; |
| |
| qcom,msm-dai-q6-afe-proxy-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <241>; |
| }; |
| |
| qcom,msm-dai-q6-afe-proxy-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <240>; |
| }; |
| |
| qcom,msm-dai-q6-incall-record-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <32771>; |
| }; |
| |
| qcom,msm-dai-q6-incall-record-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <32772>; |
| }; |
| |
| qcom,msm-dai-q6-incall-music-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <32773>; |
| }; |
| }; |
| |
| qcom,msm-auxpcm { |
| compatible = "qcom,msm-auxpcm-resource"; |
| qcom,msm-cpudai-auxpcm-clk = "pcm_clk"; |
| qcom,msm-cpudai-auxpcm-mode = <0>, <0>; |
| qcom,msm-cpudai-auxpcm-sync = <1>, <1>; |
| qcom,msm-cpudai-auxpcm-frame = <5>, <4>; |
| qcom,msm-cpudai-auxpcm-quant = <2>, <2>; |
| qcom,msm-cpudai-auxpcm-slot = <1>, <1>; |
| qcom,msm-cpudai-auxpcm-data = <0>, <0>; |
| qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>; |
| |
| qcom,msm-auxpcm-rx { |
| qcom,msm-auxpcm-dev-id = <4106>; |
| compatible = "qcom,msm-auxpcm-dev"; |
| }; |
| |
| qcom,msm-auxpcm-tx { |
| qcom,msm-auxpcm-dev-id = <4107>; |
| compatible = "qcom,msm-auxpcm-dev"; |
| }; |
| }; |
| |
| qcom,msm-pcm-hostless { |
| compatible = "qcom,msm-pcm-hostless"; |
| }; |
| |
| qcom,msm-ocmem-audio { |
| compatible = "qcom,msm-ocmem-audio"; |
| qcom,msm_bus,name = "audio-ocmem"; |
| qcom,msm_bus,num_cases = <2>; |
| qcom,msm_bus,active_only = <0>; |
| qcom,msm_bus,num_paths = <1>; |
| qcom,msm_bus,vectors = |
| <11 604 0 0>, |
| <11 604 32505856 325058560>; |
| }; |
| |
| wcd9xxx_intc: wcd9xxx-irq { |
| compatible = "qcom,wcd9xxx-irq"; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| interrupt-parent = <&msmgpio>; |
| interrupts = <72 0>; |
| interrupt-names = "cdc-int"; |
| }; |
| |
| * MSM8974 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,msm8974-audio-taiko" |
| - qcom,model : The user-visible name of this sound card. |
| - qcom,audio-routing : A list of the connections between audio components. |
| Each entry is a pair of strings, the first being the connection's sink, |
| the second being the connection's source. |
| - qcom,cdc-mclk-gpios : GPIO on which mclk signal is comming. |
| - taiko-mclk-clk : phandle to PMIC8941 clkdiv1 node. |
| - qcom,taiko-mclk-clk-freq : Taiko mclk Freq in Hz. currently only 9600000Hz |
| is supported. |
| - prim-auxpcm-gpio-clk : GPIO on which AUXPCM clk signal is coming. |
| - prim-auxpcm-gpio-sync : GPIO on which AUXPCM SYNC signal is coming. |
| - prim-auxpcm-gpio-din : GPIO on which AUXPCM DIN signal is coming. |
| - prim-auxpcm-gpio-dout : GPIO on which AUXPCM DOUT signal is coming. |
| |
| Optional properties: |
| - qcom,hdmi-audio-rx: specifies if HDMI audio support is enabled or not. |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,msm8974-audio-taiko"; |
| qcom,model = "msm8974-taiko-snd-card"; |
| |
| qcom,audio-routing = |
| "RX_BIAS", "MCLK", |
| "LDO_H", "MCLK", |
| "HEADPHONE", "LDO_H", |
| "Ext Spk Bottom Pos", "LINEOUT1", |
| "Ext Spk Bottom Neg", "LINEOUT3", |
| "Ext Spk Top Pos", "LINEOUT2", |
| "Ext Spk Top Neg", "LINEOUT4", |
| "AMIC1", "MIC BIAS1 Internal1", |
| "MIC BIAS1 Internal1", "Handset Mic", |
| "AMIC2", "MIC BIAS2 External", |
| "MIC BIAS2 External", "Headset Mic", |
| "AMIC3", "MIC BIAS3 Internal1", |
| "MIC BIAS3 Internal1", "ANCRight Headset Mic", |
| "AMIC4", "MIC BIAS1 Internal2", |
| "MIC BIAS1 Internal2", "ANCLeft Headset Mic", |
| "DMIC1", "MIC BIAS1 External", |
| "MIC BIAS1 External", "Digital Mic1", |
| "DMIC2", "MIC BIAS1 External", |
| "MIC BIAS1 External", "Digital Mic2", |
| "DMIC3", "MIC BIAS3 External", |
| "MIC BIAS3 External", "Digital Mic3", |
| "DMIC4", "MIC BIAS3 External", |
| "MIC BIAS3 External", "Digital Mic4", |
| "DMIC5", "MIC BIAS4 External", |
| "MIC BIAS4 External", "Digital Mic5", |
| "DMIC6", "MIC BIAS4 External", |
| "MIC BIAS4 External", "Digital Mic6"; |
| |
| qcom,cdc-mclk-gpios = <&pm8941_gpios 15 0>; |
| taiko-mclk-clk = <&pm8941_clkdiv1>; |
| qcom,taiko-mclk-clk-freq = <9600000>; |
| |
| qcom,hdmi-audio-rx; |
| |
| prim-auxpcm-gpio-clk = <&msmgpio 65 0>; |
| prim-auxpcm-gpio-sync = <&msmgpio 66 0>; |
| prim-auxpcm-gpio-din = <&msmgpio 67 0>; |
| prim-auxpcm-gpio-dout = <&msmgpio 68 0>; |
| }; |
| |
| * msm-dai-mi2s |
| |
| [First Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "msm-dai-mi2s" |
| |
| [Second Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-dai-q6-mi2s" |
| - qcom,msm-dai-q6-mi2s-dev-id: MSM or MDM can use Slimbus or I2S interface to |
| transfer data to (WCD9XXX) codec. |
| If slimbus interface is used then "msm-dai-q6" |
| needs to be filled with correct data for |
| slimbus interface. |
| The sections "msm-dai-mi2s" is used by MDM or |
| MSM to use I2S interface with codec. |
| This section is used by CPU driver in ASOC MSM |
| to configure MI2S interface. MSM internally |
| has multiple MI2S namely Primary, Secondary, |
| Tertiary and Quaternary MI2S. |
| They are represented with id 0, 1, 2, 3 |
| respectively. |
| The field "qcom,msm-dai-q6-mi2s-dev-id" |
| represents which of the MI2S block is used. |
| These MI2S are connected to I2S interface. |
| |
| - qcom,msm-mi2s-rx-lines: Each MI2S interface in MSM has one or more SD |
| lines. These lines are used for data transfer |
| between codec and MSM. |
| This element in indicates which output RX lines |
| are used in the MI2S interface. |
| |
| - qcom,msm-mi2s-tx-lines: Each MI2S interface in MSM has one or more SD |
| lines. These lines are used for data transfer |
| between codec and MSM. |
| This element in indicates which input TX lines |
| are used in the MI2S interface. |
| |
| Example: |
| |
| qcom,msm-dai-mi2s { |
| compatible = "qcom,msm-dai-mi2s"; |
| qcom,msm-dai-q6-mi2s-prim { |
| compatible = "qcom,msm-dai-q6-mi2s"; |
| qcom,msm-dai-q6-mi2s-dev-id = <0>; |
| qcom,msm-mi2s-rx-lines = <2>; |
| qcom,msm-mi2s-tx-lines = <1>; |
| }; |
| }; |
| |
| * MSM9625 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,mdm9625-audio-taiko" |
| - qcom,model : The user-visible name of this sound card. |
| - qcom,audio-routing : A list of the connections between audio components. |
| Each entry is a pair of strings, the first being the connection's sink, |
| the second being the connection's source. |
| - qcom,taiko-mclk-clk-freq : Master clock value given to codec. Some WCD9XXX |
| codec can run at different mclk values. Mclk value can be 9.6MHz or 12.288MHz. |
| This element represents the value for MCLK provided to codec. |
| - prim-i2s-gpio-ws : Specifies gpio assigned for primary WS I2S pin. |
| - prim-i2s-gpio-din : Specifies gpio assigned for primary DIN I2S pin. |
| - prim-i2s-gpio-dout : Specifies gpio assigned for primary DOUT I2S pin. |
| - prim-i2s-gpio-sclk : Specifies gpio assigned for primary SCLK I2S pin. |
| - prim-i2s-gpio-mclk : Specifies gpio assigned for MCLK I2S pin. |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,mdm9625-audio-taiko"; |
| qcom,model = "mdm9625-taiko-i2s-snd-card"; |
| |
| qcom,audio-routing = |
| "RX_BIAS", "MCLK", |
| "LDO_H", "MCLK", |
| "Ext Spk Bottom Pos", "LINEOUT1", |
| "Ext Spk Bottom Neg", "LINEOUT3", |
| "Ext Spk Top Pos", "LINEOUT2", |
| "Ext Spk Top Neg", "LINEOUT4", |
| "AMIC1", "MIC BIAS1 External", |
| "MIC BIAS1 External", "Handset Mic", |
| "AMIC2", "MIC BIAS2 External", |
| "MIC BIAS2 External", "Headset Mic", |
| "AMIC3", "MIC BIAS3 Internal1", |
| "MIC BIAS3 Internal1", "ANCRight Headset Mic", |
| "AMIC4", "MIC BIAS1 Internal2", |
| "MIC BIAS1 Internal2", "ANCLeft Headset Mic", |
| "DMIC1", "MIC BIAS1 External", |
| "MIC BIAS1 External", "Digital Mic1", |
| "DMIC2", "MIC BIAS1 External", |
| "MIC BIAS1 External", "Digital Mic2", |
| "DMIC3", "MIC BIAS3 External", |
| "MIC BIAS3 External", "Digital Mic3", |
| "DMIC4", "MIC BIAS3 External", |
| "MIC BIAS3 External", "Digital Mic4", |
| "DMIC5", "MIC BIAS4 External", |
| "MIC BIAS4 External", "Digital Mic5", |
| "DMIC6", "MIC BIAS4 External", |
| "MIC BIAS4 External", "Digital Mic6"; |
| qcom,taiko-mclk-clk-freq = <12288000>; |
| prim-i2s-gpio-ws = <&msmgpio 12 0>; |
| prim-i2s-gpio-din = <&msmgpio 13 0>; |
| prim-i2s-gpio-dout = <&msmgpio 14 0>; |
| prim-i2s-gpio-sclk = <&msmgpio 15 0>; |
| prim-i2s-gpio-mclk = <&msmgpio 71 0>; |
| }; |
| |
| * msm-adsp-loader |
| |
| Required properties: |
| - compatible : "msm-adsp-loader" |
| - qcom,adsp-state: |
| It is possible that some MSM use PIL to load the ADSP image. While |
| other MSM may use SBL to load the ADSP image at boot. Audio APR needs |
| state of ADSP to register and enable APR to be used for sending commands |
| to ADSP. so adsp-state represents the state of ADSP to ADSP loader. |
| Value of 0 indicates ADSP loader needs to use PIL and value of 2 means |
| ADSP image is already loaded by SBL. |
| |
| Example: |
| |
| qcom,msm-adsp-loader { |
| compatible = "qcom,adsp-loader"; |
| qcom,adsp-state = <2>; |
| }; |