xref: /aosp_15_r20/external/coreboot/src/lib/dp_aux.c (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <dp_aux.h>
4 
dp_aux_request_is_write(enum aux_request request)5 bool dp_aux_request_is_write(enum aux_request request)
6 {
7 	switch (request) {
8 	case I2C_RAW_WRITE_AND_STOP:
9 	case I2C_RAW_WRITE:
10 	case DPCD_WRITE:
11 		return true;
12 	default:
13 		return false;
14 	}
15 }
16 
dp_get_aux_cmd(enum aux_request request,uint32_t remaining_after_this)17 enum i2c_over_aux dp_get_aux_cmd(enum aux_request request, uint32_t remaining_after_this)
18 {
19 	switch (request) {
20 	case I2C_RAW_WRITE_AND_STOP:
21 		if (!remaining_after_this)
22 			return I2C_OVER_AUX_WRITE_MOT_0;
23 		__fallthrough;
24 	case I2C_RAW_WRITE:
25 		return I2C_OVER_AUX_WRITE_MOT_1;
26 	case I2C_RAW_READ_AND_STOP:
27 		if (!remaining_after_this)
28 			return I2C_OVER_AUX_READ_MOT_0;
29 		__fallthrough;
30 	case I2C_RAW_READ:
31 		return I2C_OVER_AUX_READ_MOT_1;
32 	case DPCD_WRITE:
33 		return NATIVE_AUX_WRITE;
34 	case DPCD_READ:
35 	default:
36 		return NATIVE_AUX_READ;
37 	}
38 }
39