~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/qcom/qdsp6/q6afe.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /sound/soc/qcom/qdsp6/q6afe.h (Version linux-6.11.5) and /sound/soc/qcom/qdsp6/q6afe.h (Version linux-4.18.20)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 /* SPDX-License-Identifier: GPL-2.0 */
  2                                                     2 
  3 #ifndef __Q6AFE_H__                                 3 #ifndef __Q6AFE_H__
  4 #define __Q6AFE_H__                                 4 #define __Q6AFE_H__
  5                                                     5 
  6 #define AFE_PORT_MAX            129            !!   6 #include <dt-bindings/sound/qcom,q6afe.h>
                                                   >>   7 
                                                   >>   8 #define AFE_PORT_MAX            105
  7                                                     9 
  8 #define MSM_AFE_PORT_TYPE_RX 0                     10 #define MSM_AFE_PORT_TYPE_RX 0
  9 #define MSM_AFE_PORT_TYPE_TX 1                     11 #define MSM_AFE_PORT_TYPE_TX 1
 10 #define AFE_MAX_PORTS AFE_PORT_MAX                 12 #define AFE_MAX_PORTS AFE_PORT_MAX
 11                                                    13 
 12 #define Q6AFE_MAX_MI2S_LINES    4                  14 #define Q6AFE_MAX_MI2S_LINES    4
 13                                                    15 
 14 #define AFE_MAX_CHAN_COUNT      8                  16 #define AFE_MAX_CHAN_COUNT      8
 15 #define AFE_PORT_MAX_AUDIO_CHAN_CNT     0x8        17 #define AFE_PORT_MAX_AUDIO_CHAN_CNT     0x8
 16                                                    18 
 17 #define Q6AFE_LPASS_CLK_SRC_INTERNAL 1             19 #define Q6AFE_LPASS_CLK_SRC_INTERNAL 1
 18 #define Q6AFE_LPASS_CLK_ROOT_DEFAULT 0             20 #define Q6AFE_LPASS_CLK_ROOT_DEFAULT 0
 19                                                    21 
 20 #define LPAIF_DIG_CLK   1                          22 #define LPAIF_DIG_CLK   1
 21 #define LPAIF_BIT_CLK   2                          23 #define LPAIF_BIT_CLK   2
 22 #define LPAIF_OSR_CLK   3                          24 #define LPAIF_OSR_CLK   3
 23                                                    25 
 24 /* Clock ID for Primary I2S IBIT */                26 /* Clock ID for Primary I2S IBIT */
 25 #define Q6AFE_LPASS_CLK_ID_PRI_MI2S_IBIT           27 #define Q6AFE_LPASS_CLK_ID_PRI_MI2S_IBIT                          0x100
 26 /* Clock ID for Primary I2S EBIT */                28 /* Clock ID for Primary I2S EBIT */
 27 #define Q6AFE_LPASS_CLK_ID_PRI_MI2S_EBIT           29 #define Q6AFE_LPASS_CLK_ID_PRI_MI2S_EBIT                          0x101
 28 /* Clock ID for Secondary I2S IBIT */              30 /* Clock ID for Secondary I2S IBIT */
 29 #define Q6AFE_LPASS_CLK_ID_SEC_MI2S_IBIT           31 #define Q6AFE_LPASS_CLK_ID_SEC_MI2S_IBIT                          0x102
 30 /* Clock ID for Secondary I2S EBIT */              32 /* Clock ID for Secondary I2S EBIT */
 31 #define Q6AFE_LPASS_CLK_ID_SEC_MI2S_EBIT           33 #define Q6AFE_LPASS_CLK_ID_SEC_MI2S_EBIT                          0x103
 32 /* Clock ID for Tertiary I2S IBIT */               34 /* Clock ID for Tertiary I2S IBIT */
 33 #define Q6AFE_LPASS_CLK_ID_TER_MI2S_IBIT           35 #define Q6AFE_LPASS_CLK_ID_TER_MI2S_IBIT                          0x104
 34 /* Clock ID for Tertiary I2S EBIT */               36 /* Clock ID for Tertiary I2S EBIT */
 35 #define Q6AFE_LPASS_CLK_ID_TER_MI2S_EBIT           37 #define Q6AFE_LPASS_CLK_ID_TER_MI2S_EBIT                          0x105
 36 /* Clock ID for Quartnery I2S IBIT */              38 /* Clock ID for Quartnery I2S IBIT */
 37 #define Q6AFE_LPASS_CLK_ID_QUAD_MI2S_IBIT          39 #define Q6AFE_LPASS_CLK_ID_QUAD_MI2S_IBIT                         0x106
 38 /* Clock ID for Quartnery I2S EBIT */              40 /* Clock ID for Quartnery I2S EBIT */
 39 #define Q6AFE_LPASS_CLK_ID_QUAD_MI2S_EBIT          41 #define Q6AFE_LPASS_CLK_ID_QUAD_MI2S_EBIT                         0x107
 40 /* Clock ID for Speaker I2S IBIT */                42 /* Clock ID for Speaker I2S IBIT */
 41 #define Q6AFE_LPASS_CLK_ID_SPEAKER_I2S_IBIT        43 #define Q6AFE_LPASS_CLK_ID_SPEAKER_I2S_IBIT                       0x108
 42 /* Clock ID for Speaker I2S EBIT */                44 /* Clock ID for Speaker I2S EBIT */
 43 #define Q6AFE_LPASS_CLK_ID_SPEAKER_I2S_EBIT        45 #define Q6AFE_LPASS_CLK_ID_SPEAKER_I2S_EBIT                       0x109
 44 /* Clock ID for Speaker I2S OSR */                 46 /* Clock ID for Speaker I2S OSR */
 45 #define Q6AFE_LPASS_CLK_ID_SPEAKER_I2S_OSR         47 #define Q6AFE_LPASS_CLK_ID_SPEAKER_I2S_OSR                        0x10A
 46                                                    48 
 47 /* Clock ID for QUINARY  I2S IBIT */               49 /* Clock ID for QUINARY  I2S IBIT */
 48 #define Q6AFE_LPASS_CLK_ID_QUI_MI2S_IBIT           50 #define Q6AFE_LPASS_CLK_ID_QUI_MI2S_IBIT                        0x10B
 49 /* Clock ID for QUINARY  I2S EBIT */               51 /* Clock ID for QUINARY  I2S EBIT */
 50 #define Q6AFE_LPASS_CLK_ID_QUI_MI2S_EBIT           52 #define Q6AFE_LPASS_CLK_ID_QUI_MI2S_EBIT                        0x10C
 51 /* Clock ID for SENARY  I2S IBIT */                53 /* Clock ID for SENARY  I2S IBIT */
 52 #define Q6AFE_LPASS_CLK_ID_SEN_MI2S_IBIT           54 #define Q6AFE_LPASS_CLK_ID_SEN_MI2S_IBIT                        0x10D
 53 /* Clock ID for SENARY  I2S EBIT */                55 /* Clock ID for SENARY  I2S EBIT */
 54 #define Q6AFE_LPASS_CLK_ID_SEN_MI2S_EBIT           56 #define Q6AFE_LPASS_CLK_ID_SEN_MI2S_EBIT                        0x10E
 55 /* Clock ID for INT0 I2S IBIT  */                  57 /* Clock ID for INT0 I2S IBIT  */
 56 #define Q6AFE_LPASS_CLK_ID_INT0_MI2S_IBIT          58 #define Q6AFE_LPASS_CLK_ID_INT0_MI2S_IBIT                       0x10F
 57 /* Clock ID for INT1 I2S IBIT  */                  59 /* Clock ID for INT1 I2S IBIT  */
 58 #define Q6AFE_LPASS_CLK_ID_INT1_MI2S_IBIT          60 #define Q6AFE_LPASS_CLK_ID_INT1_MI2S_IBIT                       0x110
 59 /* Clock ID for INT2 I2S IBIT  */                  61 /* Clock ID for INT2 I2S IBIT  */
 60 #define Q6AFE_LPASS_CLK_ID_INT2_MI2S_IBIT          62 #define Q6AFE_LPASS_CLK_ID_INT2_MI2S_IBIT                       0x111
 61 /* Clock ID for INT3 I2S IBIT  */                  63 /* Clock ID for INT3 I2S IBIT  */
 62 #define Q6AFE_LPASS_CLK_ID_INT3_MI2S_IBIT          64 #define Q6AFE_LPASS_CLK_ID_INT3_MI2S_IBIT                       0x112
 63 /* Clock ID for INT4 I2S IBIT  */                  65 /* Clock ID for INT4 I2S IBIT  */
 64 #define Q6AFE_LPASS_CLK_ID_INT4_MI2S_IBIT          66 #define Q6AFE_LPASS_CLK_ID_INT4_MI2S_IBIT                       0x113
 65 /* Clock ID for INT5 I2S IBIT  */                  67 /* Clock ID for INT5 I2S IBIT  */
 66 #define Q6AFE_LPASS_CLK_ID_INT5_MI2S_IBIT          68 #define Q6AFE_LPASS_CLK_ID_INT5_MI2S_IBIT                       0x114
 67 /* Clock ID for INT6 I2S IBIT  */                  69 /* Clock ID for INT6 I2S IBIT  */
 68 #define Q6AFE_LPASS_CLK_ID_INT6_MI2S_IBIT          70 #define Q6AFE_LPASS_CLK_ID_INT6_MI2S_IBIT                       0x115
 69                                                    71 
 70 /* Clock ID for QUINARY MI2S OSR CLK  */           72 /* Clock ID for QUINARY MI2S OSR CLK  */
 71 #define Q6AFE_LPASS_CLK_ID_QUI_MI2S_OSR            73 #define Q6AFE_LPASS_CLK_ID_QUI_MI2S_OSR                         0x116
 72                                                    74 
 73 /* Clock ID for Primary PCM IBIT */                75 /* Clock ID for Primary PCM IBIT */
 74 #define Q6AFE_LPASS_CLK_ID_PRI_PCM_IBIT            76 #define Q6AFE_LPASS_CLK_ID_PRI_PCM_IBIT                           0x200
 75 /* Clock ID for Primary PCM EBIT */                77 /* Clock ID for Primary PCM EBIT */
 76 #define Q6AFE_LPASS_CLK_ID_PRI_PCM_EBIT            78 #define Q6AFE_LPASS_CLK_ID_PRI_PCM_EBIT                           0x201
 77 /* Clock ID for Secondary PCM IBIT */              79 /* Clock ID for Secondary PCM IBIT */
 78 #define Q6AFE_LPASS_CLK_ID_SEC_PCM_IBIT            80 #define Q6AFE_LPASS_CLK_ID_SEC_PCM_IBIT                           0x202
 79 /* Clock ID for Secondary PCM EBIT */              81 /* Clock ID for Secondary PCM EBIT */
 80 #define Q6AFE_LPASS_CLK_ID_SEC_PCM_EBIT            82 #define Q6AFE_LPASS_CLK_ID_SEC_PCM_EBIT                           0x203
 81 /* Clock ID for Tertiary PCM IBIT */               83 /* Clock ID for Tertiary PCM IBIT */
 82 #define Q6AFE_LPASS_CLK_ID_TER_PCM_IBIT            84 #define Q6AFE_LPASS_CLK_ID_TER_PCM_IBIT                           0x204
 83 /* Clock ID for Tertiary PCM EBIT */               85 /* Clock ID for Tertiary PCM EBIT */
 84 #define Q6AFE_LPASS_CLK_ID_TER_PCM_EBIT            86 #define Q6AFE_LPASS_CLK_ID_TER_PCM_EBIT                           0x205
 85 /* Clock ID for Quartery PCM IBIT */               87 /* Clock ID for Quartery PCM IBIT */
 86 #define Q6AFE_LPASS_CLK_ID_QUAD_PCM_IBIT           88 #define Q6AFE_LPASS_CLK_ID_QUAD_PCM_IBIT                          0x206
 87 /* Clock ID for Quartery PCM EBIT */               89 /* Clock ID for Quartery PCM EBIT */
 88 #define Q6AFE_LPASS_CLK_ID_QUAD_PCM_EBIT           90 #define Q6AFE_LPASS_CLK_ID_QUAD_PCM_EBIT                          0x207
 89 /* Clock ID for Quinary PCM IBIT */                91 /* Clock ID for Quinary PCM IBIT */
 90 #define Q6AFE_LPASS_CLK_ID_QUIN_PCM_IBIT           92 #define Q6AFE_LPASS_CLK_ID_QUIN_PCM_IBIT                          0x208
 91 /* Clock ID for Quinary PCM EBIT */                93 /* Clock ID for Quinary PCM EBIT */
 92 #define Q6AFE_LPASS_CLK_ID_QUIN_PCM_EBIT           94 #define Q6AFE_LPASS_CLK_ID_QUIN_PCM_EBIT                          0x209
 93 /* Clock ID for QUINARY PCM OSR  */                95 /* Clock ID for QUINARY PCM OSR  */
 94 #define Q6AFE_LPASS_CLK_ID_QUI_PCM_OSR             96 #define Q6AFE_LPASS_CLK_ID_QUI_PCM_OSR                            0x20A
 95                                                    97 
 96 /** Clock ID for Primary TDM IBIT */               98 /** Clock ID for Primary TDM IBIT */
 97 #define Q6AFE_LPASS_CLK_ID_PRI_TDM_IBIT            99 #define Q6AFE_LPASS_CLK_ID_PRI_TDM_IBIT                           0x200
 98 /** Clock ID for Primary TDM EBIT */              100 /** Clock ID for Primary TDM EBIT */
 99 #define Q6AFE_LPASS_CLK_ID_PRI_TDM_EBIT           101 #define Q6AFE_LPASS_CLK_ID_PRI_TDM_EBIT                           0x201
