This patch series introduces a mechanism for setting USB Type-C alternate mode priorities. It allows the user to specify their preferred order for mode selection, such as USB4, Thunderbolt, or DisplayPort. A new sysfs attribute named 'priority' is exposed to provide user-space control over the mode selection process. This series was tested on a Android OS device running kernel 6.16. Changes in v2: - The priority variable is now a member of the typec_altmode struct - typec_altmode2port is used to obtain the typec_port struct pointer - Default priorities are now set based on the order of registration - The mode_control capability is enabled by default - The mode_selection_state struct will be introduced in a separate series - svid will be used instead of the typec_mode_type enum Andrei Kuchynski (5): usb: typec: Add alt_mode_override field to port property platform/chrome: cros_ec_typec: Set alt_mode_override flag usb: typec: ucsi: Set alt_mode_override flag usb: typec: Implement alternate mode priority handling usb: typec: Expose alternate mode priority via sysfs Documentation/ABI/testing/sysfs-class-typec | 11 ++++++ drivers/platform/chrome/cros_ec_typec.c | 1 + drivers/usb/typec/Makefile | 2 +- drivers/usb/typec/class.c | 41 +++++++++++++++++++-- drivers/usb/typec/class.h | 2 + drivers/usb/typec/mode_selection.c | 38 +++++++++++++++++++ drivers/usb/typec/mode_selection.h | 6 +++ drivers/usb/typec/ucsi/ucsi.c | 2 + include/linux/usb/typec.h | 1 + include/linux/usb/typec_altmode.h | 1 + 10 files changed, 100 insertions(+), 5 deletions(-) create mode 100644 drivers/usb/typec/mode_selection.c create mode 100644 drivers/usb/typec/mode_selection.h -- 2.51.0.rc2.233.g662b1ed5c5-goog