From 7717644da3a6dfea8c40f721af41a2f04011259a Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megi@xff.cz>
Date: Sat, 2 Apr 2022 03:15:45 +0200
Subject: [PATCH 412/480] power: supply: ip5xxx: Modify initial configuration

- double press to power off
- disable auto-power on under load

Signed-off-by: Ondrej Jirman <megi@xff.cz>
---
 drivers/power/supply/ip5xxx_power.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c
index 240e93ab0c31..be88f05a6287 100644
--- a/drivers/power/supply/ip5xxx_power.c
+++ b/drivers/power/supply/ip5xxx_power.c
@@ -205,21 +205,32 @@ static int ip5xxx_initialize(struct power_supply *psy)
 	if (ip5xxx->initialized)
 		return 0;
 
+	/*
+	 * Disable flashlight feature.
+	 */
+	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.wled.enable, 0);
+	if (ret)
+		return ret;
+
+	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.wled.detect_en, 0);
+	if (ret)
+		return ret;
+
 	/*
 	 * Disable shutdown under light load.
-	 * Enable power on when under load.
+	 * Disable power on when under load.
 	 */
 	if (ip5xxx->regs.boost.light_load_shutdown.enable) {
 		ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.light_load_shutdown.enable, 0);
 		if (ret)
 			return ret;
 	}
-	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.load_powerup_en, 1);
+	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.load_powerup_en, 0);
 	if (ret)
 		return ret;
 
 	/*
-	 * Enable shutdown after a long button press (as configured below).
+	 * Enable shutdown after a double press (as configured below).
 	 */
 	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_enable, 1);
 	if (ret)
@@ -234,17 +245,17 @@ static int ip5xxx_initialize(struct power_supply *psy)
 
 	/*
 	 * Enable the NTC.
-	 * Configure the button for two presses => LED, long press => shutdown.
+	 * Configure the button for two presses => shutdown, long press => LED.
 	 */
 	if (ip5xxx->regs.battery.ntc_dis) {
 		ret = ip5xxx_write(ip5xxx, ip5xxx->regs.battery.ntc_dis, 0);
 		if (ret)
 			return ret;
 	}
-	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.wled_mode, 1);
+	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.wled_mode, 0);
 	if (ret)
 		return ret;
-	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_mode, 1);
+	ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_mode, 0);
 	if (ret)
 		return ret;
 
-- 
2.49.0

