Lines Matching +full:pd +full:- +full:revision

1 // SPDX-License-Identifier: GPL-2.0+
22 #define DRV_NAME "cros-ec-sysfs"
32 "ro|rw|cancel|cold|disable-jump|hibernate|cold-ap-off"); in reboot_show()
33 count += sysfs_emit_at(buf, count, " [at-shutdown]\n"); in reboot_show()
49 {"cold-ap-off", EC_REBOOT_COLD_AP_OFF, 0}, in reboot_store()
51 {"disable-jump", EC_REBOOT_DISABLE_JUMP, 0}, in reboot_store()
53 {"at-shutdown", -1, EC_REBOOT_FLAG_ON_AP_SHUTDOWN}, in reboot_store()
64 return -ENOMEM; in reboot_store()
66 param = (struct ec_params_reboot_ec *)msg->data; in reboot_store()
68 param->flags = 0; in reboot_store()
80 param->flags |= words[i].flags; in reboot_store()
82 param->cmd = words[i].cmd; in reboot_store()
95 count = -EINVAL; in reboot_store()
99 msg->version = 0; in reboot_store()
100 msg->command = EC_CMD_REBOOT_EC + ec->cmd_offset; in reboot_store()
101 msg->outsize = sizeof(*param); in reboot_store()
102 msg->insize = 0; in reboot_store()
103 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in reboot_store()
125 return -ENOMEM; in version_show()
128 msg->version = 0; in version_show()
129 msg->command = EC_CMD_GET_VERSION + ec->cmd_offset; in version_show()
130 msg->insize = sizeof(*r_ver); in version_show()
131 msg->outsize = 0; in version_show()
132 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in version_show()
137 r_ver = (struct ec_response_get_version *)msg->data; in version_show()
138 /* Strings should be null-terminated, but let's be sure. */ in version_show()
139 r_ver->version_string_ro[sizeof(r_ver->version_string_ro) - 1] = '\0'; in version_show()
140 r_ver->version_string_rw[sizeof(r_ver->version_string_rw) - 1] = '\0'; in version_show()
141 count += sysfs_emit_at(buf, count, "RO version: %s\n", r_ver->version_string_ro); in version_show()
142 count += sysfs_emit_at(buf, count, "RW version: %s\n", r_ver->version_string_rw); in version_show()
144 (r_ver->current_image < ARRAY_SIZE(image_names) ? in version_show()
145 image_names[r_ver->current_image] : "?")); in version_show()
148 msg->command = EC_CMD_GET_BUILD_INFO + ec->cmd_offset; in version_show()
149 msg->insize = EC_HOST_PARAM_SIZE; in version_show()
150 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in version_show()
154 ret, msg->result); in version_show()
156 msg->data[EC_HOST_PARAM_SIZE - 1] = '\0'; in version_show()
157 count += sysfs_emit_at(buf, count, "Build info: %s\n", msg->data); in version_show()
161 msg->command = EC_CMD_GET_CHIP_INFO + ec->cmd_offset; in version_show()
162 msg->insize = sizeof(*r_chip); in version_show()
163 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in version_show()
167 ret, msg->result); in version_show()
169 r_chip = (struct ec_response_get_chip_info *)msg->data; in version_show()
171 r_chip->vendor[sizeof(r_chip->vendor) - 1] = '\0'; in version_show()
172 r_chip->name[sizeof(r_chip->name) - 1] = '\0'; in version_show()
173 r_chip->revision[sizeof(r_chip->revision) - 1] = '\0'; in version_show()
174 count += sysfs_emit_at(buf, count, "Chip vendor: %s\n", r_chip->vendor); in version_show()
175 count += sysfs_emit_at(buf, count, "Chip name: %s\n", r_chip->name); in version_show()
176 count += sysfs_emit_at(buf, count, "Chip revision: %s\n", r_chip->revision); in version_show()
180 msg->command = EC_CMD_GET_BOARD_VERSION + ec->cmd_offset; in version_show()
181 msg->insize = sizeof(*r_board); in version_show()
182 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in version_show()
186 ret, msg->result); in version_show()
188 r_board = (struct ec_response_board_version *)msg->data; in version_show()
192 r_board->board_version); in version_show()
210 return -ENOMEM; in flashinfo_show()
213 msg->version = 0; in flashinfo_show()
214 msg->command = EC_CMD_FLASH_INFO + ec->cmd_offset; in flashinfo_show()
215 msg->insize = sizeof(*resp); in flashinfo_show()
216 msg->outsize = 0; in flashinfo_show()
217 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in flashinfo_show()
221 resp = (struct ec_response_flash_info *)msg->data; in flashinfo_show()
226 resp->flash_size, resp->write_block_size, in flashinfo_show()
227 resp->erase_block_size, resp->protect_block_size); in flashinfo_show()
245 return -ENOMEM; in kb_wake_angle_show()
247 param = (struct ec_params_motion_sense *)msg->data; in kb_wake_angle_show()
248 msg->command = EC_CMD_MOTION_SENSE_CMD + ec->cmd_offset; in kb_wake_angle_show()
249 msg->version = 2; in kb_wake_angle_show()
250 param->cmd = MOTIONSENSE_CMD_KB_WAKE_ANGLE; in kb_wake_angle_show()
251 param->kb_wake_angle.data = EC_MOTION_SENSE_NO_VALUE; in kb_wake_angle_show()
252 msg->outsize = sizeof(*param); in kb_wake_angle_show()
253 msg->insize = sizeof(*resp); in kb_wake_angle_show()
255 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in kb_wake_angle_show()
259 resp = (struct ec_response_motion_sense *)msg->data; in kb_wake_angle_show()
260 ret = sysfs_emit(buf, "%d\n", resp->kb_wake_angle.ret); in kb_wake_angle_show()
282 return -ENOMEM; in kb_wake_angle_store()
284 param = (struct ec_params_motion_sense *)msg->data; in kb_wake_angle_store()
285 msg->command = EC_CMD_MOTION_SENSE_CMD + ec->cmd_offset; in kb_wake_angle_store()
286 msg->version = 2; in kb_wake_angle_store()
287 param->cmd = MOTIONSENSE_CMD_KB_WAKE_ANGLE; in kb_wake_angle_store()
288 param->kb_wake_angle.data = angle; in kb_wake_angle_store()
289 msg->outsize = sizeof(*param); in kb_wake_angle_store()
290 msg->insize = sizeof(struct ec_response_motion_sense); in kb_wake_angle_store()
292 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in kb_wake_angle_store()
309 ret = cros_ec_cmd(ec->ec_dev, 0, EC_CMD_USB_PD_PORTS, NULL, 0, in usbpdmuxinfo_show()
312 return -EIO; in usbpdmuxinfo_show()
320 ret = cros_ec_cmd(ec->ec_dev, 0, EC_CMD_USB_PD_MUX_INFO, in usbpdmuxinfo_show()
345 return count ? : -EIO; in usbpdmuxinfo_show()
383 if (a == &dev_attr_kb_wake_angle.attr && !ec->has_kb_wake_angle) in cros_ec_ctrl_visible()
388 struct cros_ec_platform *ec_platform = dev_get_platdata(ec->dev); in cros_ec_ctrl_visible()
390 if (strcmp(ec_platform->ec_name, CROS_EC_DEV_NAME)) in cros_ec_ctrl_visible()
394 return a->mode; in cros_ec_ctrl_visible()
402 static int cros_ec_sysfs_probe(struct platform_device *pd) in cros_ec_sysfs_probe() argument
404 struct cros_ec_dev *ec_dev = dev_get_drvdata(pd->dev.parent); in cros_ec_sysfs_probe()
405 struct device *dev = &pd->dev; in cros_ec_sysfs_probe()
408 ret = sysfs_create_group(&ec_dev->class_dev.kobj, &cros_ec_attr_group); in cros_ec_sysfs_probe()
415 static void cros_ec_sysfs_remove(struct platform_device *pd) in cros_ec_sysfs_remove() argument
417 struct cros_ec_dev *ec_dev = dev_get_drvdata(pd->dev.parent); in cros_ec_sysfs_remove()
419 sysfs_remove_group(&ec_dev->class_dev.kobj, &cros_ec_attr_group); in cros_ec_sysfs_remove()