Add supply properties that match the P1 PMIC's actual hardware topology
where each buck converter has its own VIN pin and LDO groups share
common input pins. Supply names are defined according to the pinout
names in the P1 datasheet.
The existing "vin-supply" is marked as deprecated to avoid warnings
as dts and dt-bindings go via different trees.
Signed-off-by: Guodong Xu <guodong@riscstar.com>
---
v3: Mark vin-supply as deprecated.
v2: Remove providers from the dts example.
Pass the 'make dt_binding_check' test.
---
.../devicetree/bindings/mfd/spacemit,p1.yaml | 53 +++++++++++++++++++++-
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
index c6593ac6ef6a..41f784408e29 100644
--- a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
+++ b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
@@ -28,7 +28,46 @@ properties:
maxItems: 1
vin-supply:
- description: Input supply phandle.
+ deprecated: true
+ description:
+ Main power input (deprecated). Use individual vin1-6, aldoin,
+ dldoin1, and dldoin2 supply properties instead.
+
+ vin1-supply:
+ description:
+ Power supply for BUCK1. Required if BUCK1 is defined.
+
+ vin2-supply:
+ description:
+ Power supply for BUCK2. Required if BUCK2 is defined.
+
+ vin3-supply:
+ description:
+ Power supply for BUCK3. Required if BUCK3 is defined.
+
+ vin4-supply:
+ description:
+ Power supply for BUCK4. Required if BUCK4 is defined.
+
+ vin5-supply:
+ description:
+ Power supply for BUCK5. Required if BUCK5 is defined.
+
+ vin6-supply:
+ description:
+ Power supply for BUCK6. Required if BUCK6 is defined.
+
+ aldoin-supply:
+ description:
+ Power supply for ALDO1-4. Required if any are defined.
+
+ dldoin1-supply:
+ description:
+ Power supply for DLDO1-4. Required if any are defined.
+
+ dldoin2-supply:
+ description:
+ Power supply for DLDO5-7. Required if any are defined.
regulators:
type: object
@@ -58,6 +97,10 @@ examples:
compatible = "spacemit,p1";
reg = <0x41>;
interrupts = <64>;
+ vin1-supply = <®_vcc_5v>;
+ vin5-supply = <®_vcc_5v>;
+ aldoin-supply = <®_vcc_5v>;
+ dldoin1-supply = <&buck5>;
regulators {
buck1 {
@@ -68,6 +111,14 @@ examples:
regulator-always-on;
};
+ buck5: buck5 {
+ regulator-name = "buck5";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <3450000>;
+ regulator-ramp-delay = <5000>;
+ regulator-always-on;
+ };
+
aldo1 {
regulator-name = "aldo1";
regulator-min-microvolt = <500000>;
--
2.43.0
On Wed, Feb 04, 2026 at 09:23:01PM +0800, Guodong Xu wrote: > Add supply properties that match the P1 PMIC's actual hardware topology > where each buck converter has its own VIN pin and LDO groups share > common input pins. Supply names are defined according to the pinout > names in the P1 datasheet. > > The existing "vin-supply" is marked as deprecated to avoid warnings > as dts and dt-bindings go via different trees. > > Signed-off-by: Guodong Xu <guodong@riscstar.com> > --- > v3: Mark vin-supply as deprecated. > v2: Remove providers from the dts example. > Pass the 'make dt_binding_check' test. > --- > .../devicetree/bindings/mfd/spacemit,p1.yaml | 53 +++++++++++++++++++++- > 1 file changed, 52 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml > index c6593ac6ef6a..41f784408e29 100644 > --- a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml > +++ b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml > @@ -28,7 +28,46 @@ properties: > maxItems: 1 > > vin-supply: > - description: Input supply phandle. > + deprecated: true > + description: > + Main power input (deprecated). Use individual vin1-6, aldoin, > + dldoin1, and dldoin2 supply properties instead. What's the point documenting the deprecated version if it doesn't work anymore?
On Thu, Feb 5, 2026 at 2:07 AM Conor Dooley <conor@kernel.org> wrote:
>
> On Wed, Feb 04, 2026 at 09:23:01PM +0800, Guodong Xu wrote:
> > Add supply properties that match the P1 PMIC's actual hardware topology
> > where each buck converter has its own VIN pin and LDO groups share
> > common input pins. Supply names are defined according to the pinout
> > names in the P1 datasheet.
> >
> > The existing "vin-supply" is marked as deprecated to avoid warnings
> > as dts and dt-bindings go via different trees.
> >
> > Signed-off-by: Guodong Xu <guodong@riscstar.com>
> > ---
> > v3: Mark vin-supply as deprecated.
> > v2: Remove providers from the dts example.
> > Pass the 'make dt_binding_check' test.
> > ---
> > .../devicetree/bindings/mfd/spacemit,p1.yaml | 53 +++++++++++++++++++++-
> > 1 file changed, 52 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
> > index c6593ac6ef6a..41f784408e29 100644
> > --- a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
> > +++ b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
> > @@ -28,7 +28,46 @@ properties:
> > maxItems: 1
> >
> > vin-supply:
> > - description: Input supply phandle.
> > + deprecated: true
> > + description:
> > + Main power input (deprecated). Use individual vin1-6, aldoin,
> > + dldoin1, and dldoin2 supply properties instead.
>
> What's the point documenting the deprecated version if it doesn't work
> anymore?
Keeping "vin-supply" in the binding with "deprecated: true" avoids a cross-tree
warning. Since dts and dt-bindings go via different trees, the new binding +
old dts triggers:
pmic@41 (spacemit,p1): Unevaluated properties are not allowed
('vin-supply' was unexpected)
Rob flagged this in [1] as 'intermittent warnings'.
I'm open to dropping the deprecated markup, maybe just accepting the
transient warning is fine?
Link: https://lore.kernel.org/all/20260129181604.GA1398997-robh@kernel.org/ [1]
Best regards,
Guodong Xu
On Thu, Feb 05, 2026 at 03:42:01PM +0800, Guodong Xu wrote:
> On Thu, Feb 5, 2026 at 2:07 AM Conor Dooley <conor@kernel.org> wrote:
> >
> > On Wed, Feb 04, 2026 at 09:23:01PM +0800, Guodong Xu wrote:
> > > Add supply properties that match the P1 PMIC's actual hardware topology
> > > where each buck converter has its own VIN pin and LDO groups share
> > > common input pins. Supply names are defined according to the pinout
> > > names in the P1 datasheet.
> > >
> > > The existing "vin-supply" is marked as deprecated to avoid warnings
> > > as dts and dt-bindings go via different trees.
> > >
> > > Signed-off-by: Guodong Xu <guodong@riscstar.com>
> > > ---
> > > v3: Mark vin-supply as deprecated.
> > > v2: Remove providers from the dts example.
> > > Pass the 'make dt_binding_check' test.
> > > ---
> > > .../devicetree/bindings/mfd/spacemit,p1.yaml | 53 +++++++++++++++++++++-
> > > 1 file changed, 52 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
> > > index c6593ac6ef6a..41f784408e29 100644
> > > --- a/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
> > > +++ b/Documentation/devicetree/bindings/mfd/spacemit,p1.yaml
> > > @@ -28,7 +28,46 @@ properties:
> > > maxItems: 1
> > >
> > > vin-supply:
> > > - description: Input supply phandle.
> > > + deprecated: true
> > > + description:
> > > + Main power input (deprecated). Use individual vin1-6, aldoin,
> > > + dldoin1, and dldoin2 supply properties instead.
> >
> > What's the point documenting the deprecated version if it doesn't work
> > anymore?
>
> Keeping "vin-supply" in the binding with "deprecated: true" avoids a cross-tree
> warning. Since dts and dt-bindings go via different trees, the new binding +
> old dts triggers:
>
> pmic@41 (spacemit,p1): Unevaluated properties are not allowed
> ('vin-supply' was unexpected)
>
> Rob flagged this in [1] as 'intermittent warnings'.
>
> I'm open to dropping the deprecated markup, maybe just accepting the
> transient warning is fine?
I'd rather have the warning in linux-next or for a short period of time
in Linus' tree during the merge window, than have the binding document
something that no longer works. To me, the deprecated tag in a binding
means "this used to be how things were done, and still works, but we
don't want you to use it because of xyz reason". Things that don't work
should produce warnings to stop people using them. You provided a fairly
good justification for breaking the ABI, just commit to that and remove
the old/incorrect way of doing things.
>
> Link: https://lore.kernel.org/all/20260129181604.GA1398997-robh@kernel.org/ [1]
>
> Best regards,
> Guodong Xu
On 05/02/2026 20:15, Conor Dooley wrote:
>>>>
>>>> vin-supply:
>>>> - description: Input supply phandle.
>>>> + deprecated: true
>>>> + description:
>>>> + Main power input (deprecated). Use individual vin1-6, aldoin,
>>>> + dldoin1, and dldoin2 supply properties instead.
>>>
>>> What's the point documenting the deprecated version if it doesn't work
>>> anymore?
>>
>> Keeping "vin-supply" in the binding with "deprecated: true" avoids a cross-tree
>> warning. Since dts and dt-bindings go via different trees, the new binding +
>> old dts triggers:
>>
>> pmic@41 (spacemit,p1): Unevaluated properties are not allowed
>> ('vin-supply' was unexpected)
>>
>> Rob flagged this in [1] as 'intermittent warnings'.
>>
>> I'm open to dropping the deprecated markup, maybe just accepting the
>> transient warning is fine?
>
> I'd rather have the warning in linux-next or for a short period of time
> in Linus' tree during the merge window, than have the binding document
> something that no longer works. To me, the deprecated tag in a binding
> means "this used to be how things were done, and still works, but we
> don't want you to use it because of xyz reason". Things that don't work
I agree, deprecated still should mean the interface is supported.
Otherwise, after applying the DTS patches, what is the point of keeping
such deprecated property? Very little benefits.
> should produce warnings to stop people using them. You provided a fairly
> good justification for breaking the ABI, just commit to that and remove
> the old/incorrect way of doing things.
>
Best regards,
Krzysztof
© 2016 - 2026 Red Hat, Inc.