On 06/06/2026 10:47, Sam Day via B4 Relay wrote:
> From: Sam Day <[email protected]>
>
> The qcom_pwrkey driver is currently binding to both the individual
> pwrkey/resin nodes, as well as the parent pon node.
>
> In the next commit, a new glue driver will be introduced for pm8916_pon,
> which will continue binding these buttons, as well as additional
> drivers.
>
> button_qcom_pmic_bind was renamed to button_qcom_pmic_setup and exported
> in a shared header, which the new pm8916_pon driver will call.
>
> Signed-off-by: Sam Day <[email protected]>
Reviewed-by: Casey Connolly <[email protected]>
> ---
> drivers/button/button-qcom-pmic.c | 6 +++---
> include/button/qcom-pmic.h | 17 +++++++++++++++++
> 2 files changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/button/button-qcom-pmic.c
> b/drivers/button/button-qcom-pmic.c
> index b823490d6d5..d9ac6a51df5 100644
> --- a/drivers/button/button-qcom-pmic.c
> +++ b/drivers/button/button-qcom-pmic.c
> @@ -13,9 +13,9 @@
> #include <dm/lists.h>
> #include <log.h>
> #include <power/pmic.h>
> -#include <spmi/spmi.h>
> #include <linux/bitops.h>
> #include <time.h>
> +#include "button/qcom-pmic.h"
>
> #define REG_TYPE 0x4
> #define REG_SUBTYPE 0x5
> @@ -174,7 +174,7 @@ static int qcom_pwrkey_probe(struct udevice *dev)
> return 0;
> }
>
> -static int button_qcom_pmic_bind(struct udevice *parent)
> +int button_qcom_pmic_setup(struct udevice *parent)
> {
> struct udevice *dev;
> ofnode node;
> @@ -227,7 +227,7 @@ U_BOOT_DRIVER(qcom_pwrkey) = {
> .name = "qcom_pwrkey",
> .id = UCLASS_BUTTON,
> .of_match = qcom_pwrkey_ids,
> - .bind = button_qcom_pmic_bind,
> + .bind = button_qcom_pmic_setup,
> .probe = qcom_pwrkey_probe,
> .ops = &button_qcom_pmic_ops,
> .priv_auto = sizeof(struct qcom_pmic_btn_priv),
> diff --git a/include/button/qcom-pmic.h b/include/button/qcom-pmic.h
> new file mode 100644
> index 00000000000..d321bbab460
> --- /dev/null
> +++ b/include/button/qcom-pmic.h
> @@ -0,0 +1,17 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#include <dm/device.h>
> +#include <linux/errno.h>
> +
> +#if CONFIG_IS_ENABLED(BUTTON_QCOM_PMIC)
> +/**
> + * Binds the qcom_pwrkey driver to compatible pwrkey/resin child nodes
> + * belonging to @parent
> + */
> +int button_qcom_pmic_setup(struct udevice *parent);
> +#else
> +static int button_qcom_pmic_setup(struct udevice *parent)
> +{
> + return -ENOSYS;
> +}
> +#endif
>
--
// Casey (she/her)