Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) * Pattern format for LED pattern trigger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) The pattern is given by a series of tuples, of brightness and duration (ms).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) The LED is expected to traverse the series and each brightness value for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) specified duration. Duration of 0 means brightness should immediately change to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) new value, and writing malformed pattern deactivates any active one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 1. For gradual dimming, the dimming interval now is set as 50 milliseconds. So
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) the tuple with duration less than dimming interval (50ms) is treated as a step
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) change of brightness, i.e. the subsequent brightness will be applied without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) adding intervening dimming intervals.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) The gradual dimming format of the software pattern values should be:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) "brightness_1 duration_1 brightness_2 duration_2 brightness_3 duration_3 ...".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) For example (using sysfs interface):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) echo 0 1000 255 2000 > pattern
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) It will make the LED go gradually from zero-intensity to max (255) intensity in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 1000 milliseconds, then back to zero intensity in 2000 milliseconds:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) LED brightness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)     ^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 255-|       / \            / \            /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)     |      /    \         /    \         /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)     |     /       \      /       \      /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)     |    /          \   /          \   /
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)   0-|   /             \/             \/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)     +---0----1----2----3----4----5----6------------> time (s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 2. To make the LED go instantly from one brightness value to another, we should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) use zero-time lengths (the brightness must be same as the previous tuple's). So
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) the format should be: "brightness_1 duration_1 brightness_1 0 brightness_2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) duration_2 brightness_2 0 ...".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) For example (using sysfs interface):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) echo 0 1000 0 0 255 2000 255 0 > pattern
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) It will make the LED stay off for one second, then stay at max brightness for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) two seconds:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) LED brightness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)     ^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 255-|        +---------+    +---------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)     |        |         |    |         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)     |        |         |    |         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)     |        |         |    |         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)   0-|   -----+         +----+         +----
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)     +---0----1----2----3----4----5----6------------> time (s)