2019-05-19 13:07:45 +01:00
|
|
|
|
2011-06-15 15:08:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-16 22:15:44 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-05-10 10:44:11 +01:00
|
|
|
|
2006-03-31 02:31:04 -08:00
|
|
|
|
|
|
|
|
|
2006-05-15 09:44:14 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-06-15 15:08:40 -07:00
|
|
|
|
|
|
|
|
|
2006-03-31 02:31:04 -08:00
|
|
|
|
2012-03-23 15:02:14 -07:00
|
|
|
|
2006-03-31 02:31:04 -08:00
|
|
|
|
2019-10-01 13:04:35 -05:00
|
|
|
|
2021-03-25 11:39:29 +01:00
|
|
|
|
2006-03-31 02:31:04 -08:00
|
|
|
|
2015-01-09 07:22:51 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-03 13:19:22 -05:00
|
|
|
|
|
|
|
|
|
2015-01-09 07:22:51 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 13:19:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-29 14:42:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-01 13:04:35 -05:00
|
|
|
|
2017-01-29 14:42:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-04-24 15:45:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-04-10 22:54:01 -07:00
|
|
|
|
2006-03-31 02:31:05 -08:00
|
|
|
|
2010-01-06 17:10:09 -05:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-05-27 13:08:33 +01:00
|
|
|
|
2010-01-06 17:10:09 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-09 20:38:25 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-03 10:38:07 +09:00
|
|
|
|
2018-06-25 08:50:02 -04:00
|
|
|
|
2017-11-03 10:38:07 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-15 16:57:28 +02:00
|
|
|
|
2017-11-03 10:38:07 +09:00
|
|
|
|
|
|
|
|
|
2019-07-15 16:57:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-11-03 10:38:07 +09:00
|
|
|
|
|
|
|
|
|
2015-04-30 03:34:57 -07:00
|
|
|
|
2020-04-25 00:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-18 17:50:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-19 16:04:03 +03:00
|
|
|
|
2023-11-25 23:05:17 +03:00
|
|
|
|
2023-05-19 16:04:03 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-25 23:05:17 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-19 16:04:03 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-11 16:11:28 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-03 18:42:03 +07:00
|
|
|
|
2020-05-11 16:11:28 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-28 09:50:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-02 14:05:49 +01:00
|
|
|
|
2015-04-28 09:50:50 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-05-21 10:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-02 14:05:49 +01:00
|
|
|
|
2015-05-21 10:11:10 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-30 21:59:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-24 09:47:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-02 15:53:50 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-13 16:48:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-19 15:53:13 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-23 14:53:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-11 11:03:46 +01:00
|
|
|
|
2024-11-11 11:03:51 +01:00
|
|
|
|
leds: turris-omnia: Support HW controlled mode via private trigger
Add support for enabling MCU controlled mode of the Turris Omnia LEDs
via a LED private trigger called "omnia-mcu". Recall that private LED
triggers will only be listed in the sysfs trigger file for LEDs that
support them (currently there is no user of this mechanism).
When in MCU controlled mode, the user can still set LED color, but the
blinking is done by MCU, which does different things for different LEDs:
- WAN LED is blinked according to the LED[0] pin of the WAN PHY
- LAN LEDs are blinked according to the LED[0] output of the
corresponding port of the LAN switch
- PCIe LEDs are blinked according to the logical OR of the MiniPCIe port
LED pins
In the future I want to make the netdev trigger to transparently offload
the blinking to the HW if user sets compatible settings for the netdev
trigger (for LEDs associated with network devices).
There was some work on this already, and hopefully we will be able to
complete it sometime, but for now there are still multiple blockers for
this, and even if there weren't, we still would not be able to configure
HW controlled mode for the LEDs associated with MiniPCIe ports.
In the meantime let's support HW controlled mode via the private LED
trigger mechanism. If, in the future, we manage to complete the netdev
trigger offloading, we can still keep this private trigger for backwards
compatibility, if needed.
We also set "omnia-mcu" to cdev->default_trigger, so that the MCU keeps
control until the user first wants to take over it. If a different
default trigger is specified in device-tree via the
'linux,default-trigger' property, LED class will overwrite
cdev->default_trigger, and so the DT property will be respected.
Signed-off-by: Marek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/r/20230918161104.20860-4-kabel@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
2023-09-18 18:11:03 +02:00
|
|
|
|
2020-07-23 14:53:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-22 16:30:16 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-21 09:28:38 -05:00
|
|
|
|
|
|
|
|
|
2021-05-10 12:50:31 +03:00
|
|
|
|
2019-03-21 09:28:38 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-29 15:07:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-12 20:05:50 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-12 12:15:50 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-12 20:05:50 +08:00
|
|
|
|
2006-03-31 02:31:10 -08:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2006-03-31 02:31:10 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-01-22 19:35:48 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-01-22 19:35:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-20 14:47:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-07-10 04:45:34 -07:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2006-07-10 04:45:34 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-12-06 20:37:28 -08:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2006-12-06 20:37:28 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-09-21 00:02:47 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2020-09-18 00:32:49 +02:00
|
|
|
|
2007-02-12 23:16:27 +00:00
|
|
|
|
2007-09-21 00:02:47 +01:00
|
|
|
|
2007-02-12 23:16:27 +00:00
|
|
|
|
2007-09-27 17:51:05 +09:00
|
|
|
|
|
|
|
|
|
2020-09-18 00:32:49 +02:00
|
|
|
|
2007-09-27 17:51:05 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-10-29 16:26:56 -05:00
|
|
|
|
|
|
|
|
|
2023-12-14 21:21:31 +02:00
|
|
|
|
2023-10-29 16:26:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-08-31 20:26:48 -07:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2008-08-31 20:26:48 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-23 05:36:00 -07:00
|
|
|
|
|
|
|
|
|
2015-09-07 17:06:05 +02:00
|
|
|
|
2014-07-23 05:36:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-02-07 10:10:28 +00:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2008-02-07 10:10:28 +00:00
|
|
|
|
2009-01-26 11:12:25 +01:00
|
|
|
|
2008-02-07 10:10:28 +00:00
|
|
|
|
|
|
|
|
|
2008-05-31 14:43:41 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2013-01-16 18:53:41 -08:00
|
|
|
|
2008-05-31 14:43:41 +01:00
|
|
|
|
|
|
|
|
|
2009-01-26 11:12:25 +01:00
|
|
|
|
2008-05-31 14:43:41 +01:00
|
|
|
|
|
|
|
|
|
2011-05-24 17:13:23 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-02-27 19:49:53 +00:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2015-05-07 01:08:10 -07:00
|
|
|
|
2007-02-27 19:49:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-01-10 17:26:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-19 13:55:42 +02:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-06-19 13:55:42 +02:00
|
|
|
|
2009-07-03 16:18:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-19 13:55:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-11 11:48:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-12 14:50:16 -05:00
|
|
|
|
2021-07-30 23:59:11 +02:00
|
|
|
|
2020-08-12 14:50:16 -05:00
|
|
|
|
2024-01-09 10:06:40 +01:00
|
|
|
|
2020-08-12 14:50:16 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-05 18:01:23 +09:00
|
|
|
|
2024-06-26 18:00:25 +02:00
|
|
|
|
2020-08-17 12:11:29 -07:00
|
|
|
|
2024-01-09 10:06:40 +01:00
|
|
|
|
2020-07-16 13:20:01 -05:00
|
|
|
|
2020-07-28 12:26:13 +02:00
|
|
|
|
2025-10-06 12:37:53 +02:00
|
|
|
|
|
|
|
|
|
2013-02-05 18:01:23 +09:00
|
|
|
|
2024-06-26 18:00:25 +02:00
|
|
|
|
|
|
|
|
|
2013-02-05 18:01:23 +09:00
|
|
|
|
2010-11-11 14:05:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 13:20:01 -05:00
|
|
|
|
2010-11-11 14:05:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-04 15:06:11 +08:00
|
|
|
|
2010-11-11 14:05:23 -08:00
|
|
|
|
2020-07-16 13:20:01 -05:00
|
|
|
|
2010-11-11 14:05:23 -08:00
|
|
|
|
2012-09-04 15:06:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-11 14:05:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-18 21:10:14 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 13:20:01 -05:00
|
|
|
|
2013-02-18 21:10:14 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-26 18:00:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-09 02:11:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-16 13:20:01 -05:00
|
|
|
|
2013-07-09 02:11:37 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-20 16:43:59 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-11-19 04:48:35 -08:00
|
|
|
|
|
|
|
|
|
2017-12-18 14:23:07 -06:00
|
|
|
|
2014-11-21 05:48:26 -08:00
|
|
|
|
2014-11-19 04:48:35 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-18 22:08:27 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-10-31 11:46:41 +01:00
|
|
|
|
2009-04-03 07:42:47 +02:00
|
|
|
|
2022-07-17 12:59:48 +02:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2007-10-31 11:46:41 +01:00
|
|
|
|
|
|
|
|
|
2022-07-17 12:59:48 +02:00
|
|
|
|
|
|
|
|
|
2007-10-31 11:46:41 +01:00
|
|
|
|
2007-10-31 15:09:05 +01:00
|
|
|
|
|
|
|
|
|
2022-07-14 18:59:48 -07:00
|
|
|
|
2007-10-31 15:09:05 +01:00
|
|
|
|
|
|
|
|
|
2007-10-31 11:46:41 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-06 19:15:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-10-31 11:46:41 +01:00
|
|
|
|
2008-03-09 20:47:59 +00:00
|
|
|
|
2009-01-26 11:12:25 +01:00
|
|
|
|
2008-03-09 20:47:59 +00:00
|
|
|
|
2007-10-31 11:46:41 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-07-16 22:49:55 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2008-07-16 22:49:55 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-08-08 15:42:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-14 14:23:50 -07:00
|
|
|
|
2013-08-14 14:23:47 -07:00
|
|
|
|
2012-03-23 15:02:10 -07:00
|
|
|
|
|
|
|
|
|
2026-07-27 16:54:35 +02:00
|
|
|
|
2012-03-23 15:02:10 -07:00
|
|
|
|
2013-08-14 14:23:47 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-23 15:02:10 -07:00
|
|
|
|
2023-07-13 18:35:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-07 12:47:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-09-05 14:09:21 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-09-05 14:09:21 +01:00
|
|
|
|
|
|
|
|
|
2019-03-06 19:15:46 +01:00
|
|
|
|
2009-09-05 14:09:21 +01:00
|
|
|
|
2008-12-04 16:52:33 +00:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2008-12-04 16:52:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-10-13 09:06:10 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2008-10-13 09:06:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-05-29 15:07:26 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-01-10 18:58:28 +00:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-01-10 18:58:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-02-11 13:24:40 -08:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2013-01-23 00:35:04 -08:00
|
|
|
|
2009-02-11 13:24:40 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-07 15:08:13 +01:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-12-07 15:08:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-19 13:18:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-24 12:20:30 +01:00
|
|
|
|
2023-04-19 13:18:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-03-04 11:59:29 -08:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-03-04 11:59:29 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-10-01 15:43:32 -07:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2016-04-17 13:27:52 +02:00
|
|
|
|
2009-10-01 15:43:32 -07:00
|
|
|
|
|
|
|
|
|
2016-04-17 13:27:52 +02:00
|
|
|
|
|
|
|
|
|
2009-10-01 15:43:32 -07:00
|
|
|
|
|
|
|
|
|
2009-10-15 02:59:35 +02:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2015-05-05 18:32:25 +02:00
|
|
|
|
2009-10-15 02:59:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-10-08 04:00:19 -04:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2009-10-08 04:00:19 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-23 13:28:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-05-19 09:24:31 +02:00
|
|
|
|
2013-06-10 09:59:31 -07:00
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2013-06-10 09:59:31 -07:00
|
|
|
|
2010-05-19 09:24:31 +02:00
|
|
|
|
2018-02-15 18:11:37 +00:00
|
|
|
|
2014-01-31 22:36:28 -08:00
|
|
|
|
2010-05-19 09:24:31 +02:00
|
|
|
|
2010-07-06 16:08:46 +02:00
|
|
|
|
|
|
|
|
|
2010-12-02 14:31:14 -08:00
|
|
|
|
2020-09-18 00:32:49 +02:00
|
|
|
|
2025-04-17 09:46:56 +02:00
|
|
|
|
2010-07-06 16:08:46 +02:00
|
|
|
|
2015-07-02 19:56:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-07-06 16:08:46 +02:00
|
|
|
|
2010-10-07 16:38:49 +02:00
|
|
|
|
|
|
|
|
|
2011-07-25 17:13:16 -07:00
|
|
|
|
2020-09-18 00:32:49 +02:00
|
|
|
|
2025-04-17 09:46:56 +02:00
|
|
|
|
2010-10-07 16:38:49 +02:00
|
|
|
|
2018-02-15 18:11:37 +00:00
|
|
|
|
2010-10-07 16:38:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-01-10 15:09:40 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-03-17 15:08:27 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-23 11:04:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-23 18:04:32 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-14 18:23:56 +09:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-05 15:05:58 +08:00
|
|
|
|
2018-02-01 21:26:34 +01:00
|
|
|
|
2012-06-22 08:12:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-01 21:26:34 +01:00
|
|
|
|
|
|
|
|
|
2012-06-22 08:12:06 +08:00
|
|
|
|
2012-01-20 14:33:59 -08:00
|
|
|
|
|
|
|
|
|
2023-05-22 12:50:22 +02:00
|
|
|
|
2012-01-20 14:33:59 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-27 19:52:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-07-19 13:47:30 +02:00
|
|
|
|
|
|
|
|
|
2022-07-12 12:08:34 +02:00
|
|
|
|
2016-07-19 13:47:30 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
leds: Add driver for the ISSI IS31FL32xx family of LED controllers
The IS31FL32xx family of LED controllers are I2C devices with multiple
constant-current channels, each with independent 256-level PWM control.
Datasheets: http://www.issi.com/US/product-analog-fxled-driver.shtml
This has been tested on the IS31FL3236 and IS31FL3216, on an ARM
(TI am335x) platform.
The programming paradigm of these devices is similar in the following
ways:
- All registers are 8 bit
- All LED control registers are write-only
- Each LED channel has a PWM register (0-255)
- PWM register writes are shadowed until an Update register is poked
- All have a concept of Software Shutdown, which disables output
However, there are some differences in devices:
- 3236/3235 have a separate Control register for each LED,
(3218/3216 pack the enable bits into fewer registers)
- 3236/3235 have a per-channel current divisor setting
- 3236/3235 have a Global Control register that can turn off all LEDs
- 3216 is unique in a number of ways
- OUT9-OUT16 can be configured as GPIOs instead of LED controls
- LEDs can be programmed with an 8-frame animation, with
programmable delay between frames
- LEDs can be modulated by an input audio signal
- Max output current can be adjusted from 1/4 to 2x globally
- Has a Configuration register instead of a Shutdown register
This driver currently only supports the base PWM control function
of these devices. The following features of these devices are not
implemented, although it should be possible to add them in the future:
- All devices are capable of going into a lower-power "software
shutdown" mode.
- The is31fl3236 and is31fl3235 can reduce the max output current
per-channel with a divisor of 1, 2, 3, or 4.
- The is31fl3216 can use some LED channels as GPIOs instead.
- The is31fl3216 can animate LEDs in hardware.
- The is31fl3216 can modulate LEDs according to an audio input.
- The is31fl3216 can reduce/increase max output current globally.
Signed-off-by: David Rivshin <drivshin@allworx.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
2016-03-07 19:57:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-07 19:57:16 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
leds: Add driver for the ISSI IS31FL32xx family of LED controllers
The IS31FL32xx family of LED controllers are I2C devices with multiple
constant-current channels, each with independent 256-level PWM control.
Datasheets: http://www.issi.com/US/product-analog-fxled-driver.shtml
This has been tested on the IS31FL3236 and IS31FL3216, on an ARM
(TI am335x) platform.
The programming paradigm of these devices is similar in the following
ways:
- All registers are 8 bit
- All LED control registers are write-only
- Each LED channel has a PWM register (0-255)
- PWM register writes are shadowed until an Update register is poked
- All have a concept of Software Shutdown, which disables output
However, there are some differences in devices:
- 3236/3235 have a separate Control register for each LED,
(3218/3216 pack the enable bits into fewer registers)
- 3236/3235 have a per-channel current divisor setting
- 3236/3235 have a Global Control register that can turn off all LEDs
- 3216 is unique in a number of ways
- OUT9-OUT16 can be configured as GPIOs instead of LED controls
- LEDs can be programmed with an 8-frame animation, with
programmable delay between frames
- LEDs can be modulated by an input audio signal
- Max output current can be adjusted from 1/4 to 2x globally
- Has a Configuration register instead of a Shutdown register
This driver currently only supports the base PWM control function
of these devices. The following features of these devices are not
implemented, although it should be possible to add them in the future:
- All devices are capable of going into a lower-power "software
shutdown" mode.
- The is31fl3236 and is31fl3235 can reduce the max output current
per-channel with a divisor of 1, 2, 3, or 4.
- The is31fl3216 can use some LED channels as GPIOs instead.
- The is31fl3216 can animate LEDs in hardware.
- The is31fl3216 can modulate LEDs according to an audio input.
- The is31fl3216 can reduce/increase max output current globally.
Signed-off-by: David Rivshin <drivshin@allworx.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
2016-03-07 19:57:15 -05:00
|
|
|
|
2018-05-14 14:34:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-11 17:27:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-14 16:50:19 -04:00
|
|
|
|
|
|
|
|
|
2012-07-20 16:49:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-10 13:48:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-07 09:55:53 +02:00
|
|
|
|
2024-07-10 13:48:44 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-08-19 22:19:54 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-05-22 00:34:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-15 18:11:37 +00:00
|
|
|
|
2014-05-22 00:34:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-16 11:25:10 +02:00
|
|
|
|
|
|
|
|
|
2016-11-19 16:15:18 +01:00
|
|
|
|
2016-08-16 11:25:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
leds: add driver for Mellanox systems LEDs
This makes it possible to create a set of LEDs for Mellanox systems:
"msx6710", "msx6720", "msb7700", "msn2700", "msx1410", "msn2410",
"msb7800", "msn2740", "msn2100".
Driver obtains LED devices according to system configuration, provided
through system DMI data, like mlxcpld:fan1:green, mlxcpld:fan1:red and
creates devices in form: "devicename:colour:function".
LED setting is controlled through on board CPLD Lattice device.
For setting particular LED off, solid, blink:
echo 0 > /sys/class/leds/mlxcpld\:status\:green/brightness
echo 1 > /sys/class/leds/mlxcpld\:status\:green/brightness
echo timer > /sys/class/leds/mlxcpld\:status\:green/trigger
On module probing all LEDs are set green, on removing - off.
Last setting overwrites previous, f.e. sequence for
changing LED from green - red - green:
echo 1 > /sys/class/leds/mlxcpld\:psu\:green/brightness
echo 1 > /sys/class/leds/mlxcpld\:psu\:red/brightness
echo 1 > /sys/class/leds/mlxcpld\:psu\:green/brightness
Note: LEDs cannot be turned on/off simultaneously.
The Kconfig currently controlling compilation of this code is:
drivers/leds/Kconfig:config LEDS_MLXCPLD
Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
2016-09-08 07:25:53 +00:00
|
|
|
|
|
|
|
|
|
2018-02-01 08:10:34 +00:00
|
|
|
|
leds: add driver for Mellanox systems LEDs
This makes it possible to create a set of LEDs for Mellanox systems:
"msx6710", "msx6720", "msb7700", "msn2700", "msx1410", "msn2410",
"msb7800", "msn2740", "msn2100".
Driver obtains LED devices according to system configuration, provided
through system DMI data, like mlxcpld:fan1:green, mlxcpld:fan1:red and
creates devices in form: "devicename:colour:function".
LED setting is controlled through on board CPLD Lattice device.
For setting particular LED off, solid, blink:
echo 0 > /sys/class/leds/mlxcpld\:status\:green/brightness
echo 1 > /sys/class/leds/mlxcpld\:status\:green/brightness
echo timer > /sys/class/leds/mlxcpld\:status\:green/trigger
On module probing all LEDs are set green, on removing - off.
Last setting overwrites previous, f.e. sequence for
changing LED from green - red - green:
echo 1 > /sys/class/leds/mlxcpld\:psu\:green/brightness
echo 1 > /sys/class/leds/mlxcpld\:psu\:red/brightness
echo 1 > /sys/class/leds/mlxcpld\:psu\:green/brightness
Note: LEDs cannot be turned on/off simultaneously.
The Kconfig currently controlling compilation of this code is:
drivers/leds/Kconfig:config LEDS_MLXCPLD
Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
2016-09-08 07:25:53 +00:00
|
|
|
|
|
|
|
|
|
2018-02-15 18:11:37 +00:00
|
|
|
|
|
|
|
|
|
leds: add driver for Mellanox systems LEDs
This makes it possible to create a set of LEDs for Mellanox systems:
"msx6710", "msx6720", "msb7700", "msn2700", "msx1410", "msn2410",
"msb7800", "msn2740", "msn2100".
Driver obtains LED devices according to system configuration, provided
through system DMI data, like mlxcpld:fan1:green, mlxcpld:fan1:red and
creates devices in form: "devicename:colour:function".
LED setting is controlled through on board CPLD Lattice device.
For setting particular LED off, solid, blink:
echo 0 > /sys/class/leds/mlxcpld\:status\:green/brightness
echo 1 > /sys/class/leds/mlxcpld\:status\:green/brightness
echo timer > /sys/class/leds/mlxcpld\:status\:green/trigger
On module probing all LEDs are set green, on removing - off.
Last setting overwrites previous, f.e. sequence for
changing LED from green - red - green:
echo 1 > /sys/class/leds/mlxcpld\:psu\:green/brightness
echo 1 > /sys/class/leds/mlxcpld\:psu\:red/brightness
echo 1 > /sys/class/leds/mlxcpld\:psu\:green/brightness
Note: LEDs cannot be turned on/off simultaneously.
The Kconfig currently controlling compilation of this code is:
drivers/leds/Kconfig:config LEDS_MLXCPLD
Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
2016-09-08 07:25:53 +00:00
|
|
|
|
2018-02-15 23:37:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-16 14:16:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-04 13:31:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-03-13 18:16:30 +02:00
|
|
|
|
|
|
|
|
|
2016-11-04 13:31:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-13 21:33:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-06 14:16:11 -05:00
|
|
|
|
2023-05-09 17:07:47 +02:00
|
|
|
|
2023-02-25 21:39:49 -08:00
|
|
|
|
2019-05-06 14:16:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-06 14:16:14 -05:00
|
|
|
|
|
|
|
|
|
2023-05-09 17:07:47 +02:00
|
|
|
|
|
|
|
|
|
2019-05-06 14:16:14 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 07:56:34 -05:00
|
|
|
|
|
|
|
|
|
2023-05-09 17:07:47 +02:00
|
|
|
|
|
|
|
|
|
2019-06-05 07:56:34 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-18 18:19:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-26 17:12:50 +00:00
|
|
|
|
2024-12-18 18:19:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-07-09 08:41:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-16 09:32:58 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-24 12:17:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-18 00:32:50 +02:00
|
|
|
|
2020-02-24 12:17:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-06 22:51:02 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-25 11:35:10 +01:00
|
|
|
|
|
|
|
|
|
2021-01-03 00:15:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
leds: Add driver for Qualcomm LPG
The Light Pulse Generator (LPG) is a PWM-block found in a wide range of
PMICs from Qualcomm. These PMICs typically comes with 1-8 LPG instances,
with their output being routed to various other components, such as
current sinks or GPIOs.
Each LPG instance can operate on fixed parameters or based on a shared
lookup-table, altering the duty cycle over time. This provides the means
for hardware assisted transitions of LED brightness.
A typical use case for the fixed parameter mode is to drive a PWM
backlight control signal, the driver therefor allows each LPG instance
to be exposed to the kernel either through the LED framework or the PWM
framework.
A typical use case for the LED configuration is to drive RGB LEDs in
smartphones etc, for which the driver supports multiple channels to be
ganged up to a MULTICOLOR LED. In this configuration the pattern
generators will be synchronized, to allow for multi-color patterns.
The idea of modelling this as a LED driver ontop of a PWM driver was
considered, but setting the properties related to patterns does not fit
in the PWM API. Similarly the idea of just duplicating the lower bits in
a PWM and LED driver separately was considered, but this would not allow
the PWM channels and LEDs to be configured on a per-board basis. The
driver implements the more complex LED interface, and provides a PWM
interface on the side of that, in the same driver.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Luca Weiss <luca@z3ntu.xyz>
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Tested-by: Marijn Suijten <marijn.suijten@somainline.org>
[On the Sony Xperia Nile Discovery, SDM630]
Signed-off-by: Pavel Machek <pavel@ucw.cz>
2022-03-03 13:43:00 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-20 16:08:30 -07:00
|
|
|
|
2013-02-20 00:36:01 -08:00
|
|
|
|
leds: add new transient trigger for one shot timer activation
The leds timer trigger does not currently have an interface to activate a
one shot timer. The current support allows for setting two timers, one
for specifying how long a state to be on, and the second for how long the
state to be off. The delay_on value specifies the time period an LED
should stay in on state, followed by a delay_off value that specifies how
long the LED should stay in off state. The on and off cycle repeats until
the trigger gets deactivated. There is no provision for one time
activation to implement features that require an on or off state to be
held just once and then stay in the original state forever.
Without one shot timer interface, user space can still use timer trigger
to set a timer to hold a state, however when user space application
crashes or goes away without deactivating the timer, the hardware will be
left in that state permanently.
As a specific example of this use-case, let's look at vibrate feature on
phones. Vibrate function on phones is implemented using PWM pins on SoC
or PMIC. There is a need to activate one shot timer to control the
vibrate feature, to prevent user space crashes leaving the phone in
vibrate mode permanently causing the battery to drain.
This trigger exports three properties, activate, state, and duration When
transient trigger is activated these properties are set to default values.
- duration allows setting timer value in msecs. The initial value is 0.
- activate allows activating and deactivating the timer specified by
duration as needed. The initial and default value is 0. This will allow
duration to be set after trigger activation.
- state allows user to specify a transient state to be held for the specified
duration.
Signed-off-by: Shuah Khan <shuahkhan@gmail.com>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: NeilBrown <neilb@suse.de>
Cc: Bryan Wu <bryan.wu@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-29 15:07:30 -07:00
|
|
|
|
2025-03-07 10:01:10 -08:00
|
|
|
|
|
|
|
|
|
2021-12-13 13:05:00 +01:00
|
|
|
|
2007-05-10 10:44:11 +01:00
|
|
|
|