xref: /kernel/linux/linux-6.6/include/sound/wm5100.h (revision 62306a36)
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * linux/sound/wm5100.h -- Platform data for WM5100
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright 2011 Wolfson Microelectronics. PLC.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __LINUX_SND_WM5100_H
962306a36Sopenharmony_ci#define __LINUX_SND_WM5100_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cienum wm5100_in_mode {
1262306a36Sopenharmony_ci	WM5100_IN_SE = 0,
1362306a36Sopenharmony_ci	WM5100_IN_DIFF = 1,
1462306a36Sopenharmony_ci	WM5100_IN_DMIC = 2,
1562306a36Sopenharmony_ci};
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cienum wm5100_dmic_sup {
1862306a36Sopenharmony_ci	WM5100_DMIC_SUP_MICVDD = 0,
1962306a36Sopenharmony_ci	WM5100_DMIC_SUP_MICBIAS1 = 1,
2062306a36Sopenharmony_ci	WM5100_DMIC_SUP_MICBIAS2 = 2,
2162306a36Sopenharmony_ci	WM5100_DMIC_SUP_MICBIAS3 = 3,
2262306a36Sopenharmony_ci};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cienum wm5100_micdet_bias {
2562306a36Sopenharmony_ci	WM5100_MICDET_MICBIAS1 = 0,
2662306a36Sopenharmony_ci	WM5100_MICDET_MICBIAS2 = 1,
2762306a36Sopenharmony_ci	WM5100_MICDET_MICBIAS3 = 2,
2862306a36Sopenharmony_ci};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_cistruct wm5100_jack_mode {
3162306a36Sopenharmony_ci	enum wm5100_micdet_bias bias;
3262306a36Sopenharmony_ci	int hp_pol;
3362306a36Sopenharmony_ci	int micd_src;
3462306a36Sopenharmony_ci};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#define WM5100_GPIO_SET 0x10000
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_cistruct wm5100_pdata {
3962306a36Sopenharmony_ci	int reset;      /** GPIO controlling /RESET, if any */
4062306a36Sopenharmony_ci	int ldo_ena;    /** GPIO controlling LODENA, if any */
4162306a36Sopenharmony_ci	int hp_pol;     /** GPIO controlling headset polarity, if any */
4262306a36Sopenharmony_ci	int irq_flags;
4362306a36Sopenharmony_ci	int gpio_base;
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	struct wm5100_jack_mode jack_modes[2];
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	/* Input pin mode selection */
4862306a36Sopenharmony_ci	enum wm5100_in_mode in_mode[4];
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	/* DMIC supply selection */
5162306a36Sopenharmony_ci	enum wm5100_dmic_sup dmic_sup[4];
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	int gpio_defaults[6];
5462306a36Sopenharmony_ci};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci#endif
57