mfd: Add Freescale MC13783 driver
[pandora-kernel.git] / include / linux / mfd / mc13783.h
diff --git a/include/linux/mfd/mc13783.h b/include/linux/mfd/mc13783.h
new file mode 100644 (file)
index 0000000..b3a2a72
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009 Pengutronix, Sascha Hauer <s.hauer@pengutronix.de>
+ *
+ * Initial development of this code was funded by
+ * Phytec Messtechnik GmbH, http://www.phytec.de
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __INCLUDE_LINUX_MFD_MC13783_H
+#define __INCLUDE_LINUX_MFD_MC13783_H
+
+struct mc13783;
+struct regulator_init_data;
+
+struct mc13783_regulator_init_data {
+       int id;
+       struct regulator_init_data *init_data;
+};
+
+struct mc13783_platform_data {
+       struct mc13783_regulator_init_data *regulators;
+       int num_regulators;
+       unsigned int flags;
+};
+
+/* mc13783_platform_data flags */
+#define MC13783_USE_TOUCHSCREEN (1 << 0)
+#define MC13783_USE_CODEC      (1 << 1)
+#define MC13783_USE_ADC                (1 << 2)
+#define MC13783_USE_RTC                (1 << 3)
+#define MC13783_USE_REGULATOR  (1 << 4)
+
+int mc13783_adc_do_conversion(struct mc13783 *mc13783, unsigned int mode,
+               unsigned int channel, unsigned int *sample);
+
+void mc13783_adc_set_ts_status(struct mc13783 *mc13783, unsigned int status);
+
+#define        MC13783_SW_SW1A         0
+#define        MC13783_SW_SW1B         1
+#define        MC13783_SW_SW2A         2
+#define        MC13783_SW_SW2B         3
+#define        MC13783_SW_SW3          4
+#define        MC13783_SW_PLL          5
+#define        MC13783_REGU_VAUDIO     6
+#define        MC13783_REGU_VIOHI      7
+#define        MC13783_REGU_VIOLO      8
+#define        MC13783_REGU_VDIG       9
+#define        MC13783_REGU_VGEN       10
+#define        MC13783_REGU_VRFDIG     11
+#define        MC13783_REGU_VRFREF     12
+#define        MC13783_REGU_VRFCP      13
+#define        MC13783_REGU_VSIM       14
+#define        MC13783_REGU_VESIM      15
+#define        MC13783_REGU_VCAM       16
+#define        MC13783_REGU_VRFBG      17
+#define        MC13783_REGU_VVIB       18
+#define        MC13783_REGU_VRF1       19
+#define        MC13783_REGU_VRF2       20
+#define        MC13783_REGU_VMMC1      21
+#define        MC13783_REGU_VMMC2      22
+#define        MC13783_REGU_GPO1       23
+#define        MC13783_REGU_GPO2       24
+#define        MC13783_REGU_GPO3       25
+#define        MC13783_REGU_GPO4       26
+#define        MC13783_REGU_V1         27
+#define        MC13783_REGU_V2         28
+#define        MC13783_REGU_V3         29
+#define        MC13783_REGU_V4         30
+
+#endif /* __INCLUDE_LINUX_MFD_MC13783_H */
+