Commit Graph

1294531 Commits

Author SHA1 Message Date
Krzysztof Kozlowski
dfa9e708c6
regulator: da9055: Constify static data
Driver does not modify static data with regulators description (struct
da9055_regulator_info), so make it const for code safety.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240909-regulator-const-v1-2-8934704a5787@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-10 12:44:04 +01:00
Krzysztof Kozlowski
9653007e7d
regulator: da9052: Constify static data
Driver does not modify static data with regulators description (struct
da9052_regulator_info), so make it const for code safety.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240909-regulator-const-v1-1-8934704a5787@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-10 12:44:03 +01:00
Christophe JAILLET
63a68ee1c2
regulator: tps6287x: Constify struct regulator_desc
'struct regulator_desc' is not modified in this driver.

Constifying this structure moves some data to a read-only section, so
increases overall security, especially when the structure holds some
function pointers.

On a x86_64, with allmodconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
   4974	    736	     16	   5726	   165e	drivers/regulator/tps6287x-regulator.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
   5294	    416	     16	   5726	   165e	drivers/regulator/tps6287x-regulator.o

--
Compile tested only

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/7727e493490d37775a653905dfe0cc1d8478f8e0.1725908163.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-09 21:08:43 +01:00
Christophe JAILLET
48cc042bd6
regulator: wm8400: Constify struct regulator_desc
'struct regulator_desc' is not modified in this driver.

Constifying this structure moves some data to a read-only section, so
increases overall security, especially when the structure holds some
function pointers.

On a x86_64, with allmodconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
   4419	   2512	      0	   6931	   1b13	drivers/regulator/wm8400-regulator.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
   6307	    624	      0	   6931	   1b13	drivers/regulator/wm8400-regulator.o

--
Compile tested only

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/fde33ecfd9bbdbdc1da1620c9f3b1b7a72f9d805.1725906876.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-09 21:08:42 +01:00
Christophe JAILLET
0c0966b501
regulator: da9211: Constify struct regulator_desc
'struct regulator_desc' is not modified in this driver.

Constifying this structure moves some data to a read-only section, so
increase overall security, especially when the structure holds some
function pointers.

On a x86_64, with allmodconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
  13982	   2118	     16	  16116	   3ef4	drivers/regulator/da9211-regulator.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
  14622	   1478	     16	  16116	   3ef4	drivers/regulator/da9211-regulator.o

--
Compile tested only

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/54258bfe11112d70d2f1eb1deda2791eb9ef99c1.1725784852.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-09 18:27:02 +01:00
Christophe JAILLET
97e63bc35f
regulator: mp5416: Constify struct regulator_desc
'struct regulator_desc' is not modified in this driver.

Constifying this structure moves some data to a read-only section, so
increase overall security, especially when the structure holds some
function pointers.

On a x86_64, with allmodconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
   3516	   5320	     32	   8868	   22a4	drivers/regulator/mp5416.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
   8508	    320	     32	   8860	   229c	drivers/regulator/mp5416.o

--
Compile tested only

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/fd8d1307f211ec7754f46b6678c04309556003bc.1725807320.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-09 18:27:01 +01:00
Mark Brown
8651db0fcb
regulator: Add AXP717 boost support
Merge series from Andre Przywara <andre.przywara@arm.com>:

This is remainder of the AXP717 fix series, containing support for the
boost regulator. This is meant to increase the battery voltage to the 5
volts required to provide the USB VBUS power.
It's the usual trinity of DT bindings patch (1/3), the MFD part
describing the PMIC registers (2/3) and the final patch to model the
regulator (3/3).
Compared to v2, this drops the merged patches, and just retains the
boost related parts. It also changes the internal name of the register
to AXP717_MODULE_EN_CONTROL_2, since there is another control register
we will need later for battery support.
2024-09-07 01:44:08 +01:00
Andre Przywara
22dfe2ea1d
regulator: axp20x: AXP717: Add boost regulator
The AXP717 also contains an adjustable boost regulator, to provide the
5V USB VBUS rail when running on battery.

Add the regulator description that states the voltage range this
regulator can cover.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: John Watts <contact@jookia.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://patch.msgid.link/20240816001824.6028-4-andre.przywara@arm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-06 22:17:36 +01:00
Andre Przywara
bb2ac59f82
mfd: axp20x: AXP717: Add support for boost regulator
The AXP717 also contains a boost regulator, to provide the 5V USB VBUS
rail when running on battery.

