Home
last modified time | relevance | path

Searched full:ec (Results 1 – 25 of 424) sorted by relevance

12345678910>>...17

/linux/arch/arm/mach-rpc/
H A Decard.c58 ecard_t *ec; member
70 void (*init)(ecard_t *ec);
77 static void atomwide_3p_quirk(ecard_t *ec);
121 struct expansion_card *ec = req->ec; in ecard_task_reset() local
124 res = ec->slot_no == 8 in ecard_task_reset()
125 ? &ec->resource[ECARD_RES_MEMC] in ecard_task_reset()
126 : ec->easi in ecard_task_reset()
127 ? &ec->resource[ECARD_RES_EASI] in ecard_task_reset()
128 : &ec->resource[ECARD_RES_IOCSYNC]; in ecard_task_reset()
130 ecard_loader_reset(res->start, ec->loader); in ecard_task_reset()
[all …]
/linux/drivers/md/
H A Ddm-ebs-target.c37 static inline sector_t __sector_to_block(struct ebs_c *ec, sector_t sector) in __sector_to_block() argument
39 return sector >> ec->block_shift; in __sector_to_block()
48 static inline unsigned int __nr_blocks(struct ebs_c *ec, struct bio *bio) in __nr_blocks() argument
50 sector_t end_sector = __block_mod(bio->bi_iter.bi_sector, ec->u_bs) + bio_sectors(bio); in __nr_blocks()
52 return __sector_to_block(ec, end_sector) + (__block_mod(end_sector, ec->u_bs) ? 1 : 0); in __nr_blocks()
65 static int __ebs_rw_bvec(struct ebs_c *ec, enum req_op op, struct bio_vec *bv, in __ebs_rw_bvec() argument
72 unsigned int buf_off = to_bytes(__block_mod(iter->bi_sector, ec->u_bs)); in __ebs_rw_bvec()
73 sector_t block = __sector_to_block(ec, iter->bi_sector); in __ebs_rw_bvec()
83 cur_len = min(dm_bufio_get_block_size(ec->bufio) - buf_off, bv_len); in __ebs_rw_bvec()
86 if (op == REQ_OP_READ || buf_off || bv_len < dm_bufio_get_block_size(ec->bufio)) in __ebs_rw_bvec()
[all …]
/linux/drivers/platform/chrome/wilco_ec/
H A Dcore.c7 * This is the entry point for the drivers that control the Wilco EC.
14 #include <linux/platform_data/wilco-ec.h>
19 #define DRV_NAME "wilco-ec"
40 struct wilco_ec_device *ec; in wilco_ec_probe() local
43 ec = devm_kzalloc(dev, sizeof(*ec), GFP_KERNEL); in wilco_ec_probe()
44 if (!ec) in wilco_ec_probe()
47 platform_set_drvdata(pdev, ec); in wilco_ec_probe()
48 ec->dev = dev; in wilco_ec_probe()
49 mutex_init(&ec->mailbox_lock); in wilco_ec_probe()
51 ec->data_size = sizeof(struct wilco_ec_response) + EC_MAILBOX_DATA_SIZE; in wilco_ec_probe()
[all …]
H A Dmailbox.c7 * The Wilco EC is similar to a typical ChromeOS embedded controller.
9 * protocol, but with some important differences. The EC firmware does
21 #include <linux/platform_data/wilco-ec.h>
32 /* Version of EC protocol */
41 /* EC response flags */
43 #define EC_CMDR_PENDING BIT(1) /* Write pending to EC */
44 #define EC_CMDR_BUSY BIT(2) /* EC is busy processing a command */
48 * wilco_ec_response_timed_out() - Wait for EC response.
49 * @ec: EC device.
51 * Return: true if EC timed out, false if EC did not time out.
[all …]
H A Dkeyboard_leds.c7 * Since the EC will never change the backlight level of its own accord,
14 #include <linux/platform_data/wilco-ec.h>
22 struct wilco_ec_device *ec; member
33 * struct wilco_keyboard_leds_msg - Message to/from EC for keyboard LED control.
35 * @status: Set by EC to 0 on success, 0xFF on failure.
55 static int send_kbbl_msg(struct wilco_ec_device *ec, in send_kbbl_msg() argument
69 ret = wilco_ec_mailbox(ec, &msg); in send_kbbl_msg()
71 dev_err(ec->dev, in send_kbbl_msg()
79 static int set_kbbl(struct wilco_ec_device *ec, enum led_brightness brightness) in set_kbbl() argument
91 ret = send_kbbl_msg(ec, &request, &response); in set_kbbl()
[all …]
H A Dsysfs.c5 * Sysfs properties to view and modify EC-controlled features on Wilco devices.
8 * See Documentation/ABI/testing/sysfs-platform-wilco-ec for more information.
13 #include <linux/platform_data/wilco-ec.h>
46 u8 status; /* Set by EC to 0 on success, other value on failure */
47 u8 val; /* When getting, set by EC to either 0 or 1 */
73 struct wilco_ec_device *ec = dev_get_drvdata(dev); in boot_on_ac_store() local
94 ret = wilco_ec_mailbox(ec, &msg); in boot_on_ac_store()
105 struct wilco_ec_device *ec = dev_get_drvdata(dev); in get_info() local
118 ret = wilco_ec_mailbox(ec, &msg); in get_info()
157 static int send_usb_charge(struct wilco_ec_device *ec, in send_usb_charge() argument
[all …]
/linux/drivers/platform/olpc/
H A Dolpc-ec.c19 #include <linux/olpc-ec.h>
42 /* Pending EC commands */
49 * EC event mask to be applied during suspend (defining wakeup
55 * Running an EC command while suspending means we don't always finish
56 * the command before the machine suspends. This means that the EC
58 * of time (while the OS is asleep) the EC times out and restarts its
61 * the EC... and everyone's uphappy.
79 struct olpc_ec_priv *ec = container_of(w, struct olpc_ec_priv, worker); in olpc_ec_worker() local
84 spin_lock_irqsave(&ec->cmd_q_lock, flags); in olpc_ec_worker()
85 if (!list_empty(&ec->cmd_q)) { in olpc_ec_worker()
[all …]
/linux/drivers/mfd/
H A Dcros_ec_dev.c20 #define DRV_NAME "cros-ec-dev"
74 { .name = "cros-ec-cec", },
78 { .name = "cros-ec-gpio", },
82 { .name = "cros-ec-rtc", },
86 { .name = "cros-ec-sensorhub", },
99 { .name = "cros-ec-wdt", }
103 { .name = "cros-ec-led", },
157 { .name = "cros-ec-chardev", },
158 { .name = "cros-ec-debugfs", },
159 { .name = "cros-ec-hwmon", },
[all …]
H A Dntxec.c150 struct ntxec *ec; in ntxec_probe() local
156 ec = devm_kmalloc(&client->dev, sizeof(*ec), GFP_KERNEL); in ntxec_probe()
157 if (!ec) in ntxec_probe()
160 ec->dev = &client->dev; in ntxec_probe()
162 ec->regmap = devm_regmap_init_i2c(client, &regmap_config); in ntxec_probe()
163 if (IS_ERR(ec->regmap)) { in ntxec_probe()
164 dev_err(ec->dev, "Failed to set up regmap for device\n"); in ntxec_probe()
165 return PTR_ERR(ec->regmap); in ntxec_probe()
169 res = regmap_read(ec->regmap, NTXEC_REG_VERSION, &version); in ntxec_probe()
171 dev_err(ec->dev, "Failed to read firmware version number\n"); in ntxec_probe()
[all …]
/linux/drivers/platform/chrome/
H A Dcros_ec_sensorhub.c20 #define DRV_NAME "cros-ec-sensorhub"
56 struct cros_ec_dev *ec = sensorhub->ec; in cros_ec_sensorhub_register() local
71 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in cros_ec_sensorhub_register()
73 /* The EC is still busy initializing sensors. */ in cros_ec_sensorhub_register()
80 dev_err(dev, "no info for EC sensor %d : %d/%d\n", in cros_ec_sensorhub_register()
91 name = "cros-ec-accel"; in cros_ec_sensorhub_register()
94 name = "cros-ec-baro"; in cros_ec_sensorhub_register()
97 name = "cros-ec-gyro"; in cros_ec_sensorhub_register()
100 name = "cros-ec-mag"; in cros_ec_sensorhub_register()
103 name = "cros-ec-prox"; in cros_ec_sensorhub_register()
[all …]
H A Dcros_ec_debugfs.c2 // Debug logs for the ChromeOS EC
20 #define DRV_NAME "cros-ec-debugfs"
30 MODULE_PARM_DESC(log_poll_period_ms, "EC log polling period(ms)");
36 * struct cros_ec_debugfs - EC debugging information.
38 * @ec: EC device this debugfs information belongs to
41 * @read_msg: preallocated EC command and buffer to read console log
43 * @log_poll_work: recurring task to poll EC for new console log data
46 * when EC panic
49 struct cros_ec_dev *ec; member
51 /* EC log */
[all …]
H A Dcros_ec_proto.c2 // ChromeOS EC communication protocol helper functions
117 int (*xfer_fxn)(struct cros_ec_device *ec, struct cros_ec_command *msg); in cros_ec_xfer_command()
127 * the EC is trying to use protocol v2, on an underlying in cros_ec_xfer_command()
130 dev_err_once(ec_dev->dev, "missing EC transfer API, cannot send command\n"); in cros_ec_xfer_command()
154 /* Query the EC's status until it's no longer busy or we encounter an error. */ in cros_ec_wait_until_complete()
198 * This is used by all ChromeOS EC drivers to prepare the outgoing message
215 * @ec_dev: EC device.
218 * This is used by ChromeOS EC drivers to check the ec_msg->result for
249 * @ec_dev: EC device to call
322 * is not supported or EC is already in RW, so there is in cros_ec_rwsig_continue()
[all …]
H A Dcros_ec_lightbar.c21 #define DRV_NAME "cros-ec-lightbar"
98 static struct cros_ec_command *alloc_lightbar_cmd_msg(struct cros_ec_dev *ec) in alloc_lightbar_cmd_msg() argument
100 int len = max(ec->ec_dev->max_response, ec->ec_dev->max_request); in alloc_lightbar_cmd_msg()
108 msg->command = EC_CMD_LIGHTBAR_CMD + ec->cmd_offset; in alloc_lightbar_cmd_msg()
120 static int get_lightbar_version(struct cros_ec_dev *ec, in get_lightbar_version() argument
128 msg = alloc_lightbar_cmd_msg(ec); in get_lightbar_version()
136 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in get_lightbar_version()
175 struct cros_ec_dev *ec = to_cros_ec_dev(dev); in version_show() local
183 if (!get_lightbar_version(ec, &version, &flags)) in version_show()
195 struct cros_ec_dev *ec = to_cros_ec_dev(dev); in num_segments_show() local
[all …]
H A Dcros_ec_sysfs.c2 // Expose the ChromeOS EC through sysfs
21 #define DRV_NAME "cros-ec-sysfs"
59 struct cros_ec_dev *ec = to_cros_ec_dev(dev); in reboot_store() local
99 msg->command = EC_CMD_REBOOT_EC + ec->cmd_offset; in reboot_store()
102 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in reboot_store()
120 struct cros_ec_dev *ec = to_cros_ec_dev(dev); in version_show() local
128 msg->command = EC_CMD_GET_VERSION + ec->cmd_offset; in version_show()
131 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in version_show()
147 msg->command = EC_CMD_GET_BUILD_INFO + ec->cmd_offset; in version_show()
149 ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg); in version_show()
[all …]
/linux/include/linux/platform_data/
H A Dwilco-ec.h15 #define WILCO_EC_FLAG_NO_RESPONSE BIT(0) /* EC does not respond */
31 * @data_buffer: Buffer used for EC communication. The same buffer
33 * @data_size: Size of the data buffer used for EC communication.
75 * @result: Result code from the EC. Non-zero indicates an error.
91 * @WILCO_EC_MSG_LEGACY: Legacy EC messages for standard EC behavior.
92 * @WILCO_EC_MSG_PROPERTY: Get/Set/Sync EC controlled NVRAM property.
93 * @WILCO_EC_MSG_TELEMETRY: Request telemetry data from the EC.
105 * @request_size: Number of bytes to send to the EC.
107 * @response_size: Number of bytes to read from EC.
121 * wilco_ec_mailbox() - Send request to the EC and receive the response.
[all …]
H A Dcros_ec_proto.h29 * The EC is unresponsive for a time after a reboot command. Add a
56 * EC panic is not covered by the standard (0-F) ACPI notify values.
57 * Arbitrarily choosing B0 to notify ec panic, which is in the 84-BF
63 * Command interface between EC and AP, for LPC, I2C and SPI interfaces.
80 * struct cros_ec_command - Information about a ChromeOS EC command.
84 * @insize: Max number of bytes to accept from the EC.
85 * @result: EC's response to the command (separate from communication failure).
86 * @data: Where to put the incoming data from EC and outgoing data to EC.
98 * struct cros_ec_device - Information about a ChromeOS EC device.
102 * @cmd_readmem: Direct read of the EC memory-mapped region, if supported.
[all …]
/linux/Documentation/ABI/testing/
H A Ddebugfs-cros-ec1 What: /sys/kernel/debug/<cros-ec-device>/console_log
5 If the EC supports the CONSOLE_READ command type, this file
6 can be used to grab the EC logs. The kernel polls for the log
10 What: /sys/kernel/debug/<cros-ec-device>/panicinfo
14 This file dumps the EC panic information from the previous
16 type is supported by the EC.
18 What: /sys/kernel/debug/<cros-ec-device>/pdinfo
27 What: /sys/kernel/debug/<cros-ec-device>/uptime
31 A u32 providing the time since EC booted in ms. This is
32 is used for synchronizing the AP host time with the EC
[all …]
/linux/drivers/ata/
H A Dpata_icside.c64 struct expansion_card *ec; member
83 /* Prototype: pata_icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
86 static void pata_icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr) in pata_icside_irqenable_arcin_v5() argument
88 struct pata_icside_state *state = ec->irq_data; in pata_icside_irqenable_arcin_v5()
93 /* Prototype: pata_icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
96 static void pata_icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr) in pata_icside_irqdisable_arcin_v5() argument
98 struct pata_icside_state *state = ec->irq_data; in pata_icside_irqdisable_arcin_v5()
110 /* Prototype: pata_icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
113 static void pata_icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr) in pata_icside_irqenable_arcin_v6() argument
115 struct pata_icside_state *state = ec->irq_data; in pata_icside_irqenable_arcin_v6()
[all …]
/linux/drivers/scsi/arm/
H A Dpowertec.c62 struct expansion_card *ec; member
68 /* Prototype: void powertecscsi_irqenable(ec, irqnr)
70 * Params : ec - expansion card structure
74 powertecscsi_irqenable(struct expansion_card *ec, int irqnr) in powertecscsi_irqenable() argument
76 struct powertec_info *info = ec->irq_data; in powertecscsi_irqenable()
80 /* Prototype: void powertecscsi_irqdisable(ec, irqnr)
82 * Params : ec - expansion card structure
86 powertecscsi_irqdisable(struct expansion_card *ec, int irqnr) in powertecscsi_irqdisable() argument
88 struct powertec_info *info = ec->irq_data; in powertecscsi_irqdisable()
193 host->hostt->name, info->info.scsi.type, info->ec->slot_no, in powertecscsi_info()
[all …]
H A Deesox.c74 struct expansion_card *ec; member
81 /* Prototype: void eesoxscsi_irqenable(ec, irqnr)
83 * Params : ec - expansion card structure
87 eesoxscsi_irqenable(struct expansion_card *ec, int irqnr) in eesoxscsi_irqenable() argument
89 struct eesoxscsi_info *info = (struct eesoxscsi_info *)ec->irq_data; in eesoxscsi_irqenable()
96 /* Prototype: void eesoxscsi_irqdisable(ec, irqnr)
98 * Params : ec - expansion card structure
102 eesoxscsi_irqdisable(struct expansion_card *ec, int irqnr) in eesoxscsi_irqdisable() argument
104 struct eesoxscsi_info *info = (struct eesoxscsi_info *)ec->irq_data; in eesoxscsi_irqdisable()
390 host->hostt->name, info->info.scsi.type, info->ec->slot_no, in eesoxscsi_info()
[all …]
/linux/drivers/iio/proximity/
H A Dcros_ec_mkbp_proximity.c3 * Driver for cros-ec proximity sensor exposed through MKBP switch
26 struct cros_ec_device *ec; member
97 struct cros_ec_device *ec = data->ec; in cros_ec_mkbp_proximity_push_event() local
102 timestamp = ktime_to_ns(ec->last_event_time); in cros_ec_mkbp_proximity_push_event()
121 struct cros_ec_device *ec = _ec; in cros_ec_mkbp_proximity_notify() local
122 u8 event_type = ec->event_data.event_type & EC_MKBP_EVENT_TYPE_MASK; in cros_ec_mkbp_proximity_notify()
130 switches = &ec->event_data.data.switches; in cros_ec_mkbp_proximity_notify()
143 struct cros_ec_device *ec = data->ec; in cros_ec_mkbp_proximity_read_raw() local
146 return cros_ec_mkbp_proximity_query(ec, val); in cros_ec_mkbp_proximity_read_raw()
184 struct cros_ec_device *ec = data->ec; in cros_ec_mkbp_proximity_resume() local
[all …]
/linux/arch/x86/platform/olpc/
H A Dolpc.c3 * Support for the OLPC DCON and OLPC EC access
19 #include <linux/olpc-ec.h>
32 /* the timeout that bugs in the EC might force us to actually use */
39 printk(KERN_ERR "olpc-ec: invalid argument to " in olpc_ec_timeout_set()
42 printk(KERN_DEBUG "olpc-ec: using %d ms delay for EC commands.\n", in olpc_ec_timeout_set()
75 printk(KERN_WARNING "olpc-ec: %d: waited %u ms for IBF!\n", in __wait_on_ibf()
95 printk(KERN_WARNING "olpc-ec: %d: waited %u ms for OBF!\n", in __wait_on_obf()
103 * This allows the kernel to run Embedded Controller commands. The EC is
105 * available EC commands are here:
107 * OpenFirmware's source is available, the EC's is not.
[all …]
/linux/drivers/platform/arm64/
H A Dqcom-hamoa-ec.c86 static int qcom_ec_read(struct qcom_ec *ec, u8 cmd, u8 resp_len, u8 *resp) in qcom_ec_read() argument
90 ret = i2c_smbus_read_i2c_block_data(ec->client, cmd, resp_len, resp); in qcom_ec_read()
105 * EC Device Firmware Version:
114 * | 0x01 | Test-version | Test-version of EC firmware |
116 * | 0x02 | Sub-version | Sub-version of EC firmware |
118 * | 0x03 | Main-version | Main-version of EC firmware |
125 struct qcom_ec *ec = i2c_get_clientdata(client); in qcom_ec_read_fw_version() local
126 struct qcom_ec_version *version = &ec->version; in qcom_ec_read_fw_version()
130 ret = qcom_ec_read(ec, EC_FW_VERSION_CMD, EC_FW_VERSION_RESP_LEN, resp); in qcom_ec_read_fw_version()
138 dev_dbg(dev, "EC Version %d.%d.%d\n", in qcom_ec_read_fw_version()
[all …]
/linux/drivers/i2c/busses/
H A Di2c-cros-ec-tunnel.c2 // Expose an I2C passthrough to the ChromeOS EC.
21 * @ec: Pointer to EC device
22 * @remote_bus: The EC bus number we tunnel to on the other side.
30 struct cros_ec_device *ec; member
61 * ec_i2c_construct_message - construct a message to go to the EC
64 * a format that the EC understands.
129 * ec_i2c_parse_response - Parse a response from the EC
131 * We'll take the EC's response and copy it back into msgs.
206 dev_err(dev, "Error constructing EC i2c message %d\n", result); in ec_i2c_xfer()
215 result = cros_ec_cmd_xfer_status(bus->ec, msg); in ec_i2c_xfer()
[all …]
/linux/drivers/power/supply/
H A Dlenovo_yoga_c630_battery.c20 struct yoga_c630_ec *ec; member
73 struct yoga_c630_ec *ec = ecbat->ec; in yoga_c630_psy_update_bat_info() local
78 val = yoga_c630_ec_read8(ec, LENOVO_EC_BAT_PRESENT); in yoga_c630_psy_update_bat_info()
85 val = yoga_c630_ec_read8(ec, LENOVO_EC_BAT_ATTRIBUTES); in yoga_c630_psy_update_bat_info()
90 val = yoga_c630_ec_read16(ec, LENOVO_EC_BAT_DESIGN_CAPACITY); in yoga_c630_psy_update_bat_info()
96 * DSDT has delays after most of EC reads in these methods. in yoga_c630_psy_update_bat_info()
97 * Having no documentation for the EC we have to follow and sleep here. in yoga_c630_psy_update_bat_info()
101 val = yoga_c630_ec_read16(ec, LENOVO_EC_BAT_DESIGN_VOLTAGE); in yoga_c630_psy_update_bat_info()
108 val = yoga_c630_ec_read8(ec, LENOVO_EC_BAT_FULL_REGISTER); in yoga_c630_psy_update_bat_info()
111 val = yoga_c630_ec_read16(ec, in yoga_c630_psy_update_bat_info()
[all …]

12345678910>>...17