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

Commit da09155a authored by Mark Brown's avatar Mark Brown Committed by Liam Girdwood
Browse files

regulator: Add WM8350 regulator support



The WM8350 features six DCDC convertors (four buck and two boost), four
LDO voltage regulators and two constant current sinks. This driver adds
support for these through the regulator API.

This driver was written by Liam Girdwood with updates for submission
from Mark Brown.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent ebccec0f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1218,6 +1218,12 @@ EXPORT_SYMBOL_GPL(wm8350_device_init);

void wm8350_device_exit(struct wm8350 *wm8350)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(wm8350->pmic.pdev); i++)
		if (wm8350->pmic.pdev[i] != NULL)
			platform_device_unregister(wm8350->pmic.pdev[i]);

	free_irq(wm8350->chip_irq, wm8350);
	flush_work(&wm8350->irq_work);
	kfree(wm8350->reg_cache);
+9 −0
Original line number Diff line number Diff line
@@ -56,6 +56,14 @@ config REGULATOR_BQ24022
	  charging select between 100 mA and 500 mA charging current
	  limit.

config REGULATOR_WM8350
	tristate "Wolfson Microelectroncis WM8350 AudioPlus PMIC"
	depends on MFD_WM8350
	select REGULATOR
	help
	  This driver provides support for the voltage and current regulators
          of the WM8350 AudioPlus PMIC.

config REGULATOR_WM8400
	tristate "Wolfson Microelectroncis WM8400 AudioPlus PMIC"
	depends on MFD_WM8400
@@ -63,4 +71,5 @@ config REGULATOR_WM8400
	help
	  This driver provides support for the voltage regulators of the
	  WM8400 AudioPlus PMIC.

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ obj-$(CONFIG_REGULATOR_FIXED_VOLTAGE) += fixed.o
obj-$(CONFIG_REGULATOR_VIRTUAL_CONSUMER) += virtual.o

obj-$(CONFIG_REGULATOR_BQ24022) += bq24022.o
obj-$(CONFIG_REGULATOR_WM8350) += wm8350-regulator.o
obj-$(CONFIG_REGULATOR_WM8400) += wm8400-regulator.o

ccflags-$(CONFIG_REGULATOR_DEBUG) += -DDEBUG
+1431 −0

File added.

Preview size limit exceeded, changes collapsed.

+5 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
#include <linux/mutex.h>
#include <linux/workqueue.h>

#include <linux/mfd/wm8350/pmic.h>

/*
 * Register values.
 */
@@ -570,6 +572,9 @@ struct wm8350 {
	struct mutex irq_mutex; /* IRQ table mutex */
	struct wm8350_irq irq[WM8350_NUM_IRQ];
	int chip_irq;

	/* Client devices */
	struct wm8350_pmic pmic;
};

/**
Loading