This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I have LP5562 integrated into a custom beaglebone black PCB and loaded with a yocto based distro. With this setup, I have successfully enabled compilation of lp5562 driver into the linux kernel via kernel config, with these options:
However, when I try to follow the instructions in https://www.kernel.org/doc/Documentation/leds/leds-lp5562.txt
echo 2 > /sys/bus/i2c/devices/xxxx/select_engine
echo "RGB" > /sys/bus/i2c/devices/xxxx/engine_mux
echo 1 > /sys/class/firmware/lp5562/loadingAs soon as I execute the first instruction, I see the following in dmesg:
[22704.521017] lp5562 0-0030: Direct firmware load failed with status -2[22704.527652] lp5562 0-0030: Falling back to user helper[22704.542048] lp5562 0-0030: firmware request failed
I don't see "/sys/class/firmware/lp5562/" . I tried adding CONFIG_FW_LOADER=y to Kconfig to no avail.
Any idea what I could be doing wrong or what kernel config I am missing?
Please enable user helper firmware loader option in your dot config file. CONFIG_FW_LOADER_USER_HELPER=y
Find the right power solution for your processor or FPGA. Visit www.ti.com/SoCPower today!
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Tomi Koskela:
In reply to Arun Sivakumaran:
Our driver expert could reproduce this and it seems that this is the side effect of the kernel feature - 'firmware loader user helper'.The uevent option of request_firmware_nowait() should be disabled to load binary data manually.If uevent is set, then firmware class node(/sys/class/firmware/lp5562) will be removed by firmware_class_timeout_work().So, please apply the diff patch below.diff --git a/drivers/leds/leds-lp55xx-common.c b/drivers/leds/leds-lp55xx-common.cindex f23c315..94b2cda 100644--- a/drivers/leds/leds-lp55xx-common.c+++ b/drivers/leds/leds-lp55xx-common.c@@ -237,7 +237,7 @@ static int lp55xx_request_firmware(struct lp55xx_chip *chip) const char *name = chip->cl->name; struct device *dev = &chip->cl->dev; - return request_firmware_nowait(THIS_MODULE, true, name, dev,+ return request_firmware_nowait(THIS_MODULE, false, name, dev, GFP_KERNEL, chip, lp55xx_firmware_loaded); }
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.