Add the registers to the MFD description to be able to use them from the
regulator driver.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: John Watts <contact@jookia.org>
Acked-by: Lee Jones <lee@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://patch.msgid.link/20240816001824.6028-3-andre.przywara@arm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-06 22:17:35 +01:00
Andre Przywara
b4c21faf69
dt-bindings: mfd: x-powers,axp152: add boost regulator
The X-Powers AXP717 contains a boost regulator, that it meant to provide
the 5V USB VBUS voltage when the devices operates on battery.

Add the name "boost" to the regexp describing the allowed node names,
to allow the regulator to be described in the devicetree.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Lee Jones <lee@kernel.org>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Link: https://patch.msgid.link/20240816001824.6028-2-andre.przywara@arm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-06 22:17:33 +01:00
Andy Shevchenko
401d078eaf
regulator: of: Refactor of_get_*regulator() to decrease indentation
Refactor of_get_*regulator() to decrease indentation and increase readability.
No functional changes intended.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20240904190856.1221459-1-andy.shevchenko@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-05 19:15:52 +01:00
Chen-Yu Tsai
b8c3255457
regulator: Move OF-specific regulator lookup code to of_regulator.c
There's still a bit of OF-specific code in the regulator device lookup
function.

Move those bits of code over to of_regulator.c, and create a new
function of_regulator_dev_lookup() to encapsulate the code moved out of
regulator_dev_lookup().

Also mark of_find_regulator_by_node() as static, since there are no
other users in other compile units.

There are no functional changes. A line alignment was also fixed.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20240904090016.2841572-4-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-09-04 13:15:21 +01:00
Chen-Yu Tsai
98ce82a528
regulator: Unify "negative error number" terminology in comments
Previous commits cleaning up kerneldoc used the term "negative error
number" to refer to error condition return values. Update remaining
instances of other terminology such as "error code" or "errno" as
well so the whole regulator subsystem is unified.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-11-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:30 +01:00
Chen-Yu Tsai
6eace77a60
regulator: of: Fix kerneldoc format for of_regulator_bulk_get_all()
of_regulator_bulk_get_all() has a comment section that pretty much
resembles a kerneldoc block, except that the block begins with "/*"
instead of "/**".

Fix that and also rework the "Return" section and the error code
terminology so that it is the same as the other kerneldoc blocks
in the same file.

Fixes: 27b9ecc7a9 ("regulator: Add of_regulator_bulk_get_all")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-10-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:30 +01:00
Chen-Yu Tsai
77904c8170
regulator: irq_helpers: Fix regulator_irq_map_event_simple() kerneldoc
kernel-doc complains about missing "Return" section for the function
regulator_irq_map_event_simple().

Add a "Return" section for it based on its behavior. The function
actually always returns 0, but fills in fields in its @rid parameter as
needed. Expand the description of the parameter to cover this.

While at it fix a typo found in the description of the same function.

Reported-by: Matti Vaittinen <mazziesaccount@gmail.com>
Closes: https://lore.kernel.org/all/e341240e-1c1f-49a2-91cd-440888fdbda0@gmail.com/
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-9-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:29 +01:00
Chen-Yu Tsai
4ddb16cf53
regulator: fixed-helper: Add missing "Return" kerneldoc section
kernel-doc complains about missing "Return" section for the function
regulator_register_always_on().

Add a "Return" section for it based on its behavior.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-8-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:28 +01:00
Chen-Yu Tsai
5f93c59e60
regulator: fixed: Fix incorrectly formatted kerneldoc "Return" section
kernel-doc complains about missing "Return" section for kerneldoc of
of_get_fixed_voltage_config(). The kerneldoc has a description
about the return values, just not in the format kernel-doc wants.

Convert it to use the proper "Return:" section header. The existing
description have been reworded and moved around to fit the grammar and
formatting.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-7-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:27 +01:00
Chen-Yu Tsai
dac41d59f2
regulator: of: Fix incorrectly formatted kerneldoc "Return" sections
kernel-doc complains about missing "Return" section for many documented
functions in the regulator OF-specific code. These all have descriptions
about the return values, just not in the format kernel-doc wants.

