Module Name: src
Committed By: riastradh
Date: Mon Aug 27 07:33:18 UTC 2018
Modified Files:
src/sys/external/bsd/drm2/include/linux/regulator: consumer.h
Log Message:
Copy regulator API from fdtbus.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/sys/external/bsd/drm2/include/linux/regulator/consumer.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/include/linux/regulator/consumer.h
diff -u src/sys/external/bsd/drm2/include/linux/regulator/consumer.h:1.1 src/sys/external/bsd/drm2/include/linux/regulator/consumer.h:1.2
--- src/sys/external/bsd/drm2/include/linux/regulator/consumer.h:1.1 Mon Aug 27 06:35:44 2018
+++ src/sys/external/bsd/drm2/include/linux/regulator/consumer.h Mon Aug 27 07:33:18 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: consumer.h,v 1.1 2018/08/27 06:35:44 riastradh Exp $ */
+/* $NetBSD: consumer.h,v 1.2 2018/08/27 07:33:18 riastradh Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -32,4 +32,61 @@
#ifndef _LINUX_REGULATOR_CONSUMER_H_
#define _LINUX_REGULATOR_CONSUMER_H_
+#include "opt_fdt.h"
+
+#ifdef FDT
+
+struct regulator {
+ struct fdtbus_regulator regulator;
+};
+
+static inline int
+regulator_get_voltage(struct regulator *reg)
+{
+ unsigned uvolt;
+ int error;
+
+ error = fdtbus_regulator_get_voltage(®->regulator, &uvolt);
+ if (error) {
+ /* XXX errno NetBSD->Linux */
+ KASSERTMSG(error > 0, "negative error: %d", error);
+ return -error;
+ }
+
+ KASSERTMSG(uvolt <= INT_MAX, "high voltage: %u uV", uvolt);
+ return (int)uvol;
+}
+
+static inline int
+regulator_set_voltage(struct regulator *reg, int min_uvolt, int max_uvolt)
+{
+ unsigned v;
+
+ if (min_uvolt < 0 || max_uvolt < 0)
+ return -EINVAL;
+
+ /* XXX errno NetBSD->Linux */
+ return -fdtbus_regulator_set_voltage(®->regulator, min_uvolt,
+ max_uvolt);
+}
+
+#else
+
+struct regulator;
+
+static inline int
+regulator_get_voltage(struct regulator *reg)
+{
+ panic("no voltage regulators here");
+}
+
+static inline int
+regulator_set_voltage(struct regulator *reg, int min_uvolt, int max_uvolt)
+{
+ panic("no voltage regulators here");
+}
+
+
+#endif
+
#endif /* _LINUX_REGULATOR_CONSUMER_H_ */