xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/sound/tdm-slot.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunTDM slot:
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThis specifies audio DAI's TDM slot.
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunTDM slot properties:
6*4882a593Smuzhiyundai-tdm-slot-num : Number of slots in use.
7*4882a593Smuzhiyundai-tdm-slot-width : Width in bits for each slot.
8*4882a593Smuzhiyundai-tdm-slot-tx-mask : Transmit direction slot mask, optional
9*4882a593Smuzhiyundai-tdm-slot-rx-mask : Receive direction slot mask, optional
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunFor instance:
12*4882a593Smuzhiyun	dai-tdm-slot-num = <2>;
13*4882a593Smuzhiyun	dai-tdm-slot-width = <8>;
14*4882a593Smuzhiyun	dai-tdm-slot-tx-mask = <0 1>;
15*4882a593Smuzhiyun	dai-tdm-slot-rx-mask = <1 0>;
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunAnd for each specified driver, there could be one .of_xlate_tdm_slot_mask()
18*4882a593Smuzhiyunto specify an explicit mapping of the channels and the slots. If it's absent
19*4882a593Smuzhiyunthe default snd_soc_of_xlate_tdm_slot_mask() will be used to generating the
20*4882a593Smuzhiyuntx and rx masks.
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunFor snd_soc_of_xlate_tdm_slot_mask(), the tx and rx masks will use a 1 bit
23*4882a593Smuzhiyunfor an active slot as default, and the default active bits are at the LSB of
24*4882a593Smuzhiyunthe masks.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunThe explicit masks are given as array of integers, where the first
27*4882a593Smuzhiyunnumber presents bit-0 (LSB), second presents bit-1, etc. Any non zero
28*4882a593Smuzhiyunnumber is considered 1 and 0 is 0. snd_soc_of_xlate_tdm_slot_mask()
29*4882a593Smuzhiyundoes not do anything, if either mask is set non zero value.
30