diff mbox series

[v6,2/2] dt-bindings: hwmon: (adt7475) Added missing adt7475 documentation

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

Commit Message

Logan Shaw Jan. 26, 2020, 10:10 p.m. UTC
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

Comments

Rob Herring Jan. 27, 2020, 3:48 p.m. UTC | #1
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
>
Logan Shaw Jan. 29, 2020, 4:30 a.m. UTC | #2
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
> >
Guenter Roeck Jan. 29, 2020, 9:51 a.m. UTC | #3
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
>>>
Rob Herring Jan. 29, 2020, 5:27 p.m. UTC | #4
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
Logan Shaw Jan. 29, 2020, 11:52 p.m. UTC | #5
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.
Logan Shaw Jan. 30, 2020, 3:07 a.m. UTC | #6
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
> >
Logan Shaw Feb. 5, 2020, 12:48 a.m. UTC | #7
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 mbox series

Patch

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>;
+      };
+    };
+...