18c2ecf20Sopenharmony_ciQualcomm PM8058 LED driver
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe Qualcomm PM8058 is a multi-functional device which contains
48c2ecf20Sopenharmony_cian LED driver block for up to six LEDs: three normal LEDs, two
58c2ecf20Sopenharmony_ci"flash" LEDs and one "keypad backlight" LED. The names are
68c2ecf20Sopenharmony_ciquoted because sometimes these LED drivers are used for wildly
78c2ecf20Sopenharmony_cidifferent things than flash or keypad backlight: their names
88c2ecf20Sopenharmony_ciare more of a suggestion than a hard-wired usecase.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciHardware-wise the different LEDs support slightly different
118c2ecf20Sopenharmony_cioutput currents. The "flash" LEDs do not need to charge nor
128c2ecf20Sopenharmony_cido they support external triggers. They are just powerful LED
138c2ecf20Sopenharmony_cidrivers.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciThe LEDs appear as children to the PM8058 device, with the
168c2ecf20Sopenharmony_ciproper compatible string. For the PM8058 bindings see:
178c2ecf20Sopenharmony_cimfd/qcom-pm8xxx.txt.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciEach LED is represented as a sub-node of the syscon device. Each
208c2ecf20Sopenharmony_cinode's name represents the name of the corresponding LED.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciLED sub-node properties:
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciRequired properties:
258c2ecf20Sopenharmony_ci- compatible: one of
268c2ecf20Sopenharmony_ci  "qcom,pm8058-led" (for the normal LEDs at 0x131, 0x132 and 0x133)
278c2ecf20Sopenharmony_ci  "qcom,pm8058-keypad-led" (for the "keypad" LED at 0x48)
288c2ecf20Sopenharmony_ci  "qcom,pm8058-flash-led" (for the "flash" LEDs at 0x49 and 0xFB)
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciOptional properties:
318c2ecf20Sopenharmony_ci- label: see Documentation/devicetree/bindings/leds/common.txt
328c2ecf20Sopenharmony_ci- default-state: see Documentation/devicetree/bindings/leds/common.txt
338c2ecf20Sopenharmony_ci- linux,default-trigger: see Documentation/devicetree/bindings/leds/common.txt
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciExample:
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciqcom,ssbi@500000 {
388c2ecf20Sopenharmony_ci	pmicintc: pmic@0 {
398c2ecf20Sopenharmony_ci		compatible = "qcom,pm8058";
408c2ecf20Sopenharmony_ci		led@48 {
418c2ecf20Sopenharmony_ci			compatible = "qcom,pm8058-keypad-led";
428c2ecf20Sopenharmony_ci			reg = <0x48>;
438c2ecf20Sopenharmony_ci			label = "pm8050:white:keypad";
448c2ecf20Sopenharmony_ci			default-state = "off";
458c2ecf20Sopenharmony_ci		};
468c2ecf20Sopenharmony_ci		led@131 {
478c2ecf20Sopenharmony_ci			compatible = "qcom,pm8058-led";
488c2ecf20Sopenharmony_ci			reg = <0x131>;
498c2ecf20Sopenharmony_ci			label = "pm8058:red";
508c2ecf20Sopenharmony_ci			default-state = "off";
518c2ecf20Sopenharmony_ci		};
528c2ecf20Sopenharmony_ci		led@132 {
538c2ecf20Sopenharmony_ci			compatible = "qcom,pm8058-led";
548c2ecf20Sopenharmony_ci			reg = <0x132>;
558c2ecf20Sopenharmony_ci			label = "pm8058:yellow";
568c2ecf20Sopenharmony_ci			default-state = "off";
578c2ecf20Sopenharmony_ci			linux,default-trigger = "mmc0";
588c2ecf20Sopenharmony_ci		};
598c2ecf20Sopenharmony_ci		led@133 {
608c2ecf20Sopenharmony_ci			compatible = "qcom,pm8058-led";
618c2ecf20Sopenharmony_ci			reg = <0x133>;
628c2ecf20Sopenharmony_ci			label = "pm8058:green";
638c2ecf20Sopenharmony_ci			default-state = "on";
648c2ecf20Sopenharmony_ci			linux,default-trigger = "heartbeat";
658c2ecf20Sopenharmony_ci		};
668c2ecf20Sopenharmony_ci	};
678c2ecf20Sopenharmony_ci};
68