summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorSudheer Papothi <spapothi@codeaurora.org>2016-04-15 03:28:38 +0530
committerJeevan Shriram <jshriram@codeaurora.org>2016-04-22 14:59:05 -0700
commitc22099b3c0d2b7df6f0bc156c786dabd59c2fb4c (patch)
tree5b8abf5d52157098bb49be1a2bfdb2933fd4e5cd /include/linux
parent5fa08107106fc18a5a2fe7ed5738fecc2938cd6b (diff)
drivers: mfd: Move codec reset gpio config to early boot
WCD and WSA codecs uses MSM gpios that are accessed through pinctrl mechanism. Codec reset gpios need to be configured before master controller is initialized otherwise codec cannot be enumerated on the bus. Add a new platform device driver to update reset gpio configuration to valid state before bus initialization. Change-Id: I1e36f4a85334704652c6b50950f50b90224a472e Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mfd/msm-cdc-pinctrl.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/linux/mfd/msm-cdc-pinctrl.h b/include/linux/mfd/msm-cdc-pinctrl.h
new file mode 100644
index 000000000000..a4a34c125581
--- /dev/null
+++ b/include/linux/mfd/msm-cdc-pinctrl.h
@@ -0,0 +1,34 @@
+/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+#ifndef __MFD_CDC_PINCTRL_H_
+#define __MFD_CDC_PINCTRL_H_
+
+#include <linux/types.h>
+#include <linux/of.h>
+
+#ifdef CONFIG_MSM_CDC_PINCTRL
+extern int msm_cdc_pinctrl_select_sleep_state(struct device_node *);
+extern int msm_cdc_pinctrl_select_active_state(struct device_node *);
+
+#else
+int msm_cdc_pinctrl_select_sleep_state(struct device_node *np)
+{
+ return 0;
+}
+int msm_cdc_pinctrl_select_active_state(struct device_node *np)
+{
+ return 0;
+}
+#endif
+
+#endif