Re: [PATCH v6 1/5] regulator: dt-bindings: willsemi,wl2868c: add the WL2868C camera PMIC
From: Rob Herring
Date: Fri Nov 06 2026 - 09:23:37 EST
On Wed, Nov 04, 2026 at 11:26:44AM +0800, Qianhui Xu wrote:
> The WL2868C is an I2C-controlled camera power management IC from Will
> Semiconductor. It provides seven programmable LDOs: LDO1 and LDO2 are fed
> from a shared VIN12 input and cover 0.496 V to 1.512 V, LDO3 and LDO4 share
> VIN34, and LDO5 to LDO7 each have their own input, covering 1.504 V to
> 3.544 V. All outputs are programmable in 8 mV steps and are gated by
> per-output enable bits with a chip-wide SYS_EN master. The chip also
> exposes an optional active-low RST_N input.
>
> VIN7 and VSYS are both inputs of the internal control logic, which is
> powered from the higher of the two voltages, so a device tree has to
> describe at least one of them. The remaining inputs only feed LDOs, so
> they stay optional: an input can be left unconnected when the outputs it
> feeds are unused on a given board.
>
> Signed-off-by: Qianhui Xu <xiaqinghuan@xxxxxxxxxxxxxxxx>
> ---
> .../bindings/regulator/willsemi,wl2868c.yaml | 104 ++++++++++++++++++
> 1 file changed, 104 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/regulator/willsemi,wl2868c.yaml
>
> diff --git a/Documentation/devicetree/bindings/regulator/willsemi,wl2868c.yaml b/Documentation/devicetree/bindings/regulator/willsemi,wl2868c.yaml
> new file mode 100644
> index 0000000000..df7990d0d8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/willsemi,wl2868c.yaml
> @@ -0,0 +1,104 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/willsemi,wl2868c.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Will Semiconductor WL2868C camera power management IC
> +
> +maintainers:
> + - Qianhui Xu <xiaqinghuan@xxxxxxxxxxxxxxxx>
> +
> +description:
With paragraphs, you need '>' modifier.
> + The WL2868C is a camera power management IC with seven programmable LDOs.
> + LDO1 and LDO2 share the VIN12 input and cover 0.496 V to 1.512 V; LDO3 and
> + LDO4 share VIN34, and LDO5 to LDO7 have one input each, covering 1.504 V to
> + 3.544 V. All outputs are programmable in 8 mV steps.
> +
> + VIN7 and VSYS feed the internal control logic, which is powered from the
> + higher of the two, so at least one of them has to be connected. The other
> + inputs only feed LDOs, so an input may be left unconnected on a board
> + that does not use the outputs it feeds, which is why they are not
> + mandatory.
> +
> +properties:
> + compatible:
> + const: willsemi,wl2868c
> +
> + reg:
> + maxItems: 1
> +
> + reset-gpios:
> + maxItems: 1
> + description: Active-low RST_N input.
> +
> + vin12-supply:
> + description: Input supply for LDO1 and LDO2.
> +
> + vin34-supply:
> + description: Input supply for LDO3 and LDO4.
> +
> + vin5-supply:
> + description: Input supply for LDO5.
> +
> + vin6-supply:
> + description: Input supply for LDO6.
> +
> + vin7-supply:
> + description:
> + Input supply for LDO7 and one of the two supplies of the internal
> + control logic.
> +
> + vsys-supply:
> + description:
> + System supply, the other supply of the internal control logic. The
> + control logic is powered from the higher of VIN7 and VSYS.
> +
> + regulators:
> + type: object
> + additionalProperties: false
> +
> + patternProperties:
> + "^ldo[1-7]$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - regulators
> +
> +anyOf:
> + - required:
> + - vin7-supply
> + - required:
> + - vsys-supply
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmic@2f {
> + compatible = "willsemi,wl2868c";
> + reg = <0x2f>;
> + vsys-supply = <&vsys_reg>;
> +
> + regulators {
> + ldo1 {
> + regulator-max-microvolt = <1128000>;
> + regulator-min-microvolt = <1128000>;
> + };
> + };
> + };
> + };
> +
> + vsys_reg: regulator-vsys {
> + compatible = "regulator-fixed";
> + regulator-name = "vsys";
> + };
Drop. We don't put providers into examples.
Rob