mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-06 23:36:59 +02:00
button: qcom-pmic: allow to specify code in devicetree
Most device vendors put "Volume Down" button onto PMIC RESIN. But Sony is special: see dts/upstream/src/arm64/qcom/sdm630-sony-xperia-nile.dtsi or [1]. They put "Volume Down" on PMIC GPIO 7 where others usually put "Volume Up", and KEY_VOLUMEUP is inside &pon_resin. Currently if you boot U-Boot on such Sony device, you end up with 2 "Volume Down" buttons, and no "Volume Up", which makes navigating menu problematic. Support reading devicetree "linux,code" property and override statically defined button code & label based on that. [1] https://elixir.bootlin.com/linux/v6.15-rc3/source/arch/ arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi#L263 Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org> Signed-off-by: Alexey Minnekhanov <alexeymin@minlexx.ru> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Link: https://lore.kernel.org/r/20250424014811.3809818-1-alexeymin@minlexx.ru Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
This commit is contained in:
parent
1079d4bf2e
commit
c92bf21e73
@ -143,6 +143,21 @@ static int qcom_pwrkey_probe(struct udevice *dev)
|
||||
|
||||
priv->base = base;
|
||||
|
||||
ret = dev_read_u32(dev, "linux,code", &priv->code);
|
||||
if (ret == 0) {
|
||||
/* convert key, if read OK */
|
||||
switch (priv->code) {
|
||||
case KEY_VOLUMEDOWN:
|
||||
priv->code = KEY_DOWN;
|
||||
uc_plat->label = "Volume Down";
|
||||
break;
|
||||
case KEY_VOLUMEUP:
|
||||
priv->code = KEY_UP;
|
||||
uc_plat->label = "Volume Up";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Do a sanity check */
|
||||
ret = pmic_reg_read(priv->pmic, priv->base + REG_TYPE);
|
||||
if (ret != 0x1 && ret != 0xb) {
|
||||
|
Loading…
Reference in New Issue
Block a user