/linux/Documentation/devicetree/bindings/extcon/ |
H A D | extcon-usbc-cros-ec.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/extcon/extcon-usbc-cros-ec.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ChromeOS EC USB Type-C cable and accessories detection 10 - Benson Leung <bleung@chromium.org> 16 The node for this device must be under a cros-ec node like google,cros-ec-spi 17 or google,cros-ec-i2c. 21 const: google,extcon-usbc-cros-ec 23 google,usb-port-id: [all …]
|
/linux/drivers/platform/chrome/ |
H A D | cros_ec_sensorhub.c | 1 // SPDX-License-Identifier: GPL-2.0 21 #define DRV_NAME "cros-ec-sensorhub" 56 struct cros_ec_command *msg = sensorhub->msg; in cros_ec_sensorhub_register() 57 struct cros_ec_dev *ec = sensorhub->ec; in cros_ec_sensorhub_register() local 62 msg->version = 1; in cros_ec_sensorhub_register() 63 msg->insize = sizeof(struct ec_response_motion_sense); in cros_ec_sensorhub_register() 64 msg->outsize = sizeof(struct ec_params_motion_sense); in cros_ec_sensorhub_register() 66 for (i = 0; i < sensorhub->sensor_num; i++) { in cros_ec_sensorhub_register() 67 sensorhub->params->cmd = MOTIONSENSE_CMD_INFO; in cros_ec_sensorhub_register() 68 sensorhub->params->info.sensor_num = i; in cros_ec_sensorhub_register() [all …]
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 3 # tell define_trace.h where to find the cros ec trace header 4 CFLAGS_cros_ec_trace.o:= -I$(src) 5 CFLAGS_cros_ec_sensorhub_ring.o:= -I$(src) 7 obj-$(CONFIG_CHROMEOS_ACPI) += chromeos_acpi.o 8 obj-$(CONFIG_CHROMEOS_LAPTOP) += chromeos_laptop.o 9 obj-$(CONFIG_CHROMEOS_OF_HW_PROBER) += chromeos_of_hw_prober.o 10 obj-$(CONFIG_CHROMEOS_PRIVACY_SCREEN) += chromeos_privacy_screen.o 11 obj-$(CONFIG_CHROMEOS_PSTORE) += chromeos_pstore.o 12 obj-$(CONFIG_CHROMEOS_TBMC) += chromeos_tbmc.o [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | debugfs-cros-ec | 1 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 23 information for all the USB PD/type-C ports available. If 27 What: /sys/kernel/debug/<cros-ec-device>/uptime 31 A u32 providing the time since EC booted in ms. This is [all …]
|
/linux/Documentation/devicetree/bindings/chrome/ |
H A D | google,cros-ec-typec.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/chrome/google,cros-ec-typec.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Google Chrome OS EC(Embedded Controller) Type C port driver. 10 - Benson Leung <bleung@chromium.org> 11 - Prashant Malani <pmalani@chromium.org> 14 Chrome OS devices have an Embedded Controller(EC) which has access to 17 cros-ec node like google,cros-ec-spi. 21 const: google,cros-ec-typec [all …]
|
/linux/Documentation/devicetree/bindings/display/bridge/ |
H A D | google,cros-ec-anx7688.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/display/bridge/google,cros-ec-anx7688.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ChromeOS EC ANX7688 HDMI to DP Converter through Type-C Port 10 - Nicolas Boichat <drinkcat@chromium.org> 13 ChromeOS EC ANX7688 is a display bridge that converts HDMI 2.0 to 14 DisplayPort 1.3 Ultra-HDi (4096x2160p60). It is an Analogix ANX7688 chip 16 (See google,cros-ec.yaml). It is accessed using I2C tunneling through 17 the EC and therefore its node should be a child of an EC I2C tunnel node [all …]
|
/linux/arch/arm64/boot/dts/qcom/ |
H A D | sc7280-idp-ec-h1.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 3 * sc7280 EC/H1 over SPI (common between IDP2 and CRD) 11 pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs_gpio_init_high>, <&qup_spi10_cs_gpio>; 12 cs-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; 14 cros_ec: ec@0 { 15 compatible = "google,cros-ec-spi"; 17 interrupt-parent = <&tlmm>; 19 pinctrl-names = "default"; 20 pinctrl-0 = <&ap_ec_int_l>; 21 spi-max-frequency = <3000000>; [all …]
|
/linux/Documentation/devicetree/bindings/input/ |
H A D | google,cros-ec-keyb.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $id: http://devicetree.org/schemas/input/google,cros-ec-keyb.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: ChromeOS EC Keyboard 11 - Simon Glass <sjg@chromium.org> 12 - Benson Leung <bleung@chromium.org> 15 Google's ChromeOS EC Keyboard is a simple matrix keyboard 16 implemented on a separate EC (Embedded Controller) device. It provides 17 a message for reading key scans from the EC. These are then converted [all …]
|
/linux/Documentation/devicetree/bindings/regulator/ |
H A D | google,cros-ec-regulator.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/regulator/google,cros-ec-regulator.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ChromeOS EC controlled voltage regulators 10 - Pi-Hsun Shih <pihsun@chromium.org> 17 - $ref: regulator.yaml# 21 const: google,cros-ec-regulator 25 description: Identifier for the voltage regulator to ChromeOS EC. 28 - compatible [all …]
|
/linux/Documentation/devicetree/bindings/iio/proximity/ |
H A D | google,cros-ec-mkbp-proximity.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: ChromeOS EC MKBP Proximity Sensor 10 - Stephen Boyd <swboyd@chromium.org> 11 - Benson Leung <bleung@chromium.org> 14 Google's ChromeOS EC sometimes has the ability to detect user proximity. 15 This is implemented on the EC as near/far logic and exposed to the OS 20 const: google,cros-ec-mkbp-proximity [all …]
|
/linux/arch/arm/boot/dts/ |
H A D | cros-ec-keyboard.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Keyboard dts fragment for devices that use cros-ec-keyboard 8 #include <dt-bindings/input/input.h> 9 #include <dt-bindings/input/cros-ec-keyboard.h> 12 keyboard_controller: keyboard-controller { 13 compatible = "google,cros-ec-keyb"; 14 keypad,num-rows = <8>; 15 keypad,num-columns = <13>; 16 google,needs-ghost-filter;
|
/linux/drivers/iio/common/cros_ec_sensors/ |
H A D | cros_ec_sensors.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * cros_ec_sensors - Driver for Chrome OS Embedded Controller sensors. 7 * This driver uses the cros-ec interface to communicate with the Chrome OS 8 * EC about sensors data. Data access is presented through iio sysfs. 45 int idx = chan->scan_index; in cros_ec_sensors_read() 47 mutex_lock(&st->core.cmd_lock); in cros_ec_sensors_read() 51 ret = st->core.read_ec_sensors_data(indio_dev, 1 << idx, &data); in cros_ec_sensors_read() 58 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_OFFSET; in cros_ec_sensors_read() 59 st->core.param.sensor_offset.flags = 0; in cros_ec_sensors_read() 61 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_read() [all …]
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # Makefile for sensors seen through the ChromeOS EC sensor hub. 6 cros-ec-sensors-core-objs += cros_ec_sensors_core.o cros_ec_sensors_trace.o 7 obj-$(CONFIG_IIO_CROS_EC_SENSORS_CORE) += cros-ec-sensors-core.o 8 obj-$(CONFIG_IIO_CROS_EC_SENSORS) += cros_ec_sensors.o 9 obj-$(CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE) += cros_ec_lid_angle.o 10 obj-$(CONFIG_IIO_CROS_EC_ACTIVITY) += cros_ec_activity.o
|
H A D | cros_ec_lid_angle.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * cros_ec_lid_angle - Driver for CrOS EC lid angle sensor. 8 * This driver uses the cros-ec interface to communicate with the Chrome OS 9 * EC about counter sensors. Counters are presented through 29 #define DRV_NAME "cros-ec-lid-angle" 57 st->param.cmd = MOTIONSENSE_CMD_LID_ANGLE; in cros_ec_sensors_read_lid_angle() 58 ret = cros_ec_motion_send_host_cmd(st, sizeof(st->resp->lid_angle)); in cros_ec_sensors_read_lid_angle() 60 dev_warn(&indio_dev->dev, "Unable to read lid angle\n"); in cros_ec_sensors_read_lid_angle() 64 *data = st->resp->lid_angle.value; in cros_ec_sensors_read_lid_angle() 76 mutex_lock(&st->core.cmd_lock); in cros_ec_lid_angle_read() [all …]
|
H A D | cros_ec_activity.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * cros_ec_activity - Driver for activities/gesture recognition. 7 * This driver uses the cros-ec interface to communicate with the ChromeOS 8 * EC about activity data. 27 #define DRV_NAME "cros-ec-activity" 64 if (chan->type != IIO_PROXIMITY || mask != IIO_CHAN_INFO_RAW) in cros_ec_activity_sensors_read_raw() 65 return -EINVAL; in cros_ec_activity_sensors_read_raw() 67 guard(mutex)(&st->core.cmd_lock); in cros_ec_activity_sensors_read_raw() 68 st->core.param.cmd = MOTIONSENSE_CMD_GET_ACTIVITY; in cros_ec_activity_sensors_read_raw() 69 st->core.param.get_activity.activity = in cros_ec_activity_sensors_read_raw() [all …]
|
/linux/drivers/i2c/busses/ |
H A D | i2c-cros-ec-tunnel.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Expose an I2C passthrough to the ChromeOS EC. 17 * struct ec_i2c_device - Driver data for I2C tunnel 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 39 * ec_i2c_count_message - Count bytes needed for ec_i2c_construct_message 61 * ec_i2c_construct_message - construct a message to go to the EC 64 * a format that the EC understands. 84 params->port = bus_num; in ec_i2c_construct_message() [all …]
|
/linux/drivers/iio/proximity/ |
H A D | cros_ec_mkbp_proximity.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Driver for cros-ec proximity sensor exposed through MKBP switch 27 struct cros_ec_device *ec; member 64 struct ec_params_mkbp_info *params = (struct ec_params_mkbp_info *)buf->data; in cros_ec_mkbp_proximity_query() 66 u32 *switches = (u32 *)buf->data; in cros_ec_mkbp_proximity_query() 70 msg->command = EC_CMD_MKBP_INFO; in cros_ec_mkbp_proximity_query() 71 msg->version = 1; in cros_ec_mkbp_proximity_query() 72 msg->outsize = sizeof(*params); in cros_ec_mkbp_proximity_query() 73 msg->insize = insize; in cros_ec_mkbp_proximity_query() 75 params->info_type = EC_MKBP_INFO_CURRENT; in cros_ec_mkbp_proximity_query() [all …]
|
/linux/drivers/gpio/ |
H A D | gpio-cros-ec.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * This driver provides the ability to control GPIOs on the Chrome OS EC. 23 /* Prefix all names to avoid collisions with EC <-> AP nets */ 24 static const char cros_ec_gpio_prefix[] = "EC:"; 29 const char *name = gc->names[gpio] + strlen(cros_ec_gpio_prefix); in cros_ec_gpio_set() 46 const char *name = gc->names[gpio] + strlen(cros_ec_gpio_prefix); in cros_ec_gpio_get() 55 return -EINVAL; in cros_ec_gpio_get() 60 dev_err(gc->parent, "error getting gpio%d (%s) on EC: %d\n", gpio, name, ret); in cros_ec_gpio_get() 72 const char *name = gc->names[gpio] + strlen(cros_ec_gpio_prefix); in cros_ec_gpio_get_direction() 84 dev_err(gc->parent, "error getting direction of gpio%d (%s) on EC: %d\n", gpio, name, ret); in cros_ec_gpio_get_direction() [all …]
|
/linux/include/linux/iio/common/ |
H A D | cros_ec_sensors_core.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * ChromeOS EC sensor hub 24 /* EC returns sensor values using signed 16 bit registers */ 36 * struct cros_ec_sensors_core_state - state data for EC sensors IIO driver 37 * @ec: cros EC device structure 40 * @msg: cros EC command structure 54 * is always 8-byte aligned. 56 * @fifo_max_event_count: Size of the EC sensor FIFO 61 struct cros_ec_device *ec; member
|
/linux/arch/arm64/boot/dts/mediatek/ |
H A D | mt8192-asurada.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 6 /dts-v1/; 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/spmi/spmi.h> 25 stdout-path = "serial0:115200n8"; 33 backlight_lcd0: backlight-lcd0 { 34 compatible = "pwm-backlight"; 36 power-supply = <&ppvar_sys>; 37 enable-gpios = <&pio 152 0>; 38 brightness-levels = <0 1023>; [all …]
|
H A D | mt8186-corsola.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 5 /dts-v1/; 7 #include <dt-bindings/pinctrl/mt8186-pinfunc.h> 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/input.h> 10 #include <dt-bindings/input/gpio-keys.h> 11 #include <dt-bindings/regulator/mediatek,mt6397-regulator.h> 26 stdout-path = "serial0:115200n8"; 35 backlight_lcd0: backlight-lcd0 { 36 compatible = "pwm-backlight"; [all …]
|
/linux/arch/arm64/boot/dts/rockchip/ |
H A D | rk3399-gru.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 5 * Copyright 2016-2017 Google, Inc 8 #include <dt-bindings/input/input.h> 9 #include "rk3399-op1.dtsi" 18 stdout-path = "serial2:115200n8"; 27 * - Rails that only connect to the EC (or devices that the EC talks to) 29 * - Rails _are_ included if the rails go to the AP even if the AP 38 * - The EC controls the enable and the EC always enables a rail as 40 * - The rails are actually connected to each other by a jumper and 45 ppvar_sys: regulator-ppvar-sys { [all …]
|
/linux/drivers/iio/pressure/ |
H A D | cros_ec_baro.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * cros_ec_baro - Driver for barometer sensor behind CrosEC. 44 int idx = chan->scan_index; in cros_ec_baro_read() 46 mutex_lock(&st->core.cmd_lock); in cros_ec_baro_read() 59 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_RANGE; in cros_ec_baro_read() 60 st->core.param.sensor_range.data = EC_MOTION_SENSE_NO_VALUE; in cros_ec_baro_read() 62 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_baro_read() 66 *val = st->core.resp->sensor_range.ret; in cros_ec_baro_read() 68 /* scale * in_pressure_raw --> kPa */ in cros_ec_baro_read() 73 ret = cros_ec_sensors_core_read(&st->core, chan, val, val2, in cros_ec_baro_read() [all …]
|
/linux/drivers/power/supply/ |
H A D | cros_charge-control.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * ChromeOS EC driver for charge control 24 * Semantics of data *returned* from the EC API and Linux sysfs differ 26 * To match the expected sysfs API, data is never read back from the EC but 29 * Changes to the EC bypassing the driver will not be reflected in sysfs. 30 * Any change to "charge_behaviour" will synchronize the EC with the driver state. 70 lockdep_assert_held(&priv->lock); in cros_chctl_configure_ec() 74 switch (priv->current_behaviour) { in cros_chctl_configure_ec() 85 return -EINVAL; in cros_chctl_configure_ec() 88 if (priv->current_behaviour == POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO && in cros_chctl_configure_ec() [all …]
|
/linux/drivers/iio/light/ |
H A D | cros_ec_light_prox.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * cros_ec_light_prox - Driver for light and prox sensors behing CrosEC. 25 * We only represent one entry for light or proximity. EC is merging different 47 int idx = chan->scan_index; in cros_ec_light_prox_read() 49 mutex_lock(&st->core.cmd_lock); in cros_ec_light_prox_read() 53 if (chan->type == IIO_PROXIMITY) { in cros_ec_light_prox_read() 61 ret = -EINVAL; in cros_ec_light_prox_read() 65 if (chan->type == IIO_LIGHT) { in cros_ec_light_prox_read() 72 * pre-processed and represents the ambient light in cros_ec_light_prox_read() 78 ret = -EINVAL; in cros_ec_light_prox_read() [all …]
|