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

TOMOYO Linux Cross Reference
Linux/sound/soc/codecs/cs42l43.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/codecs/cs42l43.h (Version linux-6.12-rc7) and /sound/soc/codecs/cs42l43.h (Version linux-4.19.323)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 /*                                                
  3  * CS42L43 CODEC driver internal data             
  4  *                                                
  5  * Copyright (C) 2022-2023 Cirrus Logic, Inc.     
  6  *                         Cirrus Logic Intern    
  7  */                                               
  8                                                   
  9 #ifndef CS42L43_ASOC_INT_H                        
 10 #define CS42L43_ASOC_INT_H                        
 11                                                   
 12 #include <linux/completion.h>                     
 13 #include <linux/mutex.h>                          
 14 #include <linux/types.h>                          
 15 #include <linux/workqueue.h>                      
 16 #include <sound/pcm.h>                            
 17                                                   
 18 #define CS42L43_INTERNAL_SYSCLK         245760    
 19 #define CS42L43_DEFAULT_SLOTS           0x3F      
 20                                                   
 21 #define CS42L43_PLL_TIMEOUT_MS          200       
 22 #define CS42L43_SPK_TIMEOUT_MS          100       
 23 #define CS42L43_HP_TIMEOUT_MS           2000      
 24 #define CS42L43_LOAD_TIMEOUT_MS         1000      
 25                                                   
 26 #define CS42L43_HP_ILIMIT_BACKOFF_MS    1000      
 27 #define CS42L43_HP_ILIMIT_DECAY_MS      300       
 28 #define CS42L43_HP_ILIMIT_MAX_COUNT     4         
 29                                                   
 30 #define CS42L43_ASP_MAX_CHANNELS        6         
 31 #define CS42L43_N_EQ_COEFFS             15        
 32                                                   
 33 #define CS42L43_N_BUTTONS       6                 
 34                                                   
 35 struct clk;                                       
 36 struct device;                                    
 37                                                   
 38 struct snd_soc_component;                         
 39 struct snd_soc_jack;                              
 40                                                   
 41 struct cs42l43;                                   
 42                                                   
 43 struct cs42l43_codec {                            
 44         struct device *dev;                       
 45         struct cs42l43 *core;                     
 46         struct snd_soc_component *component;      
 47                                                   
 48         struct clk *mclk;                         
 49                                                   
 50         int n_slots;                              
 51         int slot_width;                           
 52         int tx_slots[CS42L43_ASP_MAX_CHANNELS]    
 53         int rx_slots[CS42L43_ASP_MAX_CHANNELS]    
 54         struct snd_pcm_hw_constraint_list cons    
 55                                                   
 56         u32 eq_coeffs[CS42L43_N_EQ_COEFFS];       
 57                                                   
 58         unsigned int refclk_src;                  
 59         unsigned int refclk_freq;                 
 60         struct completion pll_ready;              
 61                                                   
 62         unsigned int decim_cache[4];              
 63         unsigned int adc_ena;                     
 64         unsigned int hp_ena;                      
 65                                                   
 66         struct completion hp_startup;             
 67         struct completion hp_shutdown;            
 68         struct completion spkr_shutdown;          
 69         struct completion spkl_shutdown;          
 70         struct completion spkr_startup;           
 71         struct completion spkl_startup;           
 72         // Lock to ensure speaker VU updates d    
 73         struct mutex spk_vu_lock;                 
 74                                                   
 75         // Lock for all jack detect operations    
 76         struct mutex jack_lock;                   
 77         struct snd_soc_jack *jack_hp;             
 78                                                   
 79         bool use_ring_sense;                      
 80         unsigned int tip_debounce_ms;             
 81         unsigned int bias_low;                    
 82         unsigned int bias_sense_ua;               
 83         unsigned int bias_ramp_ms;                
 84         unsigned int detect_us;                   
 85         unsigned int buttons[CS42L43_N_BUTTONS    
 86                                                   
 87         struct delayed_work tip_sense_work;       
 88         struct delayed_work bias_sense_timeout    
 89         struct delayed_work button_press_work;    
 90         struct work_struct button_release_work    
 91         struct completion type_detect;            
 92         struct completion load_detect;            
 93                                                   
 94         bool load_detect_running;                 
 95         bool button_detect_running;               
 96         bool jack_present;                        
 97         int jack_override;                        
 98                                                   
 99         struct work_struct hp_ilimit_work;        
100         struct delayed_work hp_ilimit_clear_wo    
101         bool hp_ilimited;                         
102         int hp_ilimit_count;                      
103                                                   
104         struct snd_kcontrol *kctl[5];             
105 };                                                
106                                                   
107 #if IS_REACHABLE(CONFIG_SND_SOC_CS42L43_SDW)      
108                                                   
109 int cs42l43_sdw_add_peripheral(struct snd_pcm_    
110                                struct snd_pcm_    
111                                struct snd_soc_    
112 int cs42l43_sdw_remove_peripheral(struct snd_p    
113                                   struct snd_s    
114 int cs42l43_sdw_set_stream(struct snd_soc_dai     
115                                                   
116 #else                                             
117                                                   
118 static inline int cs42l43_sdw_add_peripheral(s    
119                                              s    
120                                              s    
121 {                                                 
122         return -EINVAL;                           
123 }                                                 
124                                                   
125 #define cs42l43_sdw_remove_peripheral NULL        
126 #define cs42l43_sdw_set_stream NULL               
127                                                   
128 #endif                                            
129                                                   
130 int cs42l43_set_jack(struct snd_soc_component     
131                      struct snd_soc_jack *jack    
132 void cs42l43_bias_sense_timeout(struct work_st    
133 void cs42l43_tip_sense_work(struct work_struct    
134 void cs42l43_button_press_work(struct work_str    
135 void cs42l43_button_release_work(struct work_s    
136 irqreturn_t cs42l43_bias_detect_clamp(int irq,    
137 irqreturn_t cs42l43_button_press(int irq, void    
138 irqreturn_t cs42l43_button_release(int irq, vo    
139 irqreturn_t cs42l43_tip_sense(int irq, void *d    
140 int cs42l43_jack_get(struct snd_kcontrol *kcon    
141 int cs42l43_jack_put(struct snd_kcontrol *kcon    
142                                                   
143 extern const struct soc_enum cs42l43_jack_enum    
144                                                   
145 #endif /* CS42L43_ASOC_INT_H */                   
146                                                   

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