1*c66ec88fSEmmanuel Vadot* Qualcomm Technologies LPASS CPU DAI 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis node models the Qualcomm Technologies Low-Power Audio SubSystem (LPASS). 4*c66ec88fSEmmanuel Vadot 5*c66ec88fSEmmanuel VadotRequired properties: 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel Vadot- compatible : "qcom,lpass-cpu" or "qcom,apq8016-lpass-cpu" 8*c66ec88fSEmmanuel Vadot- clocks : Must contain an entry for each entry in clock-names. 9*c66ec88fSEmmanuel Vadot- clock-names : A list which must include the following entries: 10*c66ec88fSEmmanuel Vadot * "ahbix-clk" 11*c66ec88fSEmmanuel Vadot * "mi2s-osr-clk" 12*c66ec88fSEmmanuel Vadot * "mi2s-bit-clk" 13*c66ec88fSEmmanuel Vadot : required clocks for "qcom,lpass-cpu-apq8016" 14*c66ec88fSEmmanuel Vadot * "ahbix-clk" 15*c66ec88fSEmmanuel Vadot * "mi2s-bit-clk0" 16*c66ec88fSEmmanuel Vadot * "mi2s-bit-clk1" 17*c66ec88fSEmmanuel Vadot * "mi2s-bit-clk2" 18*c66ec88fSEmmanuel Vadot * "mi2s-bit-clk3" 19*c66ec88fSEmmanuel Vadot * "pcnoc-mport-clk" 20*c66ec88fSEmmanuel Vadot * "pcnoc-sway-clk" 21*c66ec88fSEmmanuel Vadot 22*c66ec88fSEmmanuel Vadot- interrupts : Must contain an entry for each entry in 23*c66ec88fSEmmanuel Vadot interrupt-names. 24*c66ec88fSEmmanuel Vadot- interrupt-names : A list which must include the following entries: 25*c66ec88fSEmmanuel Vadot * "lpass-irq-lpaif" 26*c66ec88fSEmmanuel Vadot- pinctrl-N : One property must exist for each entry in 27*c66ec88fSEmmanuel Vadot pinctrl-names. See ../pinctrl/pinctrl-bindings.txt 28*c66ec88fSEmmanuel Vadot for details of the property values. 29*c66ec88fSEmmanuel Vadot- pinctrl-names : Must contain a "default" entry. 30*c66ec88fSEmmanuel Vadot- reg : Must contain an address for each entry in reg-names. 31*c66ec88fSEmmanuel Vadot- reg-names : A list which must include the following entries: 32*c66ec88fSEmmanuel Vadot * "lpass-lpaif" 33*c66ec88fSEmmanuel Vadot- #address-cells : Must be 1 34*c66ec88fSEmmanuel Vadot- #size-cells : Must be 0 35*c66ec88fSEmmanuel Vadot 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel Vadot 38*c66ec88fSEmmanuel VadotOptional properties: 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot- qcom,adsp : Phandle for the audio DSP node 41*c66ec88fSEmmanuel Vadot 42*c66ec88fSEmmanuel VadotBy default, the driver uses up to 4 MI2S SD lines, for a total of 8 channels. 43*c66ec88fSEmmanuel VadotThe SD lines to use can be configured by adding subnodes for each of the DAIs. 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel VadotRequired properties for each DAI (represented by a subnode): 46*c66ec88fSEmmanuel Vadot- reg : Must be one of the DAI IDs 47*c66ec88fSEmmanuel Vadot (usually part of dt-bindings header) 48*c66ec88fSEmmanuel Vadot- qcom,playback-sd-lines: List of serial data lines to use for playback 49*c66ec88fSEmmanuel Vadot Each SD line should be represented by a number from 0-3. 50*c66ec88fSEmmanuel Vadot- qcom,capture-sd-lines : List of serial data lines to use for capture 51*c66ec88fSEmmanuel Vadot Each SD line should be represented by a number from 0-3. 52*c66ec88fSEmmanuel Vadot 53*c66ec88fSEmmanuel VadotNote that adding a subnode changes the default to "no lines configured", 54*c66ec88fSEmmanuel Vadotso both playback and capture lines should be configured when a subnode is added. 55*c66ec88fSEmmanuel Vadot 56*c66ec88fSEmmanuel VadotExample: 57*c66ec88fSEmmanuel Vadot 58*c66ec88fSEmmanuel Vadotlpass@28100000 { 59*c66ec88fSEmmanuel Vadot compatible = "qcom,lpass-cpu"; 60*c66ec88fSEmmanuel Vadot clocks = <&lcc AHBIX_CLK>, <&lcc MI2S_OSR_CLK>, <&lcc MI2S_BIT_CLK>; 61*c66ec88fSEmmanuel Vadot clock-names = "ahbix-clk", "mi2s-osr-clk", "mi2s-bit-clk"; 62*c66ec88fSEmmanuel Vadot interrupts = <0 85 1>; 63*c66ec88fSEmmanuel Vadot interrupt-names = "lpass-irq-lpaif"; 64*c66ec88fSEmmanuel Vadot pinctrl-names = "default", "idle"; 65*c66ec88fSEmmanuel Vadot pinctrl-0 = <&mi2s_default>; 66*c66ec88fSEmmanuel Vadot pinctrl-1 = <&mi2s_idle>; 67*c66ec88fSEmmanuel Vadot reg = <0x28100000 0x10000>; 68*c66ec88fSEmmanuel Vadot reg-names = "lpass-lpaif"; 69*c66ec88fSEmmanuel Vadot qcom,adsp = <&adsp>; 70*c66ec88fSEmmanuel Vadot 71*c66ec88fSEmmanuel Vadot #address-cells = <1>; 72*c66ec88fSEmmanuel Vadot #size-cells = <0>; 73*c66ec88fSEmmanuel Vadot 74*c66ec88fSEmmanuel Vadot /* Optional to set different MI2S SD lines */ 75*c66ec88fSEmmanuel Vadot dai@3 { 76*c66ec88fSEmmanuel Vadot reg = <MI2S_QUATERNARY>; 77*c66ec88fSEmmanuel Vadot qcom,playback-sd-lines = <0 1>; 78*c66ec88fSEmmanuel Vadot }; 79*c66ec88fSEmmanuel Vadot}; 80