All of lore.kernel.org
 help / color / mirror / Atom feed
* where in sysfs should I put the ability to power down a board for a specific time?
@ 2015-10-20 15:12 Tim Harvey
  2015-10-20 21:21   ` Sebastian Reichel
  0 siblings, 1 reply; 9+ messages in thread
From: Tim Harvey @ 2015-10-20 15:12 UTC (permalink / raw)
  To: linux-pm; +Cc: Sebastian Reichel

Greetings,

There is a system controller [1] on a set of embedded boards I support
that allows disabling the board's primary power supply. It can disable
it (until a physical pushbutton event occurs) and/or disable it for a
certain number of seconds (up to 2^16 seconds).

I've been in the process of writing a mfd driver to fully support this
device and I'm a bit stumped on how to handle the power management
capabilities.

What is the correct API for this type of device in sysfs? I'm thinking
it needs a power-supply class driver, but after looking over the docs
and code I'm not seeing examples of similar devices. Can anyone point
me to an example or provide some suggestions?

Thanks,

Tim

[1] - http://trac.gateworks.com/wiki/gsc

Tim Harvey - Principal Software Engineer
Gateworks Corporation - http://www.gateworks.com/
3026 S. Higuera St. San Luis Obispo CA 93401
805-781-2000

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
  2015-10-20 15:12 where in sysfs should I put the ability to power down a board for a specific time? Tim Harvey
@ 2015-10-20 21:21   ` Sebastian Reichel
  0 siblings, 0 replies; 9+ messages in thread
From: Sebastian Reichel @ 2015-10-20 21:21 UTC (permalink / raw)
  To: Tim Harvey; +Cc: linux-pm, rtc-linux

