Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 527b04c9 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: msm: Add support for run-time detection of codec"

parents bd90fbc4 ac26dadd
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -983,13 +983,17 @@ Example:
* APQ8084 ASoC Machine driver

Required properties:
- compatible : "qcom,apq8084-audio-taiko"
- compatible : "qcom,apq8084-audio-taiko" or "qcom,apq8084-audio-tomtom"
- qcom,model : The user-visible name of this sound card.
- qcom,audio-routing : A list of the connections between audio components.
  Each entry is a pair of strings, the first being the connection's sink,
  the second being the connection's source.
- qcom,taiko-mclk-clk-freq : Taiko mclk Freq in Hz. currently only 9600000Hz
				is supported.
				is supported. This property is required when
				compatible field is "qcom,apq8084-audio-taiko"
- qcom,tomtom-mclk-clk-freq : TomTom mclk Freq in Hz. currently only 9600000Hz
				is supported. This property is required when
				compatible field is "qcom,apq8084-audio-tomtom"
- qcom,prim-auxpcm-gpio-clk  : GPIO on which Primary AUXPCM clk signal is coming.
- qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming.
- qcom,prim-auxpcm-gpio-din  : GPIO on which Primary AUXPCM DIN signal is coming.
+1 −52
Original line number Diff line number Diff line
/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -91,57 +91,6 @@ enum {
	TAIKO_TX_MAX,
};

struct mad_audio_header {
	u32 reserved[3];
	u32 num_reg_cfg;
};

struct mad_microphone_info {
	uint8_t input_microphone;
	uint8_t cycle_time;
	uint8_t settle_time;
	uint8_t padding;
} __packed;

struct mad_micbias_info {
	uint8_t micbias;
	uint8_t k_factor;
	uint8_t external_bypass_capacitor;
	uint8_t internal_biasing;
	uint8_t cfilter;
	uint8_t padding[3];
} __packed;

struct mad_rms_audio_beacon_info {
	uint8_t rms_omit_samples;
	uint8_t rms_comp_time;
	uint8_t detection_mechanism;
	uint8_t rms_diff_threshold;
	uint8_t rms_threshold_lsb;
	uint8_t rms_threshold_msb;
	uint8_t padding[2];
	uint8_t iir_coefficients[36];
} __packed;

struct mad_rms_ultrasound_info {
	uint8_t rms_comp_time;
	uint8_t detection_mechanism;
	uint8_t rms_diff_threshold;
	uint8_t rms_threshold_lsb;
	uint8_t rms_threshold_msb;
	uint8_t padding[3];
	uint8_t iir_coefficients[36];
} __packed;

struct mad_audio_cal {
	uint32_t version;
	struct mad_microphone_info microphone_info;
	struct mad_micbias_info micbias_info;
	struct mad_rms_audio_beacon_info audio_info;
	struct mad_rms_audio_beacon_info beacon_info;
	struct mad_rms_ultrasound_info ultrasound_info;
} __packed;

extern int taiko_mclk_enable(struct snd_soc_codec *codec, int mclk_enable,
			     bool dapm);
extern int taiko_hs_detect(struct snd_soc_codec *codec,
+0 −51
Original line number Diff line number Diff line
@@ -99,57 +99,6 @@ enum {
	TOMTOM_TX_MAX,
};

struct mad_audio_header {
	u32 reserved[3];
	u32 num_reg_cfg;
};

struct mad_microphone_info {
	uint8_t input_microphone;
	uint8_t cycle_time;
	uint8_t settle_time;
	uint8_t padding;
} __packed;

struct mad_micbias_info {
	uint8_t micbias;
	uint8_t k_factor;
	uint8_t external_bypass_capacitor;
	uint8_t internal_biasing;
	uint8_t cfilter;
	uint8_t padding[3];
} __packed;

struct mad_rms_audio_beacon_info {
	uint8_t rms_omit_samples;
	uint8_t rms_comp_time;
	uint8_t detection_mechanism;
	uint8_t rms_diff_threshold;
	uint8_t rms_threshold_lsb;
	uint8_t rms_threshold_msb;
	uint8_t padding[2];
	uint8_t iir_coefficients[36];
} __packed;

struct mad_rms_ultrasound_info {
	uint8_t rms_comp_time;
	uint8_t detection_mechanism;
	uint8_t rms_diff_threshold;
	uint8_t rms_threshold_lsb;
	uint8_t rms_threshold_msb;
	uint8_t padding[3];
	uint8_t iir_coefficients[36];
} __packed;

struct mad_audio_cal {
	uint32_t version;
	struct mad_microphone_info microphone_info;
	struct mad_micbias_info micbias_info;
	struct mad_rms_audio_beacon_info audio_info;
	struct mad_rms_audio_beacon_info beacon_info;
	struct mad_rms_ultrasound_info ultrasound_info;
} __packed;

extern int tomtom_mclk_enable(struct snd_soc_codec *codec, int mclk_enable,
			     bool dapm);
extern int tomtom_hs_detect(struct snd_soc_codec *codec,
+52 −1
Original line number Diff line number Diff line
/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -91,6 +91,57 @@ enum wcd9xxx_buck_volt {
	WCD9XXX_CDC_BUCK_MV_2P15 = 2150000,
};

struct mad_audio_header {
	u32 reserved[3];
	u32 num_reg_cfg;
};

struct mad_microphone_info {
	uint8_t input_microphone;
	uint8_t cycle_time;
	uint8_t settle_time;
	uint8_t padding;
} __packed;

struct mad_micbias_info {
	uint8_t micbias;
	uint8_t k_factor;
	uint8_t external_bypass_capacitor;
	uint8_t internal_biasing;
	uint8_t cfilter;
	uint8_t padding[3];
} __packed;

struct mad_rms_audio_beacon_info {
	uint8_t rms_omit_samples;
	uint8_t rms_comp_time;
	uint8_t detection_mechanism;
	uint8_t rms_diff_threshold;
	uint8_t rms_threshold_lsb;
	uint8_t rms_threshold_msb;
	uint8_t padding[2];
	uint8_t iir_coefficients[36];
} __packed;

struct mad_rms_ultrasound_info {
	uint8_t rms_comp_time;
	uint8_t detection_mechanism;
	uint8_t rms_diff_threshold;
	uint8_t rms_threshold_lsb;
	uint8_t rms_threshold_msb;
	uint8_t padding[3];
	uint8_t iir_coefficients[36];
} __packed;

struct mad_audio_cal {
	uint32_t version;
	struct mad_microphone_info microphone_info;
	struct mad_micbias_info micbias_info;
	struct mad_rms_audio_beacon_info audio_info;
	struct mad_rms_audio_beacon_info beacon_info;
	struct mad_rms_ultrasound_info ultrasound_info;
} __packed;

extern void wcd9xxx_clsh_fsm(struct snd_soc_codec *codec,
		struct wcd9xxx_clsh_cdc_data *cdc_clsh_d,
		u8 req_state, bool req_type, u8 clsh_event);
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -27,6 +27,7 @@ enum wcd9xxx_cdc_type {
	WCD9XXX_CDC_TYPE_TAIKO,
	WCD9XXX_CDC_TYPE_TAPAN,
	WCD9XXX_CDC_TYPE_HELICON,
	WCD9XXX_CDC_TYPE_TOMTOM,
};

enum wcd9xxx_clock_type {
Loading