Convert these to use the proper "Return:" section header. The existing
descriptions have been reworded and moved around to fit the grammar and
formatting.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-6-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:26 +01:00
Chen-Yu Tsai
4ac204ff2d
regulator: core: Add missing kerneldoc "Return" sections
kernel-doc complains about missing "Return" section for many documented
functions in the regulator core. Some with free-form return value
descriptions have been fixed in the previous patch. The remaining are
completely missing any mention of return values.

Add "Return" sections to these kerneldoc blocks with basic descriptions.
In a few cases where the functions don't call even more functions and
the error numbers are known, those are documented in detail.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-5-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:25 +01:00
Chen-Yu Tsai
f746af13dd
regulator: core: Fix incorrectly formatted kerneldoc "Return" sections
kernel-doc complains about missing "Return" section for many documented
functions in the regulator core. Many of them actually have descriptions
about the return values, just not in the format kernel-doc wants.

Convert these to use the proper "Return:" section header. The existing
descriptions have been reworded and moved around to fit the grammar and
formatting.

In a few cases where the functions don't call even more functions
and the error numbers are known, those are documented in detail.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-4-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:24 +01:00
Chen-Yu Tsai
753b9d86ad
regulator: core: Fix regulator_is_supported_voltage() kerneldoc return value
The kerneldoc for regulator_is_supported_voltage() states that the
return value is a boolean. That is not correct, as it could return an
error number if the check failed.

Fix the description by expanding it to cover the valid return values and
error conditions. The description is also converted to a proper "Return"
section.

Fixes: c5f3939b8f ("regulator: core: Support fixed voltages in regulator_is_supported_voltage()")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-3-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:23 +01:00
Chen-Yu Tsai
caa08dd8cd
regulator: core: Fix short description for _regulator_check_status_enabled()
kernel-doc complains that _regulator_check_status_enabled() is missing a
short description.

Since the current description is already quite short, just trim it a bit
more and use it as the short description.

Fixes: f7d7ad42a9 ("regulator: Allow regulators to verify enabled during enable()")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20240829085131.1361701-2-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-29 14:20:22 +01:00
Rob Herring (Arm)
dd72a3b8a6
regulator: qcom_spmi: Use of_property_read_bool()
Use of_property_read_bool() to read boolean properties rather than
of_find_property(). This is part of a larger effort to remove callers
of of_find_property() and similar functions. of_find_property() leaks
the DT property pointer which is a problem for dynamically allocated
nodes which may be freed.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240828130056.3481050-2-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-28 21:52:45 +01:00
Rob Herring (Arm)
7540bd3398
regulator: qcom_spmi: Drop unnecessary of_find_property() call
There's no need to check for presence of "qcom,saw-reg" before parsing
it. If the property doesn't exist, parsing it will return NULL.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240828130056.3481050-1-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-28 21:52:44 +01:00
Mark Brown
bff5ca8379
regulator: Minor cleanups
Merge series from Chen-Yu Tsai <wenst@chromium.org>:

Here are some cleanups for some bits that I saw while reworking my I2C
device tree component prober to use of_regulator_bulk_get_all().
These are not directly related to that series, so I send them
separately here.
2024-08-22 21:58:11 +01:00
Krzysztof Kozlowski
b8195520e8
regulator: s2mps11: use scoped memory allocation to simplify probe
Allocate the memory with scoped/cleanup.h to reduce error handling (less
error paths) and make the code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240822161231.106744-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-22 17:52:31 +01:00
Chen-Yu Tsai
bfefa214d1
regulator: Fully clean up on error in of_regulator_bulk_get_all()
Currently in of_regulator_bulk_get_all(), if any regulator request
fails, the error path releases all regulators already requested,
but leaves the |struct regulator_bulk_data| memory to the caller
to free, and also leaves the regulator consumer pointers dangling.
The latter behavior is not documented, and may not be what the
caller is expecting.

Instead, explicitly clean up everything on error, and make it clear
that the result pointer is only update if the whole request succeeds.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20240822072047.3097740-4-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-22 13:34:30 +01:00
Chen-Yu Tsai
395a41a1d3
regulator: Return actual error in of_regulator_bulk_get_all()
If regulator_get() in of_regulator_bulk_get_all() returns an error, that
error gets overridden and -EINVAL is always passed out. This masks probe
deferral requests and likely won't work properly in all cases.

Fix this by letting of_regulator_bulk_get_all() return the original
error code.

