/linux-6.8/drivers/usb/typec/ucsi/ |
D | ucsi_glink.c | 15 #include "ucsi.h" 65 struct ucsi *ucsi; member 80 static int pmic_glink_ucsi_read(struct ucsi *__ucsi, unsigned int offset, in pmic_glink_ucsi_read() 83 struct pmic_glink_ucsi *ucsi = ucsi_get_drvdata(__ucsi); in pmic_glink_ucsi_read() local 92 mutex_lock(&ucsi->lock); in pmic_glink_ucsi_read() 93 memset(ucsi->read_buf, 0, sizeof(ucsi->read_buf)); in pmic_glink_ucsi_read() 94 reinit_completion(&ucsi->read_ack); in pmic_glink_ucsi_read() 96 ret = pmic_glink_send(ucsi->client, &req, sizeof(req)); in pmic_glink_ucsi_read() 98 dev_err(ucsi->dev, "failed to send UCSI read request: %d\n", ret); in pmic_glink_ucsi_read() 102 left = wait_for_completion_timeout(&ucsi->read_ack, 5 * HZ); in pmic_glink_ucsi_read() [all …]
|
D | debugfs.c | 3 * 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() 35 ret = ucsi_send_command(ucsi, val, NULL, 0); in ucsi_cmd() 44 ret = ucsi_send_command(ucsi, val, in ucsi_cmd() 45 &ucsi->debugfs->response, in ucsi_cmd() 46 sizeof(ucsi->debugfs->response)); in ucsi_cmd() 53 ucsi->debugfs->status = ret; in ucsi_cmd() [all …]
|
D | ucsi.c | 17 #include "ucsi.h" 23 * Ideally we could use MIN_TIME_TO_RESPOND_WITH_BUSY (which is defined in UCSI 39 static int ucsi_acknowledge_command(struct ucsi *ucsi) in ucsi_acknowledge_command() argument 46 return ucsi->ops->sync_write(ucsi, UCSI_CONTROL, &ctrl, sizeof(ctrl)); in ucsi_acknowledge_command() 49 static int ucsi_acknowledge_connector_change(struct ucsi *ucsi) in ucsi_acknowledge_connector_change() argument 56 return ucsi->ops->sync_write(ucsi, UCSI_CONTROL, &ctrl, sizeof(ctrl)); in ucsi_acknowledge_connector_change() 59 static int ucsi_exec_command(struct ucsi *ucsi, u64 command); 61 static int ucsi_read_error(struct ucsi *ucsi) in ucsi_read_error() argument 67 ret = ucsi_acknowledge_command(ucsi); in ucsi_read_error() 71 ret = ucsi_exec_command(ucsi, UCSI_GET_ERROR_STATUS); in ucsi_read_error() [all …]
|
D | ucsi_stm32g0.c | 3 * UCSI driver for STMicroelectronics STM32G0 Type-C PD controller 17 #include "ucsi.h" 68 struct ucsi *ucsi; member 83 static int ucsi_stm32g0_bl_check_ack(struct ucsi *ucsi) in ucsi_stm32g0_bl_check_ack() argument 85 struct ucsi_stm32g0 *g0 = ucsi_get_drvdata(ucsi); in ucsi_stm32g0_bl_check_ack() 120 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 122 struct ucsi_stm32g0 *g0 = ucsi_get_drvdata(ucsi); in ucsi_stm32g0_bl_cmd_check_ack() 151 return ucsi_stm32g0_bl_check_ack(ucsi); in ucsi_stm32g0_bl_cmd_check_ack() 156 static int ucsi_stm32g0_bl_cmd(struct ucsi *ucsi, unsigned int cmd) in ucsi_stm32g0_bl_cmd() argument 158 return ucsi_stm32g0_bl_cmd_check_ack(ucsi, cmd, true); in ucsi_stm32g0_bl_cmd() [all …]
|
D | ucsi_acpi.c | 3 * UCSI ACPI driver 14 #include "ucsi.h" 22 struct ucsi *ucsi; member 48 static int ucsi_acpi_read(struct ucsi *ucsi, unsigned int offset, in ucsi_acpi_read() argument 51 struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); in ucsi_acpi_read() 63 static int ucsi_acpi_async_write(struct ucsi *ucsi, unsigned int offset, in ucsi_acpi_async_write() argument 66 struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); in ucsi_acpi_async_write() 74 static int ucsi_acpi_sync_write(struct ucsi *ucsi, unsigned int offset, in ucsi_acpi_sync_write() argument 77 struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi); in ucsi_acpi_sync_write() 86 ret = ucsi_acpi_async_write(ucsi, offset, val, val_len); in ucsi_acpi_sync_write() [all …]
|
D | Kconfig | 9 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 …]
|
D | ucsi.h | 16 struct ucsi; 20 /* UCSI offsets (Bytes) */ 39 * struct ucsi_operations - UCSI I/O operations 45 * Read and write routines for UCSI interface. @sync_write must wait for the 50 int (*read)(struct ucsi *ucsi, unsigned int offset, 52 int (*sync_write)(struct ucsi *ucsi, unsigned int offset, 54 int (*async_write)(struct ucsi *ucsi, unsigned int offset, 56 bool (*update_altmodes)(struct ucsi *ucsi, struct ucsi_altmode *orig, 60 struct ucsi *ucsi_create(struct device *dev, const struct ucsi_operations *ops); 61 void ucsi_destroy(struct ucsi *ucsi); [all …]
|
D | ucsi_ccg.c | 3 * 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 197 struct ucsi *ucsi; member 325 * Flush CCGx RESPONSE queue by acking interrupts. Above ucsi control in ucsi_ccg_init() 356 static bool ucsi_ccg_update_altmodes(struct ucsi *ucsi, in ucsi_ccg_update_altmodes() argument 360 struct ucsi_ccg *uc = ucsi_get_drvdata(ucsi); in ucsi_ccg_update_altmodes() 516 static int ucsi_ccg_read(struct ucsi *ucsi, unsigned int offset, in ucsi_ccg_read() argument 519 struct ucsi_ccg *uc = ucsi_get_drvdata(ucsi); in ucsi_ccg_read() [all …]
|
D | displayport.c | 3 * 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()
|
D | psy.c | 3 * Power Supply for UCSI 13 #include "ucsi.h" 37 struct device *dev = con->ucsi->dev; in ucsi_psy_get_scope() 44 if (con->ucsi->cap.attributes & mask) in ucsi_psy_get_scope() 164 /* UCSI can't tell b/w DCP/CDP or USB2/3x1/3x2 SDP chargers */ in ucsi_psy_get_current_max() 234 struct device *dev = con->ucsi->dev; in ucsi_register_port_psy() 240 psy_name = devm_kasprintf(dev, GFP_KERNEL, "ucsi-source-psy-%s%d", in ucsi_register_port_psy()
|
D | Makefile | 6 typec_ucsi-y := ucsi.o
|
D | trace.c | 3 #include "ucsi.h"
|
D | trace.h | 4 #define TRACE_SYSTEM ucsi
|
/linux-6.8/drivers/i2c/busses/ |
D | i2c-ccgx-ucsi.c | 3 * 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()
|
D | i2c-nvidia-gpu.c | 21 #include "i2c-ccgx-ucsi.h" 246 * Currently there is no class code defined for UCSI device over PCI 247 * so using UNKNOWN class for now and it will be updated when UCSI 251 * (initiated from UCSI i2c_client) will timeout or UCSI commands will 316 status = dev_err_probe(dev, PTR_ERR(i2cd->ccgx_client), "register UCSI failed\n"); in gpu_i2c_probe()
|
D | i2c-designware-pcidrv.c | 28 #include "i2c-ccgx-ucsi.h" 342 "register UCSI failed\n"); in i2c_dw_pci_probe()
|
D | Makefile | 10 obj-$(CONFIG_I2C_CCGX_UCSI) += i2c-ccgx-ucsi.o
|
/linux-6.8/drivers/usb/typec/ |
D | Makefile | 7 obj-$(CONFIG_TYPEC_UCSI) += ucsi/
|
D | Kconfig | 51 source "drivers/usb/typec/ucsi/Kconfig"
|
/linux-6.8/Documentation/devicetree/bindings/connector/ |
D | usb-connector.yaml | 148 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.8/Documentation/devicetree/bindings/usb/ |
D | st,typec-stm32g0.yaml | 11 typically using the UCSI protocol over I2C, with a dedicated alert
|
/linux-6.8/drivers/platform/x86/intel/ |
D | Kconfig | 131 Transport Protocol) to get battery, thermal and UCSI (USB Type-C
|
/linux-6.8/drivers/soc/qcom/ |
D | pmic_glink.c | 276 ret = pmic_glink_add_aux_device(pg, &pg->ucsi_aux, "ucsi"); in pmic_glink_probe()
|
/linux-6.8/arch/arm/boot/dts/st/ |
D | stm32mp135f-dk.dts | 131 firmware-name = "stm32g0-ucsi.mp135f-dk.fw";
|
/linux-6.8/Documentation/driver-api/usb/ |
D | typec.rst | 16 driver, but it may be a driver for firmware interface such as UCSI, driver for
|