linux/include/sound/da7218.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 * da7218.h - DA7218 ASoC Codec Driver Platform Data
   4 *
   5 * Copyright (c) 2015 Dialog Semiconductor
   6 *
   7 * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
   8 */
   9
  10#ifndef _DA7218_PDATA_H
  11#define _DA7218_PDATA_H
  12
  13/* Mic Bias */
  14enum da7218_micbias_voltage {
  15        DA7218_MICBIAS_1_2V = -1,
  16        DA7218_MICBIAS_1_6V,
  17        DA7218_MICBIAS_1_8V,
  18        DA7218_MICBIAS_2_0V,
  19        DA7218_MICBIAS_2_2V,
  20        DA7218_MICBIAS_2_4V,
  21        DA7218_MICBIAS_2_6V,
  22        DA7218_MICBIAS_2_8V,
  23        DA7218_MICBIAS_3_0V,
  24};
  25
  26enum da7218_mic_amp_in_sel {
  27        DA7218_MIC_AMP_IN_SEL_DIFF = 0,
  28        DA7218_MIC_AMP_IN_SEL_SE_P,
  29        DA7218_MIC_AMP_IN_SEL_SE_N,
  30};
  31
  32/* DMIC */
  33enum da7218_dmic_data_sel {
  34        DA7218_DMIC_DATA_LRISE_RFALL = 0,
  35        DA7218_DMIC_DATA_LFALL_RRISE,
  36};
  37
  38enum da7218_dmic_samplephase {
  39        DA7218_DMIC_SAMPLE_ON_CLKEDGE = 0,
  40        DA7218_DMIC_SAMPLE_BETWEEN_CLKEDGE,
  41};
  42
  43enum da7218_dmic_clk_rate {
  44        DA7218_DMIC_CLK_3_0MHZ = 0,
  45        DA7218_DMIC_CLK_1_5MHZ,
  46};
  47
  48/* Headphone Detect */
  49enum da7218_hpldet_jack_rate {
  50        DA7218_HPLDET_JACK_RATE_5US = 0,
  51        DA7218_HPLDET_JACK_RATE_10US,
  52        DA7218_HPLDET_JACK_RATE_20US,
  53        DA7218_HPLDET_JACK_RATE_40US,
  54        DA7218_HPLDET_JACK_RATE_80US,
  55        DA7218_HPLDET_JACK_RATE_160US,
  56        DA7218_HPLDET_JACK_RATE_320US,
  57        DA7218_HPLDET_JACK_RATE_640US,
  58};
  59
  60enum da7218_hpldet_jack_debounce {
  61        DA7218_HPLDET_JACK_DEBOUNCE_OFF = 0,
  62        DA7218_HPLDET_JACK_DEBOUNCE_2,
  63        DA7218_HPLDET_JACK_DEBOUNCE_3,
  64        DA7218_HPLDET_JACK_DEBOUNCE_4,
  65};
  66
  67enum da7218_hpldet_jack_thr {
  68        DA7218_HPLDET_JACK_THR_84PCT = 0,
  69        DA7218_HPLDET_JACK_THR_88PCT,
  70        DA7218_HPLDET_JACK_THR_92PCT,
  71        DA7218_HPLDET_JACK_THR_96PCT,
  72};
  73
  74struct da7218_hpldet_pdata {
  75        enum da7218_hpldet_jack_rate jack_rate;
  76        enum da7218_hpldet_jack_debounce jack_debounce;
  77        enum da7218_hpldet_jack_thr jack_thr;
  78        bool comp_inv;
  79        bool hyst;
  80        bool discharge;
  81};
  82
  83struct da7218_pdata {
  84        /* Mic */
  85        enum da7218_micbias_voltage micbias1_lvl;
  86        enum da7218_micbias_voltage micbias2_lvl;
  87        enum da7218_mic_amp_in_sel mic1_amp_in_sel;
  88        enum da7218_mic_amp_in_sel mic2_amp_in_sel;
  89
  90        /* DMIC */
  91        enum da7218_dmic_data_sel dmic1_data_sel;
  92        enum da7218_dmic_data_sel dmic2_data_sel;
  93        enum da7218_dmic_samplephase dmic1_samplephase;
  94        enum da7218_dmic_samplephase dmic2_samplephase;
  95        enum da7218_dmic_clk_rate dmic1_clk_rate;
  96        enum da7218_dmic_clk_rate dmic2_clk_rate;
  97
  98        /* HP Diff Supply - DA7217 only */
  99        bool hp_diff_single_supply;
 100
 101        /* HP Detect - DA7218 only */
 102        struct da7218_hpldet_pdata *hpldet_pdata;
 103};
 104
 105#endif /* _DA7218_PDATA_H */
 106