linux/sound/soc/codecs/arizona-jack.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * extcon-arizona.c - Extcon driver Wolfson Arizona devices
 *
 *  Copyright (C) 2012-2014 Wolfson Microelectronics plc
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/regulator/consumer.h>

#include <sound/jack.h>
#include <sound/soc.h>

#include <linux/mfd/arizona/core.h>
#include <linux/mfd/arizona/pdata.h>
#include <linux/mfd/arizona/registers.h>
#include <dt-bindings/mfd/arizona.h>

#include "arizona.h"

#define ARIZONA_MAX_MICD_RANGE

/*
 * The hardware supports 8 ranges / buttons, but the snd-jack interface
 * only supports 6 buttons (button 0-5).
 */
#define ARIZONA_MAX_MICD_BUTTONS

#define ARIZONA_MICD_CLAMP_MODE_JDL
#define ARIZONA_MICD_CLAMP_MODE_JDH
#define ARIZONA_MICD_CLAMP_MODE_JDL_GP5H
#define ARIZONA_MICD_CLAMP_MODE_JDH_GP5H

#define ARIZONA_TST_CAP_DEFAULT
#define ARIZONA_TST_CAP_CLAMP

#define ARIZONA_HPDET_MAX

#define HPDET_DEBOUNCE
#define DEFAULT_MICD_TIMEOUT

#define ARIZONA_HPDET_WAIT_COUNT
#define ARIZONA_HPDET_WAIT_DELAY_MS

#define QUICK_HEADPHONE_MAX_OHM
#define MICROPHONE_MIN_OHM
#define MICROPHONE_MAX_OHM

#define MICD_DBTIME_TWO_READINGS
#define MICD_DBTIME_FOUR_READINGS

#define MICD_LVL_1_TO_7

#define MICD_LVL_0_TO_7

#define MICD_LVL_0_TO_8

static const struct arizona_micd_config micd_default_modes[] =;

static const struct arizona_micd_range micd_default_ranges[] =;

/* The number of levels in arizona_micd_levels valid for button thresholds */
#define ARIZONA_NUM_MICD_BUTTON_LEVELS

static const int arizona_micd_levels[] =;

static void arizona_start_hpdet_acc_id(struct arizona_priv *info);

static void arizona_extcon_hp_clamp(struct arizona_priv *info,
				    bool clamp)
{}

static void arizona_extcon_set_mode(struct arizona_priv *info, int mode)
{}

static const char *arizona_extcon_get_micbias(struct arizona_priv *info)
{}

static void arizona_extcon_pulse_micbias(struct arizona_priv *info)
{}

static void arizona_start_mic(struct arizona_priv *info)
{}

static void arizona_stop_mic(struct arizona_priv *info)
{}

static struct {} arizona_hpdet_b_ranges[] =;

#define ARIZONA_HPDET_B_RANGE_MAX

static struct {} arizona_hpdet_c_ranges[] =;

static int arizona_hpdet_read(struct arizona_priv *info)
{}

static int arizona_hpdet_do_id(struct arizona_priv *info, int *reading,
			       bool *mic)
{}

static irqreturn_t arizona_hpdet_irq(int irq, void *data)
{}

static void arizona_identify_headphone(struct arizona_priv *info)
{}

static void arizona_start_hpdet_acc_id(struct arizona_priv *info)
{}

static void arizona_micd_timeout_work(struct work_struct *work)
{}

static int arizona_micd_adc_read(struct arizona_priv *info)
{}

static int arizona_micd_read(struct arizona_priv *info)
{}

static int arizona_micdet_reading(void *priv)
{}

static int arizona_button_reading(void *priv)
{}

static void arizona_micd_detect(struct work_struct *work)
{}

static irqreturn_t arizona_micdet(int irq, void *data)
{}

static void arizona_hpdet_work(struct work_struct *work)
{}

static int arizona_hpdet_wait(struct arizona_priv *info)
{}

static irqreturn_t arizona_jackdet(int irq, void *data)
{}

/* Map a level onto a slot in the register bank */
static void arizona_micd_set_level(struct arizona *arizona, int index,
				   unsigned int level)
{}

static int arizona_extcon_get_micd_configs(struct device *dev,
					   struct arizona *arizona)
{}

static int arizona_extcon_device_get_pdata(struct device *dev,
					   struct arizona *arizona)
{}

int arizona_jack_codec_dev_probe(struct arizona_priv *info, struct device *dev)
{}
EXPORT_SYMBOL_GPL();

int arizona_jack_codec_dev_remove(struct arizona_priv *info)
{}
EXPORT_SYMBOL_GPL();

static int arizona_jack_enable_jack_detect(struct arizona_priv *info,
					   struct snd_soc_jack *jack)
{}

static int arizona_jack_disable_jack_detect(struct arizona_priv *info)
{}

int arizona_jack_set_jack(struct snd_soc_component *component,
			  struct snd_soc_jack *jack, void *data)
{}
EXPORT_SYMBOL_GPL();