[-- Attachment #1: Type: text/plain, Size: 1505 bytes --]

Hi,

On Tue, Oct 20, 2015 at 08:12:09AM -0700, Tim Harvey wrote:
> There is a system controller [1] on a set of embedded boards I support
> that allows disabling the board's primary power supply. It can disable
> it (until a physical pushbutton event occurs) and/or disable it for a
> certain number of seconds (up to 2^16 seconds).
> 
> I've been in the process of writing a mfd driver to fully support this
> device and I'm a bit stumped on how to handle the power management
> capabilities.
> 
> What is the correct API for this type of device in sysfs? I'm thinking
> it needs a power-supply class driver, but after looking over the docs
> and code I'm not seeing examples of similar devices. Can anyone point
> me to an example or provide some suggestions?

Usually this is an RTC feature exposed as wakealarm. See for example
this article for the description of the userspace interface:

https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock

-- Sebastian

-- 
-- 
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
--- 
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: where in sysfs should I put the ability to power down a board for a specific time?
@ 2015-10-20 21:21   ` Sebastian Reichel
  0 siblings, 0 replies; 9+ messages in thread
From: Sebastian Reichel @ 2015-10-20 21:21 UTC (permalink / raw)
  To: Tim Harvey; +Cc: linux-pm, rtc-linux

[-- Attachment #1: Type: text/plain, Size: 1009 bytes --]

Hi,

On Tue, Oct 20, 2015 at 08:12:09AM -0700, Tim Harvey wrote:
> There is a system controller [1] on a set of embedded boards I support
> that allows disabling the board's primary power supply. It can disable
> it (until a physical pushbutton event occurs) and/or disable it for a
> certain number of seconds (up to 2^16 seconds).
> 
> I've been in the process of writing a mfd driver to fully support this
> device and I'm a bit stumped on how to handle the power management
> capabilities.
> 
> What is the correct API for this type of device in sysfs? I'm thinking
> it needs a power-supply class driver, but after looking over the docs
> and code I'm not seeing examples of similar devices. Can anyone point
> me to an example or provide some suggestions?

Usually this is an RTC feature exposed as wakealarm. See for example
this article for the description of the userspace interface:

https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock

-- Sebastian

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
  2015-10-20 21:21   ` Sebastian Reichel
@ 2015-10-24  2:12     ` Alexandre Belloni
  -1 siblings, 0 replies; 9+ messages in thread
From: Alexandre Belloni @ 2015-10-24  2:12 UTC (permalink / raw)
  To: Sebastian Reichel; +Cc: Tim Harvey, linux-pm, rtc-linux

Hi,

On 20/10/2015 at 23:21:27 +0200, Sebastian Reichel wrote :
> Hi,
> 
> On Tue, Oct 20, 2015 at 08:12:09AM -0700, Tim Harvey wrote:
> > There is a system controller [1] on a set of embedded boards I support
> > that allows disabling the board's primary power supply. It can disable
> > it (until a physical pushbutton event occurs) and/or disable it for a
> > certain number of seconds (up to 2^16 seconds).
> > 
> > I've been in the process of writing a mfd driver to fully support this
> > device and I'm a bit stumped on how to handle the power management
> > capabilities.
> > 
> > What is the correct API for this type of device in sysfs? I'm thinking
> > it needs a power-supply class driver, but after looking over the docs
> > and code I'm not seeing examples of similar devices. Can anyone point
> > me to an example or provide some suggestions?
> 
> Usually this is an RTC feature exposed as wakealarm. See for example
> this article for the description of the userspace interface:
> 
> https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock

Indeed, if you can set the time, then shutdown in two discreet steps,
then you can probably expose an alarm and a poweroff controller.
If there is only one step involved, then this will not fit well in any
subsystem but I guess it makes more sense to put it in the RTC
subsystem as it has all the utilities to handle dates and times.



-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-- 
-- 
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
--- 
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
@ 2015-10-24  2:12     ` Alexandre Belloni
  0 siblings, 0 replies; 9+ messages in thread
From: Alexandre Belloni @ 2015-10-24  2:12 UTC (permalink / raw)
  To: Sebastian Reichel; +Cc: Tim Harvey, linux-pm, rtc-linux

Hi,

On 20/10/2015 at 23:21:27 +0200, Sebastian Reichel wrote :
> Hi,
> 
> On Tue, Oct 20, 2015 at 08:12:09AM -0700, Tim Harvey wrote:
> > There is a system controller [1] on a set of embedded boards I support
> > that allows disabling the board's primary power supply. It can disable
> > it (until a physical pushbutton event occurs) and/or disable it for a
> > certain number of seconds (up to 2^16 seconds).
> > 
> > I've been in the process of writing a mfd driver to fully support this
> > device and I'm a bit stumped on how to handle the power management
> > capabilities.
> > 
> > What is the correct API for this type of device in sysfs? I'm thinking
> > it needs a power-supply class driver, but after looking over the docs
> > and code I'm not seeing examples of similar devices. Can anyone point
> > me to an example or provide some suggestions?
> 
> Usually this is an RTC feature exposed as wakealarm. See for example
> this article for the description of the userspace interface:
> 
> https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock

Indeed, if you can set the time, then shutdown in two discreet steps,
then you can probably expose an alarm and a poweroff controller.
If there is only one step involved, then this will not fit well in any
subsystem but I guess it makes more sense to put it in the RTC
subsystem as it has all the utilities to handle dates and times.



-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
  2015-10-24  2:12     ` Alexandre Belloni
@ 2015-10-27 14:55       ` Tim Harvey
  -1 siblings, 0 replies; 9+ messages in thread
From: Tim Harvey @ 2015-10-27 14:55 UTC (permalink / raw)
  To: Sebastian Reichel, Alexandre Belloni; +Cc: linux-pm, rtc-linux

On Fri, Oct 23, 2015 at 7:12 PM, Alexandre Belloni
<alexandre.belloni@free-electrons.com> wrote:
> Hi,
>
> On 20/10/2015 at 23:21:27 +0200, Sebastian Reichel wrote :
>> Hi,
>>
>> On Tue, Oct 20, 2015 at 08:12:09AM -0700, Tim Harvey wrote:
>> > There is a system controller [1] on a set of embedded boards I support
>> > that allows disabling the board's primary power supply. It can disable
>> > it (until a physical pushbutton event occurs) and/or disable it for a
>> > certain number of seconds (up to 2^16 seconds).
>> >
>> > I've been in the process of writing a mfd driver to fully support this
>> > device and I'm a bit stumped on how to handle the power management
>> > capabilities.
>> >
>> > What is the correct API for this type of device in sysfs? I'm thinking
>> > it needs a power-supply class driver, but after looking over the docs
>> > and code I'm not seeing examples of similar devices. Can anyone point
>> > me to an example or provide some suggestions?
>>
>> Usually this is an RTC feature exposed as wakealarm. See for example
>> this article for the description of the userspace interface:
>>
>> https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock

Sebastian,

Thanks for the pointer - this device does have an RTC so the wakealarm
makes complete sense here.

>
> Indeed, if you can set the time, then shutdown in two discreet steps,
> then you can probably expose an alarm and a poweroff controller.
> If there is only one step involved, then this will not fit well in any
> subsystem but I guess it makes more sense to put it in the RTC
> subsystem as it has all the utilities to handle dates and times.
>
>

Alexandre,

The power-off process is a discrete step from setting the wakeup time.
By 'poweroff controller' I'm assuming you mean implement a
pm_power_off hook which makes sense.

While I'm at it it seems like implementing arm_pm_restart makes a lot
of sense as well as the device can toggle board power which should be
preferred over a chip-level reset.

I was looking for a standard userspace sysfs API in (ie
/sys/class/power?) that will call kernel_restart or kernel_power_off
but the only thing I've found is either the reboot syscall or sysrq (o
or b). Have I missed something or are these the expected userspace
API's for power-off/reset?

