[PATCH 4/6] Documentation: dt-bindings, hwmon: Add Aspeed PECI hwmon

Andrew Jeffery andrew at aj.id.au
Thu Dec 7 11:41:09 AEDT 2017


On Thu, 7 Dec 2017, at 07:33, Jae Hyun Yoo wrote:
> This commit add dt-bindings and hwmon documents for Aspeed PECI
> hwmon.
> 
> Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo at linux.intel.com>
> ---
>  .../bindings/hwmon/aspeed-peci-hwmon.txt           | 89
>  ++++++++++++++++++++++
>  Documentation/hwmon/aspeed-peci-hwmon              | 64 ++++++++++++++++
>  2 files changed, 153 insertions(+)
>  create mode 100644
>  Documentation/devicetree/bindings/hwmon/aspeed-peci-hwmon.txt
>  create mode 100644 Documentation/hwmon/aspeed-peci-hwmon

I'd recommend splitting out these changes, it will make upstream a bit
happier. I'd recommend sending upstream as soon as possible as well.

> 
> diff --git
> a/Documentation/devicetree/bindings/hwmon/aspeed-peci-hwmon.txt
> b/Documentation/devicetree/bindings/hwmon/aspeed-peci-hwmon.txt
> new file mode 100644
> index 000000000000..a20a82f3380c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/aspeed-peci-hwmon.txt
> @@ -0,0 +1,89 @@
> +* ASPEED PECI (Platform Environment Control Interface) hwmon driver.
> +
> +Dependency:
> +- This driver uses ASPEED PECI kernel misc driver as a controller
> interface
> +  which can be enabled by setting CONFIG_ASPEED_PECI as yes.
> +
> +Required properties:
> +- multi-functional device body: "aspeed,ast2400-peci" or
> "aspeed,ast2500-peci"
> +       - aspeed,ast2400-peci: Aspeed AST2400 family PECI MFD
> +       - aspeed,ast2500-peci: Aspeed AST2500 family PECI MFD
> +- compatible: "aspeed,ast2400-peci-hwmon" or "aspeed,ast2500-peci-hwmon"
> +       - aspeed,ast2400-peci-hwmon: Aspeed AST2400 family PECI hwmon
> +       - aspeed,ast2500-peci-hwmon: Aspeed AST2500 family PECI hwmon
> +- cpu-id: Should contain CPU socket ID
> +       - 0 ~ 7
> +
> +Optional properties:
> +- show-core: If this property is 1, core temperature attributes will be
> +             enumerated.
> +       0 or 1 (default: 1)
> +            In fact, these will be appeared when first reading on other
> attr
> +            happens because it needs cpu info reading. The number of
> generated
> +            core attrs depends on the number of cores of the cpu
> package.

A couple of points here:

It seems show-core is actually a boolean property. In this case you
don't need to describe a value; you can simple measure the presence or
absence of the property in the node rather than assigning the property 0
or 1.

Separately, from the description it sounds like the hwmon attributes
will appear "dynamically", i.e. after probe time. If that's not the case
then disregard the following, but i expect this will have a tough time
upstream. probe() should do the reads and determine the number of
attributes required. Whilst I think you're right to document this
behaviour, I don't think the bindings documentation is the right place
for it

> +- dimm-nums: Should contain the number of DIMM slots that attached to
> the CPU
> +            which is indicated by cpu-id.
> +       0 ~ 16 (default: 16)
> +            In case of 0, DIMM temperature attrs will not be enumerated.
> +
> +Example:
> +       peci: peci at 1e78b000 {
> +               compatible = "aspeed,ast2500-peci", "simple-mfd";
> +
> +               peci_hwmon0: peci-hwmon-cpu0 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <0>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon1: peci-hwmon-cpu1 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <1>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon2: peci-hwmon-cpu2 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <2>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon3: peci-hwmon-cpu3 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <3>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon4: peci-hwmon-cpu4 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <4>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon5: peci-hwmon-cpu5 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <5>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon6: peci-hwmon-cpu6 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <6>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +
> +               peci_hwmon7: peci-hwmon-cpu7 {
> +                       compatible = "aspeed,ast2500-peci-hwmon";
> +                       cpu-id = <7>;
> +                       show-core = <1>;
> +                       dimm-nums = <16>;
> +               };
> +       };

Example is probably a little verbose. You get the same effect with
describing just two sockets.

> +
> diff --git a/Documentation/hwmon/aspeed-peci-hwmon
> b/Documentation/hwmon/aspeed-peci-hwmon
> new file mode 100644
> index 000000000000..2debf1353e74
> --- /dev/null
> +++ b/Documentation/hwmon/aspeed-peci-hwmon
> @@ -0,0 +1,64 @@
> +Kernel driver aspeed-peci-hwmon
> +===============================
> +
> +Supported chips:
> +       ASPEED AST2400/2500
> +
> +Author:
> +       Jae Hyun Yoo <jae.hyun.yoo at linux.intel.com>
> +
> +
> +Hardware Interfaces
> +-------------------
> +
> +This driver uses ASPEED PECI kernel misc driver as a controller
> interface which
> +can be enabled by setting CONFIG_ASPEED_PECI as yes.
> +
> +
> +Description
> +-----------
> +
> +This driver implements support for the ASPEED AST2400/2500 PECI hwmon.
> +
> +
> +sysfs files
> +-----------
> +
> +temp1_input            Provides current die temperature of the CPU
> package.
> +temp1_max              Provides thermal control temperature of the CPU
> package
> +                       which is also known as Tcontrol.
> +temp1_crit             Provides shutdown temperature of the CPU package
> which
> +                       is also known as the maximum processor junction
> +                       temperature, Tjmax or Tprochot.
> +temp1_crit_hyst                Provides the hysteresis value from
> Tcontrol to Tjmax of
> +                       the CPU package.
> +
> +temp2_input            Provides current DTS thermal margin to Tcontrol
> of the
> +                       CPU package. Value 0 means it reaches to Tcontrol
> +                       temperature. Sub-zero value means the die
> temperature
> +                       goes across Tconrtol to Tjmax.
> +temp2_min              Provides the minimum DTS thermal margin to
> Tcontrol of
> +                       the CPU package.
> +temp2_lcrit            Provides the value when the CPU package
> temperature
> +                       reaches to Tjmax.
> +
> +temp3_input            Provides current Tcontrol temperature of the CPU
> +                       package which is also known as Fan Temperature
> target.
> +                       Indicates the relative value from thermal monitor
> trip
> +                       temperature at which fans should be engaged.
> +temp3_crit             Provides Tcontrol critical value of the CPU
> package
> +                       which is same to Tjmax.
> +
> +temp4_input            Provides current Tthrottle temperature of the CPU
> +                       package. Used for throttling temperature. If this
> value
> +                       is allowed and lower than Tjmax - the throttle
> will
> +                       occur and reported at lower than Tjmax.
> +
> +temp[100-127]_input    Provides current core temperature.
> +temp[100-127]_max      Provides thermal control temperature of the core.
> +temp[100-127]_crit     Provides shutdown temperature of the core.
> +temp[100-127]_crit_hyst        Provides the hysteresis value from
> Tcontrol to Tjmax of
> +                       the core.
> +
> +temp[200-215]_input    Provides current temperature of the DDR DIMM.

I think you're going to struggle getting support for the discontinuities
in the numbering.

Cheers

Andrew

> +
> -- 
> 2.15.1
> 


More information about the openbmc mailing list