Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Qualcomm PM8058 LED driver

The Qualcomm PM8058 is a multi-functional device which contains
an LED driver block for up to six LEDs: three normal LEDs, two
"flash" LEDs and one "keypad backlight" LED. The names are
quoted because sometimes these LED drivers are used for wildly
different things than flash or keypad backlight: their names
are more of a suggestion than a hard-wired usecase.

Hardware-wise the different LEDs support slightly different
output currents. The "flash" LEDs do not need to charge nor
do they support external triggers. They are just powerful LED
drivers.

The LEDs appear as children to the PM8058 device, with the
proper compatible string. For the PM8058 bindings see:
mfd/qcom-pm8xxx.txt.

Each LED is represented as a sub-node of the syscon device. Each
node's name represents the name of the corresponding LED.

LED sub-node properties:

Required properties:
- compatible: one of
  "qcom,pm8058-led" (for the normal LEDs at 0x131, 0x132 and 0x133)
  "qcom,pm8058-keypad-led" (for the "keypad" LED at 0x48)
  "qcom,pm8058-flash-led" (for the "flash" LEDs at 0x49 and 0xFB)

Optional properties:
- label: see Documentation/devicetree/bindings/leds/common.txt
- default-state: see Documentation/devicetree/bindings/leds/common.txt
- linux,default-trigger: see Documentation/devicetree/bindings/leds/common.txt

Example:

qcom,ssbi@500000 {
	pmicintc: pmic@0 {
		compatible = "qcom,pm8058";
		led@48 {
			compatible = "qcom,pm8058-keypad-led";
			reg = <0x48>;
			label = "pm8050:white:keypad";
			default-state = "off";
		};
		led@131 {
			compatible = "qcom,pm8058-led";
			reg = <0x131>;
			label = "pm8058:red";
			default-state = "off";
		};
		led@132 {
			compatible = "qcom,pm8058-led";
			reg = <0x132>;
			label = "pm8058:yellow";
			default-state = "off";
			linux,default-trigger = "mmc0";
		};
		led@133 {
			compatible = "qcom,pm8058-led";
			reg = <0x133>;
			label = "pm8058:green";
			default-state = "on";
			linux,default-trigger = "heartbeat";
		};
	};
};