leds: Add support for setup/active mode GPIO outputs #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the leds GPIO pins are used to drive output-enable pins that leave the LED interface data line in a high-impedance state, then the data line will be sensitive to electrical interference while the interface is idle, which may lead to spurious glitches on the first few connected LEDs.
Add support for
ACTIVE
vsSETUP
gpio mode, whereby theSETUP
mode will leave the GPIO pin active once it has been setup (first leds update after boot), and theACTIVE
mode acts as before (de-asserts the GPIO pin when the interface is idle).Also tweak the
i2s_out
pin setup/teardown to leave the data/clock pin outputs enabled (GPIO low state), rather than relying on the output pull-down. This should reduce any susceptibility to interference on the output driver inputs.Add support for config enum aliases, used to map the old config
LOW
/HIGH
values ->ACTIVE_LOW
/ACTIVE_HIGH
for backwards-compatibility.TODO
leds
share the same output interface - only the gpio pins for the last active output will remain active? Perhaps fix this when refactoring the i2s interface to setup at boot?