bm92t30: Add proper info
The driver will now show more charger supported profiles and will also show selected profile.
This commit is contained in:
@@ -37,7 +37,7 @@ OBJS += $(addprefix $(BUILDDIR)/$(TARGET)/, \
|
||||
fuse.o kfuse.o \
|
||||
mc.o sdram.o minerva.o ramdisk.o \
|
||||
sdmmc.o sdmmc_driver.o nx_emmc.o nx_emmc_bis.o nx_sd.o \
|
||||
bm92t30_stub.o bq24193.o max17050.o max7762x.o max77620-rtc.o regulator_5v.o \
|
||||
bm92t36.o bq24193.o max17050.o max7762x.o max77620-rtc.o regulator_5v.o \
|
||||
touch.o joycon.o tmp451.o fan.o \
|
||||
usbd.o usb_gadget_ums.o usb_gadget_hid.o \
|
||||
hw_init.o \
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <mem/heap.h>
|
||||
#include <mem/sdram.h>
|
||||
#include <mem/smmu.h>
|
||||
#include <power/bm92t30_stub.h>
|
||||
#include <power/bm92t36.h>
|
||||
#include <power/bq24193.h>
|
||||
#include <power/max17050.h>
|
||||
#include <sec/se.h>
|
||||
@@ -1689,27 +1689,31 @@ static lv_res_t _create_window_battery_status(lv_obj_t *btn)
|
||||
|
||||
bool inserted;
|
||||
u32 wattage = 0;
|
||||
u32 max_voltage = 5;
|
||||
usb_pd_objects_t usb_pd;
|
||||
bm92t30_get_charger_type(&inserted, &usb_pd);
|
||||
bm92t36_get_sink_info(&inserted, &usb_pd);
|
||||
strcat(txt_buf, "\n\n\n");
|
||||
strcat(txt_buf, inserted ? "Connected" : "Disconnected");
|
||||
|
||||
for (u32 i = 0; i < usb_pd.pdo_no; i++)
|
||||
if (usb_pd.pdos[i].voltage <= 15)
|
||||
max_voltage = usb_pd.pdos[i].voltage;
|
||||
|
||||
wattage = iinlim * max_voltage;
|
||||
// Select 5V is no PD contract.
|
||||
wattage = iinlim * (usb_pd.pdo_no ? usb_pd.selected_pdo.voltage : 5);
|
||||
|
||||
s_printf(txt_buf + strlen(txt_buf), "\n%d.%d W", wattage / 1000, (wattage % 1000) / 100);
|
||||
|
||||
if (!usb_pd.pdo_no)
|
||||
strcat(txt_buf, "\nNon PD");
|
||||
|
||||
// Limit to 5 profiles so it can fit.
|
||||
usb_pd.pdo_no = MIN(usb_pd.pdo_no, 5);
|
||||
|
||||
for (u32 i = 0; i < usb_pd.pdo_no; i++)
|
||||
{
|
||||
s_printf(txt_buf + strlen(txt_buf), "\n%d mA, %2d V",
|
||||
usb_pd.pdos[i].amperage, usb_pd.pdos[i].voltage);
|
||||
bool selected =
|
||||
usb_pd.pdos[i].amperage == usb_pd.selected_pdo.amperage &&
|
||||
usb_pd.pdos[i].voltage == usb_pd.selected_pdo.voltage;
|
||||
s_printf(txt_buf + strlen(txt_buf), "\n%s%d mA, %2d V%s",
|
||||
selected ? "#D4FF00 " : "",
|
||||
usb_pd.pdos[i].amperage, usb_pd.pdos[i].voltage,
|
||||
selected ? "#" : "");
|
||||
}
|
||||
|
||||
lv_label_set_text(lb_val2, txt_buf);
|
||||
|
||||
Reference in New Issue
Block a user