100 /** Clock ID for Secondary TDM IBIT */            102 /** Clock ID for Secondary TDM IBIT */
101 #define Q6AFE_LPASS_CLK_ID_SEC_TDM_IBIT           103 #define Q6AFE_LPASS_CLK_ID_SEC_TDM_IBIT                           0x202
102 /** Clock ID for Secondary TDM EBIT */            104 /** Clock ID for Secondary TDM EBIT */
103 #define Q6AFE_LPASS_CLK_ID_SEC_TDM_EBIT           105 #define Q6AFE_LPASS_CLK_ID_SEC_TDM_EBIT                           0x203
104 /** Clock ID for Tertiary TDM IBIT */             106 /** Clock ID for Tertiary TDM IBIT */
105 #define Q6AFE_LPASS_CLK_ID_TER_TDM_IBIT           107 #define Q6AFE_LPASS_CLK_ID_TER_TDM_IBIT                           0x204
106 /** Clock ID for Tertiary TDM EBIT */             108 /** Clock ID for Tertiary TDM EBIT */
107 #define Q6AFE_LPASS_CLK_ID_TER_TDM_EBIT           109 #define Q6AFE_LPASS_CLK_ID_TER_TDM_EBIT                           0x205
108 /** Clock ID for Quartery TDM IBIT */             110 /** Clock ID for Quartery TDM IBIT */
109 #define Q6AFE_LPASS_CLK_ID_QUAD_TDM_IBIT          111 #define Q6AFE_LPASS_CLK_ID_QUAD_TDM_IBIT                          0x206
110 /** Clock ID for Quartery TDM EBIT */             112 /** Clock ID for Quartery TDM EBIT */
111 #define Q6AFE_LPASS_CLK_ID_QUAD_TDM_EBIT          113 #define Q6AFE_LPASS_CLK_ID_QUAD_TDM_EBIT                          0x207
112 /** Clock ID for Quinary TDM IBIT */              114 /** Clock ID for Quinary TDM IBIT */
113 #define Q6AFE_LPASS_CLK_ID_QUIN_TDM_IBIT          115 #define Q6AFE_LPASS_CLK_ID_QUIN_TDM_IBIT                          0x208
114 /** Clock ID for Quinary TDM EBIT */              116 /** Clock ID for Quinary TDM EBIT */
115 #define Q6AFE_LPASS_CLK_ID_QUIN_TDM_EBIT          117 #define Q6AFE_LPASS_CLK_ID_QUIN_TDM_EBIT                          0x209
116 /** Clock ID for Quinary TDM OSR */               118 /** Clock ID for Quinary TDM OSR */
117 #define Q6AFE_LPASS_CLK_ID_QUIN_TDM_OSR           119 #define Q6AFE_LPASS_CLK_ID_QUIN_TDM_OSR                           0x20A
118                                                   120 
119 /* Clock ID for MCLK1 */                          121 /* Clock ID for MCLK1 */
120 #define Q6AFE_LPASS_CLK_ID_MCLK_1                 122 #define Q6AFE_LPASS_CLK_ID_MCLK_1                                 0x300
121 /* Clock ID for MCLK2 */                          123 /* Clock ID for MCLK2 */
122 #define Q6AFE_LPASS_CLK_ID_MCLK_2                 124 #define Q6AFE_LPASS_CLK_ID_MCLK_2                                 0x301
123 /* Clock ID for MCLK3 */                          125 /* Clock ID for MCLK3 */
124 #define Q6AFE_LPASS_CLK_ID_MCLK_3                 126 #define Q6AFE_LPASS_CLK_ID_MCLK_3                                 0x302
125 /* Clock ID for MCLK4 */                          127 /* Clock ID for MCLK4 */
126 #define Q6AFE_LPASS_CLK_ID_MCLK_4                 128 #define Q6AFE_LPASS_CLK_ID_MCLK_4                                 0x304
127 /* Clock ID for Internal Digital Codec Core */    129 /* Clock ID for Internal Digital Codec Core */
128 #define Q6AFE_LPASS_CLK_ID_INTERNAL_DIGITAL_CO    130 #define Q6AFE_LPASS_CLK_ID_INTERNAL_DIGITAL_CODEC_CORE            0x303
129 /* Clock ID for INT MCLK0 */                      131 /* Clock ID for INT MCLK0 */
130 #define Q6AFE_LPASS_CLK_ID_INT_MCLK_0             132 #define Q6AFE_LPASS_CLK_ID_INT_MCLK_0                             0x305
131 /* Clock ID for INT MCLK1 */                      133 /* Clock ID for INT MCLK1 */
132 #define Q6AFE_LPASS_CLK_ID_INT_MCLK_1             134 #define Q6AFE_LPASS_CLK_ID_INT_MCLK_1                             0x306
133                                                   135 
134 #define Q6AFE_LPASS_CLK_ID_WSA_CORE_MCLK       << 
135 #define Q6AFE_LPASS_CLK_ID_WSA_CORE_NPL_MCLK   << 
136 #define Q6AFE_LPASS_CLK_ID_TX_CORE_MCLK        << 
137 #define Q6AFE_LPASS_CLK_ID_TX_CORE_NPL_MCLK    << 
138 #define Q6AFE_LPASS_CLK_ID_RX_CORE_MCLK        << 
139 #define Q6AFE_LPASS_CLK_ID_RX_CORE_NPL_MCLK    << 
140 #define Q6AFE_LPASS_CLK_ID_VA_CORE_MCLK        << 
141 #define Q6AFE_LPASS_CLK_ID_VA_CORE_2X_MCLK     << 
142                                                << 
143 #define Q6AFE_LPASS_CORE_AVTIMER_BLOCK         << 
144 #define Q6AFE_LPASS_CORE_HW_MACRO_BLOCK        << 
145 #define Q6AFE_LPASS_CORE_HW_DCODEC_BLOCK       << 
146                                                << 
147 /* Clock attribute for invalid use (reserved f    136 /* Clock attribute for invalid use (reserved for internal usage) */
148 #define Q6AFE_LPASS_CLK_ATTRIBUTE_INVALID         137 #define Q6AFE_LPASS_CLK_ATTRIBUTE_INVALID               0x0
149 /* Clock attribute for no couple case */          138 /* Clock attribute for no couple case */
150 #define Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_NO       139 #define Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_NO             0x1
151 /* Clock attribute for dividend couple case */    140 /* Clock attribute for dividend couple case */
152 #define Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_DIVID    141 #define Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_DIVIDEND       0x2
153 /* Clock attribute for divisor couple case */     142 /* Clock attribute for divisor couple case */
154 #define Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_DIVIS    143 #define Q6AFE_LPASS_CLK_ATTRIBUTE_COUPLE_DIVISOR        0x3
155 /* Clock attribute for invert and no couple ca    144 /* Clock attribute for invert and no couple case */
156 #define Q6AFE_LPASS_CLK_ATTRIBUTE_INVERT_COUPL    145 #define Q6AFE_LPASS_CLK_ATTRIBUTE_INVERT_COUPLE_NO      0x4
157                                                   146 
158 #define Q6AFE_CMAP_INVALID              0xFFFF    147 #define Q6AFE_CMAP_INVALID              0xFFFF
159                                                   148 
160 struct q6afe_hdmi_cfg {                           149 struct q6afe_hdmi_cfg {
161         u16                  datatype;            150         u16                  datatype;
162         u16                  channel_allocatio    151         u16                  channel_allocation;
163         u32                  sample_rate;         152         u32                  sample_rate;
164         u16                  bit_width;           153         u16                  bit_width;
165 };                                                154 };
166                                                   155 
167 struct q6afe_slim_cfg {                           156 struct q6afe_slim_cfg {
168         u32     sample_rate;                      157         u32     sample_rate;
169         u16     bit_width;                        158         u16     bit_width;
170         u16     data_format;                      159         u16     data_format;
171         u16     num_channels;                     160         u16     num_channels;
172         u8      ch_mapping[AFE_MAX_CHAN_COUNT]    161         u8      ch_mapping[AFE_MAX_CHAN_COUNT];
173 };                                                162 };
174                                                   163 
175 struct q6afe_i2s_cfg {                            164 struct q6afe_i2s_cfg {
176         u32     sample_rate;                      165         u32     sample_rate;
177         u16     bit_width;                        166         u16     bit_width;
178         u16     data_format;                      167         u16     data_format;
179         u16     num_channels;                     168         u16     num_channels;
180         u32     sd_line_mask;                     169         u32     sd_line_mask;
181         int fmt;                                  170         int fmt;
182 };                                                171 };
183                                                   172 
184 struct q6afe_tdm_cfg {                            173 struct q6afe_tdm_cfg {
185         u16     num_channels;                     174         u16     num_channels;
186         u32     sample_rate;                      175         u32     sample_rate;
187         u16     bit_width;                        176         u16     bit_width;
188         u16     data_format;                      177         u16     data_format;
189         u16     sync_mode;                        178         u16     sync_mode;
190         u16     sync_src;                         179         u16     sync_src;
191         u16     nslots_per_frame;                 180         u16     nslots_per_frame;
192         u16     slot_width;                       181         u16     slot_width;
193         u16     slot_mask;                        182         u16     slot_mask;
194         u32     data_align_type;                  183         u32     data_align_type;
195         u16     ch_mapping[AFE_MAX_CHAN_COUNT]    184         u16     ch_mapping[AFE_MAX_CHAN_COUNT];
196 };                                                185 };
197                                                   186 
198 struct q6afe_cdc_dma_cfg {                     << 
199         u16     sample_rate;                   << 
200         u16     bit_width;                     << 
201         u16     data_format;                   << 
202         u16     num_channels;                  << 
203         u16     active_channels_mask;          << 
204 };                                             << 
205                                                << 
206                                                << 
207 struct q6afe_port_config {                        187 struct q6afe_port_config {
208         struct q6afe_hdmi_cfg hdmi;               188         struct q6afe_hdmi_cfg hdmi;
209         struct q6afe_slim_cfg slim;               189         struct q6afe_slim_cfg slim;
210         struct q6afe_i2s_cfg i2s_cfg;             190         struct q6afe_i2s_cfg i2s_cfg;
211         struct q6afe_tdm_cfg tdm;                 191         struct q6afe_tdm_cfg tdm;
212         struct q6afe_cdc_dma_cfg dma_cfg;      << 
213 };                                                192 };
214                                                   193 
215 struct q6afe_port;                                194 struct q6afe_port;
216                                                   195 
217 struct q6afe_port *q6afe_port_get_from_id(stru    196 struct q6afe_port *q6afe_port_get_from_id(struct device *dev, int id);
218 int q6afe_port_start(struct q6afe_port *port);    197 int q6afe_port_start(struct q6afe_port *port);
219 int q6afe_port_stop(struct q6afe_port *port);     198 int q6afe_port_stop(struct q6afe_port *port);
220 void q6afe_port_put(struct q6afe_port *port);     199 void q6afe_port_put(struct q6afe_port *port);
221 int q6afe_get_port_id(int index);                 200 int q6afe_get_port_id(int index);
222 void q6afe_hdmi_port_prepare(struct q6afe_port    201 void q6afe_hdmi_port_prepare(struct q6afe_port *port,
223                             struct q6afe_hdmi_    202                             struct q6afe_hdmi_cfg *cfg);
224 void q6afe_slim_port_prepare(struct q6afe_port    203 void q6afe_slim_port_prepare(struct q6afe_port *port,
225                           struct q6afe_slim_cf    204                           struct q6afe_slim_cfg *cfg);
226 int q6afe_i2s_port_prepare(struct q6afe_port *    205 int q6afe_i2s_port_prepare(struct q6afe_port *port, struct q6afe_i2s_cfg *cfg);
227 void q6afe_tdm_port_prepare(struct q6afe_port     206 void q6afe_tdm_port_prepare(struct q6afe_port *port, struct q6afe_tdm_cfg *cfg);
228 void q6afe_cdc_dma_port_prepare(struct q6afe_p << 
229                                 struct q6afe_c << 
230                                                   207 
231 int q6afe_port_set_sysclk(struct q6afe_port *p    208 int q6afe_port_set_sysclk(struct q6afe_port *port, int clk_id,
232                           int clk_src, int clk    209                           int clk_src, int clk_root,
233                           unsigned int freq, i    210                           unsigned int freq, int dir);
234 int q6afe_set_lpass_clock(struct device *dev,  << 
235                           int clk_root, unsign << 
236 int q6afe_vote_lpass_core_hw(struct device *de << 
237                              const char *clien << 
238 int q6afe_unvote_lpass_core_hw(struct device * << 
239                                uint32_t client << 
240 #endif /* __Q6AFE_H__ */                          211 #endif /* __Q6AFE_H__ */
241                                                   212 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php