109 lines
3.5 KiB
C
109 lines
3.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Driver for ADAU1361/ADAU1461/ADAU1761/ADAU1961/ADAU1381/ADAU1781 codecs
|
|
*
|
|
* Copyright 2011-2014 Analog Devices Inc.
|
|
* Author: Lars-Peter Clausen <lars@metafoo.de>
|
|
*/
|
|
|
|
#ifndef __LINUX_PLATFORM_DATA_ADAU17X1_H__
|
|
#define __LINUX_PLATFORM_DATA_ADAU17X1_H__
|
|
|
|
/**
|
|
* enum adau17x1_micbias_voltage - Microphone bias voltage
|
|
* @ADAU17X1_MICBIAS_0_90_AVDD: 0.9 * AVDD
|
|
* @ADAU17X1_MICBIAS_0_65_AVDD: 0.65 * AVDD
|
|
*/
|
|
enum adau17x1_micbias_voltage {
|
|
ADAU17X1_MICBIAS_0_90_AVDD = 0,
|
|
ADAU17X1_MICBIAS_0_65_AVDD = 1,
|
|
};
|
|
|
|
/**
|
|
* enum adau1761_digmic_jackdet_pin_mode - Configuration of the JACKDET/MICIN pin
|
|
* @ADAU1761_DIGMIC_JACKDET_PIN_MODE_NONE: Disable the pin
|
|
* @ADAU1761_DIGMIC_JACKDET_PIN_MODE_DIGMIC: Configure the pin for usage as
|
|
* digital microphone input.
|
|
* @ADAU1761_DIGMIC_JACKDET_PIN_MODE_JACKDETECT: Configure the pin for jack
|
|
* insertion detection.
|
|
*/
|
|
enum adau1761_digmic_jackdet_pin_mode {
|
|
ADAU1761_DIGMIC_JACKDET_PIN_MODE_NONE,
|
|
ADAU1761_DIGMIC_JACKDET_PIN_MODE_DIGMIC,
|
|
ADAU1761_DIGMIC_JACKDET_PIN_MODE_JACKDETECT,
|
|
};
|
|
|
|
/**
|
|
* adau1761_jackdetect_debounce_time - Jack insertion detection debounce time
|
|
* @ADAU1761_JACKDETECT_DEBOUNCE_5MS: 5 milliseconds
|
|
* @ADAU1761_JACKDETECT_DEBOUNCE_10MS: 10 milliseconds
|
|
* @ADAU1761_JACKDETECT_DEBOUNCE_20MS: 20 milliseconds
|
|
* @ADAU1761_JACKDETECT_DEBOUNCE_40MS: 40 milliseconds
|
|
*/
|
|
enum adau1761_jackdetect_debounce_time {
|
|
ADAU1761_JACKDETECT_DEBOUNCE_5MS = 0,
|
|
ADAU1761_JACKDETECT_DEBOUNCE_10MS = 1,
|
|
ADAU1761_JACKDETECT_DEBOUNCE_20MS = 2,
|
|
ADAU1761_JACKDETECT_DEBOUNCE_40MS = 3,
|
|
};
|
|
|
|
/**
|
|
* enum adau1761_output_mode - Output mode configuration
|
|
* @ADAU1761_OUTPUT_MODE_HEADPHONE: Headphone output
|
|
* @ADAU1761_OUTPUT_MODE_HEADPHONE_CAPLESS: Capless headphone output
|
|
* @ADAU1761_OUTPUT_MODE_LINE: Line output
|
|
*/
|
|
enum adau1761_output_mode {
|
|
ADAU1761_OUTPUT_MODE_HEADPHONE,
|
|
ADAU1761_OUTPUT_MODE_HEADPHONE_CAPLESS,
|
|
ADAU1761_OUTPUT_MODE_LINE,
|
|
};
|
|
|
|
/**
|
|
* struct adau1761_platform_data - ADAU1761 Codec driver platform data
|
|
* @input_differential: If true the input pins will be configured in
|
|
* differential mode.
|
|
* @lineout_mode: Output mode for the LOUT/ROUT pins
|
|
* @headphone_mode: Output mode for the LHP/RHP pins
|
|
* @digmic_jackdetect_pin_mode: JACKDET/MICIN pin configuration
|
|
* @jackdetect_debounce_time: Jack insertion detection debounce time.
|
|
* Note: This value will only be used, if the JACKDET/MICIN pin is configured
|
|
* for jack insertion detection.
|
|
* @jackdetect_active_low: If true the jack insertion detection is active low.
|
|
* Othwise it will be active high.
|
|
* @micbias_voltage: Microphone voltage bias
|
|
*/
|
|
struct adau1761_platform_data {
|
|
bool input_differential;
|
|
enum adau1761_output_mode lineout_mode;
|
|
enum adau1761_output_mode headphone_mode;
|
|
|
|
enum adau1761_digmic_jackdet_pin_mode digmic_jackdetect_pin_mode;
|
|
|
|
enum adau1761_jackdetect_debounce_time jackdetect_debounce_time;
|
|
bool jackdetect_active_low;
|
|
|
|
enum adau17x1_micbias_voltage micbias_voltage;
|
|
};
|
|
|
|
/**
|
|
* struct adau1781_platform_data - ADAU1781 Codec driver platform data
|
|
* @left_input_differential: If true configure the left input as
|
|
* differential input.
|
|
* @right_input_differential: If true configure the right input as differntial
|
|
* input.
|
|
* @use_dmic: If true configure the MIC pins as digital microphone pins instead
|
|
* of analog microphone pins.
|
|
* @micbias_voltage: Microphone voltage bias
|
|
*/
|
|
struct adau1781_platform_data {
|
|
bool left_input_differential;
|
|
bool right_input_differential;
|
|
|
|
bool use_dmic;
|
|
|
|
enum adau17x1_micbias_voltage micbias_voltage;
|
|
};
|
|
|
|
#endif
|