Home
last modified time | relevance | path

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

12

/linux-6.14.4/drivers/usb/typec/ucsi/
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 …]
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) in ucsi_sync_control_common() argument
64 set_bit(ACK_PENDING, &ucsi->flags); in ucsi_sync_control_common()
[all …]
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()
36 ret = ucsi_send_command(ucsi, val, NULL, 0); in ucsi_cmd()
45 ret = ucsi_send_command(ucsi, val, in ucsi_cmd()
46 &ucsi->debugfs->response, in ucsi_cmd()
47 sizeof(ucsi->debugfs->response)); in ucsi_cmd()
54 ucsi->debugfs->status = ret; in ucsi_cmd()
[all …]
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 …]
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 …]
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 …]
Ducsi_yoga_c630.c17 #include "ucsi.h"
21 struct ucsi *ucsi; member
26 static int yoga_c630_ucsi_read_version(struct ucsi *ucsi, u16 *version) in yoga_c630_ucsi_read_version() argument
28 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_read_version()
35 static int yoga_c630_ucsi_read_cci(struct ucsi *ucsi, u32 *cci) in yoga_c630_ucsi_read_cci() argument
37 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_read_cci()
50 static int yoga_c630_ucsi_read_message_in(struct ucsi *ucsi, in yoga_c630_ucsi_read_message_in() argument
53 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_read_message_in()
67 static int yoga_c630_ucsi_async_control(struct ucsi *ucsi, u64 command) in yoga_c630_ucsi_async_control() argument
69 struct yoga_c630_ucsi *uec = ucsi_get_drvdata(ucsi); in yoga_c630_ucsi_async_control()
[all …]
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 …]
Ducsi.h19 struct ucsi;
24 /* UCSI offsets (Bytes) */
32 /* UCSI versions */
62 * struct ucsi_operations - UCSI I/O operations
63 * @read_version: Read implemented UCSI version
66 * @read_message_in: Read message data from UCSI
73 * Read and write routines for UCSI interface. @sync_write must wait for the
78 int (*read_version)(struct ucsi *ucsi, u16 *version);
79 int (*read_cci)(struct ucsi *ucsi, u32 *cci);
80 int (*poll_cci)(struct ucsi *ucsi, u32 *cci);
[all …]
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
366 * Flush CCGx RESPONSE queue by acking interrupts. Above ucsi control in ucsi_ccg_init()
397 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()
559 static int ucsi_ccg_read_version(struct ucsi *ucsi, u16 *version) in ucsi_ccg_read_version() argument
561 struct ucsi_ccg *uc = ucsi_get_drvdata(ucsi); in ucsi_ccg_read_version()
[all …]
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
69 ret = ucsi_send_command(ucsi, command, &cur, sizeof(cur)); in ucsi_displayport_enter()
71 if (ucsi->version > 0x0100) in ucsi_displayport_enter()
127 ret = ucsi_send_command(dp->con->ucsi, command, NULL, 0); in ucsi_displayport_exit()
194 return ucsi_send_command(dp->con->ucsi, command, NULL, 0); in ucsi_displayport_configure()
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()
DMakefile6 typec_ucsi-y := ucsi.o
Dtrace.c3 #include "ucsi.h"
Dtrace.h4 #define TRACE_SYSTEM ucsi
/linux-6.14.4/drivers/i2c/busses/
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");
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()
Di2c-designware-pcidrv.c28 #include "i2c-ccgx-ucsi.h"
283 "register UCSI failed\n"); in i2c_dw_pci_probe()
/linux-6.14.4/drivers/usb/typec/
DMakefile7 obj-$(CONFIG_TYPEC_UCSI) += ucsi/
DKconfig51 source "drivers/usb/typec/ucsi/Kconfig"
/linux-6.14.4/include/linux/platform_data/
Dlenovo-yoga-c630.h17 #define YOGA_C630_DEV_UCSI "ucsi"
/linux-6.14.4/Documentation/devicetree/bindings/usb/
Dst,typec-stm32g0.yaml11 typically using the UCSI protocol over I2C, with a dedicated alert
/linux-6.14.4/Documentation/devicetree/bindings/connector/
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
/linux-6.14.4/drivers/platform/x86/intel/
DKconfig132 Transport Protocol) to get battery, thermal and UCSI (USB Type-C
/linux-6.14.4/drivers/mfd/
Dcros_ec_dev.c260 * UCSI provides power supply information so we don't need to separately in ec_device_probe()

12