Thanks!

Tim

-- 
-- 
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
--- 
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
@ 2015-10-27 14:55       ` Tim Harvey
  0 siblings, 0 replies; 9+ messages in thread
From: Tim Harvey @ 2015-10-27 14:55 UTC (permalink / raw)
  To: Sebastian Reichel, Alexandre Belloni; +Cc: linux-pm, rtc-linux

On Fri, Oct 23, 2015 at 7:12 PM, Alexandre Belloni
<alexandre.belloni@free-electrons.com> wrote:
> Hi,
>
> On 20/10/2015 at 23:21:27 +0200, Sebastian Reichel wrote :
>> Hi,
>>
>> On Tue, Oct 20, 2015 at 08:12:09AM -0700, Tim Harvey wrote:
>> > There is a system controller [1] on a set of embedded boards I support
>> > that allows disabling the board's primary power supply. It can disable
>> > it (until a physical pushbutton event occurs) and/or disable it for a
>> > certain number of seconds (up to 2^16 seconds).
>> >
>> > I've been in the process of writing a mfd driver to fully support this
>> > device and I'm a bit stumped on how to handle the power management
>> > capabilities.
>> >
>> > What is the correct API for this type of device in sysfs? I'm thinking
>> > it needs a power-supply class driver, but after looking over the docs
>> > and code I'm not seeing examples of similar devices. Can anyone point
>> > me to an example or provide some suggestions?
>>
>> Usually this is an RTC feature exposed as wakealarm. See for example
>> this article for the description of the userspace interface:
>>
>> https://www.linux.com/learn/docs/672849-wake-up-linux-with-an-rtc-alarm-clock

Sebastian,

Thanks for the pointer - this device does have an RTC so the wakealarm
makes complete sense here.

>
> Indeed, if you can set the time, then shutdown in two discreet steps,
> then you can probably expose an alarm and a poweroff controller.
> If there is only one step involved, then this will not fit well in any
> subsystem but I guess it makes more sense to put it in the RTC
> subsystem as it has all the utilities to handle dates and times.
>
>

Alexandre,

The power-off process is a discrete step from setting the wakeup time.
By 'poweroff controller' I'm assuming you mean implement a
pm_power_off hook which makes sense.

While I'm at it it seems like implementing arm_pm_restart makes a lot
of sense as well as the device can toggle board power which should be
preferred over a chip-level reset.

I was looking for a standard userspace sysfs API in (ie
/sys/class/power?) that will call kernel_restart or kernel_power_off
but the only thing I've found is either the reboot syscall or sysrq (o
or b). Have I missed something or are these the expected userspace
API's for power-off/reset?

Thanks!

Tim

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
  2015-10-27 14:55       ` Tim Harvey