Fixes: 27b9ecc7a9 ("regulator: Add of_regulator_bulk_get_all")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20240822072047.3097740-3-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-22 13:34:29 +01:00
Chen-Yu Tsai
ad9d7a8290
regulator: Clarify error message for "id == NULL" in _regulator_get()
The original error message simply said "get() with no identifier"
without any context as to what was requested or what device the
request was related to. The only thing the user or developer could
do was grep for the message in the full source tree.

Amend the error message to be more specific, and also use dev_*
to associate the error message with a device.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://patch.msgid.link/20240822072047.3097740-2-wenst@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-22 13:34:28 +01:00
Mark Brown
5a38089fe4
regulator: Use scoped device node handling to simplify
Merge series from Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>:

Make code a bit smaller/simpler, with less of_node_put() thanks to
cleanup.h.
2024-08-15 14:35:02 +01:00
Bartosz Golaszewski
39b8cb4e1b
regulator: dt-bindings: qcom,qca6390-pmu: document the swctrl-gpios property
Add support for the swctrl-gpios property which contains the phandle to
the GPIO indicating the clock supply to the BT module.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://patch.msgid.link/20240813185827.154779-3-brgl@bgdev.pl
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:22:09 +01:00
Bartosz Golaszewski
2416d2f87b
regulator: dt-bindings: qcom,qca6390-pmu: document WCN6855
Add description of the PMU of the WCN6855 model.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://patch.msgid.link/20240813185827.154779-2-brgl@bgdev.pl
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:22:08 +01:00
Bartosz Golaszewski
d275e9918c
regulator: dt-bindings: qcom,qca6390-pmu: fix the description for bt-enable-gpios
The Bluetooth module is obviously not an ath11k so drop the word.

Fixes: b5cb34c93b ("regulator: dt-bindings: describe the PMU module of the QCA6390 package")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://patch.msgid.link/20240813185827.154779-1-brgl@bgdev.pl
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:22:07 +01:00
Krzysztof Kozlowski
99cf5db9cd
regulator: scmi: Simplify with scoped for each OF child loop
Use scoped for_each_available_child_of_node_scoped() when iterating over
device nodes to make code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-7-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:48 +01:00
Krzysztof Kozlowski
d4cd75b8ef
regulator: qcom-smd: Simplify with scoped for each OF child loop
Use scoped for_each_available_child_of_node_scoped() when iterating over
device nodes to make code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-6-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:47 +01:00
Krzysztof Kozlowski
17636d443f
regulator: qcom-rpmh: Simplify with scoped for each OF child loop
Use scoped for_each_available_child_of_node_scoped() when iterating over
device nodes to make code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-5-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:46 +01:00
Krzysztof Kozlowski
34a3f95941
regulator: s5m8767: Use scoped device node handling to simplify error paths
Obtain the device node reference with scoped/cleanup.h to reduce error
handling and make the code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-4-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:45 +01:00
Krzysztof Kozlowski
ea13bd391d
regulator: max8997: Use scoped device node handling to simplify error paths
Obtain the device node reference with scoped/cleanup.h to reduce error
handling and make the code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-3-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:44 +01:00
Krzysztof Kozlowski
f372c262d4
regulator: bd96801: Use scoped device node handling to simplify error paths
Obtain the device node reference with scoped/cleanup.h and use scoped
for_each_child_of_node_scoped() to reduce error handling and make the
code a bit simpler.  Add also brackets {} over outer for loop for code
readability.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-2-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:43 +01:00
Krzysztof Kozlowski
83c7cdeef5
regulator: bd718x7: Use scoped device node handling to simplify error paths
Obtain the device node reference with scoped/cleanup.h and use scoped
for_each_child_of_node_scoped() to reduce error handling and make the
code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20240814-cleanup-h-of-node-put-regulator-v1-1-87151088b883@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-14 18:21:42 +01:00
Mark Brown
b31274caf3
Add input voltage suppliers for PMIC MCP16502
Merge series from Andrei Simion <andrei.simion@microchip.com>:

In this series of patches, support for the *-supply property [1]  is added
(correlated with supply_name [2]) from the core regulator.
Link [1]: https://github.com/torvalds/linux/blob/master/drivers/regulator/core.c#L471
Link [2]: https://github.com/torvalds/linux/blob/master/drivers/regulator/core.c#L2064

