diff --git a/arch/arm64/boot/dts/freescale/librem5-evk.dtsi b/arch/arm64/boot/dts/freescale/librem5-evk.dtsi index aa577bbe0efbd06c958e8e2c736d6304e24fdc3f..3ca6f519111655d9fda3a77ec63c30955da06b57 100644 --- a/arch/arm64/boot/dts/freescale/librem5-evk.dtsi +++ b/arch/arm64/boot/dts/freescale/librem5-evk.dtsi @@ -639,7 +639,7 @@ }; &i2c1 { - clock-frequency = <400000>; + clock-frequency = <200000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1>; status = "okay"; @@ -860,6 +860,8 @@ ti,minimum-sys-voltage = <2750000>; // 2.75V ti,boost-voltage = <5000000>; // 5V ti,boost-max-current = <50000>; // 50mA + ti,use-vinmin-threshold = <1>; /* enable VINDPM */ + ti,vinmin-threshold = <3900000>; /* 3.9V */ }; rtc@68 { diff --git a/drivers/power/supply/bq25890_charger.c b/drivers/power/supply/bq25890_charger.c index f9843da0ad08055cab7fbf32b6d6bb66c8035fd3..3a2386485e62759e9f6e90c67f44b9d2b0a1baff 100644 --- a/drivers/power/supply/bq25890_charger.c +++ b/drivers/power/supply/bq25890_charger.c @@ -75,6 +75,8 @@ struct bq25890_init_data { u8 boosti; /* boost current limit */ u8 boostf; /* boost frequency */ u8 ilim_en; /* enable ILIM pin */ + u8 force_vindpm;/* force vinmin threshold */ + u8 vindpm; /* vinmin threshold */ u8 treg; /* thermal regulation threshold */ }; @@ -253,6 +255,8 @@ enum bq25890_table_ids { TBL_VCLAMP, TBL_BOOSTV, TBL_SYSVMIN, + TBL_FORCE_VINDPM, + TBL_VINDPM, /* lookup tables */ TBL_TREG, @@ -294,6 +298,8 @@ static const union { [TBL_VCLAMP] = { .rt = {0, 224000, 32000} }, /* uV */ [TBL_BOOSTV] = { .rt = {4550000, 5510000, 64000} }, /* uV */ [TBL_SYSVMIN] = { .rt = {3000000, 3700000, 100000} }, /* uV */ + [TBL_FORCE_VINDPM] = { .rt = {0, 1, 1} }, /* on/off */ + [TBL_VINDPM] = { .rt = {2600000, 15300000, 100000} }, /* uV */ /* lookup tables */ [TBL_TREG] = { .lt = {bq25890_treg_tbl, BQ25890_TREG_TBL_SIZE} }, @@ -628,6 +634,8 @@ static int bq25890_hw_init(struct bq25890_device *bq) {F_BOOSTI, bq->init_data.boosti}, {F_BOOSTF, bq->init_data.boostf}, {F_EN_ILIM, bq->init_data.ilim_en}, + {F_FORCE_VINDPM, bq->init_data.force_vindpm}, + {F_VINDPM, bq->init_data.vindpm}, {F_TREG, bq->init_data.treg} }; @@ -791,6 +799,8 @@ static int bq25890_fw_read_u32_props(struct bq25890_device *bq) {"ti,minimum-sys-voltage", false, TBL_SYSVMIN, &init->sysvmin}, {"ti,boost-voltage", false, TBL_BOOSTV, &init->boostv}, {"ti,boost-max-current", false, TBL_BOOSTI, &init->boosti}, + {"ti,use-vinmin-threshold", false, TBL_FORCE_VINDPM, &init->force_vindpm}, + {"ti,vinmin-threshold", false, TBL_VINDPM, &init->vindpm}, /* optional properties */ {"ti,thermal-regulation-threshold", true, TBL_TREG, &init->treg}