[PATCH v5 18/23] power: regulator: qcom-rpmh-regulator: adjust structs for U-Boot

Caleb Connolly caleb.connolly at linaro.org
Thu Jul 11 18:46:50 CEST 2024


Switch to our linear_range helpers and remove unused/unsupported
linux-isms.

Acked-by: Sumit Garg <sumit.garg at linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly at linaro.org>
---
 drivers/power/regulator/qcom-rpmh-regulator.c | 28 +++++++++++++--------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/drivers/power/regulator/qcom-rpmh-regulator.c b/drivers/power/regulator/qcom-rpmh-regulator.c
index d0acee9f558e..089623f3a2b9 100644
--- a/drivers/power/regulator/qcom-rpmh-regulator.c
+++ b/drivers/power/regulator/qcom-rpmh-regulator.c
@@ -102,13 +102,12 @@ struct linear_range {
  * struct rpmh_vreg_hw_data - RPMh regulator hardware configurations
  * @regulator_type:		RPMh accelerator type used to manage this
  *				regulator
  * @ops:			Pointer to regulator ops callback structure
- * @voltage_ranges:		The possible ranges of voltages supported by this
- * 				PMIC regulator type
- * @n_linear_ranges:		Number of entries in voltage_ranges
+ * @voltage_range:		The single range of voltages supported by this
+ *				PMIC regulator type
  * @n_voltages:			The number of unique voltage set points defined
- *				by voltage_ranges
+ *				by voltage_range
  * @hpm_min_load_uA:		Minimum load current in microamps that requires
  *				high power mode (HPM) operation.  This is used
  *				for LDO hardware type regulators only.
  * @pmic_mode_map:		Array indexed by regulator framework mode
@@ -119,15 +118,15 @@ struct linear_range {
  *				in device tree to a regulator framework mode
  */
 struct rpmh_vreg_hw_data {
 	enum rpmh_regulator_type		regulator_type;
-	const struct regulator_ops		*ops;
-	const struct linear_range		*voltage_ranges;
-	int					n_linear_ranges;
+	const struct dm_regulator_ops		*ops;
+	struct linear_range			voltage_range;
 	int					n_voltages;
 	int					hpm_min_load_uA;
-	const int				*pmic_mode_map;
-	unsigned int			      (*of_map_mode)(unsigned int mode);
+	struct dm_regulator_mode		*pmic_mode_map;
+	int					n_modes;
+	unsigned int				(*of_map_mode)(unsigned int mode);
 };
 
 /**
  * struct rpmh_vreg - individual RPMh regulator data structure encapsulating a
@@ -148,23 +147,22 @@ struct rpmh_vreg_hw_data {
  *				not
  * @bypassed:			Boolean indicating if the regulator is in
  *				bypass (pass-through) mode or not.  This is
  *				only used by BOB rpmh-regulator resources.
- * @voltage_selector:		Selector used for get_voltage_sel() and
- *				set_voltage_sel() callbacks
+ * @uv:				Selector used for get_voltage_sel() and
+ *				set_value() callbacks
  * @mode:			RPMh VRM regulator current framework mode
  */
 struct rpmh_vreg {
-	struct device			*dev;
+	struct udevice			*dev;
 	u32				addr;
-	struct regulator_desc		rdesc;
 	const struct rpmh_vreg_hw_data	*hw_data;
 	bool				always_wait_for_ack;
 
 	int				enabled;
 	bool				bypassed;
-	int				voltage_selector;
-	unsigned int			mode;
+	int				uv;
+	int			mode;
 };
 
 /**
  * struct rpmh_vreg_init_data - initialization data for an RPMh regulator

-- 
2.45.2



More information about the U-Boot mailing list