xref: /freebsd/sys/contrib/device-tree/Bindings/sound/qcom,lpass-cpu.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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