Home
last modified time | relevance | path

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

12

/linux/drivers/usb/typec/ucsi/
H A Ducsi_glink.c15 #include "ucsi.h"
64 struct ucsi *ucsi; member
78 static int pmic_glink_ucsi_read(struct ucsi *__ucsi, unsigned int offset, in pmic_glink_ucsi_read()
81 struct pmic_glink_ucsi *ucsi = ucsi_get_drvdata(__ucsi); in pmic_glink_ucsi_read() local
90 mutex_lock(&ucsi->lock); in pmic_glink_ucsi_read()
91 memset(ucsi->read_buf, 0, sizeof(ucsi->read_buf)); in pmic_glink_ucsi_read()
92 reinit_completion(&ucsi->read_ack); in pmic_glink_ucsi_read()
94 ret = pmic_glink_send(ucsi->client, &req, sizeof(req)); in pmic_glink_ucsi_read()
96 dev_err(ucsi->dev, "failed to send UCSI read request: %d\n", ret); in pmic_glink_ucsi_read()
100 left = wait_for_completion_timeout(&ucsi->read_ack, 5 * HZ); in pmic_glink_ucsi_read()
[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 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()
38 ret = ucsi_send_command(ucsi, val, NULL, 0); in ucsi_cmd()
53 ret = ucsi_send_command(ucsi, val, in ucsi_cmd()
54 &ucsi->debugfs->response, in ucsi_cmd()
55 sizeof(ucsi->debugfs->response)); in ucsi_cmd()
62 ucsi->debugfs->status = ret; in ucsi_cmd()
[all …]
H A Ducsi_stm32g0.c3 * UCSI driver for STMicroelectronics STM32G0 Type-C PD controller
17 #include "ucsi.h"
66 struct ucsi *ucsi; member
81 static int ucsi_stm32g0_bl_check_ack(struct ucsi *ucsi) in ucsi_stm32g0_bl_check_ack() argument
83 struct ucsi_stm32g0 *g0 = ucsi_get_drvdata(ucsi); in ucsi_stm32g0_bl_check_ack()
118 static int ucsi_stm32g0_bl_cmd_check_ack(struct ucsi *ucsi, unsigned int cmd, bool check_ack) in ucsi_stm32g0_bl_cmd_check_ack() argument
120 struct ucsi_stm32g0 *g0 = ucsi_get_drvdata(ucsi); in ucsi_stm32g0_bl_cmd_check_ack()
149 return ucsi_stm32g0_bl_check_ack(ucsi); in ucsi_stm32g0_bl_cmd_check_ack()
154 static int ucsi_stm32g0_bl_cmd(struct ucsi *ucsi, unsigned int cmd) in ucsi_stm32g0_bl_cmd() argument
156 return ucsi_stm32g0_bl_cmd_check_ack(ucsi, cmd, true); in ucsi_stm32g0_bl_cmd()
[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 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"
38 struct device *dev = con->ucsi->dev; in ucsi_psy_get_scope()
45 if (con->ucsi->cap.attributes & mask) in ucsi_psy_get_scope()
165 /* UCSI can't tell b/w DCP/CDP or USB2/3x1/3x2 SDP chargers */ in ucsi_psy_get_current_max()
256 struct device *dev = con->ucsi->dev; in ucsi_register_port_psy()
262 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"
245 * Currently there is no class code defined for UCSI device over PCI
246 * so using UNKNOWN class for now and it will be updated when UCSI
250 * (initiated from UCSI i2c_client) will timeout or UCSI commands will
315 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/include/linux/platform_data/
H A Dhuawei-gaokun-ec.h28 #define GAOKUN_DEV_UCSI "ucsi"
70 /* API for UCSI */
H A Dlenovo-yoga-c630.h17 #define YOGA_C630_DEV_UCSI "ucsi"
/linux/drivers/usb/typec/
H A DMakefile7 obj-$(CONFIG_TYPEC_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/devicetree/bindings/platform/
H A Dhuawei,gaokun-ec.yaml16 UCSI, USB Type-C DP Alt Mode. In addition, Huawei's implementation
/linux/Documentation/devicetree/bindings/connector/
H A Dusb-connector.yaml148 alternative modes (e.g. through the UCSI firmware interface).
154 alternative modes (e.g. through the UCSI firmware interface).
160 discover supported alternative modes (e.g. through the UCSI firmware

12