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_ */