@ 2015-10-27 15:29         ` Alexandre Belloni
  -1 siblings, 0 replies; 9+ messages in thread
From: Alexandre Belloni @ 2015-10-27 15:29 UTC (permalink / raw)
  To: Tim Harvey; +Cc: Sebastian Reichel, linux-pm, rtc-linux

Hi,

On 27/10/2015 at 07:55:28 -0700, Tim Harvey wrote :
> The power-off process is a discrete step from setting the wakeup time.
> By 'poweroff controller' I'm assuming you mean implement a
> pm_power_off hook which makes sense.
> 
> While I'm at it it seems like implementing arm_pm_restart makes a lot
> of sense as well as the device can toggle board power which should be
> preferred over a chip-level reset.
> 

Sure, then you can probably make an MFD which is the proper way of
register one device in multiple susbsytems. I just happened to give a
talk on that topic:

http://free-electrons.com/pub/conferences/2015/elce/belloni-mfd-regmap-syscon/belloni-mfd-regmap-syscon.pdf

> I was looking for a standard userspace sysfs API in (ie
> /sys/class/power?) that will call kernel_restart or kernel_power_off
> but the only thing I've found is either the reboot syscall or sysrq (o
> or b). Have I missed something or are these the expected userspace
> API's for power-off/reset?

Yeah, I'm guessing this is the correct API, people usually use
halt/poweroff/shutdown/reboot which should all end up calling the reboot
system call.


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-- 
-- 
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
--- 
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [rtc-linux] Re: where in sysfs should I put the ability to power down a board for a specific time?
@ 2015-10-27 15:29         ` Alexandre Belloni
  0 siblings, 0 replies; 9+ messages in thread
From: Alexandre Belloni @ 2015-10-27 15:29 UTC (permalink / raw)
  To: Tim Harvey; +Cc: Sebastian Reichel, linux-pm, rtc-linux

Hi,

On 27/10/2015 at 07:55:28 -0700, Tim Harvey wrote :
> The power-off process is a discrete step from setting the wakeup time.
> By 'poweroff controller' I'm assuming you mean implement a
> pm_power_off hook which makes sense.
> 
> While I'm at it it seems like implementing arm_pm_restart makes a lot
> of sense as well as the device can toggle board power which should be
> preferred over a chip-level reset.
> 

Sure, then you can probably make an MFD which is the proper way of
register one device in multiple susbsytems. I just happened to give a
talk on that topic:

http://free-electrons.com/pub/conferences/2015/elce/belloni-mfd-regmap-syscon/belloni-mfd-regmap-syscon.pdf

> I was looking for a standard userspace sysfs API in (ie
> /sys/class/power?) that will call kernel_restart or kernel_power_off
> but the only thing I've found is either the reboot syscall or sysrq (o
> or b). Have I missed something or are these the expected userspace
> API's for power-off/reset?

Yeah, I'm guessing this is the correct API, people usually use
halt/poweroff/shutdown/reboot which should all end up calling the reboot
system call.


-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-10-27 15:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-20 15:12 where in sysfs should I put the ability to power down a board for a specific time? Tim Harvey
2015-10-20 21:21 ` [rtc-linux] " Sebastian Reichel
2015-10-20 21:21   ` Sebastian Reichel
2015-10-24  2:12   ` [rtc-linux] " Alexandre Belloni
2015-10-24  2:12     ` Alexandre Belloni
2015-10-27 14:55     ` Tim Harvey
2015-10-27 14:55       ` Tim Harvey
2015-10-27 15:29       ` Alexandre Belloni
2015-10-27 15:29         ` Alexandre Belloni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.