Prechádzať zdrojové kódy

backlight: pm8941-wled: Add default-brightness property

Default the brightness to 2048 and add possibility to override this in
device tree.

Suggested-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Bjorn Andersson 10 rokov pred
rodič
commit
9d6c243502

+ 2 - 0
Documentation/devicetree/bindings/video/backlight/pm8941-wled.txt

@@ -5,6 +5,8 @@ Required properties:
 - reg: slave address
 - reg: slave address
 
 
 Optional properties:
 Optional properties:
+- default-brightness: brightness value on boot, value from: 0-4095
+	default: 2048
 - label: The name of the backlight device
 - label: The name of the backlight device
 - qcom,cs-out: bool; enable current sink output
 - qcom,cs-out: bool; enable current sink output
 - qcom,cabc: bool; enable content adaptive backlight control
 - qcom,cabc: bool; enable content adaptive backlight control

+ 8 - 0
drivers/video/backlight/pm8941-wled.c

@@ -17,6 +17,9 @@
 #include <linux/of_device.h>
 #include <linux/of_device.h>
 #include <linux/regmap.h>
 #include <linux/regmap.h>
 
 
+/* From DT binding */
+#define PM8941_WLED_DEFAULT_BRIGHTNESS		2048
+
 #define PM8941_WLED_REG_VAL_BASE		0x40
 #define PM8941_WLED_REG_VAL_BASE		0x40
 #define  PM8941_WLED_REG_VAL_MAX		0xFFF
 #define  PM8941_WLED_REG_VAL_MAX		0xFFF
 
 
@@ -373,6 +376,7 @@ static int pm8941_wled_probe(struct platform_device *pdev)
 	struct backlight_device *bl;
 	struct backlight_device *bl;
 	struct pm8941_wled *wled;
 	struct pm8941_wled *wled;
 	struct regmap *regmap;
 	struct regmap *regmap;
+	u32 val;
 	int rc;
 	int rc;
 
 
 	regmap = dev_get_regmap(pdev->dev.parent, NULL);
 	regmap = dev_get_regmap(pdev->dev.parent, NULL);
@@ -395,8 +399,12 @@ static int pm8941_wled_probe(struct platform_device *pdev)
 	if (rc)
 	if (rc)
 		return rc;
 		return rc;
 
 
+	val = PM8941_WLED_DEFAULT_BRIGHTNESS;
+	of_property_read_u32(pdev->dev.of_node, "default-brightness", &val);
+
 	memset(&props, 0, sizeof(struct backlight_properties));
 	memset(&props, 0, sizeof(struct backlight_properties));
 	props.type = BACKLIGHT_RAW;
 	props.type = BACKLIGHT_RAW;
+	props.brightness = val;
 	props.max_brightness = PM8941_WLED_REG_VAL_MAX;
 	props.max_brightness = PM8941_WLED_REG_VAL_MAX;
 	bl = devm_backlight_device_register(&pdev->dev, wled->name,
 	bl = devm_backlight_device_register(&pdev->dev, wled->name,
 					    &pdev->dev, wled,
 					    &pdev->dev, wled,