I modified the mcp16502.c driver and the dts that use this PMIC.
We added these improvements to provide a complete description of the board power scheme.
2024-08-13 15:51:35 +01:00
Andrei Simion
bf5ba94fa0
regulator: dt-bindings: microchip,mcp16502: Add voltage input supply documentation
Update the yaml schema with info about input supply phandle for
each buck and ldo according with the PMIC MCP16502 Datasheet.

Signed-off-by: Andrei Simion <andrei.simion@microchip.com>
Link: https://patch.msgid.link/20240812135231.43744-3-andrei.simion@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-13 12:41:45 +01:00
Andrei Simion
8612898350
regulator: mcp16502: Add supplier for regulators
Based on the datasheet [1] (Block Diagram) PVIN[1-4] and LVIN
represent the input voltage supply for each BUCKs respective LDOs.
Update the driver to align with the datasheet [1].

[1]: https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP16502-Data-Sheet-DS20006275.pdf

Co-developed-by: Mihai Sain <mihai.sain@microchip.com>
Signed-off-by: Mihai Sain <mihai.sain@microchip.com>
Signed-off-by: Andrei Simion <andrei.simion@microchip.com>
Link: https://patch.msgid.link/20240812135231.43744-2-andrei.simion@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-13 12:41:44 +01:00
Macpaul Lin
1b4ec561b4
regulator: dt-bindings: mediatek,mt6397-regulator: convert to YAML
Convert the MediaTek MT6397 regulator bindings to DT schema.

Signed-off-by: Sen Chu <sen.chu@mediatek.com>
Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20240807091738.18387-1-macpaul.lin@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-07 23:46:42 +01:00
Christophe JAILLET
08b856b38c
regulator: bd9576: Constify struct linear_range
'struct linear_range' are not modified in these drivers.

Constifying this structure moves some data to a read-only section, so
increase overall security.

This is also more consistent with the other struct linear_range declaration
above.

On a x86_64, with allmodconfig, as an example:
Before:
======
   text	   data	    bss	    dec	    hex	filename
  20767	   4544	      0	  25311	   62df	drivers/regulator/bd9576-regulator.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
  21023	   4288	      0	  25311	   62df	drivers/regulator/bd9576-regulator.o

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/a4e37991ea7b47145ab033128c8dd49f73a983e6.1722949232.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-06 15:24:01 +01:00
Rob Herring (Arm)
b03695d952
regulator: Use of_property_read_bool()
Use of_property_read_bool() to read boolean properties rather than
of_get_property(). This is part of a larger effort to remove callers
of of_get_property() and similar functions. of_get_property() leaks
the DT property data pointer which is a problem for dynamically
allocated nodes which may be freed.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20240731191312.1710417-24-robh@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-01 12:50:11 +01:00
Yue Haibing
cd7d47c576
regulator: max77857: Make max77857_id static
Fix sparse warning:
drivers/regulator/max77857-regulator.c:430:28: warning: symbol 'max77857_id' was not declared. Should it be static?

max77857_id is not used outside the source file. Make it static.

Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Link: https://patch.msgid.link/20240801114536.472796-1-yuehaibing@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-08-01 12:50:10 +01:00
Chen Ni
3078425f63
regulator: rt5120: Convert comma to semicolon
Replace a comma between expression statements by a semicolon.

Fixes: c0216c0e68 ("regulator: rt5120: Add PMIC regulator support")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Reviewed-by: ChiYuan Huang <cy_huang@richtek.com>
Link: https://patch.msgid.link/20240716084659.1252690-1-nichen@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-07-29 01:19:05 +01:00
Chen Ni
291f854eca
regulator: wm831x-isink: Convert comma to semicolon
Replace a comma between expression statements by a semicolon.

Fixes: d48acfd037 ("regulator: wm831x-isink: Convert to use regulator_set/get_current_limit_regmap")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20240716085115.1252817-1-nichen@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-07-29 01:19:04 +01:00
Dan Carpenter
f0aaae1a58
regulator: bd96801: Delete unnecessary check in probe()
The "idesc" pointer points to the middle of rdesc[] array so it can't be
NULL.  Also rdesc isn't NULL.  Delete the check.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/01cd578f-127b-4c8b-a8c6-5e11a0a2555c@stanley.mountain
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-07-29 01:19:04 +01:00