The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] platform/chrome: cros_ec: add API for power monitoring
@ 2026-08-24 15:55 Daniel Balint
  2026-08-25  2:56 ` Tzung-Bi Shih
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel Balint @ 2026-08-24 15:55 UTC (permalink / raw)
  To: Tzung-Bi Shih
  Cc: linux-kernel, chrome-platform, jakiela, hmazur, Benson Leung,
	Daniel Balint

Add new EC host command and MKBP event to allow cros_ec_pwrmon
iio devices to query the EC for power monitoring data.
The actual cros_ec_pwrmon driver using this API is currently downstream
and will be upstreamed at a later date. This is a sync between the EC
header and the kernel.

Signed-off-by: Daniel Balint <dbalint@google.com>
---
 .../linux/platform_data/cros_ec_commands.h    | 72 +++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 749d985e9da2..a7bd69d83522 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -1344,6 +1344,26 @@ enum ec_feature_code {
 	 * The EC supports UCSI PPM.
 	 */
 	EC_FEATURE_UCSI_PPM = 54,
+	/*
+	 * The EC supports Strauss keyboard.
+	 */
+	EC_FEATURE_STRAUSS = 55,
+	/*
+	 * The EC supports PoE.
+	 */
+	EC_FEATURE_POE = 56,
+	/*
+	 * The EC supports a hybrid boost charger
+	 */
+	EC_FEATURE_CHARGER_HYBRID_POWER_BOOST = 57,
+	/*
+	 * Support signaling new console logs via host event
+	 */
+	EC_FEATURE_CONSOLE_LOG_EVENT = 58,
+	/*
+	 * The EC supports power monitoring
+	 */
+	EC_FEATURE_PWRMON = 59,
 };
 
 #define EC_FEATURE_MASK_0(event_code) BIT(event_code % 32)
@@ -3516,6 +3536,9 @@ enum ec_mkbp_event {
 	/* Peripheral device charger event */
 	EC_MKBP_EVENT_PCHG = 12,
 
+	/* Power monitor telemetry event */
+	EC_MKBP_EVENT_PWRMON = 13,
+
 	/* Number of MKBP events */
 	EC_MKBP_EVENT_COUNT,
 };
@@ -3599,6 +3622,12 @@ union __ec_align_offset1 ec_response_get_next_data_v3 {
 	uint32_t cec_events;
 
 	uint8_t cec_message[16];
+
+	struct __ec_todo_packed {
+		int64_t value;
+		uint32_t samples;
+		uint8_t channel_id;
+	} pwrmon_data;
 };
 BUILD_ASSERT(sizeof(union ec_response_get_next_data_v3) == 18);
 
@@ -6589,6 +6618,49 @@ struct ec_params_usb_pd_mux_ack {
 	uint8_t port; /* USB-C port number */
 } __ec_align1;
 
+/**
+ * Power monitoring. Used to read power consumptions on rails
+ */
+#define EC_CMD_PWRMON 0x0608
+
+enum ec_pwrmon_cmd {
+	EC_PWRMON_GET_CHANNEL_COUNT = 0,
+	EC_PWRMON_DUMP_INFO = 1,
+	EC_PWRMON_SET_RATE = 2,
+	EC_PWRMON_GET_RATE = 3,
+	EC_PWRMON_START = 4,
+	EC_PWRMON_STOP = 5,
+	EC_PWRMON_LATCH = 6,
+};
+
+struct ec_params_pwrmon {
+	uint8_t cmd;
+	union {
+		uint16_t set_rate;
+		uint8_t channel_id;
+	} __ec_align2;
+
+	/*
+	 * The following commands have no args:
+	 *
+	 * start, stop, latch
+	 *
+	 */
+} __ec_align4;
+
+struct pwrmon_dump_info {
+	uint8_t channel_id;
+	char channel_name[32];
+} __ec_align4;
+
+struct ec_response_pwrmon {
+	union {
+		uint16_t sample_rate;
+		uint8_t channel_count;
+		struct pwrmon_dump_info dump_info;
+	} __ec_align4;
+} __ec_align4;
+
 /*****************************************************************************/
 /*
  * Reserve a range of host commands for board-specific, experimental, or
-- 
2.55.0.766.g2966f0265a-goog


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] platform/chrome: cros_ec: add API for power monitoring
  2026-08-24 15:55 [PATCH] platform/chrome: cros_ec: add API for power monitoring Daniel Balint
@ 2026-08-25  2:56 ` Tzung-Bi Shih
  0 siblings, 0 replies; 2+ messages in thread
From: Tzung-Bi Shih @ 2026-08-25  2:56 UTC (permalink / raw)
  To: Daniel Balint
  Cc: linux-kernel, chrome-platform, jakiela, hmazur, Benson Leung

On Mon, Aug 24, 2026 at 03:55:54PM +0000, Daniel Balint wrote:
> Add new EC host command and MKBP event to allow cros_ec_pwrmon
> iio devices to query the EC for power monitoring data.
> The actual cros_ec_pwrmon driver using this API is currently downstream
> and will be upstreamed at a later date. This is a sync between the EC
> header and the kernel.
> 
> Signed-off-by: Daniel Balint <dbalint@google.com>

For my reference,
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-08-25  2:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-24 15:55 [PATCH] platform/chrome: cros_ec: add API for power monitoring Daniel Balint
2026-08-25  2:56 ` Tzung-Bi Shih

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox