[coreboot-gerrit] Change in coreboot[master]: chromeec: Add command to override charger limit

Daisuke Nojiri (Code Review) gerrit at coreboot.org
Tue Nov 28 23:25:44 CET 2017


Daisuke Nojiri has uploaded this change for review. ( https://review.coreboot.org/22624


Change subject: chromeec: Add command to override charger limit
......................................................................

chromeec: Add command to override charger limit

This patch adds EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT, which
overrides the max input current and voltage when a barrel jack
adapter supplies power.

BUG=b:64442692
BRANCH=none
TEST=Boot Fizz. Use chgsup console command to verify the max
current and voltage are set as expected.

Change-Id: I8c6fc54e519ce13e3db82ee2cecaa96c6eb42d8a
Signed-off-by: Daisuke Nojiri <dnojiri at chromium.org>
---
M src/ec/google/chromeec/ec.c
M src/ec/google/chromeec/ec.h
M src/ec/google/chromeec/ec_commands.h
3 files changed, 40 insertions(+), 0 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/24/22624/1

diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index b44fffe..588d115 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -638,6 +638,26 @@
 	return 0;
 }
 
+int google_chromeec_override_dedicated_charger_limit(u16 current_lim,
+						     u16 voltage_lim)
+{
+	struct ec_params_dedicated_charger_limit p = {
+		.current_lim = current_lim,
+		.voltage_lim = voltage_lim,
+	};
+	struct chromeec_command cmd = {
+		.cmd_code = EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT,
+		.cmd_version = 0,
+		.cmd_data_in = &p,
+		.cmd_size_in = sizeof(p),
+		.cmd_data_out = NULL,
+		.cmd_size_out = 0,
+		.cmd_dev_index = 0,
+	};
+
+	return google_chromeec_command(&cmd);
+}
+
 int google_chromeec_set_usb_pd_role(u8 port, enum usb_pd_control_role role)
 {
 	struct ec_params_usb_pd_control req = {
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 0b6f880..e1bf6c8 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -91,6 +91,16 @@
 int google_chromeec_get_usb_pd_power_info(enum usb_chg_type *type,
 					  u32 *max_watts);
 
+/*
+ * Set max current and voltage of a dedicated charger.
+ *
+ * @param current_lim Max current in mA
+ * @param voltage_lim Max voltage in mV
+ * @return non-zero for error, otherwise 0.
+ */
+int google_chromeec_override_dedicated_charger_limit(u16 current_lim,
+						     u16 voltage_lim);
+
 /* internal structure to send a command to the EC and wait for response. */
 struct chromeec_command {
 	uint16_t    cmd_code;	  /* command code in, status out */
diff --git a/src/ec/google/chromeec/ec_commands.h b/src/ec/google/chromeec/ec_commands.h
index aa63aa7..57e48e7 100644
--- a/src/ec/google/chromeec/ec_commands.h
+++ b/src/ec/google/chromeec/ec_commands.h
@@ -3533,6 +3533,16 @@
 
 #define EC_POWER_LIMIT_NONE 0xffff
 
+/*
+ * Set maximum voltage & current of a dedicated charge port
+ */
+#define EC_CMD_OVERRIDE_DEDICATED_CHARGER_LIMIT 0x00A3
+
+struct __ec_align2 ec_params_dedicated_charger_limit {
+	uint16_t current_lim; /* in mA */
+	uint16_t voltage_lim; /* in mV */
+};
+
 /*****************************************************************************/
 /* Hibernate/Deep Sleep Commands */
 

-- 
To view, visit https://review.coreboot.org/22624
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8c6fc54e519ce13e3db82ee2cecaa96c6eb42d8a
Gerrit-Change-Number: 22624
Gerrit-PatchSet: 1
Gerrit-Owner: Daisuke Nojiri <dnojiri at chromium.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20171128/7bd0b6c5/attachment-0001.html>


More information about the coreboot-gerrit mailing list