leds: qcom-clk: Add support to set default trigger for LED

Add property to configure the default trigger for the LED.
This will allow clients to use trigger APIs to configure
the brightness of the LED if needed.

Change-Id: I1db0a5f2d697c6ac6f6ae1296e43ae55509f2298
Signed-off-by: Veera Vegivada <vvegivad@codeaurora.org>
This commit is contained in:
Veera Vegivada 2021-02-27 13:36:34 +05:30
parent 607818c6ab
commit aa9cd16cb5

View File

@ -20,6 +20,7 @@ struct led_qcom_clk_priv {
struct pinctrl_state *gpio_active;
struct pinctrl_state *gpio_sleep;
const char *name;
const char *default_trigger;
int duty_cycle, max_duty;
bool clk_enabled;
};
@ -93,6 +94,9 @@ static int qcom_clk_led_parse_dt(struct device *dev,
led->name = of_get_property(dev->of_node, "qcom,label", NULL) ? :
dev->of_node->name;
led->default_trigger = of_get_property(dev->of_node,
"qcom,default-clk-trigger", NULL);
ret = of_property_read_u32(dev->of_node, "qcom,max_duty",
&led->max_duty);
if (ret) {
@ -155,6 +159,7 @@ static int led_qcom_clk_probe(struct platform_device *pdev)
priv->cdev.brightness = LED_OFF;
priv->cdev.max_brightness = priv->max_duty;
priv->cdev.flags = LED_CORE_SUSPENDRESUME;
priv->cdev.default_trigger = priv->default_trigger;
priv->cdev.brightness_set_blocking = qcom_clk_led_set;
return devm_led_classdev_register(&pdev->dev, &priv->cdev);