/* 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