Message ID | 20200126221014.2978-3-logan.shaw@alliedtelesis.co.nz (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | hwmon: (adt7475) Added attenuator bypass support | expand |
On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: > Added a new file documenting the adt7475 devicetree and added the four > new properties to it. > > Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> > --- > --- > .../devicetree/bindings/hwmon/adt7475.yaml | 95 +++++++++++++++++++ > 1 file changed, 95 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/adt7475.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > new file mode 100644 > index 000000000000..450da5e66e07 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > @@ -0,0 +1,95 @@ > +# SPDX-License-Identifier: GPL-2.0 Dual license new bindings please: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/adt7475.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: ADT7475 hwmon sensor > + > +maintainers: > + - Jean Delvare <jdelvare@suse.com> > + > +description: | > + The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal monitors and multiple > + PWN fan controllers. > + > + They support monitoring and controlling up to four fans (the ADT7490 can only > + control up to three). They support reading a single on chip temperature > + sensor and two off chip temperature sensors (the ADT7490 additionally > + supports measuring up to three current external temperature sensors with > + series resistance cancellation (SRC)). > + > + Datasheets: > + https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF > + https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF > + https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF > + https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF > + > + Description taken from omsemiconductors specification sheets, with minor omsemi? ^ > + rephrasing. > + > +properties: > + compatible: > + enum: > + - adi,adt7473 > + - adi,adt7475 > + - adi,adt7476 > + - adi,adt7490 > + > + reg: > + maxItems: 1 > + > + bypass-attenuator-in0: Needs a vendor prefix and a type ref. > + description: | > + Configures bypassing the individual voltage input > + attenuator, on in0. This is supported on the ADT7476 and ADT7490. > + If set to a non-zero integer the attenuator is bypassed, if set to > + zero the attenuator is not bypassed. If the property is absent then > + the config register is not modified. Sounds like this could be boolean? If not, define a schema for what are valid values. > + maxItems: 1 > + > + bypass-attenuator-in1: > + description: | > + Configures bypassing the individual voltage input > + attenuator, on in1. This is supported on the ADT7473, ADT7475, > + ADT7476 and ADT7490. If set to a non-zero integer the attenuator > + is bypassed, if set to zero the attenuator is not bypassed. If the > + property is absent then the config register is not modified. > + maxItems: 1 > + > + bypass-attenuator-in3: > + description: | > + Configures bypassing the individual voltage input > + attenuator, on in3. This is supported on the ADT7476 and ADT7490. > + If set to a non-zero integer the attenuator is bypassed, if set to > + zero the attenuator is not bypassed. If the property is absent then > + the config register is not modified. > + maxItems: 1 > + > + bypass-attenuator-in4: These 4 could be a single entry under patternProperties. > + description: | > + Configures bypassing the individual voltage input > + attenuator, on in4. This is supported on the ADT7476 and ADT7490. > + If set to a non-zero integer the attenuator is bypassed, if set to > + zero the attenuator is not bypassed. If the property is absent then > + the config register is not modified. > + maxItems: 1 > + > +required: > + - compatible > + - reg > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + hwmon@2e { > + compatible = "adi,adt7476"; > + reg = <0x2e>; > + bypass-attenuator-in0 = <1>; > + bypass-attenuator-in1 = <0>; > + }; > + }; > +... > -- > 2.25.0 >
On Mon, 2020-01-27 at 09:48 -0600, Rob Herring wrote: > On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: > > Added a new file documenting the adt7475 devicetree and added the > > four > > new properties to it. > > > > Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> > > --- > > --- > > .../devicetree/bindings/hwmon/adt7475.yaml | 95 > > +++++++++++++++++++ > > 1 file changed, 95 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/hwmon/adt7475.yaml > > > > diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > new file mode 100644 > > index 000000000000..450da5e66e07 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > @@ -0,0 +1,95 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > Dual license new bindings please: > > (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/adt7475.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: ADT7475 hwmon sensor > > + > > +maintainers: > > + - Jean Delvare <jdelvare@suse.com> > > + > > +description: | > > + The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal monitors > > and multiple > > + PWN fan controllers. > > + > > + They support monitoring and controlling up to four fans (the > > ADT7490 can only > > + control up to three). They support reading a single on chip > > temperature > > + sensor and two off chip temperature sensors (the ADT7490 > > additionally > > + supports measuring up to three current external temperature > > sensors with > > + series resistance cancellation (SRC)). > > + > > + Datasheets: > > + https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF > > + https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF > > + https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF > > + https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF > > + > > + Description taken from omsemiconductors specification sheets, > > with minor > > omsemi? > ^ > > > + rephrasing. > > + > > +properties: > > + compatible: > > + enum: > > + - adi,adt7473 > > + - adi,adt7475 > > + - adi,adt7476 > > + - adi,adt7490 > > + > > + reg: > > + maxItems: 1 > > + > > + bypass-attenuator-in0: > > Needs a vendor prefix and a type ref. Adi (Analog Devices) sold the ADT product line (amongst other things) to On Semiconductor. As changing the vendor of these chips (in code) would break backwards compatibility should we keep the vendor as adi? To confirm, would this make the property "adi,adt7476,bypass- attenuator-in0"? So used in conjunction with patternProperties you would end up with something like: "adi,(adt7473|adt7475|adt7476|adt7490),bypass-attenuator-in[0134]" > > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in0. This is supported on the ADT7476 and > > ADT7490. > > + If set to a non-zero integer the attenuator is bypassed, if > > set to > > + zero the attenuator is not bypassed. If the property is > > absent then > > + the config register is not modified. > > Sounds like this could be boolean? If not, define a schema for what > are > valid values. > > > + maxItems: 1 > > + > > + bypass-attenuator-in1: > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in1. This is supported on the ADT7473, > > ADT7475, > > + ADT7476 and ADT7490. If set to a non-zero integer the > > attenuator > > + is bypassed, if set to zero the attenuator is not bypassed. > > If the > > + property is absent then the config register is not modified. > > + maxItems: 1 > > + > > + bypass-attenuator-in3: > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in3. This is supported on the ADT7476 and > > ADT7490. > > + If set to a non-zero integer the attenuator is bypassed, if > > set to > > + zero the attenuator is not bypassed. If the property is > > absent then > > + the config register is not modified. > > + maxItems: 1 > > + > > + bypass-attenuator-in4: > > These 4 could be a single entry under patternProperties. > > > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in4. This is supported on the ADT7476 and > > ADT7490. > > + If set to a non-zero integer the attenuator is bypassed, if > > set to > > + zero the attenuator is not bypassed. If the property is > > absent then > > + the config register is not modified. > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + hwmon@2e { > > + compatible = "adi,adt7476"; > > + reg = <0x2e>; > > + bypass-attenuator-in0 = <1>; > > + bypass-attenuator-in1 = <0>; > > + }; > > + }; > > +... > > -- > > 2.25.0 > >
On 1/28/20 8:30 PM, Logan Shaw wrote: > On Mon, 2020-01-27 at 09:48 -0600, Rob Herring wrote: >> On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: >>> Added a new file documenting the adt7475 devicetree and added the >>> four >>> new properties to it. >>> >>> Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> >>> --- >>> --- >>> .../devicetree/bindings/hwmon/adt7475.yaml | 95 >>> +++++++++++++++++++ >>> 1 file changed, 95 insertions(+) >>> create mode 100644 >>> Documentation/devicetree/bindings/hwmon/adt7475.yaml >>> >>> diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml >>> b/Documentation/devicetree/bindings/hwmon/adt7475.yaml >>> new file mode 100644 >>> index 000000000000..450da5e66e07 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml >>> @@ -0,0 +1,95 @@ >>> +# SPDX-License-Identifier: GPL-2.0 >> >> Dual license new bindings please: >> >> (GPL-2.0-only OR BSD-2-Clause) >> >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/adt7475.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: ADT7475 hwmon sensor >>> + >>> +maintainers: >>> + - Jean Delvare <jdelvare@suse.com> >>> + >>> +description: | >>> + The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal monitors >>> and multiple >>> + PWN fan controllers. >>> + >>> + They support monitoring and controlling up to four fans (the >>> ADT7490 can only >>> + control up to three). They support reading a single on chip >>> temperature >>> + sensor and two off chip temperature sensors (the ADT7490 >>> additionally >>> + supports measuring up to three current external temperature >>> sensors with >>> + series resistance cancellation (SRC)). >>> + >>> + Datasheets: >>> + https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF >>> + https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF >>> + https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF >>> + https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF >>> + >>> + Description taken from omsemiconductors specification sheets, >>> with minor >> >> omsemi? >> ^ >> >>> + rephrasing. >>> + >>> +properties: >>> + compatible: >>> + enum: >>> + - adi,adt7473 >>> + - adi,adt7475 >>> + - adi,adt7476 >>> + - adi,adt7490 >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + bypass-attenuator-in0: >> >> Needs a vendor prefix and a type ref. > > Adi (Analog Devices) sold the ADT product line (amongst other things) > to On Semiconductor. As changing the vendor of these chips (in code) > would break backwards compatibility should we keep the vendor as adi? > > To confirm, would this make the property "adi,adt7476,bypass- > attenuator-in0"? > > So used in conjunction with patternProperties you would end up with > something like: > > "adi,(adt7473|adt7475|adt7476|adt7490),bypass-attenuator-in[0134]" > That seems highly unusual and would be quite messy to implement. I don't see the point of having the chip name in individual properties. Guenter >> >>> + description: | >>> + Configures bypassing the individual voltage input >>> + attenuator, on in0. This is supported on the ADT7476 and >>> ADT7490. >>> + If set to a non-zero integer the attenuator is bypassed, if >>> set to >>> + zero the attenuator is not bypassed. If the property is >>> absent then >>> + the config register is not modified. >> >> Sounds like this could be boolean? If not, define a schema for what >> are >> valid values. >> >>> + maxItems: 1 >>> + >>> + bypass-attenuator-in1: >>> + description: | >>> + Configures bypassing the individual voltage input >>> + attenuator, on in1. This is supported on the ADT7473, >>> ADT7475, >>> + ADT7476 and ADT7490. If set to a non-zero integer the >>> attenuator >>> + is bypassed, if set to zero the attenuator is not bypassed. >>> If the >>> + property is absent then the config register is not modified. >>> + maxItems: 1 >>> + >>> + bypass-attenuator-in3: >>> + description: | >>> + Configures bypassing the individual voltage input >>> + attenuator, on in3. This is supported on the ADT7476 and >>> ADT7490. >>> + If set to a non-zero integer the attenuator is bypassed, if >>> set to >>> + zero the attenuator is not bypassed. If the property is >>> absent then >>> + the config register is not modified. >>> + maxItems: 1 >>> + >>> + bypass-attenuator-in4: >> >> These 4 could be a single entry under patternProperties. >> >> >>> + description: | >>> + Configures bypassing the individual voltage input >>> + attenuator, on in4. This is supported on the ADT7476 and >>> ADT7490. >>> + If set to a non-zero integer the attenuator is bypassed, if >>> set to >>> + zero the attenuator is not bypassed. If the property is >>> absent then >>> + the config register is not modified. >>> + maxItems: 1 >>> + >>> +required: >>> + - compatible >>> + - reg >>> + >>> +examples: >>> + - | >>> + i2c { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + hwmon@2e { >>> + compatible = "adi,adt7476"; >>> + reg = <0x2e>; >>> + bypass-attenuator-in0 = <1>; >>> + bypass-attenuator-in1 = <0>; >>> + }; >>> + }; >>> +... >>> -- >>> 2.25.0 >>>
On Tue, Jan 28, 2020 at 10:30 PM Logan Shaw <Logan.Shaw@alliedtelesis.co.nz> wrote: > > On Mon, 2020-01-27 at 09:48 -0600, Rob Herring wrote: > > On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: > > > Added a new file documenting the adt7475 devicetree and added the > > > four > > > new properties to it. > > > > > > Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> > > > --- > > > + bypass-attenuator-in0: > > > > Needs a vendor prefix and a type ref. > > Adi (Analog Devices) sold the ADT product line (amongst other things) > to On Semiconductor. As changing the vendor of these chips (in code) > would break backwards compatibility should we keep the vendor as adi? Yes. It should match what's used in the compatible string(s). > To confirm, would this make the property "adi,adt7476,bypass- > attenuator-in0"? > > So used in conjunction with patternProperties you would end up with > something like: > > "adi,(adt7473|adt7475|adt7476|adt7490),bypass-attenuator-in[0134]" No for the part #'s. Just add 'adi,'. Maybe you thought for type ref that's what I meant? A type ref is: $ref: /schemas/types.yaml#/definitions/uint32
On Wed, 2020-01-29 at 11:27 -0600, Rob Herring wrote: > On Tue, Jan 28, 2020 at 10:30 PM Logan Shaw > <Logan.Shaw@alliedtelesis.co.nz> wrote: > > > > On Mon, 2020-01-27 at 09:48 -0600, Rob Herring wrote: > > > On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: > > > > Added a new file documenting the adt7475 devicetree and added > > > > the > > > > four > > > > new properties to it. > > > > > > > > Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> > > > > --- > > > > + bypass-attenuator-in0: > > > > > > Needs a vendor prefix and a type ref. > > > > Adi (Analog Devices) sold the ADT product line (amongst other > > things) > > to On Semiconductor. As changing the vendor of these chips (in > > code) > > would break backwards compatibility should we keep the vendor as > > adi? > > Yes. It should match what's used in the compatible string(s). > > > To confirm, would this make the property "adi,adt7476,bypass- > > attenuator-in0"? > > > > So used in conjunction with patternProperties you would end up with > > something like: > > > > "adi,(adt7473|adt7475|adt7476|adt7490),bypass-attenuator-in[0134]" > > No for the part #'s. Just add 'adi,'. Maybe you thought for type ref > that's what I meant? A type ref is: > > $ref: /schemas/types.yaml#/definitions/uint32 Yes, I was a little confused but now I am on the right track.
On Mon, 2020-01-27 at 09:48 -0600, Rob Herring wrote: > On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: > > Added a new file documenting the adt7475 devicetree and added the > > four > > new properties to it. > > > > Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> > > --- > > --- > > .../devicetree/bindings/hwmon/adt7475.yaml | 95 > > +++++++++++++++++++ > > 1 file changed, 95 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/hwmon/adt7475.yaml > > > > diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > new file mode 100644 > > index 000000000000..450da5e66e07 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > @@ -0,0 +1,95 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > Dual license new bindings please: > > (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/adt7475.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: ADT7475 hwmon sensor > > + > > +maintainers: > > + - Jean Delvare <jdelvare@suse.com> > > + > > +description: | > > + The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal monitors > > and multiple > > + PWN fan controllers. > > + > > + They support monitoring and controlling up to four fans (the > > ADT7490 can only > > + control up to three). They support reading a single on chip > > temperature > > + sensor and two off chip temperature sensors (the ADT7490 > > additionally > > + supports measuring up to three current external temperature > > sensors with > > + series resistance cancellation (SRC)). > > + > > + Datasheets: > > + https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF > > + https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF > > + https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF > > + https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF > > + > > + Description taken from omsemiconductors specification sheets, > > with minor > > omsemi? > ^ > > > + rephrasing. > > + > > +properties: > > + compatible: > > + enum: > > + - adi,adt7473 > > + - adi,adt7475 > > + - adi,adt7476 > > + - adi,adt7490 > > + > > + reg: > > + maxItems: 1 > > + > > + bypass-attenuator-in0: > > Needs a vendor prefix and a type ref. > > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in0. This is supported on the ADT7476 and > > ADT7490. > > + If set to a non-zero integer the attenuator is bypassed, if > > set to > > + zero the attenuator is not bypassed. If the property is > > absent then > > + the config register is not modified. > > Sounds like this could be boolean? If not, define a schema for what > are > valid values. By boolean are you referring to a dts property that is evaluated (using function of_property_read_bool) as true/false, depending on its presence? For example "regulator-always-on" in: /Documentation/devicetree/bindings/regulator/regulator.yaml . > > > + maxItems: 1 > > + > > + bypass-attenuator-in1: > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in1. This is supported on the ADT7473, > > ADT7475, > > + ADT7476 and ADT7490. If set to a non-zero integer the > > attenuator > > + is bypassed, if set to zero the attenuator is not bypassed. > > If the > > + property is absent then the config register is not modified. > > + maxItems: 1 > > + > > + bypass-attenuator-in3: > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in3. This is supported on the ADT7476 and > > ADT7490. > > + If set to a non-zero integer the attenuator is bypassed, if > > set to > > + zero the attenuator is not bypassed. If the property is > > absent then > > + the config register is not modified. > > + maxItems: 1 > > + > > + bypass-attenuator-in4: > > These 4 could be a single entry under patternProperties. > > > > + description: | > > + Configures bypassing the individual voltage input > > + attenuator, on in4. This is supported on the ADT7476 and > > ADT7490. > > + If set to a non-zero integer the attenuator is bypassed, if > > set to > > + zero the attenuator is not bypassed. If the property is > > absent then > > + the config register is not modified. > > + maxItems: 1 > > + > > +required: > > + - compatible > > + - reg > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + hwmon@2e { > > + compatible = "adi,adt7476"; > > + reg = <0x2e>; > > + bypass-attenuator-in0 = <1>; > > + bypass-attenuator-in1 = <0>; > > + }; > > + }; > > +... > > -- > > 2.25.0 > >
Just a gentle reminder as this thread has been quiet for a while. Rob, I would appreciate some feedback on my question from my previous email. To add a little more detail: I want to avoid simply checking for the existence of a property in the DTS as that could break compatibility with codebases implementing their own method of handling the attenuator bypass. On Thu, 2020-01-30 at 03:07 +0000, Logan Shaw wrote: > On Mon, 2020-01-27 at 09:48 -0600, Rob Herring wrote: > > On Mon, Jan 27, 2020 at 11:10:14AM +1300, Logan Shaw wrote: > > > Added a new file documenting the adt7475 devicetree and added the > > > four > > > new properties to it. > > > > > > Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> > > > --- > > > --- > > > .../devicetree/bindings/hwmon/adt7475.yaml | 95 > > > +++++++++++++++++++ > > > 1 file changed, 95 insertions(+) > > > create mode 100644 > > > Documentation/devicetree/bindings/hwmon/adt7475.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > > b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > > new file mode 100644 > > > index 000000000000..450da5e66e07 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > > > @@ -0,0 +1,95 @@ > > > +# SPDX-License-Identifier: GPL-2.0 > > > > Dual license new bindings please: > > > > (GPL-2.0-only OR BSD-2-Clause) > > > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/adt7475.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: ADT7475 hwmon sensor > > > + > > > +maintainers: > > > + - Jean Delvare <jdelvare@suse.com> > > > + > > > +description: | > > > + The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal > > > monitors > > > and multiple > > > + PWN fan controllers. > > > + > > > + They support monitoring and controlling up to four fans (the > > > ADT7490 can only > > > + control up to three). They support reading a single on chip > > > temperature > > > + sensor and two off chip temperature sensors (the ADT7490 > > > additionally > > > + supports measuring up to three current external temperature > > > sensors with > > > + series resistance cancellation (SRC)). > > > + > > > + Datasheets: > > > + https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF > > > + https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF > > > + https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF > > > + https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF > > > + > > > + Description taken from omsemiconductors specification sheets, > > > with minor > > > > omsemi? > > ^ > > > > > + rephrasing. > > > + > > > +properties: > > > + compatible: > > > + enum: > > > + - adi,adt7473 > > > + - adi,adt7475 > > > + - adi,adt7476 > > > + - adi,adt7490 > > > + > > > + reg: > > > + maxItems: 1 > > > + > > > + bypass-attenuator-in0: > > > > Needs a vendor prefix and a type ref. > > > > > + description: | > > > + Configures bypassing the individual voltage input > > > + attenuator, on in0. This is supported on the ADT7476 and > > > ADT7490. > > > + If set to a non-zero integer the attenuator is bypassed, > > > if > > > set to > > > + zero the attenuator is not bypassed. If the property is > > > absent then > > > + the config register is not modified. > > > > Sounds like this could be boolean? If not, define a schema for what > > are > > valid values. > > By boolean are you referring to a dts property that is evaluated > (using > function of_property_read_bool) as true/false, depending on its > presence? For example "regulator-always-on" in: > /Documentation/devicetree/bindings/regulator/regulator.yaml . > > > > > > + maxItems: 1 > > > + > > > + bypass-attenuator-in1: > > > + description: | > > > + Configures bypassing the individual voltage input > > > + attenuator, on in1. This is supported on the ADT7473, > > > ADT7475, > > > + ADT7476 and ADT7490. If set to a non-zero integer the > > > attenuator > > > + is bypassed, if set to zero the attenuator is not > > > bypassed. > > > If the > > > + property is absent then the config register is not > > > modified. > > > + maxItems: 1 > > > + > > > + bypass-attenuator-in3: > > > + description: | > > > + Configures bypassing the individual voltage input > > > + attenuator, on in3. This is supported on the ADT7476 and > > > ADT7490. > > > + If set to a non-zero integer the attenuator is bypassed, > > > if > > > set to > > > + zero the attenuator is not bypassed. If the property is > > > absent then > > > + the config register is not modified. > > > + maxItems: 1 > > > + > > > + bypass-attenuator-in4: > > > > These 4 could be a single entry under patternProperties. > > > > > > > + description: | > > > + Configures bypassing the individual voltage input > > > + attenuator, on in4. This is supported on the ADT7476 and > > > ADT7490. > > > + If set to a non-zero integer the attenuator is bypassed, > > > if > > > set to > > > + zero the attenuator is not bypassed. If the property is > > > absent then > > > + the config register is not modified. > > > + maxItems: 1 > > > + > > > +required: > > > + - compatible > > > + - reg > > > + > > > +examples: > > > + - | > > > + i2c { > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + > > > + hwmon@2e { > > > + compatible = "adi,adt7476"; > > > + reg = <0x2e>; > > > + bypass-attenuator-in0 = <1>; > > > + bypass-attenuator-in1 = <0>; > > > + }; > > > + }; > > > +... > > > -- > > > 2.25.0 > > >
diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml b/Documentation/devicetree/bindings/hwmon/adt7475.yaml new file mode 100644 index 000000000000..450da5e66e07 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/adt7475.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ADT7475 hwmon sensor + +maintainers: + - Jean Delvare <jdelvare@suse.com> + +description: | + The ADT7473, ADT7475, ADT7476, and ADT7490 are thermal monitors and multiple + PWN fan controllers. + + They support monitoring and controlling up to four fans (the ADT7490 can only + control up to three). They support reading a single on chip temperature + sensor and two off chip temperature sensors (the ADT7490 additionally + supports measuring up to three current external temperature sensors with + series resistance cancellation (SRC)). + + Datasheets: + https://www.onsemi.com/pub/Collateral/ADT7473-D.PDF + https://www.onsemi.com/pub/Collateral/ADT7475-D.PDF + https://www.onsemi.com/pub/Collateral/ADT7476-D.PDF + https://www.onsemi.com/pub/Collateral/ADT7490-D.PDF + + Description taken from omsemiconductors specification sheets, with minor + rephrasing. + +properties: + compatible: + enum: + - adi,adt7473 + - adi,adt7475 + - adi,adt7476 + - adi,adt7490 + + reg: + maxItems: 1 + + bypass-attenuator-in0: + description: | + Configures bypassing the individual voltage input + attenuator, on in0. This is supported on the ADT7476 and ADT7490. + If set to a non-zero integer the attenuator is bypassed, if set to + zero the attenuator is not bypassed. If the property is absent then + the config register is not modified. + maxItems: 1 + + bypass-attenuator-in1: + description: | + Configures bypassing the individual voltage input + attenuator, on in1. This is supported on the ADT7473, ADT7475, + ADT7476 and ADT7490. If set to a non-zero integer the attenuator + is bypassed, if set to zero the attenuator is not bypassed. If the + property is absent then the config register is not modified. + maxItems: 1 + + bypass-attenuator-in3: + description: | + Configures bypassing the individual voltage input + attenuator, on in3. This is supported on the ADT7476 and ADT7490. + If set to a non-zero integer the attenuator is bypassed, if set to + zero the attenuator is not bypassed. If the property is absent then + the config register is not modified. + maxItems: 1 + + bypass-attenuator-in4: + description: | + Configures bypassing the individual voltage input + attenuator, on in4. This is supported on the ADT7476 and ADT7490. + If set to a non-zero integer the attenuator is bypassed, if set to + zero the attenuator is not bypassed. If the property is absent then + the config register is not modified. + maxItems: 1 + +required: + - compatible + - reg + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + hwmon@2e { + compatible = "adi,adt7476"; + reg = <0x2e>; + bypass-attenuator-in0 = <1>; + bypass-attenuator-in1 = <0>; + }; + }; +...
Added a new file documenting the adt7475 devicetree and added the four new properties to it. Signed-off-by: Logan Shaw <logan.shaw@alliedtelesis.co.nz> --- --- .../devicetree/bindings/hwmon/adt7475.yaml | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Documentation/devicetree/bindings/hwmon/adt7475.yaml