Add samsung specific changes

This commit is contained in:
2025-08-11 14:29:00 +02:00
parent c66122e619
commit 4d134a1294
2688 changed files with 1127995 additions and 11475 deletions

View File

@@ -0,0 +1,150 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
*/
#ifndef _SEC_AUDIO_SYSFS_H
#define _SEC_AUDIO_SYSFS_H
/*
* 1 AMP project - mono(AMP_0)
* 2 AMP project - L(AMP_0), R(AMP_1)
* 3 AMP project - L(AMP_0), R(AMP_1), receiver(AMP_2)
* 4 AMP project - FL(AMP_0), FR(AMP_1), RL(AMP_2), RR(AMP_3)
*/
enum amp_id {
AMP_0,
AMP_1,
AMP_2,
AMP_3,
AMP_ID_MAX,
};
struct sec_audio_sysfs_data {
struct class *audio_class;
struct device *jack_dev;
struct device *codec_dev;
struct device *amp_dev;
struct device *adsp_dev;
bool no_earjack;
int (*get_jack_state)(void);
int (*get_key_state)(void);
int (*set_jack_state)(int);
int (*get_mic_adc)(void);
int (*get_codec_id_state)(void);
int (*set_force_enable_antenna)(int);
int (*get_antenna_state)(void);
/* bigdata */
unsigned int num_amp;
int (*get_amp_temperature_max)(enum amp_id);
int (*get_amp_temperature_keep_max)(enum amp_id);
int (*get_amp_temperature_overcount)(enum amp_id);
int (*get_amp_excursion_max)(enum amp_id);
int (*get_amp_excursion_overcount)(enum amp_id);
int (*get_amp_curr_temperature)(enum amp_id);
int (*set_amp_surface_temperature)(enum amp_id, int);
int (*get_amp_ready)(enum amp_id);
};
#if IS_ENABLED(CONFIG_SND_SOC_SAMSUNG_AUDIO)
int audio_register_jack_select_cb(int (*set_jack) (int));
int audio_register_jack_state_cb(int (*jack_status) (void));
int audio_register_key_state_cb(int (*key_state) (void));
int audio_register_mic_adc_cb(int (*mic_adc) (void));
int audio_register_codec_id_state_cb(int (*codec_id_state) (void));
int audio_register_force_enable_antenna_cb(int (*force_enable_antenna) (int));
int audio_register_antenna_state_cb(int (*antenna_state) (void));
/* bigdata */
int audio_register_temperature_max_cb(int (*temperature_max) (enum amp_id));
int audio_register_temperature_keep_max_cb(int (*temperature_keep_max) (enum amp_id));
int audio_register_temperature_overcount_cb(int (*temperature_overcount) (enum amp_id));
int audio_register_excursion_max_cb(int (*excursion_max) (enum amp_id));
int audio_register_excursion_overcount_cb(int (*excursion_overcount) (enum amp_id));
int audio_register_curr_temperature_cb(int (*curr_temperature) (enum amp_id));
int audio_register_surface_temperature_cb(int (*surface_temperature) (enum amp_id, int temperature));
int audio_register_ready_cb(int (*ready) (enum amp_id));
void send_adsp_silent_reset_ev(void);
#else
inline int audio_register_jack_select_cb(int (*set_jack) (int))
{
return -EACCES;
}
inline int audio_register_jack_state_cb(int (*jack_status) (void))
{
return -EACCES;
}
inline int audio_register_key_state_cb(int (*key_state) (void))
{
return -EACCES;
}
inline int audio_register_mic_adc_cb(int (*mic_adc) (void))
{
return -EACCES;
}
inline int audio_register_codec_id_state_cb(int (*codec_id_state) (void))
{
return -EACCES;
}
inline int audio_register_force_enable_antenna_cb(int (*force_enable_antenna) (int))
{
return -EACCES;
}
inline int audio_register_antenna_state_cb(int (*antenna_state) (void))
{
return -EACCES;
}
inline int audio_register_temperature_max_cb(int (*temperature_max) (enum amp_id))
{
return -EACCES;
}
inline int audio_register_temperature_keep_max_cb(int (*temperature_keep_max) (enum amp_id))
{
return -EACCES;
}
inline int audio_register_temperature_overcount_cb(int (*temperature_overcount) (enum amp_id))
{
return -EACCES;
}
inline int audio_register_excursion_max_cb(int (*excursion_max) (enum amp_id))
{
return -EACCES;
}
inline int audio_register_excursion_overcount_cb(int (*excursion_overcount) (enum amp_id))
{
return -EACCES;
}
inline int audio_register_curr_temperature_cb(int (*curr_temperature) (enum amp_id))
{
return -EACCES;
}
inline int audio_register_surface_temperature_cb(int (*surface_temperature) (enum amp_id, int temperature))
{
return -EACCES;
}
inline int audio_register_ready_cb(int (*ready) (enum amp_id))
{
return -EACCES;
}
inline void send_adsp_silent_reset_ev(void)
{
}
#endif
#endif /* _SEC_AUDIO_SYSFS_H */

View File

@@ -0,0 +1,33 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* snd_debug_proc.h - header for SAMSUNG Audio debugging.
*/
#include <linux/mutex.h>
#define AUD_LOG_BUF_SIZE SZ_64K
struct snd_debug_proc {
char log_buf[AUD_LOG_BUF_SIZE];
bool is_enabled;
unsigned int buf_pos;
unsigned int buf_full;
struct mutex lock;
void (*save_log)(char *buf, int len);
};
#if IS_ENABLED(CONFIG_SND_SOC_SAMSUNG_AUDIO)
void sdp_info_print(const char *fmt, ...);
void sdp_boot_print(const char *fmt, ...);
#else
inline void sdp_info_print(const char *fmt, ...)
{
}
inline void sdp_boot_print(const char *fmt, ...)
{
}
#endif