• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <console/console.h>
4 #include <device/device.h>
5 #include <drivers/intel/usb4/retimer/retimer.h>
6 #include <intelblocks/tcss.h>
7 
retimer_get_index_for_typec(uint8_t typec_port)8 int retimer_get_index_for_typec(uint8_t typec_port)
9 {
10 	int ec_port = 0;
11 
12 	const struct device *tcss_port_arr[] = {
13 		DEV_PTR(tcss_usb3_port0),
14 		DEV_PTR(tcss_usb3_port1),
15 		DEV_PTR(tcss_usb3_port2),
16 		DEV_PTR(tcss_usb3_port3),
17 	};
18 
19 	for (uint8_t i = 0; i < MAX_TYPE_C_PORTS; i++) {
20 		if (i == typec_port) {
21 			printk(BIOS_INFO, "USB Type-C %d mapped to EC port %d\n", typec_port,
22 					ec_port);
23 			return ec_port;
24 		}
25 
26 		if (is_dev_enabled(tcss_port_arr[i]))
27 			ec_port++;
28 	}
29 
30 	// Code should not come here if typec_port input is correct
31 	return -1;
32 }
33