ec/google/chromeec: Add retimer handle to Type C conn
Some platforms have retimers which can be configured via the EC. Add a handle to these retimer devices to the Type C connector device, using devicetree references. BUG=b:208883648 TEST=Verify disassembled SSDT on brya. BRANCH=None Signed-off-by: Prashant Malani <pmalani@chromium.org> Change-Id: Ic0480b08c6d6a7562cca57192e49b8ea2a33b51e Reviewed-on: https://review.coreboot.org/c/coreboot/+/63793 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
This commit is contained in:
parent
688105bc60
commit
da6e9a0472
|
@ -106,6 +106,7 @@ static void add_device_references(struct acpi_dp *dsd,
|
||||||
add_device_ref(dsd, "orientation-switch", config->orientation_switch);
|
add_device_ref(dsd, "orientation-switch", config->orientation_switch);
|
||||||
add_device_ref(dsd, "usb-role-switch", config->usb_role_switch);
|
add_device_ref(dsd, "usb-role-switch", config->usb_role_switch);
|
||||||
add_device_ref(dsd, "mode-switch", config->mode_switch);
|
add_device_ref(dsd, "mode-switch", config->mode_switch);
|
||||||
|
add_device_ref(dsd, "retimer-switch", config->retimer_switch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void acpigen_write_typec_connector(const struct typec_connector_class_config *config,
|
void acpigen_write_typec_connector(const struct typec_connector_class_config *config,
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
struct ec_google_chromeec_config {
|
struct ec_google_chromeec_config {
|
||||||
/* Pointer to PMC Mux connector for each Type-C port */
|
/* Pointer to PMC Mux connector for each Type-C port */
|
||||||
DEVTREE_CONST struct device *mux_conn[MAX_TYPEC_PORTS];
|
DEVTREE_CONST struct device *mux_conn[MAX_TYPEC_PORTS];
|
||||||
|
DEVTREE_CONST struct device *retimer_conn[MAX_TYPEC_PORTS];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* EC_GOOGLE_CHROMEEC_CHIP_H */
|
#endif /* EC_GOOGLE_CHROMEEC_CHIP_H */
|
||||||
|
|
|
@ -195,6 +195,7 @@ static void fill_ssdt_typec_device(const struct device *dev)
|
||||||
.orientation_switch = config->mux_conn[i],
|
.orientation_switch = config->mux_conn[i],
|
||||||
.usb_role_switch = config->mux_conn[i],
|
.usb_role_switch = config->mux_conn[i],
|
||||||
.mode_switch = config->mux_conn[i],
|
.mode_switch = config->mux_conn[i],
|
||||||
|
.retimer_switch = config->retimer_conn[i],
|
||||||
.pld = &pld,
|
.pld = &pld,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,8 @@ enum usb_typec_data_role {
|
||||||
* host or device, for the USB port
|
* host or device, for the USB port
|
||||||
* @mode_switch: Reference to the ACPI device that controls routing of data lines to
|
* @mode_switch: Reference to the ACPI device that controls routing of data lines to
|
||||||
* various endpoints (xHCI, DP, etc.) on the SoC.
|
* various endpoints (xHCI, DP, etc.) on the SoC.
|
||||||
|
* @retimer_switch: Reference to the ACPI device that controls the configuration
|
||||||
|
* of the retimer in the Type C signal chain.
|
||||||
* @pld: Reference to PLD information.
|
* @pld: Reference to PLD information.
|
||||||
*/
|
*/
|
||||||
struct typec_connector_class_config {
|
struct typec_connector_class_config {
|
||||||
|
@ -53,6 +55,7 @@ struct typec_connector_class_config {
|
||||||
const struct device *orientation_switch;
|
const struct device *orientation_switch;
|
||||||
const struct device *usb_role_switch;
|
const struct device *usb_role_switch;
|
||||||
const struct device *mode_switch;
|
const struct device *mode_switch;
|
||||||
|
const struct device *retimer_switch;
|
||||||
const struct acpi_pld *pld;
|
const struct acpi_pld *pld;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue