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

TOMOYO Linux Cross Reference
Linux/sound/soc/ti/omap-mcbsp-priv.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /sound/soc/ti/omap-mcbsp-priv.h (Version linux-6.12-rc7) and /sound/soc/ti/omap-mcbsp-priv.h (Version linux-4.14.336)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 /*                                                
  3  * OMAP Multi-Channel Buffered Serial Port        
  4  *                                                
  5  * Contact: Jarkko Nikula <jarkko.nikula@bitme    
  6  *          Peter Ujfalusi <peter.ujfalusi@ti.    
  7  */                                               
  8                                                   
  9 #ifndef __OMAP_MCBSP_PRIV_H__                     
 10 #define __OMAP_MCBSP_PRIV_H__                     
 11                                                   
 12 #include <linux/platform_data/asoc-ti-mcbsp.h>    
 13                                                   
 14 #ifdef CONFIG_ARCH_OMAP1                          
 15 #define mcbsp_omap1()   1                         
 16 #else                                             
 17 #define mcbsp_omap1()   0                         
 18 #endif                                            
 19                                                   
 20 /* McBSP register numbers. Register address of    
 21 enum {                                            
 22         /* Common registers */                    
 23         OMAP_MCBSP_REG_SPCR2 = 4,                 
 24         OMAP_MCBSP_REG_SPCR1,                     
 25         OMAP_MCBSP_REG_RCR2,                      
 26         OMAP_MCBSP_REG_RCR1,                      
 27         OMAP_MCBSP_REG_XCR2,                      
 28         OMAP_MCBSP_REG_XCR1,                      
 29         OMAP_MCBSP_REG_SRGR2,                     
 30         OMAP_MCBSP_REG_SRGR1,                     
 31         OMAP_MCBSP_REG_MCR2,                      
 32         OMAP_MCBSP_REG_MCR1,                      
 33         OMAP_MCBSP_REG_RCERA,                     
 34         OMAP_MCBSP_REG_RCERB,                     
 35         OMAP_MCBSP_REG_XCERA,                     
 36         OMAP_MCBSP_REG_XCERB,                     
 37         OMAP_MCBSP_REG_PCR0,                      
 38         OMAP_MCBSP_REG_RCERC,                     
 39         OMAP_MCBSP_REG_RCERD,                     
 40         OMAP_MCBSP_REG_XCERC,                     
 41         OMAP_MCBSP_REG_XCERD,                     
 42         OMAP_MCBSP_REG_RCERE,                     
 43         OMAP_MCBSP_REG_RCERF,                     
 44         OMAP_MCBSP_REG_XCERE,                     
 45         OMAP_MCBSP_REG_XCERF,                     
 46         OMAP_MCBSP_REG_RCERG,                     
 47         OMAP_MCBSP_REG_RCERH,                     
 48         OMAP_MCBSP_REG_XCERG,                     
 49         OMAP_MCBSP_REG_XCERH,                     
 50                                                   
 51         /* OMAP1-OMAP2420 registers */            
 52         OMAP_MCBSP_REG_DRR2 = 0,                  
 53         OMAP_MCBSP_REG_DRR1,                      
 54         OMAP_MCBSP_REG_DXR2,                      
 55         OMAP_MCBSP_REG_DXR1,                      
 56                                                   
 57         /* OMAP2430 and onwards */                
 58         OMAP_MCBSP_REG_DRR = 0,                   
 59         OMAP_MCBSP_REG_DXR = 2,                   
 60         OMAP_MCBSP_REG_SYSCON = 35,               
 61         OMAP_MCBSP_REG_THRSH2,                    
 62         OMAP_MCBSP_REG_THRSH1,                    
 63         OMAP_MCBSP_REG_IRQST = 40,                
 64         OMAP_MCBSP_REG_IRQEN,                     
 65         OMAP_MCBSP_REG_WAKEUPEN,                  
 66         OMAP_MCBSP_REG_XCCR,                      
 67         OMAP_MCBSP_REG_RCCR,                      
 68         OMAP_MCBSP_REG_XBUFFSTAT,                 
 69         OMAP_MCBSP_REG_RBUFFSTAT,                 
 70         OMAP_MCBSP_REG_SSELCR,                    
 71 };                                                
 72                                                   
 73 /************************** McBSP SPCR1 bit de    
 74 #define RRST                    BIT(0)            
 75 #define RRDY                    BIT(1)            
 76 #define RFULL                   BIT(2)            
 77 #define RSYNC_ERR               BIT(3)            
 78 #define RINTM(value)            (((value) & 0x    
 79 #define ABIS                    BIT(6)            
 80 #define DXENA                   BIT(7)            
 81 #define CLKSTP(value)           (((value) & 0x    
 82 #define RJUST(value)            (((value) & 0x    
 83 #define ALB                     BIT(15)           
 84 #define DLB                     BIT(15)           
 85                                                   
 86 /************************** McBSP SPCR2 bit de    
 87 #define XRST                    BIT(0)            
 88 #define XRDY                    BIT(1)            
 89 #define XEMPTY                  BIT(2)            
 90 #define XSYNC_ERR               BIT(3)            
 91 #define XINTM(value)            (((value) & 0x    
 92 #define GRST                    BIT(6)            
 93 #define FRST                    BIT(7)            
 94 #define SOFT                    BIT(8)            
 95 #define FREE                    BIT(9)            
 96                                                   
 97 /************************** McBSP PCR bit defi    
 98 #define CLKRP                   BIT(0)            
 99 #define CLKXP                   BIT(1)            
100 #define FSRP                    BIT(2)            
101 #define FSXP                    BIT(3)            
102 #define DR_STAT                 BIT(4)            
103 #define DX_STAT                 BIT(5)            
104 #define CLKS_STAT               BIT(6)            
105 #define SCLKME                  BIT(7)            
106 #define CLKRM                   BIT(8)            
107 #define CLKXM                   BIT(9)            
108 #define FSRM                    BIT(10)           
109 #define FSXM                    BIT(11)           
110 #define RIOEN                   BIT(12)           
111 #define XIOEN                   BIT(13)           
112 #define IDLE_EN                 BIT(14)           
113                                                   
114 /************************** McBSP RCR1 bit def    
115 #define RWDLEN1(value)          (((value) & 0x    
116 #define RFRLEN1(value)          (((value) & 0x    
117                                                   
118 /************************** McBSP XCR1 bit def    
119 #define XWDLEN1(value)          (((value) & 0x    
120 #define XFRLEN1(value)          (((value) & 0x    
121                                                   
122 /*************************** McBSP RCR2 bit de    
123 #define RDATDLY(value)          ((value) & 0x3    
124 #define RFIG                    BIT(2)            
125 #define RCOMPAND(value)         (((value) & 0x    
126 #define RWDLEN2(value)          (((value) & 0x    
127 #define RFRLEN2(value)          (((value) & 0x    
128 #define RPHASE                  BIT(15)           
129                                                   
130 /*************************** McBSP XCR2 bit de    
131 #define XDATDLY(value)          ((value) & 0x3    
132 #define XFIG                    BIT(2)            
133 #define XCOMPAND(value)         (((value) & 0x    
134 #define XWDLEN2(value)          (((value) & 0x    
135 #define XFRLEN2(value)          (((value) & 0x    
136 #define XPHASE                  BIT(15)           
137                                                   
138 /************************* McBSP SRGR1 bit def    
139 #define CLKGDV(value)           ((value) & 0x7    
140 #define FWID(value)             (((value) & 0x    
141                                                   
142 /************************* McBSP SRGR2 bit def    
143 #define FPER(value)             ((value) & 0x0    
144 #define FSGM                    BIT(12)           
145 #define CLKSM                   BIT(13)           
146 #define CLKSP                   BIT(14)           
147 #define GSYNC                   BIT(15)           
148                                                   
149 /************************* McBSP MCR1 bit defi    
150 #define RMCM                    BIT(0)            
151 #define RCBLK(value)            (((value) & 0x    
152 #define RPABLK(value)           (((value) & 0x    
153 #define RPBBLK(value)           (((value) & 0x    
154                                                   
155 /************************* McBSP MCR2 bit defi    
156 #define XMCM(value)             ((value) & 0x3    
157 #define XCBLK(value)            (((value) & 0x    
158 #define XPABLK(value)           (((value) & 0x    
159 #define XPBBLK(value)           (((value) & 0x    
160                                                   
161 /*********************** McBSP XCCR bit defini    
162 #define XDISABLE                BIT(0)            
163 #define XDMAEN                  BIT(3)            
164 #define DILB                    BIT(5)            
165 #define XFULL_CYCLE             BIT(11)           
166 #define DXENDLY(value)          (((value) & 0x    
167 #define PPCONNECT               BIT(14)           
168 #define EXTCLKGATE              BIT(15)           
169                                                   
170 /********************** McBSP RCCR bit definit    
171 #define RDISABLE                BIT(0)            
172 #define RDMAEN                  BIT(3)            
173 #define RFULL_CYCLE             BIT(11)           
174                                                   
175 /********************** McBSP SYSCONFIG bit de    
176 #define SOFTRST                 BIT(1)            
177 #define ENAWAKEUP               BIT(2)            
178 #define SIDLEMODE(value)        (((value) & 0x    
179 #define CLOCKACTIVITY(value)    (((value) & 0x    
180                                                   
181 /********************** McBSP DMA operating mo    
182 #define MCBSP_DMA_MODE_ELEMENT          0         
183 #define MCBSP_DMA_MODE_THRESHOLD        1         
184                                                   
185 /********************** McBSP WAKEUPEN/IRQST/I    
186 #define RSYNCERREN              BIT(0)            
187 #define RFSREN                  BIT(1)            
188 #define REOFEN                  BIT(2)            
189 #define RRDYEN                  BIT(3)            
190 #define RUNDFLEN                BIT(4)            
191 #define ROVFLEN                 BIT(5)            
192 #define XSYNCERREN              BIT(7)            
193 #define XFSXEN                  BIT(8)            
194 #define XEOFEN                  BIT(9)            
195 #define XRDYEN                  BIT(10)           
196 #define XUNDFLEN                BIT(11)           
197 #define XOVFLEN                 BIT(12)           
198 #define XEMPTYEOFEN             BIT(14)           
199                                                   
200 /* Clock signal muxing options */                 
201 #define CLKR_SRC_CLKR           0 /* CLKR sign    
202 #define CLKR_SRC_CLKX           1 /* CLKR sign    
203 #define FSR_SRC_FSR             2 /* FSR signa    
204 #define FSR_SRC_FSX             3 /* FSR signa    
205                                                   
206 /* McBSP functional clock sources */              
207 #define MCBSP_CLKS_PRCM_SRC     0                 
208 #define MCBSP_CLKS_PAD_SRC      1                 
209                                                   
210 /* we don't do multichannel for now */            
211 struct omap_mcbsp_reg_cfg {                       
212         u16 spcr2;                                
213         u16 spcr1;                                
214         u16 rcr2;                                 
215         u16 rcr1;                                 
216         u16 xcr2;                                 
217         u16 xcr1;                                 
218         u16 srgr2;                                
219         u16 srgr1;                                
220         u16 mcr2;                                 
221         u16 mcr1;                                 
222         u16 pcr0;                                 
223         u16 rcerc;                                
224         u16 rcerd;                                
225         u16 xcerc;                                
226         u16 xcerd;                                
227         u16 rcere;                                
228         u16 rcerf;                                
229         u16 xcere;                                
230         u16 xcerf;                                
231         u16 rcerg;                                
232         u16 rcerh;                                
233         u16 xcerg;                                
234         u16 xcerh;                                
235         u16 xccr;                                 
236         u16 rccr;                                 
237 };                                                
238                                                   
239 struct omap_mcbsp_st_data;                        
240                                                   
241 struct omap_mcbsp {                               
242         struct device *dev;                       
243         struct clk *fclk;                         
244         spinlock_t lock;                          
245         unsigned long phys_base;                  
246         unsigned long phys_dma_base;              
247         void __iomem *io_base;                    
248         u8 id;                                    
249         /*                                        
250          * Flags indicating is the bus already    
251          * another substream                      
252          */                                       
253         int active;                               
254         int configured;                           
255         u8 free;                                  
256                                                   
257         int irq;                                  
258         int rx_irq;                               
259         int tx_irq;                               
260                                                   
261         /* Protect the field .free, while chec    
262         struct omap_mcbsp_platform_data *pdata    
263         struct omap_mcbsp_st_data *st_data;       
264         struct omap_mcbsp_reg_cfg cfg_regs;       
265         struct snd_dmaengine_dai_dma_data dma_    
266         unsigned int dma_req[2];                  
267         int dma_op_mode;                          
268         u16 max_tx_thres;                         
269         u16 max_rx_thres;                         
270         void *reg_cache;                          
271         int reg_cache_size;                       
272                                                   
273         unsigned int fmt;                         
274         unsigned int in_freq;                     
275         unsigned int latency[2];                  
276         int clk_div;                              
277         int wlen;                                 
278                                                   
279         struct pm_qos_request pm_qos_req;         
280 };                                                
281                                                   
282 static inline void omap_mcbsp_write(struct oma    
283 {                                                 
284         void __iomem *addr = mcbsp->io_base +     
285                                                   
286         if (mcbsp->pdata->reg_size == 2) {        
287                 ((u16 *)mcbsp->reg_cache)[reg]    
288                 writew_relaxed((u16)val, addr)    
289         } else {                                  
290                 ((u32 *)mcbsp->reg_cache)[reg]    
291                 writel_relaxed(val, addr);        
292         }                                         
293 }                                                 
294                                                   
295 static inline int omap_mcbsp_read(struct omap_    
296                                   bool from_ca    
297 {                                                 
298         void __iomem *addr = mcbsp->io_base +     
299                                                   
300         if (mcbsp->pdata->reg_size == 2) {        
301                 return !from_cache ? readw_rel    
302                                      ((u16 *)m    
303         } else {                                  
304                 return !from_cache ? readl_rel    
305                                      ((u32 *)m    
306         }                                         
307 }                                                 
308                                                   
309 #define MCBSP_READ(mcbsp, reg) \                  
310                 omap_mcbsp_read(mcbsp, OMAP_MC    
311 #define MCBSP_WRITE(mcbsp, reg, val) \            
312                 omap_mcbsp_write(mcbsp, OMAP_M    
313 #define MCBSP_READ_CACHE(mcbsp, reg) \            
314                 omap_mcbsp_read(mcbsp, OMAP_MC    
315                                                   
316                                                   
317 /* Sidetone specific API */                       
318 int omap_mcbsp_st_init(struct platform_device     
319 int omap_mcbsp_st_start(struct omap_mcbsp *mcb    
320 int omap_mcbsp_st_stop(struct omap_mcbsp *mcbs    
321                                                   
322 #endif /* __OMAP_MCBSP_PRIV_H__ */                
323                                                   

~ [ 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