Home
last modified time | relevance | path

Searched full:ucsi (Results 1 – 25 of 33) sorted by relevance

12

/linux/drivers/usb/typec/ucsi/
H A Ducsi_glink.c15 #include "ucsi.h"
70 struct ucsi *ucsi; member
84 static int pmic_glink_ucsi_read(struct ucsi *__ucsi, unsigned int offset, in pmic_glink_ucsi_read()
87 struct pmic_glink_ucsi *ucsi = ucsi_get_drvdata(__ucsi); in pmic_glink_ucsi_read() local
96 mutex_lock(&ucsi->lock); in pmic_glink_ucsi_read()
97 memset(ucsi->read_buf, 0, sizeof(ucsi->read_buf)); in pmic_glink_ucsi_read()
98 reinit_completion(&ucsi->read_ack); in pmic_glink_ucsi_read()
100 ret = pmic_glink_send(ucsi->client, &req, sizeof(req)); in pmic_glink_ucsi_read()
102 dev_err(ucsi->dev, "failed to send UCSI read request: %d\n", ret); in pmic_glink_ucsi_read()
106 left = wait_for_completion_timeout(&ucsi->read_ack, 5 * HZ); in pmic_glink_ucsi_read()
[all …]
H A Ddebugfs.c3 * UCSI debugfs interface
18 #include "ucsi.h"
24 struct ucsi *ucsi = data; in ucsi_cmd() local
27 memset(&ucsi->debugfs->response, 0, sizeof(ucsi->debugfs->response)); in ucsi_cmd()
28 ucsi->debugfs->status = 0; in ucsi_cmd()
40 ret = ucsi_send_command(ucsi, val, NULL, 0); in ucsi_cmd()
55 ret = ucsi_send_command(ucsi, val, in ucsi_cmd()
56 &ucsi->debugfs->response, in ucsi_cmd()
57 sizeof(ucsi->debugfs->response)); in ucsi_cmd()
64 ucsi->debugfs->status = ret; in ucsi_cmd()
[all …]
H A Ducsi.c17 #include "ucsi.h"
23 * Ideally we could use MIN_TIME_TO_RESPOND_WITH_BUSY (which is defined in UCSI
39 void ucsi_notify_common(struct ucsi *ucsi, u32 cci) in ucsi_notify_common() argument
46 ucsi_connector_change(ucsi, UCSI_CCI_CONNECTOR(cci)); in ucsi_notify_common()
49 test_and_clear_bit(ACK_PENDING, &ucsi->flags)) in ucsi_notify_common()
50 complete(&ucsi->complete); in ucsi_notify_common()
53 test_and_clear_bit(COMMAND_PENDING, &ucsi->flags)) in ucsi_notify_common()
54 complete(&ucsi->complete); in ucsi_notify_common()
58 int ucsi_sync_control_common(struct ucsi *ucsi, u64 command, u32 *cci, in ucsi_sync_control_common() argument
65 set_bit(ACK_PENDING, &ucsi->flags); in ucsi_sync_control_common()
[all …]
H A Ducsi_acpi.c3 * UCSI ACPI driver
14 #include "ucsi.h"
22 struct ucsi *ucsi; member
45 static int ucsi_acpi_read_version(struct ucsi *ucsi, u16 *version) in ucsi_acpi_read_version() argument
47 struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); in ucsi_acpi_read_version()
59 static int ucsi_acpi_read_cci(struct ucsi *ucsi, u32 *cci) in ucsi_acpi_read_cci() argument
61 struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); in ucsi_acpi_read_cci()
68 static int ucsi_acpi_poll_cci(struct ucsi *ucsi, u32 *cci) in ucsi_acpi_poll_cci() argument
70 struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); in ucsi_acpi_poll_cci()
77 return ucsi_acpi_read_cci(ucsi, cci); in ucsi_acpi_poll_cci()
[all …]
H A Dcros_ec_ucsi.c3 * UCSI driver for ChromeOS EC
20 #include "ucsi.h"
23 * Maximum size in bytes of a UCSI message between AP and EC
38 struct ucsi *ucsi; member
50 static int cros_ucsi_read(struct ucsi *ucsi, unsigned int offset, void *val, in cros_ucsi_read() argument
53 struct cros_ucsi_data *udata = ucsi_get_drvdata(ucsi); in cros_ucsi_read()
74 static int cros_ucsi_read_version(struct ucsi *ucsi, u16 *version) in cros_ucsi_read_version() argument
76 return cros_ucsi_read(ucsi, UCSI_VERSION, version, sizeof(*version)); in cros_ucsi_read_version()
79 static int cros_ucsi_read_cci(struct ucsi *ucsi, u32 *cci) in cros_ucsi_read_cci() argument
81 return cros_ucsi_read(ucsi, UCSI_CCI, cci, sizeof(*cci)); in cros_ucsi_read_cci()
[all …]
H A DKconfig9 USB Type-C Connector System Software Interface (UCSI) is a
11 control the USB Type-C ports. On UCSI system the USB Type-C ports
14 is required. UCSI is available on most of the new Intel based systems
17 UCSI specification does not define the interface method, so depending
22 The UCSI specification can be downloaded from:
23 https://www.intel.com/content/www/us/en/io/universal-serial-bus/usb-type-c-ucsi-spec.html
31 tristate "UCSI Interface Driver for Cypress CCGx"
34 This driver enables UCSI support on platforms that expose a
41 tristate "UCSI ACPI Interface Driver"
44 This driver enables UCSI support on platforms that expose UCSI
[all …]
H A Ducsi_yoga_c630.c23 #include "ucsi.h"
35 struct ucsi *ucsi; member
41 static int yoga_c630_ucsi_read_version(struct ucsi *ucsi, u16 *version) in yoga_c630_ucsi_read_version() argument
43 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_read_version()
50 static int yoga_c630_ucsi_read_cci(struct ucsi *ucsi, u32 *cci) in yoga_c630_ucsi_read_cci() argument
52 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_read_cci()
65 static int yoga_c630_ucsi_read_message_in(struct ucsi *ucsi, in yoga_c630_ucsi_read_message_in() argument
68 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_read_message_in()
82 static int yoga_c630_ucsi_async_control(struct ucsi *ucsi, u64 command) in yoga_c630_ucsi_async_control() argument
84 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_async_control()
[all …]
H A Ducsi_huawei_gaokun.c3 * ucsi-huawei-gaokun - A UCSI driver for HUAWEI Matebook E Go
23 #include "ucsi.h"
82 struct gaokun_ucsi *ucsi; member
96 struct ucsi *ucsi; member
106 /* For UCSI */
108 static int gaokun_ucsi_read_version(struct ucsi *ucsi, u16 *version) in gaokun_ucsi_read_version() argument
110 struct gaokun_ucsi *uec = ucsi_get_drvdata(ucsi); in gaokun_ucsi_read_version()
117 static int gaokun_ucsi_read_cci(struct ucsi *ucsi, u32 *cci) in gaokun_ucsi_read_cci() argument
119 struct gaokun_ucsi *uec = ucsi_get_drvdata(ucsi); in gaokun_ucsi_read_cci()
132 static int gaokun_ucsi_read_message_in(struct ucsi *ucsi, in gaokun_ucsi_read_message_in() argument
[all …]
H A Ducsi.h19 struct ucsi;
24 /* UCSI offsets (Bytes) */
32 /* UCSI versions */
63 * struct ucsi_operations - UCSI I/O operations
64 * @read_version: Read implemented UCSI version
67 * @read_message_in: Read message data from UCSI
74 * Read and write routines for UCSI interface. @sync_write must wait for the
79 int (*read_version)(struct ucsi *ucsi, u16 *version);
80 int (*read_cci)(struct ucsi *ucsi, u32 *cci);
81 int (*poll_cci)(struct ucsi *ucsi, u32 *cci);
[all …]
H A Ducsi_ccg.c3 * UCSI driver for Cypress CCGx Type-C controller
8 * Some code borrowed from drivers/usb/typec/ucsi/ucsi_acpi.c
22 #include "ucsi.h"
128 /* Firmware for Tegra doesn't support UCSI ALT command, built
203 struct ucsi *ucsi; member
365 * Flush CCGx RESPONSE queue by acking interrupts. Above ucsi control in ucsi_ccg_init()
396 static bool ucsi_ccg_update_altmodes(struct ucsi *ucsi, in ucsi_ccg_update_altmodes() argument
401 struct ucsi_ccg *uc = ucsi_get_drvdata(ucsi); in ucsi_ccg_update_altmodes()
563 static int ucsi_ccg_read_version(struct ucsi *ucsi, u16 *version) in ucsi_ccg_read_version() argument
565 struct ucsi_ccg *uc = ucsi_get_drvdata(ucsi); in ucsi_ccg_read_version()
[all …]
H A Ddisplayport.c3 * UCSI DisplayPort Alternate Mode Support
12 #include "ucsi.h"
34 * Note. Alternate mode control is optional feature in UCSI. It means that even
39 * them. That is because UCSI defines alt mode details and alt mode "overriding"
51 struct ucsi *ucsi = dp->con->ucsi; in ucsi_displayport_enter() local
70 ret = ucsi_send_command(ucsi, command, &cur, sizeof(cur)); in ucsi_displayport_enter()
72 if (ucsi->version > 0x0100) in ucsi_displayport_enter()
129 ret = ucsi_send_command(dp->con->ucsi, command, NULL, 0); in ucsi_displayport_exit()
196 return ucsi_send_command(dp->con->ucsi, command, NULL, 0); in ucsi_displayport_configure()
H A Dpsy.c3 * Power Supply for UCSI
13 #include "ucsi.h"
39 struct device *dev = con->ucsi->dev; in ucsi_psy_get_scope()
46 if (con->ucsi->cap.attributes & mask) in ucsi_psy_get_scope()
63 if (con->ucsi->version >= UCSI_VERSION_2_0) in ucsi_psy_get_status()
194 /* UCSI can't tell b/w DCP/CDP or USB2/3x1/3x2 SDP chargers */ in ucsi_psy_get_current_max()
287 struct device *dev = con->ucsi->dev; in ucsi_register_port_psy()
293 psy_name = devm_kasprintf(dev, GFP_KERNEL, "ucsi-source-psy-%s%d", in ucsi_register_port_psy()
H A DMakefile6 typec_ucsi-y := ucsi.o
H A Dtrace.c3 #include "ucsi.h"
H A Dtrace.h4 #define TRACE_SYSTEM ucsi
/linux/drivers/i2c/busses/
H A Di2c-ccgx-ucsi.c3 * Instantiate UCSI device for Cypress CCGx Type-C controller.
12 #include "i2c-ccgx-ucsi.h"
21 strscpy(info.type, "ccgx-ucsi", sizeof(info.type)); in i2c_new_ccgx_ucsi()
30 MODULE_DESCRIPTION("Instantiate UCSI device for Cypress CCGx Type-C controller");
H A Di2c-nvidia-gpu.c21 #include "i2c-ccgx-ucsi.h"
244 * Currently there is no class code defined for UCSI device over PCI
245 * so using UNKNOWN class for now and it will be updated when UCSI
249 * (initiated from UCSI i2c_client) will timeout or UCSI commands will
314 status = dev_err_probe(dev, PTR_ERR(i2cd->ccgx_client), "register UCSI failed\n"); in gpu_i2c_probe()
H A Di2c-designware-pcidrv.c28 #include "i2c-ccgx-ucsi.h"
284 "register UCSI failed\n"); in i2c_dw_pci_probe()
/linux/drivers/platform/arm64/
H A Dhuawei-gaokun-ec.c375 /* API for UCSI */
378 * gaokun_ec_ucsi_read - Read UCSI data from EC
382 * Read CCI and MSGI (used by UCSI subdriver).
403 * gaokun_ec_ucsi_write - Write UCSI data to EC
407 * Write CTRL and MSGO (used by UCSI subdriver).
423 * gaokun_ec_ucsi_get_reg - Get UCSI register from EC
425 * @ureg: The gaokun ucsi register
427 * Get UCSI register data (used by UCSI subdriver).
452 * Ack pin assignment notifications (used by UCSI subdriver).
/linux/drivers/usb/typec/
H A DMakefile7 obj-$(CONFIG_TYPEC_UCSI) += ucsi/
H A DKconfig51 source "drivers/usb/typec/ucsi/Kconfig"
/linux/include/linux/platform_data/
H A Dlenovo-yoga-c630.h17 #define YOGA_C630_DEV_UCSI "ucsi"
/linux/Documentation/devicetree/bindings/usb/
H A Dst,typec-stm32g0.yaml11 typically using the UCSI protocol over I2C, with a dedicated alert
/linux/Documentation/driver-api/usb/
H A Dtypec.rst16 driver, but it may be a driver for firmware interface such as UCSI, driver for
/linux/drivers/soc/qcom/
H A Dpmic_glink.c326 ret = pmic_glink_add_aux_device(pg, &pg->ucsi_aux, "ucsi"); in pmic_glink_probe()

12