]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
power: regulator: qcom-rpmh-regulator: port over lineage_range helpers
authorCaleb Connolly <caleb.connolly@linaro.org>
Mon, 15 Jul 2024 10:08:17 +0000 (12:08 +0200)
committerCaleb Connolly <caleb.connolly@linaro.org>
Thu, 25 Jul 2024 23:28:12 +0000 (01:28 +0200)
Import struct linear_range() and builder macro from Linux regulator
core.

Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
drivers/power/regulator/qcom-rpmh-regulator.c

index 5f522de44734a17e6977fe89b7c75c8bb3729f98..d0acee9f558e61670c92280f8d38da65a1de59be 100644 (file)
@@ -29,6 +29,13 @@ enum rpmh_regulator_type {
        XOB,
 };
 
+enum rpmh_regulator_mode {
+       REGULATOR_MODE_RETENTION,
+       REGULATOR_MODE_LPM,
+       REGULATOR_MODE_AUTO,
+       REGULATOR_MODE_HPM,
+};
+
 #define RPMH_REGULATOR_REG_VRM_VOLTAGE         0x0
 #define RPMH_REGULATOR_REG_ENABLE              0x4
 #define RPMH_REGULATOR_REG_VRM_MODE            0x8
@@ -61,6 +68,36 @@ enum rpmh_regulator_type {
 #define PMIC5_BOB_MODE_AUTO                    6
 #define PMIC5_BOB_MODE_PWM                     7
 
+
+/**
+ * struct linear_range - table of selector - value pairs
+ *
+ * Define a lookup-table for range of values. Intended to help when looking
+ * for a register value matching certaing physical measure (like voltage).
+ * Usable when increment of one in register always results a constant increment
+ * of the physical measure (like voltage).
+ *
+ * @min:  Lowest value in range
+ * @min_sel: Lowest selector for range
+ * @max_sel: Highest selector for range
+ * @step: Value step size
+ */
+struct linear_range {
+       unsigned int min;
+       unsigned int min_sel;
+       unsigned int max_sel;
+       unsigned int step;
+};
+
+/* Initialize struct linear_range for regulators */
+#define REGULATOR_LINEAR_RANGE(_min_uV, _min_sel, _max_sel, _step_uV)  \
+{                                                                      \
+       .min            = _min_uV,                                      \
+       .min_sel        = _min_sel,                                     \
+       .max_sel        = _max_sel,                                     \
+       .step           = _step_uV,                                     \
+}
+
 /**
  * struct rpmh_vreg_hw_data - RPMh regulator hardware configurations
  * @regulator_type:            RPMh accelerator type used to manage this