Home
last modified time | relevance | path

Searched +full:retimer +full:- +full:switch (Results 1 – 25 of 28) sorted by relevance

12

/kernel/linux/linux-6.6/drivers/usb/typec/
Dretimer.c1 // SPDX-License-Identifier: GPL-2.0
5 * USB Type-C Retimer support.
18 #include "retimer.h"
35 return dev ? to_typec_retimer(dev) : ERR_PTR(-EPROBE_DEFER); in typec_retimer_match()
39 * fwnode_typec_retimer_get - Find USB Type-C retimer.
42 * Finds a retimer linked to the caller. This function is primarily meant for the
43 * Type-C drivers. Returns a reference to the retimer on success, NULL if no
44 * matching connection was found, or ERR_PTR(-EPROBE_DEFER) when a connection
45 * was found but the retimer has not been enumerated yet.
49 struct typec_retimer *retimer; in fwnode_typec_retimer_get() local
[all …]
Dclass.c1 // SPDX-License-Identifier: GPL-2.0
3 * USB Type-C Connector Class
27 /* ------------------------------------------------------------------------- */
64 return partner->identity; in get_pd_identity()
68 return cable->identity; in get_pd_identity()
75 struct typec_port *port = to_typec_port(dev->parent); in get_pd_product_type()
83 if (port->data_role == TYPEC_HOST) in get_pd_product_type()
84 ptype = product_type_ufp[PD_IDH_PTYPE(id->id_header)]; in get_pd_product_type()
86 ptype = product_type_dfp[PD_IDH_DFP_PTYPE(id->id_header)]; in get_pd_product_type()
89 ptype = product_type_cable[PD_IDH_PTYPE(id->id_header)]; in get_pd_product_type()
[all …]
/kernel/linux/linux-6.6/drivers/platform/chrome/
Dcros_typec_switch.c1 // SPDX-License-Identifier: GPL-2.0-only
5 * This driver provides the ability to configure Type-C muxes and retimers which are controlled by
25 struct typec_retimer *retimer; member
29 /* Driver-specific data. */
48 return cros_ec_cmd(sdata->ec, 0, EC_CMD_TYPEC_CONTROL, &req, sizeof(req), NULL, 0); in cros_typec_cmd_mux_set()
53 int ret = -EOPNOTSUPP; in cros_typec_get_mux_state()
60 } else if (alt && alt->svid == USB_TYPEC_DP_SID) { in cros_typec_get_mux_state()
62 pin_assign = mode - TYPEC_STATE_MODAL; in cros_typec_get_mux_state()
79 return cros_ec_cmd(sdata->ec, 0, EC_CMD_TYPEC_CONTROL, &req, sizeof(req), NULL, 0); in cros_typec_send_clear_event()
90 ret = cros_ec_cmd(sdata->ec, 0, EC_CMD_TYPEC_STATUS, &req, sizeof(req), in cros_typec_check_event()
[all …]
Dcros_ec_typec.c1 // SPDX-License-Identifier: GPL-2.0-only
22 #define DRV_NAME "cros-ec-typec"
35 ret = fwnode_property_read_string(fwnode, "power-role", &buf); in cros_typec_parse_port_props()
37 dev_err(dev, "power-role not found: %d\n", ret); in cros_typec_parse_port_props()
44 cap->type = ret; in cros_typec_parse_port_props()
46 ret = fwnode_property_read_string(fwnode, "data-role", &buf); in cros_typec_parse_port_props()
48 dev_err(dev, "data-role not found: %d\n", ret); in cros_typec_parse_port_props()
55 cap->data = ret; in cros_typec_parse_port_props()
57 /* Try-power-role is optional. */ in cros_typec_parse_port_props()
58 ret = fwnode_property_read_string(fwnode, "try-power-role", &buf); in cros_typec_parse_port_props()
[all …]
Dcros_ec_typec.h1 /* SPDX-License-Identifier: GPL-2.0-only */
30 /* Platform-specific data for the Chrome OS EC Type C controller. */
60 struct typec_retimer *retimer; member
63 /* Variables keeping track of switch state. */
77 /* PDO-related structs */
/kernel/linux/linux-6.6/drivers/usb/typec/mux/
Dnb7vpq904m.c1 // SPDX-License-Identifier: GPL-2.0+
3 * OnSemi NB7VPQ904M Type-C driver
68 struct typec_retimer *retimer; member
75 struct mutex lock; /* protect non-concurrent retimer & switch */
98 regmap_update_bits(nb7->regmap, EQ_SETTING_REG(channel), in nb7vpq904m_set_channel()
100 regmap_update_bits(nb7->regmap, OUTPUT_COMPRESSION_AND_POL_REG(channel), in nb7vpq904m_set_channel()
102 regmap_update_bits(nb7->regmap, FLAT_GAIN_REG(channel), in nb7vpq904m_set_channel()
104 regmap_update_bits(nb7->regmap, LOSS_MATCH_REG(channel), in nb7vpq904m_set_channel()
110 bool reverse = (nb7->orientation == TYPEC_ORIENTATION_REVERSE); in nb7vpq904m_set()
112 switch (nb7->mode) { in nb7vpq904m_set()
[all …]
/kernel/linux/linux-5.10/drivers/thunderbolt/
Dusb4.c1 // SPDX-License-Identifier: GPL-2.0
74 return -ETIMEDOUT; in usb4_switch_wait_for_bit()
81 return -EINVAL; in usb4_switch_op_read_data()
90 return -EINVAL; in usb4_switch_op_write_data()
125 if (ret != -ENODEV && retries--) in usb4_do_read_data()
130 nbytes -= offset; in usb4_do_read_data()
133 size -= nbytes; in usb4_do_read_data()
159 if (ret == -ETIMEDOUT) { in usb4_do_write_data()
160 if (retries--) in usb4_do_write_data()
162 ret = -EIO; in usb4_do_write_data()
[all …]
Dtb.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Thunderbolt driver - bus logic (NHI independent)
12 #include <linux/nvmem-provider.h>
30 * struct tb_nvm - Structure holding NVM information
36 * @non_active: Non-active portion NVMem device
65 * enum tb_switch_tmu_rate - TMU refresh rate
81 * struct tb_switch_tmu - Structure holding switch TMU configuration
83 * @has_ucap: Does the switch support uni-directional mode
84 * @rate: TMU refresh rate related to upstream switch. In case of root
85 * switch this holds the domain rate.
[all …]
DMakefile1 # SPDX-License-Identifier: GPL-2.0-only
2 obj-${CONFIG_USB4} := thunderbolt.o
3 thunderbolt-objs := nhi.o nhi_ops.o ctl.o tb.o switch.o cap.o path.o tunnel.o eeprom.o
4 thunderbolt-objs += domain.o dma_port.o icm.o property.o xdomain.o lc.o tmu.o usb4.o
5 thunderbolt-objs += nvm.o retimer.o quirks.o
7 thunderbolt-${CONFIG_ACPI} += acpi.o
8 thunderbolt-$(CONFIG_DEBUG_FS) += debugfs.o
9 thunderbolt-${CONFIG_USB4_KUNIT_TEST} += test.o
/kernel/linux/linux-6.6/drivers/thunderbolt/
Dusb4.c1 // SPDX-License-Identifier: GPL-2.0
89 return -EOPNOTSUPP; in usb4_native_switch_op()
114 const struct tb_cm_ops *cm_ops = sw->tb->cm_ops; in __usb4_switch_op()
117 return -EINVAL; in __usb4_switch_op()
124 if (cm_ops->usb4_switch_op) { in __usb4_switch_op()
127 ret = cm_ops->usb4_switch_op(sw, opcode, metadata, status, in __usb4_switch_op()
130 if (ret != -EOPNOTSUPP) in __usb4_switch_op()
159 * usb4_switch_check_wakes() - Check for wakes and notify PM core about them
188 if (!port->cap_usb4) in usb4_switch_check_wakes()
192 port->cap_usb4 + PORT_CS_18, 1)) in usb4_switch_check_wakes()
[all …]
DMakefile1 # SPDX-License-Identifier: GPL-2.0-only
2 obj-${CONFIG_USB4} := thunderbolt.o
3 thunderbolt-objs := nhi.o nhi_ops.o ctl.o tb.o switch.o cap.o path.o tunnel.o eeprom.o
4 thunderbolt-objs += domain.o dma_port.o icm.o property.o xdomain.o lc.o tmu.o usb4.o
5 thunderbolt-objs += usb4_port.o nvm.o retimer.o quirks.o clx.o
7 thunderbolt-${CONFIG_ACPI} += acpi.o
8 thunderbolt-$(CONFIG_DEBUG_FS) += debugfs.o
9 thunderbolt-${CONFIG_USB4_KUNIT_TEST} += test.o
12 thunderbolt_dma_test-${CONFIG_USB4_DMA_TEST} += dma_test.o
13 obj-$(CONFIG_USB4_DMA_TEST) += thunderbolt_dma_test.o
Dtb.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Thunderbolt driver - bus logic (NHI independent)
12 #include <linux/nvmem-provider.h>
30 * struct tb_nvm - Structure holding NVM information
37 * @non_active: Non-active portion NVMem device
78 * enum tb_switch_tmu_mode - TMU mode
80 * @TB_SWITCH_TMU_MODE_LOWRES: Uni-directional, normal mode
81 * @TB_SWITCH_TMU_MODE_HIFI_UNI: Uni-directional, HiFi mode
82 * @TB_SWITCH_TMU_MODE_HIFI_BI: Bi-directional, HiFi mode
83 * @TB_SWITCH_TMU_MODE_MEDRES_ENHANCED_UNI: Enhanced Uni-directional, MedRes mode
[all …]
Dnvm.c1 // SPDX-License-Identifier: GPL-2.0
32 * struct tb_nvm_vendor_ops - Vendor specific NVM operations
44 * struct tb_nvm_vendor - Vendor to &struct tb_nvm_vendor_ops mapping
58 struct tb_switch *sw = tb_to_switch(nvm->dev); in intel_switch_nvm_version()
63 * If the switch is in safe-mode the only accessible portion of in intel_switch_nvm_version()
64 * the NVM is the non-active one where userspace is expected to in intel_switch_nvm_version()
67 if (sw->safe_mode) in intel_switch_nvm_version()
74 hdr_size = sw->generation < 3 ? SZ_8K : SZ_16K; in intel_switch_nvm_version()
76 nvm_size = (nvm_size - hdr_size) / 2; in intel_switch_nvm_version()
82 nvm->major = (val >> 16) & 0xff; in intel_switch_nvm_version()
[all …]
/kernel/linux/linux-5.10/drivers/hwmon/
Dintel-m10-bmc-hwmon.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2018-2020 Intel Corporation. All rights reserved.
10 #include <linux/mfd/intel-m10-bmc.h>
43 { 0x168, 0x0, 0x0, 0x0, 0x0, 500, "Retimer A Temperature" },
44 { 0x16c, 0x0, 0x0, 0x0, 0x0, 500, "Retimer A SerDes Temperature" },
45 { 0x170, 0x0, 0x0, 0x0, 0x0, 500, "Retimer B Temperature" },
46 { 0x174, 0x0, 0x0, 0x0, 0x0, 500, "Retimer B SerDes Temperature" },
126 tbl = hw->bdata->tables[type]; in find_sensor_data()
128 return ERR_PTR(-EOPNOTSUPP); in find_sensor_data()
140 ret = m10bmc_sys_read(hw->m10bmc, regoff, &regval); in do_sensor_read()
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/usb/
Donnn,nb7vpq904m.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: ON Semiconductor Type-C DisplayPort ALT Mode Linear Redriver
10 - Neil Armstrong <neil.armstrong@linaro.org>
15 - onnn,nb7vpq904m
20 vcc-supply:
23 enable-gpios: true
25 retimer-switch:
29 orientation-switch:
[all …]
/kernel/linux/linux-6.6/drivers/soc/qcom/
Dpmic_glink_altmode.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
117 mutex_lock(&altmode->lock); in pmic_glink_altmode_request()
119 req.hdr.owner = cpu_to_le32(altmode->owner_id); in pmic_glink_altmode_request()
125 ret = pmic_glink_send(altmode->client, &req, sizeof(req)); in pmic_glink_altmode_request()
127 dev_err(altmode->dev, "failed to send altmode request: %#x (%d)\n", cmd, ret); in pmic_glink_altmode_request()
131 left = wait_for_completion_timeout(&altmode->pan_ack, 5 * HZ); in pmic_glink_altmode_request()
133 dev_err(altmode->dev, "timeout waiting for altmode request ack for: %#x\n", cmd); in pmic_glink_altmode_request()
134 ret = -ETIMEDOUT; in pmic_glink_altmode_request()
138 mutex_unlock(&altmode->lock); in pmic_glink_altmode_request()
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/display/dc/core/
Ddc_link.c2 * Copyright 2012-15 Advanced Micro Devices, Inc.
83 if (link->hpd_gpio) { in dc_link_destruct()
84 dal_gpio_destroy_irq(&link->hpd_gpio); in dc_link_destruct()
85 link->hpd_gpio = NULL; in dc_link_destruct()
88 if (link->ddc) in dc_link_destruct()
89 dal_ddc_service_destroy(&link->ddc); in dc_link_destruct()
91 if (link->panel_cntl) in dc_link_destruct()
92 link->panel_cntl->funcs->destroy(&link->panel_cntl); in dc_link_destruct()
94 if (link->link_enc) in dc_link_destruct()
95 link->link_enc->funcs->destroy(&link->link_enc); in dc_link_destruct()
[all …]
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/dc/link/
Dlink_dpms.c31 * TODO - The reason link owns stream's dpms programming sequence is
80 for (i = 0; i < dc->link_count; i++) { in link_blank_all_dp_displays()
81 if ((dc->links[i]->connector_signal != SIGNAL_TYPE_DISPLAY_PORT) || in link_blank_all_dp_displays()
82 (dc->links[i]->priv == NULL) || (dc->links[i]->local_sink == NULL)) in link_blank_all_dp_displays()
86 dp_retrieve_lttpr_cap(dc->links[i]); in link_blank_all_dp_displays()
88 status = core_link_read_dpcd(dc->links[i], DP_SET_POWER, in link_blank_all_dp_displays()
92 link_blank_dp_stream(dc->links[i], true); in link_blank_all_dp_displays()
103 for (i = 0; i < dc->link_count; i++) { in link_blank_all_edp_displays()
104 if ((dc->links[i]->connector_signal != SIGNAL_TYPE_EDP) || in link_blank_all_edp_displays()
105 (!dc->links[i]->edp_sink_present)) in link_blank_all_edp_displays()
[all …]
/kernel/linux/linux-5.10/drivers/mfd/
Dintel-m10-bmc.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2018-2020 Intel Corporation. All rights reserved.
10 #include <linux/mfd/intel-m10-bmc.h>
21 { .name = "n3000bmc-hwmon" },
22 { .name = "n3000bmc-retimer" },
23 { .name = "n3000bmc-secure" },
88 return -ENODEV; in check_m10bmc_version()
91 dev_err(ddata->dev, "bad version M10BMC detected\n"); in check_m10bmc_version()
92 return -ENODEV; in check_m10bmc_version()
101 struct device *dev = &spi->dev; in intel_m10_bmc_spi_probe()
[all …]
/kernel/linux/linux-6.6/drivers/hwmon/
Dintel-m10-bmc-hwmon.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2018-2020 Intel Corporation. All rights reserved.
10 #include <linux/mfd/intel-m10-bmc.h>
43 { 0x168, 0x0, 0x0, 0x0, 0x0, 500, "Retimer A Temperature" },
44 { 0x16c, 0x0, 0x0, 0x0, 0x0, 500, "Retimer A SerDes Temperature" },
45 { 0x170, 0x0, 0x0, 0x0, 0x0, 500, "Retimer B Temperature" },
46 { 0x174, 0x0, 0x0, 0x0, 0x0, 500, "Retimer B SerDes Temperature" },
243 { 0x1a8, 0x0, 0x0, 0x0, 0x0, 1000, "QSFP28-1 Temperature" },
244 { 0x1ac, 0x0, 0x0, 0x0, 0x0, 1000, "QSFP28-2 Temperature" },
245 { 0x1b0, 0x0, 0x0, 0x0, 0x0, 1000, "QSFP28-3 Temperature" },
[all …]
/kernel/linux/linux-6.6/arch/arm64/boot/dts/qcom/
Dsm8550-qrd.dts1 // SPDX-License-Identifier: BSD-3-Clause
6 /dts-v1/;
8 #include <dt-bindings/leds/common.h>
9 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
21 compatible = "qcom,sm8550-qrd", "qcom,sm8550";
22 chassis-type = "handset";
28 wcd938x: audio-codec {
29 compatible = "qcom,wcd9385-codec";
31 pinctrl-names = "default";
32 pinctrl-0 = <&wcd_default>;
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/sfc/
Dmcdi_pcol.h1 /* SPDX-License-Identifier: GPL-2.0-only */
4 * Copyright 2009-2018 Solarflare Communications Inc.
5 * Copyright 2019-2020 Xilinx Inc.
13 /* Power-on reset state */
35 /* The 'doorbell' addresses are hard-wired to alert the MC when written */
38 /* The rest of these are firmware-defined */
46 /* Values to be written to the per-port status dword in shared
71 * | | \--- Response
72 * | \------- Error
73 * \------------------------------ Resync (always set)
[all …]
/kernel/linux/linux-6.6/drivers/net/ethernet/sfc/
Dmcdi_pcol.h1 /* SPDX-License-Identifier: GPL-2.0-only */
4 * Copyright 2009-2018 Solarflare Communications Inc.
5 * Copyright 2019-2020 Xilinx Inc.
13 /* Power-on reset state */
35 /* The 'doorbell' addresses are hard-wired to alert the MC when written */
38 /* The rest of these are firmware-defined */
46 /* Values to be written to the per-port status dword in shared
71 * | | \--- Response
72 * | \------- Error
73 * \------------------------------ Resync (always set)
[all …]
/kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/
Dintel_hdmi.c3 * Copyright © 2006-2009 Intel Corporation
64 return to_i915(hdmi_to_dig_port(intel_hdmi)->base.base.dev); in intel_hdmi_to_i915()
75 drm_WARN(&dev_priv->drm, in assert_hdmi_port_disabled()
76 intel_de_read(dev_priv, intel_hdmi->hdmi_reg) & enabled_bits, in assert_hdmi_port_disabled()
84 drm_WARN(&dev_priv->drm, in assert_hdmi_transcoder_func_disabled()
92 switch (type) { in g4x_infoframe_index()
109 switch (type) { in g4x_infoframe_enable()
132 switch (type) { in hsw_infoframe_enable()
161 switch (type) { in hsw_dip_data_reg()
185 switch (type) { in hsw_dip_data_size()
[all …]
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/dc/link/protocols/
Dlink_dp_capability.c55 link->ctx->logger
108 return (link->dpcd_caps.dongle_type >= DISPLAY_DONGLE_DP_VGA_CONVERTER) && in is_dp_active_dongle()
109 (link->dpcd_caps.dongle_type <= DISPLAY_DONGLE_DP_HDMI_CONVERTER); in is_dp_active_dongle()
114 return link->dpcd_caps.is_branch_dev; in is_dp_branch_device()
119 switch (bpc) { in translate_dpcd_max_bpc()
132 return -1; in translate_dpcd_max_bpc()
137 switch (lttpr_repeater_count) { in dp_parse_lttpr_repeater_count()
162 switch (bw) { in link_bw_kbps_from_raw_frl_link_rate_data()
184 switch (link_rate_in_khz) { in linkRateInKHzToLinkRateMultiplier()
186 link_rate = LINK_RATE_LOW; // Rate_1 (RBR) - 1.62 Gbps/Lane in linkRateInKHzToLinkRateMultiplier()
[all …]

12