summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAbhijeet Dharmapurikar <adharmap@codeaurora.org>2017-03-20 15:54:59 -0700
committerAbhijeet Dharmapurikar <adharmap@codeaurora.org>2017-03-20 15:56:47 -0700
commit5e34bc8d01718770752d74c2907142682b664da9 (patch)
tree753c0996b359d654a4f6496c046e6e2d1ff79745 /include/linux
parenta32eccc4acebb7e743fdb5ad78b1c849d1fb26b5 (diff)
pmic-voter: move to common header location
pmic-voter.h needs to be used in the qcom-tadc driver which resides outside of the power/supply/qcom location. Move it to include/linux. Change-Id: I5079a8504573da2a800fd458ef9aa5931056d8c2 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/pmic-voter.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/include/linux/pmic-voter.h b/include/linux/pmic-voter.h
new file mode 100644
index 000000000000..f202bf704055
--- /dev/null
+++ b/include/linux/pmic-voter.h
@@ -0,0 +1,50 @@
+/* Copyright (c) 2015-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 __PMIC_VOTER_H
+#define __PMIC_VOTER_H
+
+#include <linux/mutex.h>
+
+struct votable;
+
+enum votable_type {
+ VOTE_MIN,
+ VOTE_MAX,
+ VOTE_SET_ANY,
+ NUM_VOTABLE_TYPES,
+};
+
+bool is_client_vote_enabled(struct votable *votable, const char *client_str);
+bool is_client_vote_enabled_locked(struct votable *votable,
+ const char *client_str);
+int get_client_vote(struct votable *votable, const char *client_str);
+int get_client_vote_locked(struct votable *votable, const char *client_str);
+int get_effective_result(struct votable *votable);
+int get_effective_result_locked(struct votable *votable);
+const char *get_effective_client(struct votable *votable);
+const char *get_effective_client_locked(struct votable *votable);
+int vote(struct votable *votable, const char *client_str, bool state, int val);
+int rerun_election(struct votable *votable);
+struct votable *find_votable(const char *name);
+struct votable *create_votable(const char *name,
+ int votable_type,
+ int (*callback)(struct votable *votable,
+ void *data,
+ int effective_result,
+ const char *effective_client),
+ void *data);
+void destroy_votable(struct votable *votable);
+void lock_votable(struct votable *votable);
+void unlock_votable(struct votable *votable);
+
+#endif /* __PMIC_VOTER_H */