Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f947213 authored by Richard Fitzgerald's avatar Richard Fitzgerald Committed by Lee Jones
Browse files

mfd: madera: Add shared data for accessory detection



Add variables to struct madera that will be shared by the
extcon and audio codec drivers to synchronize output state
during accessory detection. Also add a mutex to protect
the DAPM pointer.

Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 628f3dfe
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#include <linux/gpio.h>
#include <linux/mfd/core.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/notifier.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
@@ -357,6 +358,8 @@ int madera_dev_init(struct madera *madera)

	dev_set_drvdata(madera->dev, madera);
	BLOCKING_INIT_NOTIFIER_HEAD(&madera->notifier);
	mutex_init(&madera->dapm_ptr_lock);

	madera_set_micbias_info(madera);

	/*
+7 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#include <linux/gpio/consumer.h>
#include <linux/interrupt.h>
#include <linux/mfd/madera/pdata.h>
#include <linux/mutex.h>
#include <linux/notifier.h>
#include <linux/regmap.h>
#include <linux/regulator/consumer.h>
@@ -37,6 +38,8 @@ enum madera_type {

#define MADERA_MAX_MICBIAS		4

#define MADERA_MAX_HP_OUTPUT		3

/* Notifier events */
#define MADERA_NOTIFY_VOICE_TRIGGER	0x1
#define MADERA_NOTIFY_HPDET		0x2
@@ -183,6 +186,10 @@ struct madera {
	unsigned int num_childbias[MADERA_MAX_MICBIAS];

	struct snd_soc_dapm_context *dapm;
	struct mutex dapm_ptr_lock;
	unsigned int hp_ena;
	bool out_clamp[MADERA_MAX_HP_OUTPUT];
	bool out_shorted[MADERA_MAX_HP_OUTPUT];

	struct blocking_notifier_head notifier;
};