Commit f29f972a authored by Barnabás Czémán's avatar Barnabás Czémán Committed by Lee Jones
Browse files

backlight: qcom-wled: Support ovp values for PMI8994



WLED4 found in PMI8994 supports different ovp values.

Fixes: 6fc632d3 ("video: backlight: qcom-wled: Add PMI8994 compatible")
Signed-off-by: default avatarBarnabás Czémán <barnabas.czeman@mainlining.org>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: default avatarDaniel Thompson (RISCstar) <danielt@kernel.org>
Link: https://patch.msgid.link/20260116-pmi8950-wled-v3-2-e6c93de84079@mainlining.org


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent 02031064
Loading
Loading
Loading
Loading
+39 −2
Original line number Diff line number Diff line
@@ -1244,6 +1244,15 @@ static const struct wled_var_cfg wled4_ovp_cfg = {
	.size = ARRAY_SIZE(wled4_ovp_values),
};

static const u32 pmi8994_wled_ovp_values[] = {
	31000, 29500, 19400, 17800,
};

static const struct wled_var_cfg pmi8994_wled_ovp_cfg = {
	.values = pmi8994_wled_ovp_values,
	.size = ARRAY_SIZE(pmi8994_wled_ovp_values),
};

static inline u32 wled5_ovp_values_fn(u32 idx)
{
	/*
@@ -1357,6 +1366,29 @@ static int wled_configure(struct wled *wled)
		},
	};

	const struct wled_u32_opts pmi8994_wled_opts[] = {
		{
			.name = "qcom,current-boost-limit",
			.val_ptr = &cfg->boost_i_limit,
			.cfg = &wled4_boost_i_limit_cfg,
		},
		{
			.name = "qcom,current-limit-microamp",
			.val_ptr = &cfg->string_i_limit,
			.cfg = &wled4_string_i_limit_cfg,
		},
		{
			.name = "qcom,ovp-millivolt",
			.val_ptr = &cfg->ovp,
			.cfg = &pmi8994_wled_ovp_cfg,
		},
		{
			.name = "qcom,switching-freq",
			.val_ptr = &cfg->switch_freq,
			.cfg = &wled3_switch_freq_cfg,
		},
	};

	const struct wled_u32_opts wled5_opts[] = {
		{
			.name = "qcom,current-boost-limit",
@@ -1423,8 +1455,13 @@ static int wled_configure(struct wled *wled)
		break;

	case 4:
		if (of_device_is_compatible(dev->of_node, "qcom,pmi8994-wled")) {
			u32_opts = pmi8994_wled_opts;
			size = ARRAY_SIZE(pmi8994_wled_opts);
		} else {
			u32_opts = wled4_opts;
			size = ARRAY_SIZE(wled4_opts);
		}
		*cfg = wled4_config_defaults;
		wled->wled_set_brightness = wled4_set_brightness;
		wled->wled_sync_toggle = wled3_sync_toggle;