Message ID | 1420816989-1808-3-git-send-email-j.anaszewski@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi! > The documentation being added contains overall description of the > LED Flash Class and the related sysfs attributes. > > Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> > Acked-by: Kyungmin Park <kyungmin.park@samsung.com> > Cc: Bryan Wu <cooloney@gmail.com> > Cc: Richard Purdie <rpurdie@rpsys.net> > +In order to enable support for flash LEDs CONFIG_LEDS_CLASS_FLASH symbol > +must be defined in the kernel config. A flash LED driver must register > +in the LED subsystem with led_classdev_flash_register function to gain flash > +related capabilities. > + > +There are flash LED devices which can control more than one LED and allow for > +strobing the sub-leds synchronously. A LED will be strobed synchronously with > +the one whose identifier is written to the flash_sync_strobe sysfs attribute. > +The list of available sub-led identifiers can be read from the sub-LED? > + - flash_fault - bitmask of flash faults that may have occurred > + possible flags are: > + * 0x01 - flash controller voltage to the flash LED has exceeded > + the limit specific to the flash controller > + * 0x02 - the flash strobe was still on when the timeout set by > + the user has expired; not all flash controllers may > + set this in all such conditions > + * 0x04 - the flash controller has overheated > + * 0x08 - the short circuit protection of the flash controller > + has been triggered > + * 0x10 - current in the LED power supply has exceeded the limit > + specific to the flash controller > + * 0x20 - the flash controller has detected a short or open > + circuit condition on the indicator LED > + * 0x40 - flash controller voltage to the flash LED has been > + below the minimum limit specific to the flash > + * 0x80 - the input voltage of the flash controller is below > + the limit under which strobing the flash at full > + current will not be possible. The condition persists > + until this flag is no longer set > + * 0x100 - the temperature of the LED has exceeded its allowed > + upper limit Did not everyone agree that text strings are preferable to bitmasks? Pavel
Hi Pavel, Thanks for the review. On 01/09/2015 06:40 PM, Pavel Machek wrote: > Hi! > >> The documentation being added contains overall description of the >> LED Flash Class and the related sysfs attributes. >> >> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> >> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> >> Cc: Bryan Wu <cooloney@gmail.com> >> Cc: Richard Purdie <rpurdie@rpsys.net> > >> +In order to enable support for flash LEDs CONFIG_LEDS_CLASS_FLASH symbol >> +must be defined in the kernel config. A flash LED driver must register >> +in the LED subsystem with led_classdev_flash_register function to gain flash >> +related capabilities. >> + >> +There are flash LED devices which can control more than one LED and allow for >> +strobing the sub-leds synchronously. A LED will be strobed synchronously with >> +the one whose identifier is written to the flash_sync_strobe sysfs attribute. >> +The list of available sub-led identifiers can be read from the > > sub-LED? Indeed, this naming will be more consistent. >> + - flash_fault - bitmask of flash faults that may have occurred >> + possible flags are: >> + * 0x01 - flash controller voltage to the flash LED has exceeded >> + the limit specific to the flash controller >> + * 0x02 - the flash strobe was still on when the timeout set by >> + the user has expired; not all flash controllers may >> + set this in all such conditions >> + * 0x04 - the flash controller has overheated >> + * 0x08 - the short circuit protection of the flash controller >> + has been triggered >> + * 0x10 - current in the LED power supply has exceeded the limit >> + specific to the flash controller >> + * 0x20 - the flash controller has detected a short or open >> + circuit condition on the indicator LED >> + * 0x40 - flash controller voltage to the flash LED has been >> + below the minimum limit specific to the flash >> + * 0x80 - the input voltage of the flash controller is below >> + the limit under which strobing the flash at full >> + current will not be possible. The condition persists >> + until this flag is no longer set >> + * 0x100 - the temperature of the LED has exceeded its allowed >> + upper limit > > Did not everyone agree that text strings are preferable to bitmasks? > > Pavel > I just forgot to update the flash_fault documentation. Will fix in the next version.
On Mon, Jan 12, 2015 at 12:04 AM, Jacek Anaszewski <j.anaszewski@samsung.com> wrote: > Hi Pavel, > > Thanks for the review. > > On 01/09/2015 06:40 PM, Pavel Machek wrote: >> >> Hi! >> >>> The documentation being added contains overall description of the >>> LED Flash Class and the related sysfs attributes. >>> >>> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> >>> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> >>> Cc: Bryan Wu <cooloney@gmail.com> >>> Cc: Richard Purdie <rpurdie@rpsys.net> >> >> >>> +In order to enable support for flash LEDs CONFIG_LEDS_CLASS_FLASH symbol >>> +must be defined in the kernel config. A flash LED driver must register >>> +in the LED subsystem with led_classdev_flash_register function to gain >>> flash >>> +related capabilities. >>> + >>> +There are flash LED devices which can control more than one LED and >>> allow for >>> +strobing the sub-leds synchronously. A LED will be strobed synchronously >>> with >>> +the one whose identifier is written to the flash_sync_strobe sysfs >>> attribute. >>> +The list of available sub-led identifiers can be read from the >> >> >> sub-LED? > > > Indeed, this naming will be more consistent. > >>> + - flash_fault - bitmask of flash faults that may have occurred >>> + possible flags are: >>> + * 0x01 - flash controller voltage to the flash LED has >>> exceeded >>> + the limit specific to the flash controller >>> + * 0x02 - the flash strobe was still on when the timeout >>> set by >>> + the user has expired; not all flash controllers >>> may >>> + set this in all such conditions >>> + * 0x04 - the flash controller has overheated >>> + * 0x08 - the short circuit protection of the flash >>> controller >>> + has been triggered >>> + * 0x10 - current in the LED power supply has exceeded the >>> limit >>> + specific to the flash controller >>> + * 0x20 - the flash controller has detected a short or >>> open >>> + circuit condition on the indicator LED >>> + * 0x40 - flash controller voltage to the flash LED has >>> been >>> + below the minimum limit specific to the flash >>> + * 0x80 - the input voltage of the flash controller is >>> below >>> + the limit under which strobing the flash at full >>> + current will not be possible. The condition >>> persists >>> + until this flag is no longer set >>> + * 0x100 - the temperature of the LED has exceeded its >>> allowed >>> + upper limit >> >> >> Did not everyone agree that text strings are preferable to bitmasks? >> >> >> Pavel >> > > I just forgot to update the flash_fault documentation. Will fix in the > next version. > Please provide an updated version. I will merge them. -Bryan -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/leds/leds-class-flash.txt b/Documentation/leds/leds-class-flash.txt new file mode 100644 index 0000000..d80096b --- /dev/null +++ b/Documentation/leds/leds-class-flash.txt @@ -0,0 +1,57 @@ + +Flash LED handling under Linux +============================== + +Some LED devices support two modes - torch and flash. In the LED subsystem +those modes are supported by LED class (see Documentation/leds/leds-class.txt) +and LED Flash class respectively. The torch mode related features are enabled +by default and the flash ones only if a driver declares it by setting +LED_DEV_CAP_FLASH flag. + +In order to enable support for flash LEDs CONFIG_LEDS_CLASS_FLASH symbol +must be defined in the kernel config. A flash LED driver must register +in the LED subsystem with led_classdev_flash_register function to gain flash +related capabilities. + +There are flash LED devices which can control more than one LED and allow for +strobing the sub-leds synchronously. A LED will be strobed synchronously with +the one whose identifier is written to the flash_sync_strobe sysfs attribute. +The list of available sub-led identifiers can be read from the available_sync_leds +sysfs attribute. In order to enable the related settings the driver must set +LED_DEV_CAP_SYNC_STROBE flag. + +Following sysfs attributes are exposed for controlling flash led devices: + + - flash_brightness - flash LED brightness in microamperes (RW) + - max_flash_brightness - maximum available flash LED brightness (RO) + - flash_timeout - flash strobe duration in microseconds (RW) + - max_flash_timeout - maximum available flash strobe duration (RO) + - flash_strobe - flash strobe state (RW) + - available_sync_leds - list of sub-leds available for flash strobe + synchronization (RO) + - flash_sync_strobe - identifier of the sub-led to synchronize the flash + strobe with; 0 stands for no synchronization (RW) + - flash_fault - bitmask of flash faults that may have occurred + possible flags are: + * 0x01 - flash controller voltage to the flash LED has exceeded + the limit specific to the flash controller + * 0x02 - the flash strobe was still on when the timeout set by + the user has expired; not all flash controllers may + set this in all such conditions + * 0x04 - the flash controller has overheated + * 0x08 - the short circuit protection of the flash controller + has been triggered + * 0x10 - current in the LED power supply has exceeded the limit + specific to the flash controller + * 0x20 - the flash controller has detected a short or open + circuit condition on the indicator LED + * 0x40 - flash controller voltage to the flash LED has been + below the minimum limit specific to the flash + * 0x80 - the input voltage of the flash controller is below + the limit under which strobing the flash at full + current will not be possible. The condition persists + until this flag is no longer set + * 0x100 - the temperature of the LED has exceeded its allowed + upper limit + + Flash faults are cleared, if possible, by reading the attribute.