Re: Question: hwmon: Adding addtitional sysfs entries

From: Andreas Werner
Date: Wed May 14 2014 - 02:44:33 EST


On Sat, May 10, 2014 at 08:32:40AM -0700, Guenter Roeck wrote:
> On 05/10/2014 09:02 AM, Andreas Werner wrote:
> >On Sat, May 10, 2014 at 05:32:13AM -0700, Guenter Roeck wrote:
> >>On 05/10/2014 06:22 AM, Andreas Werner wrote:
> >>>Hi,
> >>>i am currently working on an implemenation of my Board Management Controller (BMC).
> >>>
> >>>This Controller is a MCR assembled on almost all of our Compact PCI or Compact PCI Serial
> >>>Cards as well as on some other CPU Boards.
> >>>
> >>>The BMC includes LED´s, Watchdog, Voltage Monitoring and some other features.
> >>>I have already implemented an MFD driver, LED and Watchdog driver.
> >>>
> >>>Currently i am working on the hwmon implemenation. This includes for the first step the
> >>>voltage monitoring.
> >>>
> >>>The BMC has some other feature which are not supported by any of the subsystem.
> >>> - Errorcounter (Board status)
> >>> - Power Failure status
> >>> - Operating ours
> >>
> >>Guess you mean hours here.
> >
> >Yes sorry my mistake.
> >
> >>
> >>> - Do software reset, do cold reset
> >>> - Set power modes
> >>> - Backplate Geographical Address
> >>>
> >>>These are all informations related to the Board where the BMC is assembled to.
> >>>I think all those features could be part of the hwmon implementation.
> >>>
> >>Why ?
> >
> >As all of the settings are CPU board related i thought it will be an good idea
> >to put as much settings as possible to a group to one subsystem.
> >This would be easier for the User Application.
> >
> Bad argument, even for the users. A user would not normally expect to find
> the above information in unrelated subsystems such as hwmon. Keep in mind that
> the Linux kernel is supposed to be useful for more than the application developers
> in your company, and think about it - assume you would have to implement an
> application which runs on more than one hardware, and attributes like the above
> would be spread throughout the system. It would be all but impossible to write
> generic applications, so you would want to avoid adding anything non-standard
> as much as you can. And if you have to implement something non-standard, at least
> implement it where people at least have a chance to find it.
>
Ok, you are right :-)

> >>
> >>>Is it possible to add "custom" sysfs entries in my hwmon driver to support all these features?
> >>>Does lm-sensor ingore those custom features or is it a problem for lm-sensors?
> >>>
> >>>What is the normal way to add those features?
> >>>
> >>
> >>The hwmon subsystem isn't really the correct location for this functionality.
> >>Power management should be done with a regulator driver (possibly power).
> >>The other attributes and functionality would better fit into the mfd core
> >>driver.
> >>
> >
> >MFD Core sounds good. That is also perfect for the User App.
> >
> >>You might want to tie the reset functions into the system reset functionality.
> >
> >I do not understand this. Is there another subsystem or something like that
> >were I can put the Reset stuff to?
> >
> Assuming you are talking about system reset, there is a function named machine_restart()
> to accomplish that. This is architecture and, in many cases, machine specific functionality.
> For example, many arm architectures have a different means to reset the system, and there
> is a separate function pointer named arm_pm_restart to tie into that functionality.
>
> Many restart functions are implemented in the drivers/power/reset directory, which may be
> a good location for yours.
>
Just for explanation and to avoid missunderstanding. The reset functionality of the BMC
is to send a I2C command from the Host to the BMC, and the BMC does the reset or power down.

There is also a functionality where you can send a command the Controller and he will press
the "power button" which cause an ACPI event to shutdown the PC if configured.

Thanks for the /drivers/power informations there is really nice code in there where I can
pick up some stuff to implement functions like that.

> >
> >I guess the hwmon subsys is the right place for the voltage monitoring (3,3V, 5V etc) isn´t it?
> >
> Yes, that is what it is for.

Thanks, works fine. Nice integration in lm_sensors thats what I love in Linux :-)
>
> Guenter
>
Regards
Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/