| Qualcomm audio devices for ALSA sound SoC |
| |
| * msm-pcm |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-dsp" |
| |
| - qcom,msm-pcm-dsp-id : device node id |
| |
| * msm-pcm-low-latency |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-dsp" |
| |
| - qcom,msm-pcm-dsp-id : device node id |
| |
| Optional properties |
| |
| - qcom,msm-pcm-low-latency : Flag indicating whether |
| the device node is of type low latency. |
| |
| - qcom,latency-level : Flag indicating whether the device node |
| is of type regular low latency or ultra |
| low latency. |
| regular : regular low latency stream |
| ultra : ultra low latency stream |
| |
| * 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-compress-dsp |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-compress-dsp" |
| |
| * msm-voip-dsp |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-voip-dsp" |
| |
| * msm-pcm-voice |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-voice" |
| - qcom,destroy-cvd : Flag indicating whether to destroy cvd at |
| the end of call for low memory targets |
| - qcom,vote-bms : Flag indicating whether to vote for BMS during |
| the call start and stop |
| |
| * msm-voice-host-pcm |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-voice-host-pcm" |
| |
| * 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 |
| |
| [First Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "msm-dai-stub" |
| |
| [Second Level Nodes] |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-dai-stub-dev" |
| - qcom,msm-dai-stub-dev-id : Stub dai port ID value is from 0 to 3. |
| This enables stub CPU dai in Audio. The stub dai is used when |
| there is no real backend in Audio. |
| |
| * msm-dai-q6-spdif |
| |
| Optional properties: |
| |
| - compatible : "msm-dai-q6-spdif" |
| |
| * 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-lsm-client |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-lsm-client" |
| |
| * msm-pcm-loopback |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-pcm-loopback" |
| |
| * 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 16397 |
| 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 |
| incall Music 2 Delivery port ID is 32770 |
| |
| * msm-auxpcm |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-auxpcm-dev" |
| |
| - 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-num-slots: Number of slots per mode in the |
| msm-cpudai-auxpcm-slot-mapping |
| array. |
| The first value is for 8khz mode, the |
| second is for 16khz. Max number of |
| slots supported by DSP is 4, anything |
| above 4 will be truncated to 4 when |
| sent to DSP. |
| |
| - qcom,msm-cpudai-auxpcm-slot-mapping: Array of slot numbers for multi |
| slot scenario. The first array |
| is for 8khz mode, the second is |
| for 16khz. The size of the array |
| is determined by the value in |
| qcom,msm-cpudai-auxpcm-num-slots |
| |
| - 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 |
| |
| - qcom,msm-auxpcm-interface: name of AUXPCM interface "primary" |
| indicates primary AUXPCM interface |
| "secondary" indicates secondary |
| AUXPCM interface |
| |
| * 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 |
| * audio_slimslave |
| |
| Required properties: |
| |
| - compatible : "qcom,audio-slimslave" |
| |
| - elemental-addr: slimbus slave enumeration address. |
| |
| * msm-cpe-lsm |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-cpe-lsm" |
| |
| * msm-dai-slim |
| |
| Required properties: |
| |
| - compatible : "qcom,msm-dai-slim" |
| |
| - elemental-addr: slimbus slave enumeration address. |
| |
| Example: |
| |
| qcom,msm-pcm { |
| compatible = "qcom,msm-pcm-dsp"; |
| qcom,msm-pcm-dsp-id = <0>; |
| }; |
| |
| qcom,msm-pcm-low-latency { |
| compatible = "qcom,msm-pcm-dsp"; |
| qcom,msm-pcm-dsp-id = <1>; |
| qcom,msm-pcm-low-latency; |
| }; |
| |
| 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-compress-dsp { |
| compatible = "qcom,msm-compress-dsp"; |
| }; |
| |
| qcom,msm-voip-dsp { |
| compatible = "qcom,msm-voip-dsp"; |
| }; |
| |
| qcom,msm-pcm-voice { |
| compatible = "qcom,msm-pcm-voice"; |
| qcom,destroy-cvd; |
| }; |
| |
| qcom,msm-pcm-voice { |
| compatible = "qcom,msm-pcm-voice"; |
| qcom,vote-bms; |
| }; |
| |
| qcom,msm-voice-host-pcm { |
| compatible = "qcom,msm-voice-host-pcm"; |
| }; |
| |
| 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-spdif { |
| compatible = "qcom,msm-dai-q6-spdif"; |
| }; |
| |
| 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-sb-5-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16395>; |
| }; |
| |
| qcom,msm-dai-q6-sb-6-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16396>; |
| }; |
| |
| qcom,msm-dai-q6-sb-6-tx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <16397>; |
| }; |
| |
| 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-dai-q6-incall-music-2-rx { |
| compatible = "qcom,msm-dai-q6-dev"; |
| qcom,msm-dai-q6-dev-id = <32770>; |
| }; |
| }; |
| |
| qcom,msm-pri-auxpcm { |
| qcom,msm-cpudai-auxpcm-mode = <1>, <1>; |
| 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-num-slots = <4>, <4>; |
| qcom,msm-cpudai-auxpcm-slot-mapping = <1 0 0 0>, <1 3 0 0>; |
| qcom,msm-cpudai-auxpcm-data = <0>, <0>; |
| qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>; |
| qcom,msm-auxpcm-interface = "primary"; |
| 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"; |
| }; |
| |
| audio_slimslave { |
| compatible = "qcom,audio-slimslave"; |
| elemental-addr = [ff ff ff ff 17 02]; |
| }; |
| |
| msm_dai_slim { |
| compatible = "qcom,msm_dai_slim"; |
| elemental-addr = [ff ff ff fe 17 02]; |
| }; |
| * MSM8916 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,msm8x16-audio-codec" |
| - qcom,model : The user-visible name of this sound card. |
| - qcom,msm-snd-card-id : This id is used to recognize the sound card number |
| - qcom,msm-codec-type : This property is used to recognize the codec type |
| internal or external. |
| - qcom,msm-hs-micbias-type : This property is used to recognize the headset |
| micbias type, internal or external. |
| - qcom,msm-ext-pa : This property is used to inform machine driver about |
| the connection of external PA over available MI2S interfaces, |
| following values can be given to this property. |
| primary -> Primary MI2S interface |
| secondary -> Secondary MI2S interface |
| tertiary -> Tertiary MI2S interface |
| quaternary -> Quaternary MI2S interface |
| - qcom,msm-mclk-freq : This property is used to inform machine driver about |
| mclk frequency needs to be configured for internal and external PA. |
| - qcom,msm-mbhc-hphl-swh: This property is used to distinguish headset HPHL |
| switch type on target typically the switch type will be normally open or |
| normally close, value for this property 0 for normally close and 1 for |
| normally open. |
| - qcom,msm-mbhc-gnd-swh: This property is used to distinguish headset GND |
| switch type on target typically the switch type will be normally open or |
| normally close, value for this property 0 for normally close and 1 for |
| normally open. |
| - qcom,audio-routing : A list of the connections between audio components. |
| - pinctrl-names : Pincntrl entries to configure the PDM gpio lines and |
| cross connection switch gpio accordingly |
| - pinctrl-0 : This explains the active state of the PDM gpio lines |
| - pinctrl-1 : This explains the suspend state of the PDM gpio lines |
| - pinctrl-2 : This explains the active state of the cross connection |
| gpio lines |
| - pinctrl-3 : This explains the suspend state of the cross connection |
| gpio lines |
| - qcom,tapan-mclk-clk-freq : Tapan mclk Freq in Hz. |
| - qcom,prim-auxpcm-gpio-clk : GPIO on which Primary AUXPCM clk signal is coming. |
| - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming. |
| - qcom,prim-auxpcm-gpio-din : GPIO on which Primary AUXPCM DIN signal is coming. |
| - qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming. |
| - qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port |
| - qcom,tapan-codec-9302: Indicates that this device node is for WCD9302 audio |
| codec. |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| |
| Optional Properties: |
| - qcom,us-euro-gpios : GPIO on which gnd/mic swap signal is coming. |
| - qcom,msm-micbias1-ext-cap : Boolean. Enable micbias1 external |
| capacitor mode. |
| - qcom,msm-micbias2-ext-cap : Boolean. Enable micbias2 external |
| capacitor mode. |
| - qcom,msm-spk-ext-pa : GPIO which enables external speaker pa. |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,msm8x16-audio-codec"; |
| qcom,model = "msm8x16-snd-card"; |
| qcom,msm-snd-card-id = <0>; |
| qcom,msm-codec-type = "internal"; |
| qcom,msm-ext-pa = <0>; |
| qcom,msm-mclk-freq = <12288000>; |
| qcom,msm-mbhc-hphl-swh = <0>; |
| qcom,msm-mbhc-gnd-swh = <0>; |
| qcom,msm-hs-micbias-type = "internal"; |
| qcom,cdc-us-euro-gpios = <&msmgpio 120 0>; |
| qcom,msm-spk-ext-pa = <&msm_gpio 0 0>; |
| qcom,audio-routing = |
| "RX_BIAS", "MCLK", |
| "INT_LDO_H", "MCLK", |
| "MIC BIAS External", "Handset Mic", |
| "MIC BIAS Internal2", "Headset Mic", |
| "MIC BIAS External", "Secondary Mic", |
| "AMIC1", "MIC BIAS External", |
| "AMIC2", "MIC BIAS Internal2", |
| "AMIC3", "MIC BIAS External"; |
| pinctrl-names = "cdc_pdm_lines_act", |
| "cdc_pdm_lines_sus", |
| "cross_conn_det_act", |
| "cross_conn_det_sus"; |
| pinctrl-0 = <&cdc_pdm_lines_act>; |
| pinctrl-1 = <&cdc_pdm_lines_sus>; |
| pinctrl-2 = <&cross_conn_det_act>; |
| pinctrl-3 = <&cross_conn_det_sus>; |
| qcom,tapan-mclk-clk-freq = <9600000>; |
| qcom,prim-auxpcm-gpio-clk = <&msm_gpio 63 0>; |
| qcom,prim-auxpcm-gpio-sync = <&msm_gpio 64 0>; |
| qcom,prim-auxpcm-gpio-din = <&msm_gpio 65 0>; |
| qcom,prim-auxpcm-gpio-dout = <&msm_gpio 66 0>; |
| qcom,prim-auxpcm-gpio-set = "prim-gpio-prim"; |
| qcom,tapan-codec-9302; |
| asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, |
| <&loopback>, <&compress>, <&hostless>, |
| <&afe>, <&lsm>, <&routing>, <&lpa>; |
| asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", |
| "msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback", |
| "msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe", |
| "msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa"; |
| asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>, |
| <&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>, |
| <&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>, |
| <&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>, |
| <&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>, |
| <&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>, |
| <&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>, |
| <&incall_music_2_rx>; |
| asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8", |
| "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1", |
| "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", |
| "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385", |
| "msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387", |
| "msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391", |
| "msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393", |
| "msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289", |
| "msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293", |
| "msm-dai-q6-dev.224", "msm-dai-q6-dev.225", |
| "msm-dai-q6-dev.241", "msm-dai-q6-dev.240", |
| "msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772", |
| "msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770"; |
| asoc-codec = <&stub>, <&pm8916_tombak_dig>; |
| asoc-codec-names = "msm-stub-codec.1", "tombak_codec"; |
| }; |
| |
| * MSM8974 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,msm8974-audio-taiko" |
| - qcom,model : The user-visible name of this sound card. |
| - reg : Offset and length of the register region(s) for MI2S/PCM MUX |
| - reg-names : Register region name(s) referenced in reg above |
| Required register resource entries are: |
| "lpaif_pri_mode_muxsel": Physical address of MUX to select between |
| Primary PCM and Primary MI2S |
| "lpaif_sec_mode_muxsel": Physical address of MUX to select between |
| Secondary PCM and Secondary MI2S |
| "lpaif_tert_mode_muxsel": Physical address of MUX to select between |
| Primary PCM and Tertiary MI2S |
| "lpaif_quat_mode_muxsel": Physical address of MUX to select between |
| Secondary PCM and Quarternary MI2S |
| - 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. |
| - qcom,taiko-mclk-clk-freq : Taiko mclk Freq in Hz. currently only 9600000Hz |
| is supported. |
| - qcom,prim-auxpcm-gpio-clk : GPIO on which Primary AUXPCM clk signal is coming. |
| - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming. |
| - qcom,prim-auxpcm-gpio-din : GPIO on which Primary AUXPCM DIN signal is coming. |
| - qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming. |
| - qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port |
| Possible Values: |
| prim-gpio-prim : Primary AUXPCM shares GPIOs with Primary MI2S |
| prim-gpio-tert : Primary AUXPCM shares GPIOs with Tertiary MI2S |
| - qcom,sec-auxpcm-gpio-clk : GPIO on which Secondary AUXPCM clk signal is coming. |
| - qcom,sec-auxpcm-gpio-sync : GPIO on which Secondary AUXPCM SYNC signal is coming. |
| - qcom,sec-auxpcm-gpio-din : GPIO on which Secondary AUXPCM DIN signal is coming. |
| - qcom,sec-auxpcm-gpio-dout : GPIO on which Secondary AUXPCM DOUT signal is coming. |
| - qcom,us-euro-gpios : GPIO on which gnd/mic swap signal is coming. |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| Optional properties: |
| - qcom,hdmi-audio-rx: specifies if HDMI audio support is enabled or not. |
| - qcom,ext-ult-spk-amp-gpio : GPIO for enabling of speaker path amplifier. |
| |
| - qcom,ext-ult-lo-amp-gpio: GPIO to enable external ultrasound lineout |
| amplifier. |
| |
| - qcom,headset-jack-type-NO: Adjust GPIO level based on the headset jack type. |
| - qcom,tapan-codec-9302: Indicates that this device node is for WCD9302 audio |
| codec. |
| - qcom,mbhc-bias-internal: Flag to indicate if internal micbias should be used |
| for headset detection. |
| - qcom,dock-plug-det-irq: Interrupt line to detect Docking/Undocking of Liquid |
| device |
| - qcom,ext-spk-rear-panel-irq: Interrupt line to detect rear panel speakers |
| jack for Dragon Board. |
| - qcom,ext-spk-front-panel-irq: Interrupt line to detect front panel speakers |
| jack for Dragon Board. |
| - qcom,ext-mic-front-panel-irq: Interrupt line to detect front panel microphone |
| jack for Dragon Board. |
| - qcom,mbhc-audio-jack-type : String to indicate the jack type on the hardware. |
| Possible Values: |
| 4-pole-jack : Jack on the hardware is 4-pole. |
| 5-pole-jack : Jack on the hardware is 5-pole. |
| 6-pole-jack : Jack on the hardware is 6-pole. |
| |
| * APQ8074 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,apq8074-audio-taiko" |
| |
| 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>; |
| qcom,taiko-mclk-clk-freq = <9600000>; |
| qcom,us-euro-gpios = <&pm8941_gpios 20 0>; |
| |
| qcom,hdmi-audio-rx; |
| qcom,ext-ult-lo-amp-gpio = <&pm8941_gpios 6 0>; |
| |
| qcom,ext-mclk-gpio = <&msmgpio 47 0>; |
| qcom,dock-plug-det-irq = <&pm8841_mpps 2 0>; |
| qcom,prim-auxpcm-gpio-clk = <&msmgpio 65 0>; |
| qcom,prim-auxpcm-gpio-sync = <&msmgpio 66 0>; |
| qcom,prim-auxpcm-gpio-din = <&msmgpio 67 0>; |
| qcom,prim-auxpcm-gpio-dout = <&msmgpio 68 0>; |
| qcom,prim-auxpcm-gpio-set = "prim-gpio-prim"; |
| qcom,sec-auxpcm-gpio-clk = <&msmgpio 79 0>; |
| qcom,sec-auxpcm-gpio-sync = <&msmgpio 80 0>; |
| qcom,sec-auxpcm-gpio-din = <&msmgpio 81 0>; |
| qcom,sec-auxpcm-gpio-dout = <&msmgpio 82 0>; |
| qcom,mbhc-audio-jack-type = "4-pole-jack"; |
| }; |
| |
| * 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 : "qcom,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. |
| |
| Optional properties: |
| - qcom,proc-img-to-load; |
| This property can be used to override default ADSP |
| loading by PIL. Based on string input, different proc is |
| loaded. Right now we are adding option "modem" |
| for 8916 purpose. Default image will be "adsp" which |
| will load LPASS Q6 for other targets as expected. |
| "adsp" option need not be explicitly mentioned in |
| DTSI file, as it is default option. |
| |
| Example: |
| |
| qcom,msm-adsp-loader { |
| compatible = "qcom,adsp-loader"; |
| qcom,adsp-state = <2>; |
| qcom,proc-img-to-load = "modem"; |
| }; |
| |
| * msm-audio-ion |
| |
| Required properties: |
| - compatible : "qcom,msm-audio-ion" |
| |
| Optional properties: |
| - qcom,smmu-enabled: |
| It is possible that some MSM have SMMU in ADSP. While other MSM use |
| no SMMU. Audio lib introduce wrapper for ION APIs. The wrapper needs |
| presence of SMMU in ADSP to handle ION APIs differently. |
| Presence of this property means ADSP has SMMU in it. |
| |
| Example: |
| |
| qcom,msm-audio-ion { |
| compatible = "qcom,msm-audio-ion; |
| qcom,smmu-enabled; |
| }; |
| |
| * MSM8226 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,msm8226-audio-tapan" |
| - qcom,model : The user-visible name of this sound card. |
| - qcom,tapan-mclk-clk-freq : Tapan mclk Freq in Hz. currently only 9600000Hz |
| is supported. |
| - qcom,prim-auxpcm-gpio-clk : GPIO on which Primary AUXPCM clk signal is coming. |
| - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming. |
| - qcom,prim-auxpcm-gpio-din : GPIO on which Primary AUXPCM DIN signal is coming. |
| - qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming. |
| - qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port |
| Possible Values: |
| prim-gpio-prim : Primary AUXPCM shares GPIOs with Primary MI2S |
| prim-gpio-tert : Primary AUXPCM shares GPIOs with Tertiary MI2S |
| |
| Optional Properties: |
| - qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming. |
| - qcom,cdc-lineout-spkr-gpios : GPIO which controls external PAs to enable Lineout1/2 speaker |
| - qcom,cdc-vdd-spkr-gpios : GPIO which controls PA for VDD speaker |
| - qcom,headset-jack-type-NC: Set if the headset jack type is NC (Normally Closed) |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,msm8226-audio-tapan"; |
| qcom,model = "msm8226-tapan-snd-card"; |
| qcom,tapan-mclk-clk-freq = <9600000>; |
| qcom,prim-auxpcm-gpio-clk = <&msmgpio 63 0>; |
| qcom,prim-auxpcm-gpio-sync = <&msmgpio 64 0>; |
| qcom,prim-auxpcm-gpio-din = <&msmgpio 65 0>; |
| qcom,prim-auxpcm-gpio-dout = <&msmgpio 66 0>; |
| qcom,prim-auxpcm-gpio-set = "prim-gpio-prim"; |
| qcom,cdc-us-euro-gpios = <&msmgpio 69 0>; |
| qcom,cdc-lineout-spkr-gpios = <&pm8226_gpios 2 0>; |
| qcom,cdc-vdd-spkr-gpios = <&pm8226_gpios 3 0>; |
| }; |
| |
| * MSM8939 Slimbus ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,msm8939-audio-codec" |
| - qcom,model : The user-visible name of this sound card. |
| - qcom,tapan-mclk-clk-freq : Tapan mclk Freq in Hz. currently only 9600000Hz |
| is supported. |
| - pinctrl-states: the names of the pinctrl states that used by the driver to |
| configure the TLMM pins. The allowed states are subset of the following |
| list: "cdc_slim_lines_act", "cdc_slim_lines_sus", |
| "cross_conn_det_act","cross_conn_det_sus", |
| "cdc_vdd_spkr_act","cdc_vdd_spkr_sus";. |
| - pinctrl-#: a list of pinctrl phandles for the different pinctrl states. Refer |
| to "Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt" for the |
| pinctrl handles definitions. Each pinctrl-# corresponds to the respective |
| state name that appears under pinctrl-state list. |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| |
| |
| Optional Properties: |
| - qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming. |
| - qcom,cdc-vdd-spkr-gpios : GPIO which controls PA for VDD speaker |
| - qcom,headset-jack-type-NC: Set if the headset jack type is NC (Normally Closed) |
| |
| Example: |
| |
| sound-9306 { |
| compatible = "qcom,msm8939-audio-codec"; |
| qcom,model = "msm8939-tapan-snd-card"; |
| qcom,tapan-mclk-clk-freq = <9600000>; |
| pinctrl-names = "cdc_slim_lines_act", "cdc_slim_lines_sus", |
| "cross_conn_det_act","cross_conn_det_sus", |
| "cdc_vdd_spkr_act","cdc_vdd_spkr_sus"; |
| pinctrl-0 = <&cdc_slim_lines_act>; |
| pinctrl-1 = <&cdc_slim_lines_sus>; |
| pinctrl-2 = <&cross_conn_det_act>; |
| pinctrl-3 = <&cross_conn_det_sus>; |
| pinctrl-4 = <&cdc_vdd_spkr_act>; |
| pinctrl-5 = <&cdc_vdd_spkr_sus>; |
| qcom,cdc-us-euro-gpios = <&msm_gpio 120 0>; |
| qcom,cdc-vdd-spkr-gpios = <&msm_gpio 121 0>; |
| qcom,headset-jack-type-NC; |
| }; |
| |
| * MDM9630 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,mdm9630-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. |
| - qcom,prim-i2s-gpio-ws : Specifies gpio assigned for primary WS I2S pin. |
| - qcom,prim-i2s-gpio-din : Specifies gpio assigned for primary DIN I2S pin. |
| - qcom,prim-i2s-gpio-dout : Specifies gpio assigned for primary DOUT I2S pin. |
| - qcom,prim-i2s-gpio-sclk : Specifies gpio assigned for primary SCLK I2S pin. |
| - qcom,prim-i2s-gpio-mclk : Specifies gpio assigned for MCLK I2S pin. |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,mdm9630-audio-taiko"; |
| qcom,model = "mdm9630-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>; |
| qcom,prim-i2s-gpio-ws = <&msmgpio 12 0>; |
| qcom,prim-i2s-gpio-din = <&msmgpio 13 0>; |
| qcom,prim-i2s-gpio-dout = <&msmgpio 14 0>; |
| qcom,prim-i2s-gpio-sclk = <&msmgpio 15 0>; |
| qcom,prim-i2s-gpio-mclk = <&msmgpio 71 0>; |
| }; |
| |
| * APQ8084 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,apq8084-audio-taiko" or "qcom,apq8084-audio-tomtom" |
| - 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 : Taiko mclk Freq in Hz. currently only 9600000Hz |
| is supported. This property is required when |
| compatible field is "qcom,apq8084-audio-taiko" |
| - qcom,tomtom-mclk-clk-freq : TomTom mclk Freq in Hz. currently only 9600000Hz |
| is supported. This property is required when |
| compatible field is "qcom,apq8084-audio-tomtom" |
| - qcom,prim-auxpcm-gpio-clk : GPIO on which Primary AUXPCM clk signal is coming. |
| - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming. |
| - qcom,prim-auxpcm-gpio-din : GPIO on which Primary AUXPCM DIN signal is coming. |
| - qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming. |
| - qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port |
| Possible Values: |
| prim-gpio-prim : Primary AUXPCM shares GPIOs with Primary MI2S |
| prim-gpio-tert : Primary AUXPCM shares GPIOs with Tertiary MI2S |
| - qcom,sec-auxpcm-gpio-clk : GPIO on which Secondary AUXPCM clk signal is coming. |
| - qcom,sec-auxpcm-gpio-sync : GPIO on which Secondary AUXPCM SYNC signal is coming. |
| - qcom,sec-auxpcm-gpio-din : GPIO on which Secondary AUXPCM DIN signal is coming. |
| - qcom,sec-auxpcm-gpio-dout : GPIO on which Secondary AUXPCM DOUT signal is coming. |
| - qcom,ext-mclk-gpio : audio uses this GPIO to request mclk in MTP and CDP |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| Optional properties: |
| - qcom,us-euro-gpios : GPIO on which gnd/mic swap signal is coming. |
| - qcom,hdmi-audio-rx: specifies if HDMI audio support is enabled or not. |
| - qcom,headset-jack-type-NO: Adjust GPIO level based on the headset jack type. |
| - qcom,mbhc-bias-internal: Flag to indicate if internal micbias should be used |
| for headset detection. |
| - qcom,dock-plug-det-irq: Interrupt line to detect Docking/Undocking of Liquid |
| device |
| - qcom,mbhc-audio-jack-type : String to indicate the jack type on the hardware. |
| Possible Values: |
| 4-pole-jack : Jack on the hardware is 4-pole. |
| 5-pole-jack : Jack on the hardware is 5-pole. |
| 6-pole-jack : Jack on the hardware is 6-pole. |
| - pinctrl-states: the names of the pinctrl states that used by the driver to |
| configure the TLMM pins. The allowed states are subset of the following |
| list: pmx-pri-mi2s-active, pmx-pri-quad-mi2s-active, pmx-quad-mi2s-active, |
| pmx-pri-quad-mi2s-sleep, pmx-quad-mi2s-sleep. |
| - pinctrl-#: a list of pinctrl phandles for the different pinctrl states. Refer |
| to "Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt" for the |
| pinctrl handles definitions. Each pinctrl-# corresponds to the respective |
| state name that appears under pinctrl-state list. |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,apq8084-audio-taiko"; |
| "qcom,apq8084-audio-i2s-taiko" |
| qcom,model = "apq8084-taiko-mtp-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,taiko-mclk-clk-freq = <9600000>; |
| qcom,us-euro-gpios = <&pm8941_gpios 20 0>; |
| |
| qcom,hdmi-audio-rx; |
| |
| qcom,ext-mclk-gpio = <&msmgpio 47 0>; |
| qcom,dock-plug-det-irq = <&msmgpio 142 0>; |
| qcom,prim-auxpcm-gpio-clk = <&msmgpio 65 0>; |
| qcom,prim-auxpcm-gpio-sync = <&msmgpio 66 0>; |
| qcom,prim-auxpcm-gpio-din = <&msmgpio 67 0>; |
| qcom,prim-auxpcm-gpio-dout = <&msmgpio 68 0>; |
| qcom,prim-auxpcm-gpio-set = "prim-gpio-prim"; |
| qcom,sec-auxpcm-gpio-clk = <&msmgpio 79 0>; |
| qcom,sec-auxpcm-gpio-sync = <&msmgpio 80 0>; |
| qcom,sec-auxpcm-gpio-din = <&msmgpio 81 0>; |
| qcom,sec-auxpcm-gpio-dout = <&msmgpio 82 0>; |
| qcom,mbhc-audio-jack-type = "4-pole-jack"; |
| pinctrl-names = "pmx-pri-mi2s-active", |
| "pmx-pri-quad-mi2s-active", |
| "pmx-quad-mi2s-active", |
| "pmx-pri-quad-mi2s-sleep"; |
| pinctrl-0 = <&pmx_pri_mi2s_active &pmx_quad_mi2s_sleep>; |
| pinctrl-1 = <&pmx_pri_mi2s_active &pmx_quad_mi2s_active>; |
| pinctrl-2 = <&pmx_pri_mi2s_sleep &pmx_quad_mi2s_active>; |
| pinctrl-3 = <&pmx_pri_mi2s_sleep &pmx_quad_mi2s_sleep>; |
| }; |
| |
| * MSM8994 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,msm8994-audio-tomtom" |
| - qcom,model : The user-visible name of this sound card. |
| - clock-names : clock name defined for external clock. |
| - clocks : external clock defined for codec clock. |
| - pinctrl-names : pinctrl state names for each pin group configuration. |
| - pinctrl-x : defines pinctrl state for each pin group |
| - qcom,ext-ult-spk-amp-gpio : GPIO to enable ultrasound emitter amp. |
| - qcom,mbhc-audio-jack-type : Indicates headset jack type. |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,msm8994-asoc-snd"; |
| qcom,model = "msm8994-tomtom-snd-card"; |
| |
| qcom,audio-routing = |
| "RX_BIAS", "MCLK", |
| "LDO_H", "MCLK", |
| "AIF4 MAD", "MCLK", |
| "ultrasound amp", "LINEOUT1", |
| "ultrasound amp", "LINEOUT3", |
| "AMIC1", "MIC BIAS1 Internal1", |
| "MIC BIAS1 Internal1", "Handset Mic", |
| "AMIC2", "MIC BIAS2 External", |
| "MIC BIAS2 External", "Headset Mic", |
| "AMIC3", "MIC BIAS2 External", |
| "MIC BIAS2 External", "ANCRight Headset Mic", |
| "AMIC4", "MIC BIAS2 External", |
| "MIC BIAS2 External", "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"; |
| |
| clock-names = "osr_clk"; |
| clocks = <&clock_rpm clk_div_clk1>; |
| pinctrl-names= "mi2s-sleep", |
| "mi2s-active", |
| "auxpcm-sleep", |
| "auxpcm-active"; |
| pinctrl-0 = <&pri_mi2s_sleep>; |
| pinctrl-1 = <&pri_mi2s_active>; |
| pinctrl-2 = <&sec_aux_pcm_sleep>; |
| pinctrl-3 = <&sec_aux_pcm_active>; |
| qcom,ext-ult-spk-amp-gpio = <&pmi8994_gpios 1 0>; |
| qcom,mbhc-audio-jack-type = "6-pole-jack"; |
| asoc-platform = <&pcm0>,<&pcm1>,<&pcm2>,<&voip>,<&voice>, |
| <&loopback>,<&compress>,<&hostless>, |
| <&afe>,<&lsm>,<&routing>,<&cpe>,<&compr>; |
| asoc-platform-names = "msm-pcm-dsp.0","msm-pcm-dsp.1","msm-pcm-dsp.2", |
| "msm-voip-dsp","msm-pcm-voice","msm-pcm-loopback", |
| "msm-compress-dsp","msm-pcm-hostless","msm-pcm-afe", |
| "msm-lsm-client","msm-pcm-routing", "msm-cpe-lsm", |
| "msm-compr-dsp"; |
| asoc-cpu = <&dai_pri_auxpcm>,<&dai_sec_auxpcm>,<&dai_hdmi>,<&dai_mi2s>, |
| <&sb_0_rx>,<&sb_0_tx>,<&sb_1_rx>,<&sb_1_tx>, |
| <&sb_2_rx>,<&sb_2_tx>,<&sb_3_rx>,<&sb_3_tx>, |
| <&sb_4_rx>,<&sb_4_tx>,<&sb_5_tx>,<&bt_sco_rx>, |
| <&bt_sco_tx>,<&int_fm_rx>,<&int_fm_tx>,<&afe_pcm_rx>, |
| <&afe_pcm_tx>,<&afe_proxy_rx>,<&afe_proxy_tx>, |
| <&incall_record_rx>,<&incall_record_tx>,<&incall_music_rx>, |
| <&incall_music2_rx>; |
| asoc-cpu-names = "msm-dai-q6-auxpcm.1","msm-dai-q6-auxpcm.2", |
| "msm-dai-q6-hdmi.8","msm-dai-q6-mi2s.0", |
| "msm-dai-q6-dev.16384","msm-dai-q6-dev.16385", |
| "msm-dai-q6-dev.16386","msm-dai-q6-dev.16387", |
| "msm-dai-q6-dev.16388","msm-dai-q6-dev.16389", |
| "msm-dai-q6-dev.16390","msm-dai-q6-dev.16391", |
| "msm-dai-q6-dev.16392","msm-dai-q6-dev.16393", |
| "msm-dai-q6-dev.16395","msm-dai-q6-dev.12288", |
| "msm-dai-q6-dev.12289","msm-dai-q6-dev.12292", |
| "msm-dai-q6-dev.12293","msm-dai-q6-dev.224", |
| "msm-dai-q6-dev.225","msm-dai-q6-dev.241", |
| "msm-dai-q6-dev.240","msm-dai-q6-dev.32771", |
| "msm-dai-q6-dev.32772","msm-dai-q6-dev.32773", |
| "msm-dai-q6-dev.32770"; |
| asoc-codec = <&stub>; |
| asoc-codec-names = "msm-stub-codec.1"; |
| }; |
| |
| * MDM9640 ASoC Machine driver |
| |
| Required properties: |
| - compatible : "qcom,mdm9640-audio-tomtom" |
| - 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,tomtom-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. |
| - pinctrl-names : pinctrl state names for each pin group configuration. |
| - pinctrl-x : defines pinctrl state for each pin group |
| - asoc-platform: This is phandle list containing the references to platform device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-platform-names: This property contains list of platform names. The order of |
| the platform names should match to that of the phandle order |
| given in "asoc-platform". |
| - asoc-cpu: This is phandle list containing the references to cpu dai device nodes |
| that are used as part of the sound card dai-links. |
| - asoc-cpu-names: This property contains list of cpu dai names. The order of the |
| cpu dai names should match to that of the phandle order given |
| in "asoc-cpu". The cpu names are in the form of "%s.%d" form, |
| where the id (%d) field represents the back-end AFE port id that |
| this CPU dai is associated with. |
| - asoc-codec: This is phandle list containing the references to codec dai device |
| nodes that are used as part of the sound card dai-links. |
| - asoc-codec-names: This property contains list of codec dai names. The order of the |
| codec dai names should match to that of the phandle order given |
| in "asoc-codec". |
| |
| Example: |
| |
| sound { |
| compatible = "qcom,mdm9640-audio-tomtom"; |
| qcom,model = "mdm9640-tomtom-i2s-snd-card"; |
| |
| qcom,audio-routing = |
| "RX_BIAS", "MCLK", |
| "LDO_H", "MCLK", |
| "AIF4 MAD", "MCLK", |
| "ultrasound amp", "LINEOUT1", |
| "ultrasound amp", "LINEOUT3", |
| "AMIC1", "MIC BIAS1 Internal1", |
| "MIC BIAS1 Internal1", "Handset Mic", |
| "AMIC2", "MIC BIAS2 External", |
| "MIC BIAS2 External", "Headset Mic", |
| "AMIC3", "MIC BIAS2 External", |
| "MIC BIAS2 External", "ANCRight Headset Mic", |
| "AMIC4", "MIC BIAS2 External", |
| "MIC BIAS2 External", "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,tomtom-mclk-clk-freq = <12288000>; |
| pinctrl-names = "pri-mi2s-active", |
| "pri-mi2s-sleep"; |
| pinctrl-0 = <&pri_mi2s_active>, <&pri_mi2s_din_active>; |
| pinctrl-1 = <&pri_mi2s_sleep>, <&pri_mi2s_din_sleep>; |
| }; |