mfd: Export ISEL values from WM831x core
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 27 Jul 2009 13:45:57 +0000 (14:45 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 17 Sep 2009 07:47:00 +0000 (09:47 +0200)
The current settings which can be used with the WM831x current sinks
can't easily be mapped between register values and currents at run
time without a lookup table since the values scale logarithmically
to match the way the human eye interprets brightness. This lookup
table is inclided in the core since several drivers need to use it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/wm831x-core.c
include/linux/mfd/wm831x/regulator.h [new file with mode: 0644]

index 33eaea2f988e6e9cbe2b8ad8c5a501d3292e0323..49b7885c2702ce5ae286b8e267ff75f4ac698c6a 100644 (file)
 #include <linux/mfd/wm831x/irq.h>
 #include <linux/mfd/wm831x/auxadc.h>
 #include <linux/mfd/wm831x/otp.h>
+#include <linux/mfd/wm831x/regulator.h>
+
+/* Current settings - values are 2*2^(reg_val/4) microamps.  These are
+ * exported since they are used by multiple drivers.
+ */
+int wm831x_isinkv_values[WM831X_ISINK_MAX_ISEL] = {
+       2,
+       2,
+       3,
+       3,
+       4,
+       5,
+       6,
+       7,
+       8,
+       10,
+       11,
+       13,
+       16,
+       19,
+       23,
+       27,
+       32,
+       38,
+       45,
+       54,
+       64,
+       76,
+       91,
+       108,
+       128,
+       152,
+       181,
+       215,
+       256,
+       304,
+       362,
+       431,
+       512,
+       609,
+       724,
+       861,
+       1024,
+       1218,
+       1448,
+       1722,
+       2048,
+       2435,
+       2896,
+       3444,
+       4096,
+       4871,
+       5793,
+       6889,
+       8192,
+       9742,
+       11585,
+       13777,
+       16384,
+       19484,
+       23170,
+       27554,
+};
+EXPORT_SYMBOL_GPL(wm831x_isinkv_values);
 
 enum wm831x_parent {
        WM8310 = 0,
diff --git a/include/linux/mfd/wm831x/regulator.h b/include/linux/mfd/wm831x/regulator.h
new file mode 100644 (file)
index 0000000..b5d58fb
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * linux/mfd/wm831x/regulator.h -- Regulator definitons for wm831x
+ *
+ * Copyright 2009 Wolfson Microelectronics PLC.
+ *
+ * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#ifndef __MFD_WM831X_REGULATOR_H__
+#define __MFD_WM831X_REGULATOR_H__
+
+#define WM831X_ISINK_MAX_ISEL 56
+extern int wm831x_isinkv_values[WM831X_ISINK_MAX_ISEL];
+
+#endif