From c8ed6152f1d7c8fd6adcb04a0081f10670723a34 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 25 May 2023 15:19:55 +0200 Subject: [PATCH] board: pinephone-pro: Wait for the battery to get some charge [TODO] We need to wait for the battery voltage to raise above some safe level before proceeding with boot. Signed-off-by: Ondrej Jirman --- board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c | 9 +++++++++ drivers/power/pmic/rk8xx.c | 5 +++++ include/power/rk8xx_pmic.h | 2 ++ 3 files changed, 16 insertions(+) diff --git a/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c b/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c index 1cd0eddb0b5..6045edf0db8 100644 --- a/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c +++ b/board/pine64/pinephone-pro-rk3399/pinephone-pro-rk3399.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #define GRF_IO_VSEL_BT565_GPIO2AB 1 @@ -62,6 +63,8 @@ static void pinephone_pro_init(void) struct udevice *pmic; int ret; + printf("Initializing Pinephone Pro charger\n"); + ret = uclass_first_device_err(UCLASS_PMIC, &pmic); if (ret) { printf("ERROR: PMIC not found! (%d)\n", ret); @@ -80,6 +83,12 @@ static void pinephone_pro_init(void) * Close charger when USB lower then 3.26V */ rk818_spl_configure_usb_chrg_shutdown(pmic, 3260000); + + /* + * Check battery voltage and wait until it's in bootable state. + */ + //TODO: + rk818_wait_battery(pmic); } void pmic_setup(void) diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c index 25ef621f8df..8b2a66622a1 100644 --- a/drivers/power/pmic/rk8xx.c +++ b/drivers/power/pmic/rk8xx.c @@ -129,6 +129,11 @@ static int rk8xx_read(struct udevice *dev, uint reg, uint8_t *buff, int len) return 0; } +int rk818_wait_battery(struct udevice *dev) +{ + return 0; +} + #if CONFIG_IS_ENABLED(PMIC_CHILDREN) static int rk8xx_bind(struct udevice *dev) { diff --git a/include/power/rk8xx_pmic.h b/include/power/rk8xx_pmic.h index 3cbfc021956..cf5e5b99456 100644 --- a/include/power/rk8xx_pmic.h +++ b/include/power/rk8xx_pmic.h @@ -236,4 +236,6 @@ int rk8xx_spl_configure_buck(struct udevice *pmic, int buck, int uvolt); int rk818_spl_configure_usb_input_current(struct udevice *pmic, int current_ma); int rk818_spl_configure_usb_chrg_shutdown(struct udevice *pmic, int uvolt); +int rk818_wait_battery(struct udevice *dev); + #endif