[coreboot-gerrit] Patch set updated for coreboot: ec/lenovo/h8: move charge priority into own function

Alexander Couzens (lynxis@fe80.eu) gerrit at coreboot.org
Sun Oct 16 17:15:10 CEST 2016


Alexander Couzens (lynxis at fe80.eu) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17035

-gerrit

commit 12a8f43b2f2c12164f1d0132f8186de5985d7d06
Author: Alexander Couzens <lynxis at fe80.eu>
Date:   Sun Oct 16 06:55:19 2016 +0200

    ec/lenovo/h8: move charge priority into own function
    
    Change-Id: I53c7cffd0f32f9babc5fb70d5a2440a7d3377602
    Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
---
 src/ec/lenovo/h8/h8.c | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index 943bdd4..99b27b3 100644
--- a/src/ec/lenovo/h8/h8.c
+++ b/src/ec/lenovo/h8/h8.c
@@ -79,6 +79,22 @@ static void h8_fn_ctrl_swap(int on)
 		ec_clr_bit(0xce, 4);
 }
 
+enum battery {
+	SECONDARY_BATTERY = 0,
+	PRIMARY_BATTERY = 1,
+};
+/* h8 charge priority. Defines if primary or secondary
+ * battery is charged first.
+ * Because NVRAM is complete the otherway around as this register,
+ * it's inverted by if */
+static void h8_charge_priority(enum battery battery)
+{
+	if (PRIMARY_BATTERY)
+		ec_set_bit(0x0, 4);
+	else
+		ec_clr_bit(0x0, 4);
+}
+
 static void h8_sticky_fn(int on)
 {
 	if (on)
@@ -187,7 +203,7 @@ struct device_operations h8_dev_ops = {
 static void h8_enable(struct device *dev)
 {
 	struct ec_lenovo_h8_config *conf = dev->chip_info;
-	u8 val, tmp;
+	u8 val;
 	u8 beepmask0, beepmask1, config1;
 
 	dev->ops = &h8_dev_ops;
@@ -287,12 +303,9 @@ static void h8_enable(struct device *dev)
 	h8_sticky_fn(val);
 
 	if (get_option(&val, "first_battery") != CB_SUCCESS)
-		val = 1;
+		val = PRIMARY_BATTERY;
+	h8_charge_priority(val);
 
-	tmp = ec_read(H8_CONFIG3);
-	tmp &= ~(1 << 4);
-	tmp |= (val & 1) << 4;
-	ec_write(H8_CONFIG3, tmp);
 	h8_set_audio_mute(0);
 
 #if !IS_ENABLED(CONFIG_H8_DOCK_EARLY_INIT)



More information about the coreboot-gerrit mailing list