Message ID | 20200507183013.27261-1-dmurphy@ti.com |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | [v2] dt-bindings: power: Convert bq27xxx dt to yaml | expand |
Context | Check | Description |
---|---|---|
robh/checkpatch | warning | total: 0 errors, 3 warnings, 86 lines checked |
robh/dt-meta-schema | success |
Hi Dan, On Thu, May 07, 2020 at 01:30:13PM -0500, Dan Murphy wrote: > Convert the bq27xxx.txt to yaml format > > CC: Pali Rohár <pali@kernel.org> > CC: Andrew F. Davis <afd@ti.com> > Signed-off-by: Dan Murphy <dmurphy@ti.com> > --- This needs is missing the power-supplies property. The N900 DT contains a bq27200 referencing the charger, so it should fail the DT check without the property being listed here. > .../bindings/power/supply/bq27xxx.txt | 56 ------------ > .../bindings/power/supply/bq27xxx.yaml | 86 +++++++++++++++++++ > 2 files changed, 86 insertions(+), 56 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.txt > create mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.yaml > > diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt b/Documentation/devicetree/bindings/power/supply/bq27xxx.txt > deleted file mode 100644 > index 4fa8e08df2b6..000000000000 > --- a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt > +++ /dev/null > @@ -1,56 +0,0 @@ > -TI BQ27XXX fuel gauge family > - > -Required properties: > -- compatible: contains one of the following: > - * "ti,bq27200" - BQ27200 > - * "ti,bq27210" - BQ27210 > - * "ti,bq27500" - deprecated, use revision specific property below > - * "ti,bq27510" - deprecated, use revision specific property below > - * "ti,bq27520" - deprecated, use revision specific property below > - * "ti,bq27500-1" - BQ27500/1 > - * "ti,bq27510g1" - BQ27510-g1 > - * "ti,bq27510g2" - BQ27510-g2 > - * "ti,bq27510g3" - BQ27510-g3 > - * "ti,bq27520g1" - BQ27520-g1 > - * "ti,bq27520g2" - BQ27520-g2 > - * "ti,bq27520g3" - BQ27520-g3 > - * "ti,bq27520g4" - BQ27520-g4 > - * "ti,bq27521" - BQ27521 > - * "ti,bq27530" - BQ27530 > - * "ti,bq27531" - BQ27531 > - * "ti,bq27541" - BQ27541 > - * "ti,bq27542" - BQ27542 > - * "ti,bq27546" - BQ27546 > - * "ti,bq27742" - BQ27742 > - * "ti,bq27545" - BQ27545 > - * "ti,bq27411" - BQ27411 > - * "ti,bq27421" - BQ27421 > - * "ti,bq27425" - BQ27425 > - * "ti,bq27426" - BQ27426 > - * "ti,bq27441" - BQ27441 > - * "ti,bq27621" - BQ27621 > -- reg: integer, I2C address of the fuel gauge. > - > -Optional properties: > -- monitored-battery: phandle of battery characteristics node > - The fuel gauge uses the following battery properties: > - + energy-full-design-microwatt-hours > - + charge-full-design-microamp-hours > - + voltage-min-design-microvolt > - Both or neither of the *-full-design-*-hours properties must be set. > - See Documentation/devicetree/bindings/power/supply/battery.txt > - > -Example: > - > - bat: battery { > - compatible = "simple-battery"; > - voltage-min-design-microvolt = <3200000>; > - energy-full-design-microwatt-hours = <5290000>; > - charge-full-design-microamp-hours = <1430000>; > - }; > - > - bq27510g3: fuel-gauge@55 { > - compatible = "ti,bq27510g3"; > - reg = <0x55>; > - monitored-battery = <&bat>; > - }; > diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml > new file mode 100644 > index 000000000000..54f497c291f2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml > @@ -0,0 +1,86 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (C) 2020 Texas Instruments Incorporated > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/power/supply/bq27xxx.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: TI BQ27XXX fuel gauge family > + > +maintainers: > + - Pali Rohár <pali@kernel.org> > + - Andrew F. Davis <afd@ti.com> > + - Sebastian Reichel <sre@kernel.org> > + > +description: | > + Support various Texas Instruments fuel gauge devices that share similar > + register maps and power supply properties allOf: - $ref: power-supply.yaml# > +properties: > + compatible: > + enum: > + - ti,bq27200 - BQ27200 > + - ti,bq27210 - BQ27210 > + - ti,bq27500 - deprecated, use revision specific property below > + - ti,bq27510 - deprecated, use revision specific property below > + - ti,bq27520 - deprecated, use revision specific property below There is a deprecated property ("deprecated: true"), but IDK how to apply it to specific compatible values. Maybe Rob can help out here. Otherwise it's not a blocker, since the conversion is still an improvement without having explicit deprecation marks :) > + - ti,bq27500-1 - BQ27500/1 > + - ti,bq27510g1 - BQ27510-g1 > + - ti,bq27510g2 - BQ27510-g2 > + - ti,bq27510g3 - BQ27510-g3 > + - ti,bq27520g1 - BQ27520-g1 > + - ti,bq27520g2 - BQ27520-g2 > + - ti,bq27520g3 - BQ27520-g3 > + - ti,bq27520g4 - BQ27520-g4 > + - ti,bq27521 - BQ27521 > + - ti,bq27530 - BQ27530 > + - ti,bq27531 - BQ27531 > + - ti,bq27541 - BQ27541 > + - ti,bq27542 - BQ27542 > + - ti,bq27546 - BQ27546 > + - ti,bq27742 - BQ27742 > + - ti,bq27545 - BQ27545 > + - ti,bq27411 - BQ27411 > + - ti,bq27421 - BQ27421 > + - ti,bq27425 - BQ27425 > + - ti,bq27426 - BQ27426 > + - ti,bq27441 - BQ27441 > + - ti,bq27621 - BQ27621 > + > + reg: > + maxItems: 1 > + description: integer, I2C address of the fuel gauge. > + > + monitored-battery: > + description: | > + phandle of battery characteristics node. > + The fuel gauge uses the following battery properties: > + - energy-full-design-microwatt-hours > + - charge-full-design-microamp-hours > + - voltage-min-design-microvolt > + Both or neither of the *-full-design-*-hours properties must be set. > + See Documentation/devicetree/bindings/power/supply/battery.txt power-supplies: true > + > +required: > + - compatible > + - reg > +additionalProperties: false > + > +examples: > + - | > + i2c0 { > + #address-cells = <1>; > + #size-cells = <0>; > + bat: battery { > + compatible = "simple-battery"; > + voltage-min-design-microvolt = <3200000>; > + energy-full-design-microwatt-hours = <5290000>; > + charge-full-design-microamp-hours = <1430000>; > + }; > + > + bq27510g3: fuel-gauge@55 { > + compatible = "ti,bq27510g3"; > + reg = <0x55>; > + monitored-battery = <&bat>; > + }; > + }; Otherwise looks good to me. -- Sebastian
Sebastian On 5/10/20 11:17 AM, Sebastian Reichel wrote: > Hi Dan, > > On Thu, May 07, 2020 at 01:30:13PM -0500, Dan Murphy wrote: >> Convert the bq27xxx.txt to yaml format >> >> CC: Pali Rohár <pali@kernel.org> >> CC: Andrew F. Davis <afd@ti.com> >> Signed-off-by: Dan Murphy <dmurphy@ti.com> >> --- > This needs is missing the power-supplies property. The N900 DT > contains a bq27200 referencing the charger, so it should fail the DT > check without the property being listed here. Hmm. I ran the dt checker specifically on the binding and it did not fail. Unless I need to build some other DTs as well. Either I will have the power-supplies property > >> .../bindings/power/supply/bq27xxx.txt | 56 ------------ >> .../bindings/power/supply/bq27xxx.yaml | 86 +++++++++++++++++++ >> 2 files changed, 86 insertions(+), 56 deletions(-) >> delete mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.txt >> create mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.yaml >> >> diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt b/Documentation/devicetree/bindings/power/supply/bq27xxx.txt >> deleted file mode 100644 >> index 4fa8e08df2b6..000000000000 >> --- a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt >> +++ /dev/null >> @@ -1,56 +0,0 @@ >> -TI BQ27XXX fuel gauge family >> - >> -Required properties: >> -- compatible: contains one of the following: >> - * "ti,bq27200" - BQ27200 >> - * "ti,bq27210" - BQ27210 >> - * "ti,bq27500" - deprecated, use revision specific property below >> - * "ti,bq27510" - deprecated, use revision specific property below >> - * "ti,bq27520" - deprecated, use revision specific property below >> - * "ti,bq27500-1" - BQ27500/1 >> - * "ti,bq27510g1" - BQ27510-g1 >> - * "ti,bq27510g2" - BQ27510-g2 >> - * "ti,bq27510g3" - BQ27510-g3 >> - * "ti,bq27520g1" - BQ27520-g1 >> - * "ti,bq27520g2" - BQ27520-g2 >> - * "ti,bq27520g3" - BQ27520-g3 >> - * "ti,bq27520g4" - BQ27520-g4 >> - * "ti,bq27521" - BQ27521 >> - * "ti,bq27530" - BQ27530 >> - * "ti,bq27531" - BQ27531 >> - * "ti,bq27541" - BQ27541 >> - * "ti,bq27542" - BQ27542 >> - * "ti,bq27546" - BQ27546 >> - * "ti,bq27742" - BQ27742 >> - * "ti,bq27545" - BQ27545 >> - * "ti,bq27411" - BQ27411 >> - * "ti,bq27421" - BQ27421 >> - * "ti,bq27425" - BQ27425 >> - * "ti,bq27426" - BQ27426 >> - * "ti,bq27441" - BQ27441 >> - * "ti,bq27621" - BQ27621 >> -- reg: integer, I2C address of the fuel gauge. >> - >> -Optional properties: >> -- monitored-battery: phandle of battery characteristics node >> - The fuel gauge uses the following battery properties: >> - + energy-full-design-microwatt-hours >> - + charge-full-design-microamp-hours >> - + voltage-min-design-microvolt >> - Both or neither of the *-full-design-*-hours properties must be set. >> - See Documentation/devicetree/bindings/power/supply/battery.txt >> - >> -Example: >> - >> - bat: battery { >> - compatible = "simple-battery"; >> - voltage-min-design-microvolt = <3200000>; >> - energy-full-design-microwatt-hours = <5290000>; >> - charge-full-design-microamp-hours = <1430000>; >> - }; >> - >> - bq27510g3: fuel-gauge@55 { >> - compatible = "ti,bq27510g3"; >> - reg = <0x55>; >> - monitored-battery = <&bat>; >> - }; >> diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml >> new file mode 100644 >> index 000000000000..54f497c291f2 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml >> @@ -0,0 +1,86 @@ >> +# SPDX-License-Identifier: GPL-2.0 >> +# Copyright (C) 2020 Texas Instruments Incorporated >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/power/supply/bq27xxx.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: TI BQ27XXX fuel gauge family >> + >> +maintainers: >> + - Pali Rohár <pali@kernel.org> >> + - Andrew F. Davis <afd@ti.com> >> + - Sebastian Reichel <sre@kernel.org> >> + >> +description: | >> + Support various Texas Instruments fuel gauge devices that share similar >> + register maps and power supply properties > allOf: > - $ref: power-supply.yaml# Ack > >> +properties: >> + compatible: >> + enum: >> + - ti,bq27200 - BQ27200 >> + - ti,bq27210 - BQ27210 >> + - ti,bq27500 - deprecated, use revision specific property below >> + - ti,bq27510 - deprecated, use revision specific property below >> + - ti,bq27520 - deprecated, use revision specific property below > There is a deprecated property ("deprecated: true"), but IDK how to > apply it to specific compatible values. Maybe Rob can help out here. > Otherwise it's not a blocker, since the conversion is still an > improvement without having explicit deprecation marks :) > I would prefer to do this in separate patches. The code still contains these deprecated values. So technically we should remove them in this conversion from the binding, code and the 2 bindings that they are associated with. These have been marked deprecated since 2017. I know we are not supposed to remove items from the bindings so at the very least we should remove them from the code and update the devicetree files and as you said mark these as deprecated and removed in this conversion. >> + - ti,bq27500-1 - BQ27500/1 >> + - ti,bq27510g1 - BQ27510-g1 >> + - ti,bq27510g2 - BQ27510-g2 >> + - ti,bq27510g3 - BQ27510-g3 >> + - ti,bq27520g1 - BQ27520-g1 >> + - ti,bq27520g2 - BQ27520-g2 >> + - ti,bq27520g3 - BQ27520-g3 >> + - ti,bq27520g4 - BQ27520-g4 >> + - ti,bq27521 - BQ27521 >> + - ti,bq27530 - BQ27530 >> + - ti,bq27531 - BQ27531 >> + - ti,bq27541 - BQ27541 >> + - ti,bq27542 - BQ27542 >> + - ti,bq27546 - BQ27546 >> + - ti,bq27742 - BQ27742 >> + - ti,bq27545 - BQ27545 >> + - ti,bq27411 - BQ27411 >> + - ti,bq27421 - BQ27421 >> + - ti,bq27425 - BQ27425 >> + - ti,bq27426 - BQ27426 >> + - ti,bq27441 - BQ27441 >> + - ti,bq27621 - BQ27621 >> + >> + reg: >> + maxItems: 1 >> + description: integer, I2C address of the fuel gauge. >> + >> + monitored-battery: >> + description: | >> + phandle of battery characteristics node. >> + The fuel gauge uses the following battery properties: >> + - energy-full-design-microwatt-hours >> + - charge-full-design-microamp-hours >> + - voltage-min-design-microvolt >> + Both or neither of the *-full-design-*-hours properties must be set. >> + See Documentation/devicetree/bindings/power/supply/battery.txt > power-supplies: true Ack > >> + >> +required: >> + - compatible >> + - reg >> +additionalProperties: false >> + >> +examples: >> + - | >> + i2c0 { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + bat: battery { >> + compatible = "simple-battery"; >> + voltage-min-design-microvolt = <3200000>; >> + energy-full-design-microwatt-hours = <5290000>; >> + charge-full-design-microamp-hours = <1430000>; >> + }; >> + >> + bq27510g3: fuel-gauge@55 { >> + compatible = "ti,bq27510g3"; >> + reg = <0x55>; >> + monitored-battery = <&bat>; >> + }; >> + }; > Otherwise looks good to me. Ack Dan > > -- Sebastian
Sebastian On 5/11/20 9:32 AM, Sebastian Reichel wrote: > Hi, > > On Mon, May 11, 2020 at 07:25:06AM -0500, Dan Murphy wrote: >> On 5/10/20 11:17 AM, Sebastian Reichel wrote: >>> This needs is missing the power-supplies property. The N900 DT >>> contains a bq27200 referencing the charger, so it should fail the DT >>> check without the property being listed here. >> Hmm. I ran the dt checker specifically on the binding and it did not fail. >> Unless I need to build some other DTs as well. >> Either I will have the power-supplies property > I just tried it myself. The problem is the way you are specifying > the compatible strings. This is the parsing result: > > enum: ['ti,bq27200 - BQ27200', 'ti,bq27210 - BQ27210', 'ti,bq27500 - deprecated, > use revision specific property below', ... > > You can see this in Documentation/devicetree/bindings/processed-schema.yaml, which > is generated by running the check. The compatible comments need a # as separation > character like this to generate proper bindings: > > properties: > compatible: > enum: > - ti,bq27200 # BQ27200 > - ti,bq27210 # BQ27210 > - ti,bq27500 # deprecated, use revision specific property below Well honestly not sure why we need the comment either. These are pretty self explanatory maybe we should just remove the additional comments Any consideration on just removing the deprecated values? Dan > > -- Sebastian
Hi, On Mon, May 11, 2020 at 07:25:06AM -0500, Dan Murphy wrote: > On 5/10/20 11:17 AM, Sebastian Reichel wrote: > > This needs is missing the power-supplies property. The N900 DT > > contains a bq27200 referencing the charger, so it should fail the DT > > check without the property being listed here. > > Hmm. I ran the dt checker specifically on the binding and it did not fail. > Unless I need to build some other DTs as well. > Either I will have the power-supplies property I just tried it myself. The problem is the way you are specifying the compatible strings. This is the parsing result: enum: ['ti,bq27200 - BQ27200', 'ti,bq27210 - BQ27210', 'ti,bq27500 - deprecated, use revision specific property below', ... You can see this in Documentation/devicetree/bindings/processed-schema.yaml, which is generated by running the check. The compatible comments need a # as separation character like this to generate proper bindings: properties: compatible: enum: - ti,bq27200 # BQ27200 - ti,bq27210 # BQ27210 - ti,bq27500 # deprecated, use revision specific property below -- Sebastian
Sebastian On 5/11/20 9:57 AM, Sebastian Reichel wrote: > Hi, > > On Mon, May 11, 2020 at 09:29:59AM -0500, Dan Murphy wrote: >> On 5/11/20 9:32 AM, Sebastian Reichel wrote: >>> On Mon, May 11, 2020 at 07:25:06AM -0500, Dan Murphy wrote: >>>> On 5/10/20 11:17 AM, Sebastian Reichel wrote: >>>>> This needs is missing the power-supplies property. The N900 DT >>>>> contains a bq27200 referencing the charger, so it should fail the DT >>>>> check without the property being listed here. >>>> Hmm. I ran the dt checker specifically on the binding and it did not fail. >>>> Unless I need to build some other DTs as well. >>>> Either I will have the power-supplies property >>> I just tried it myself. The problem is the way you are specifying >>> the compatible strings. This is the parsing result: >>> >>> enum: ['ti,bq27200 - BQ27200', 'ti,bq27210 - BQ27210', 'ti,bq27500 - deprecated, >>> use revision specific property below', ... >>> >>> You can see this in Documentation/devicetree/bindings/processed-schema.yaml, which >>> is generated by running the check. The compatible comments need a # as separation >>> character like this to generate proper bindings: >>> >>> properties: >>> compatible: >>> enum: >>> - ti,bq27200 # BQ27200 >>> - ti,bq27210 # BQ27210 >>> - ti,bq27500 # deprecated, use revision specific property below >> Well honestly not sure why we need the comment either. These are pretty >> self explanatory maybe we should just remove the additional comments > Fine with me. Ack > >> Any consideration on just removing the deprecated values? > Let's keep them with their comment for now. Removing them should > start with marking them as depracated in the binding and generating > a runtime warning in the driver, so that people become aware of the > problem. At least for ti,bq27500 we have mainline users At least for > ti,bq27500 we have mainline users. There are only 2 dts files that have this reference unless we are not sure which device is actually in use. Dan > -- Sebastian
Hi, On Mon, May 11, 2020 at 09:29:59AM -0500, Dan Murphy wrote: > On 5/11/20 9:32 AM, Sebastian Reichel wrote: > > On Mon, May 11, 2020 at 07:25:06AM -0500, Dan Murphy wrote: > > > On 5/10/20 11:17 AM, Sebastian Reichel wrote: > > > > This needs is missing the power-supplies property. The N900 DT > > > > contains a bq27200 referencing the charger, so it should fail the DT > > > > check without the property being listed here. > > > Hmm. I ran the dt checker specifically on the binding and it did not fail. > > > Unless I need to build some other DTs as well. > > > Either I will have the power-supplies property > > I just tried it myself. The problem is the way you are specifying > > the compatible strings. This is the parsing result: > > > > enum: ['ti,bq27200 - BQ27200', 'ti,bq27210 - BQ27210', 'ti,bq27500 - deprecated, > > use revision specific property below', ... > > > > You can see this in Documentation/devicetree/bindings/processed-schema.yaml, which > > is generated by running the check. The compatible comments need a # as separation > > character like this to generate proper bindings: > > > > properties: > > compatible: > > enum: > > - ti,bq27200 # BQ27200 > > - ti,bq27210 # BQ27210 > > - ti,bq27500 # deprecated, use revision specific property below > > Well honestly not sure why we need the comment either. These are pretty > self explanatory maybe we should just remove the additional comments Fine with me. > Any consideration on just removing the deprecated values? Let's keep them with their comment for now. Removing them should start with marking them as depracated in the binding and generating a runtime warning in the driver, so that people become aware of the problem. At least for ti,bq27500 we have mainline users At least for ti,bq27500 we have mainline users. -- Sebastian
On 5/7/20 2:30 PM, Dan Murphy wrote: > Convert the bq27xxx.txt to yaml format > > CC: Pali Rohár <pali@kernel.org> > CC: Andrew F. Davis <afd@ti.com> > Signed-off-by: Dan Murphy <dmurphy@ti.com> > --- > .../bindings/power/supply/bq27xxx.txt | 56 ------------ > .../bindings/power/supply/bq27xxx.yaml | 86 +++++++++++++++++++ > 2 files changed, 86 insertions(+), 56 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.txt > create mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.yaml > > diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt b/Documentation/devicetree/bindings/power/supply/bq27xxx.txt > deleted file mode 100644 > index 4fa8e08df2b6..000000000000 > --- a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt > +++ /dev/null > @@ -1,56 +0,0 @@ > -TI BQ27XXX fuel gauge family > - > -Required properties: > -- compatible: contains one of the following: > - * "ti,bq27200" - BQ27200 > - * "ti,bq27210" - BQ27210 > - * "ti,bq27500" - deprecated, use revision specific property below > - * "ti,bq27510" - deprecated, use revision specific property below > - * "ti,bq27520" - deprecated, use revision specific property below > - * "ti,bq27500-1" - BQ27500/1 This doesn't look right, these are two parts, we should be specific in DT, so: ti,bq27500 ti,bq27501 should be separate like that. Andrew > - * "ti,bq27510g1" - BQ27510-g1 > - * "ti,bq27510g2" - BQ27510-g2 > - * "ti,bq27510g3" - BQ27510-g3 > - * "ti,bq27520g1" - BQ27520-g1 > - * "ti,bq27520g2" - BQ27520-g2 > - * "ti,bq27520g3" - BQ27520-g3 > - * "ti,bq27520g4" - BQ27520-g4 > - * "ti,bq27521" - BQ27521 > - * "ti,bq27530" - BQ27530 > - * "ti,bq27531" - BQ27531 > - * "ti,bq27541" - BQ27541 > - * "ti,bq27542" - BQ27542 > - * "ti,bq27546" - BQ27546 > - * "ti,bq27742" - BQ27742 > - * "ti,bq27545" - BQ27545 > - * "ti,bq27411" - BQ27411 > - * "ti,bq27421" - BQ27421 > - * "ti,bq27425" - BQ27425 > - * "ti,bq27426" - BQ27426 > - * "ti,bq27441" - BQ27441 > - * "ti,bq27621" - BQ27621 > -- reg: integer, I2C address of the fuel gauge. > - > -Optional properties: > -- monitored-battery: phandle of battery characteristics node > - The fuel gauge uses the following battery properties: > - + energy-full-design-microwatt-hours > - + charge-full-design-microamp-hours > - + voltage-min-design-microvolt > - Both or neither of the *-full-design-*-hours properties must be set. > - See Documentation/devicetree/bindings/power/supply/battery.txt > - > -Example: > - > - bat: battery { > - compatible = "simple-battery"; > - voltage-min-design-microvolt = <3200000>; > - energy-full-design-microwatt-hours = <5290000>; > - charge-full-design-microamp-hours = <1430000>; > - }; > - > - bq27510g3: fuel-gauge@55 { > - compatible = "ti,bq27510g3"; > - reg = <0x55>; > - monitored-battery = <&bat>; > - }; > diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml > new file mode 100644 > index 000000000000..54f497c291f2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml > @@ -0,0 +1,86 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (C) 2020 Texas Instruments Incorporated > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/power/supply/bq27xxx.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: TI BQ27XXX fuel gauge family > + > +maintainers: > + - Pali Rohár <pali@kernel.org> > + - Andrew F. Davis <afd@ti.com> > + - Sebastian Reichel <sre@kernel.org> > + > +description: | > + Support various Texas Instruments fuel gauge devices that share similar > + register maps and power supply properties > + > +properties: > + compatible: > + enum: > + - ti,bq27200 - BQ27200 > + - ti,bq27210 - BQ27210 > + - ti,bq27500 - deprecated, use revision specific property below > + - ti,bq27510 - deprecated, use revision specific property below > + - ti,bq27520 - deprecated, use revision specific property below > + - ti,bq27500-1 - BQ27500/1 > + - ti,bq27510g1 - BQ27510-g1 > + - ti,bq27510g2 - BQ27510-g2 > + - ti,bq27510g3 - BQ27510-g3 > + - ti,bq27520g1 - BQ27520-g1 > + - ti,bq27520g2 - BQ27520-g2 > + - ti,bq27520g3 - BQ27520-g3 > + - ti,bq27520g4 - BQ27520-g4 > + - ti,bq27521 - BQ27521 > + - ti,bq27530 - BQ27530 > + - ti,bq27531 - BQ27531 > + - ti,bq27541 - BQ27541 > + - ti,bq27542 - BQ27542 > + - ti,bq27546 - BQ27546 > + - ti,bq27742 - BQ27742 > + - ti,bq27545 - BQ27545 > + - ti,bq27411 - BQ27411 > + - ti,bq27421 - BQ27421 > + - ti,bq27425 - BQ27425 > + - ti,bq27426 - BQ27426 > + - ti,bq27441 - BQ27441 > + - ti,bq27621 - BQ27621 > + > + reg: > + maxItems: 1 > + description: integer, I2C address of the fuel gauge. > + > + monitored-battery: > + description: | > + phandle of battery characteristics node. > + The fuel gauge uses the following battery properties: > + - energy-full-design-microwatt-hours > + - charge-full-design-microamp-hours > + - voltage-min-design-microvolt > + Both or neither of the *-full-design-*-hours properties must be set. > + See Documentation/devicetree/bindings/power/supply/battery.txt > + > +required: > + - compatible > + - reg > +additionalProperties: false > + > +examples: > + - | > + i2c0 { > + #address-cells = <1>; > + #size-cells = <0>; > + bat: battery { > + compatible = "simple-battery"; > + voltage-min-design-microvolt = <3200000>; > + energy-full-design-microwatt-hours = <5290000>; > + charge-full-design-microamp-hours = <1430000>; > + }; > + > + bq27510g3: fuel-gauge@55 { > + compatible = "ti,bq27510g3"; > + reg = <0x55>; > + monitored-battery = <&bat>; > + }; > + }; >
Andrew On 5/11/20 10:22 AM, Andrew F. Davis wrote: > On 5/7/20 2:30 PM, Dan Murphy wrote: >> Convert the bq27xxx.txt to yaml format >> >> CC: Pali Rohár <pali@kernel.org> >> CC: Andrew F. Davis <afd@ti.com> >> Signed-off-by: Dan Murphy <dmurphy@ti.com> >> --- >> .../bindings/power/supply/bq27xxx.txt | 56 ------------ >> .../bindings/power/supply/bq27xxx.yaml | 86 +++++++++++++++++++ >> 2 files changed, 86 insertions(+), 56 deletions(-) >> delete mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.txt >> create mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.yaml >> >> diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt b/Documentation/devicetree/bindings/power/supply/bq27xxx.txt >> deleted file mode 100644 >> index 4fa8e08df2b6..000000000000 >> --- a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt >> +++ /dev/null >> @@ -1,56 +0,0 @@ >> -TI BQ27XXX fuel gauge family >> - >> -Required properties: >> -- compatible: contains one of the following: >> - * "ti,bq27200" - BQ27200 >> - * "ti,bq27210" - BQ27210 >> - * "ti,bq27500" - deprecated, use revision specific property below >> - * "ti,bq27510" - deprecated, use revision specific property below >> - * "ti,bq27520" - deprecated, use revision specific property below >> - * "ti,bq27500-1" - BQ27500/1 > > This doesn't look right, these are two parts, we should be specific in > DT, so: > > ti,bq27500 > ti,bq27501 > > should be separate like that. I agree if they are 2 different parts but the code has { .compatible = "ti,bq27500-1" }, But it has no consumers. So the ti,bq27500-1 compatible should be deprecated and ti,bq27501 should be added and the ti,bq27500 should be reinstated. Dan
Hi, On Mon, May 11, 2020 at 09:55:11AM -0500, Dan Murphy wrote: > On 5/11/20 9:57 AM, Sebastian Reichel wrote: > > On Mon, May 11, 2020 at 09:29:59AM -0500, Dan Murphy wrote: > > > On 5/11/20 9:32 AM, Sebastian Reichel wrote: > > > > On Mon, May 11, 2020 at 07:25:06AM -0500, Dan Murphy wrote: > > > > > On 5/10/20 11:17 AM, Sebastian Reichel wrote: > > > > > > This needs is missing the power-supplies property. The N900 DT > > > > > > contains a bq27200 referencing the charger, so it should fail the DT > > > > > > check without the property being listed here. > > > > > Hmm. I ran the dt checker specifically on the binding and it did not fail. > > > > > Unless I need to build some other DTs as well. > > > > > Either I will have the power-supplies property > > > > I just tried it myself. The problem is the way you are specifying > > > > the compatible strings. This is the parsing result: > > > > > > > > enum: ['ti,bq27200 - BQ27200', 'ti,bq27210 - BQ27210', 'ti,bq27500 - deprecated, > > > > use revision specific property below', ... > > > > > > > > You can see this in Documentation/devicetree/bindings/processed-schema.yaml, which > > > > is generated by running the check. The compatible comments need a # as separation > > > > character like this to generate proper bindings: > > > > > > > > properties: > > > > compatible: > > > > enum: > > > > - ti,bq27200 # BQ27200 > > > > - ti,bq27210 # BQ27210 > > > > - ti,bq27500 # deprecated, use revision specific property below > > > Well honestly not sure why we need the comment either. These are pretty > > > self explanatory maybe we should just remove the additional comments > > Fine with me. > Ack > > > > > Any consideration on just removing the deprecated values? > > Let's keep them with their comment for now. Removing them should > > start with marking them as depracated in the binding and generating > > a runtime warning in the driver, so that people become aware of the > > problem. At least for ti,bq27500 we have mainline users At least for > > ti,bq27500 we have mainline users. > > There are only 2 dts files that have this reference unless we are not sure > which device is actually in use. DT is considered ABI and one is supposed to be able to boot a new kernel with an old DT. It's not enough to just update the in-tree dts files. I suppose we can consider removing support for the old compatible values after having the warning being printed for some time and the mainline users being converted to the new binding. -- Sebastian
Sebastian On 5/11/20 10:30 AM, Sebastian Reichel wrote: > Hi, > > On Mon, May 11, 2020 at 09:55:11AM -0500, Dan Murphy wrote: >> On 5/11/20 9:57 AM, Sebastian Reichel wrote: >>> On Mon, May 11, 2020 at 09:29:59AM -0500, Dan Murphy wrote: >>>> On 5/11/20 9:32 AM, Sebastian Reichel wrote: >>>>> On Mon, May 11, 2020 at 07:25:06AM -0500, Dan Murphy wrote: >>>>>> On 5/10/20 11:17 AM, Sebastian Reichel wrote: >>>>>>> This needs is missing the power-supplies property. The N900 DT >>>>>>> contains a bq27200 referencing the charger, so it should fail the DT >>>>>>> check without the property being listed here. >>>>>> Hmm. I ran the dt checker specifically on the binding and it did not fail. >>>>>> Unless I need to build some other DTs as well. >>>>>> Either I will have the power-supplies property >>>>> I just tried it myself. The problem is the way you are specifying >>>>> the compatible strings. This is the parsing result: >>>>> >>>>> enum: ['ti,bq27200 - BQ27200', 'ti,bq27210 - BQ27210', 'ti,bq27500 - deprecated, >>>>> use revision specific property below', ... >>>>> >>>>> You can see this in Documentation/devicetree/bindings/processed-schema.yaml, which >>>>> is generated by running the check. The compatible comments need a # as separation >>>>> character like this to generate proper bindings: >>>>> >>>>> properties: >>>>> compatible: >>>>> enum: >>>>> - ti,bq27200 # BQ27200 >>>>> - ti,bq27210 # BQ27210 >>>>> - ti,bq27500 # deprecated, use revision specific property below >>>> Well honestly not sure why we need the comment either. These are pretty >>>> self explanatory maybe we should just remove the additional comments >>> Fine with me. >> Ack >>>> Any consideration on just removing the deprecated values? >>> Let's keep them with their comment for now. Removing them should >>> start with marking them as depracated in the binding and generating >>> a runtime warning in the driver, so that people become aware of the >>> problem. At least for ti,bq27500 we have mainline users At least for >>> ti,bq27500 we have mainline users. >> There are only 2 dts files that have this reference unless we are not sure >> which device is actually in use. > DT is considered ABI and one is supposed to be able to boot a new > kernel with an old DT. It's not enough to just update the in-tree > dts files. I suppose we can consider removing support for the old > compatible values after having the warning being printed for some > time and the mainline users being converted to the new binding. Yes I know. I may have said that before. After looking at the driver and how this is all stitched together I think I am just going to stick to the DT conversion as is. I will make the basic changes for conversion but any changes to the compatibles should be done later. Dan > -- Sebastian
diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt b/Documentation/devicetree/bindings/power/supply/bq27xxx.txt deleted file mode 100644 index 4fa8e08df2b6..000000000000 --- a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt +++ /dev/null @@ -1,56 +0,0 @@ -TI BQ27XXX fuel gauge family - -Required properties: -- compatible: contains one of the following: - * "ti,bq27200" - BQ27200 - * "ti,bq27210" - BQ27210 - * "ti,bq27500" - deprecated, use revision specific property below - * "ti,bq27510" - deprecated, use revision specific property below - * "ti,bq27520" - deprecated, use revision specific property below - * "ti,bq27500-1" - BQ27500/1 - * "ti,bq27510g1" - BQ27510-g1 - * "ti,bq27510g2" - BQ27510-g2 - * "ti,bq27510g3" - BQ27510-g3 - * "ti,bq27520g1" - BQ27520-g1 - * "ti,bq27520g2" - BQ27520-g2 - * "ti,bq27520g3" - BQ27520-g3 - * "ti,bq27520g4" - BQ27520-g4 - * "ti,bq27521" - BQ27521 - * "ti,bq27530" - BQ27530 - * "ti,bq27531" - BQ27531 - * "ti,bq27541" - BQ27541 - * "ti,bq27542" - BQ27542 - * "ti,bq27546" - BQ27546 - * "ti,bq27742" - BQ27742 - * "ti,bq27545" - BQ27545 - * "ti,bq27411" - BQ27411 - * "ti,bq27421" - BQ27421 - * "ti,bq27425" - BQ27425 - * "ti,bq27426" - BQ27426 - * "ti,bq27441" - BQ27441 - * "ti,bq27621" - BQ27621 -- reg: integer, I2C address of the fuel gauge. - -Optional properties: -- monitored-battery: phandle of battery characteristics node - The fuel gauge uses the following battery properties: - + energy-full-design-microwatt-hours - + charge-full-design-microamp-hours - + voltage-min-design-microvolt - Both or neither of the *-full-design-*-hours properties must be set. - See Documentation/devicetree/bindings/power/supply/battery.txt - -Example: - - bat: battery { - compatible = "simple-battery"; - voltage-min-design-microvolt = <3200000>; - energy-full-design-microwatt-hours = <5290000>; - charge-full-design-microamp-hours = <1430000>; - }; - - bq27510g3: fuel-gauge@55 { - compatible = "ti,bq27510g3"; - reg = <0x55>; - monitored-battery = <&bat>; - }; diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml new file mode 100644 index 000000000000..54f497c291f2 --- /dev/null +++ b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2020 Texas Instruments Incorporated +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/power/supply/bq27xxx.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: TI BQ27XXX fuel gauge family + +maintainers: + - Pali Rohár <pali@kernel.org> + - Andrew F. Davis <afd@ti.com> + - Sebastian Reichel <sre@kernel.org> + +description: | + Support various Texas Instruments fuel gauge devices that share similar + register maps and power supply properties + +properties: + compatible: + enum: + - ti,bq27200 - BQ27200 + - ti,bq27210 - BQ27210 + - ti,bq27500 - deprecated, use revision specific property below + - ti,bq27510 - deprecated, use revision specific property below + - ti,bq27520 - deprecated, use revision specific property below + - ti,bq27500-1 - BQ27500/1 + - ti,bq27510g1 - BQ27510-g1 + - ti,bq27510g2 - BQ27510-g2 + - ti,bq27510g3 - BQ27510-g3 + - ti,bq27520g1 - BQ27520-g1 + - ti,bq27520g2 - BQ27520-g2 + - ti,bq27520g3 - BQ27520-g3 + - ti,bq27520g4 - BQ27520-g4 + - ti,bq27521 - BQ27521 + - ti,bq27530 - BQ27530 + - ti,bq27531 - BQ27531 + - ti,bq27541 - BQ27541 + - ti,bq27542 - BQ27542 + - ti,bq27546 - BQ27546 + - ti,bq27742 - BQ27742 + - ti,bq27545 - BQ27545 + - ti,bq27411 - BQ27411 + - ti,bq27421 - BQ27421 + - ti,bq27425 - BQ27425 + - ti,bq27426 - BQ27426 + - ti,bq27441 - BQ27441 + - ti,bq27621 - BQ27621 + + reg: + maxItems: 1 + description: integer, I2C address of the fuel gauge. + + monitored-battery: + description: | + phandle of battery characteristics node. + The fuel gauge uses the following battery properties: + - energy-full-design-microwatt-hours + - charge-full-design-microamp-hours + - voltage-min-design-microvolt + Both or neither of the *-full-design-*-hours properties must be set. + See Documentation/devicetree/bindings/power/supply/battery.txt + +required: + - compatible + - reg +additionalProperties: false + +examples: + - | + i2c0 { + #address-cells = <1>; + #size-cells = <0>; + bat: battery { + compatible = "simple-battery"; + voltage-min-design-microvolt = <3200000>; + energy-full-design-microwatt-hours = <5290000>; + charge-full-design-microamp-hours = <1430000>; + }; + + bq27510g3: fuel-gauge@55 { + compatible = "ti,bq27510g3"; + reg = <0x55>; + monitored-battery = <&bat>; + }; + };
Convert the bq27xxx.txt to yaml format CC: Pali Rohár <pali@kernel.org> CC: Andrew F. Davis <afd@ti.com> Signed-off-by: Dan Murphy <dmurphy@ti.com> --- .../bindings/power/supply/bq27xxx.txt | 56 ------------ .../bindings/power/supply/bq27xxx.yaml | 86 +++++++++++++++++++ 2 files changed, 86 insertions(+), 56 deletions(-) delete mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.txt create mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.yaml