Merge branch 'for-4.8/mfd' into for-4.8/drivers
This commit is contained in:
commit
38593426ec
|
@ -380,3 +380,20 @@ int cros_ec_cmd_xfer(struct cros_ec_device *ec_dev,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(cros_ec_cmd_xfer);
|
EXPORT_SYMBOL(cros_ec_cmd_xfer);
|
||||||
|
|
||||||
|
int cros_ec_cmd_xfer_status(struct cros_ec_device *ec_dev,
|
||||||
|
struct cros_ec_command *msg)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = cros_ec_cmd_xfer(ec_dev, msg);
|
||||||
|
if (ret < 0) {
|
||||||
|
dev_err(ec_dev->dev, "Command xfer error (err:%d)\n", ret);
|
||||||
|
} else if (msg->result != EC_RES_SUCCESS) {
|
||||||
|
dev_dbg(ec_dev->dev, "Command result (err: %d)\n", msg->result);
|
||||||
|
return -EPROTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
|
||||||
|
|
|
@ -225,6 +225,21 @@ int cros_ec_check_result(struct cros_ec_device *ec_dev,
|
||||||
int cros_ec_cmd_xfer(struct cros_ec_device *ec_dev,
|
int cros_ec_cmd_xfer(struct cros_ec_device *ec_dev,
|
||||||
struct cros_ec_command *msg);
|
struct cros_ec_command *msg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cros_ec_cmd_xfer_status - Send a command to the ChromeOS EC
|
||||||
|
*
|
||||||
|
* This function is identical to cros_ec_cmd_xfer, except it returns success
|
||||||
|
* status only if both the command was transmitted successfully and the EC
|
||||||
|
* replied with success status. It's not necessary to check msg->result when
|
||||||
|
* using this function.
|
||||||
|
*
|
||||||
|
* @ec_dev: EC device
|
||||||
|
* @msg: Message to write
|
||||||
|
* @return: Num. of bytes transferred on success, <0 on failure
|
||||||
|
*/
|
||||||
|
int cros_ec_cmd_xfer_status(struct cros_ec_device *ec_dev,
|
||||||
|
struct cros_ec_command *msg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cros_ec_remove - Remove a ChromeOS EC
|
* cros_ec_remove - Remove a ChromeOS EC
|
||||||
*
|
*
|
||||||
|
|
|
@ -949,6 +949,37 @@ struct ec_params_pwm_set_fan_duty {
|
||||||
uint32_t percent;
|
uint32_t percent;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
|
#define EC_CMD_PWM_SET_DUTY 0x25
|
||||||
|
/* 16 bit duty cycle, 0xffff = 100% */
|
||||||
|
#define EC_PWM_MAX_DUTY 0xffff
|
||||||
|
|
||||||
|
enum ec_pwm_type {
|
||||||
|
/* All types, indexed by board-specific enum pwm_channel */
|
||||||
|
EC_PWM_TYPE_GENERIC = 0,
|
||||||
|
/* Keyboard backlight */
|
||||||
|
EC_PWM_TYPE_KB_LIGHT,
|
||||||
|
/* Display backlight */
|
||||||
|
EC_PWM_TYPE_DISPLAY_LIGHT,
|
||||||
|
EC_PWM_TYPE_COUNT,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ec_params_pwm_set_duty {
|
||||||
|
uint16_t duty; /* Duty cycle, EC_PWM_MAX_DUTY = 100% */
|
||||||
|
uint8_t pwm_type; /* ec_pwm_type */
|
||||||
|
uint8_t index; /* Type-specific index, or 0 if unique */
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
#define EC_CMD_PWM_GET_DUTY 0x26
|
||||||
|
|
||||||
|
struct ec_params_pwm_get_duty {
|
||||||
|
uint8_t pwm_type; /* ec_pwm_type */
|
||||||
|
uint8_t index; /* Type-specific index, or 0 if unique */
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
struct ec_response_pwm_get_duty {
|
||||||
|
uint16_t duty; /* Duty cycle, EC_PWM_MAX_DUTY = 100% */
|
||||||
|
} __packed;
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*
|
/*
|
||||||
* Lightbar commands. This looks worse than it is. Since we only use one HOST
|
* Lightbar commands. This looks worse than it is. Since we only use one HOST
|
||||||
|
|
Loading…
Reference in New Issue