]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/chrome: update pwm fan control host commands
authorSung-Chi Li <lschyi@chromium.org>
Thu, 11 Sep 2025 06:56:34 +0000 (06:56 +0000)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 25 Sep 2025 15:08:13 +0000 (08:08 -0700)
Update cros_ec_commands.h to include definitions for getting PWM fan
duty, getting and setting the fan control mode.

Signed-off-by: Sung-Chi Li <lschyi@chromium.org>
Acked-by: Tzung-Bi Shih <tzungbi@kernel.org>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20250911-cros_ec_fan-v6-1-a1446cc098af@google.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
include/linux/platform_data/cros_ec_commands.h

index c19b404e3d8d9ec895a17838aa6e271e235f0823..69294f79cc88aaa6289af3f104743ff0d93ab753 100644 (file)
@@ -1825,6 +1825,16 @@ struct ec_response_pwm_get_duty {
        uint16_t duty;     /* Duty cycle, EC_PWM_MAX_DUTY = 100% */
 } __ec_align2;
 
+#define EC_CMD_PWM_GET_FAN_DUTY 0x0027
+
+struct ec_params_pwm_get_fan_duty {
+       uint8_t fan_idx;
+} __ec_align1;
+
+struct ec_response_pwm_get_fan_duty {
+       uint32_t percent; /* Percentage of duty cycle, ranging from 0 ~ 100 */
+} __ec_align4;
+
 /*****************************************************************************/
 /*
  * Lightbar commands. This looks worse than it is. Since we only use one HOST
@@ -3127,14 +3137,31 @@ struct ec_params_thermal_set_threshold_v1 {
 
 /****************************************************************************/
 
-/* Toggle automatic fan control */
+/* Set or get fan control mode */
 #define EC_CMD_THERMAL_AUTO_FAN_CTRL 0x0052
 
+enum ec_auto_fan_ctrl_cmd {
+       EC_AUTO_FAN_CONTROL_CMD_SET = 0,
+       EC_AUTO_FAN_CONTROL_CMD_GET,
+};
+
 /* Version 1 of input params */
 struct ec_params_auto_fan_ctrl_v1 {
        uint8_t fan_idx;
 } __ec_align1;
 
+/* Version 2 of input params */
+struct ec_params_auto_fan_ctrl_v2 {
+       uint8_t fan_idx;
+       uint8_t cmd; /* enum ec_auto_fan_ctrl_cmd */
+       uint8_t set_auto; /* only used with EC_AUTO_FAN_CONTROL_CMD_SET - bool
+                          */
+} __ec_align4;
+
+struct ec_response_auto_fan_control {
+       uint8_t is_auto; /* bool */
+} __ec_align1;
+
 /* Get/Set TMP006 calibration data */
 #define EC_CMD_TMP006_GET_CALIBRATION 0x0053
 #define EC_CMD_TMP006_SET_CALIBRATION 0x0054