blob: 6a925f13f641b9bc6a55c0c0fcf1434468def419 [file] [log] [blame]
xuxinxiongcb3745c2021-10-26 20:16:21 +08001/* SPDX-License-Identifier: GPL-2.0-only */
2
xuxinxiongcb3745c2021-10-26 20:16:21 +08003#include <dp_aux.h>
xuxinxiongcb3745c2021-10-26 20:16:21 +08004
5bool 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
17enum 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;
Arthur Heymansfff20212021-03-15 14:56:16 +010023 __fallthrough;
xuxinxiongcb3745c2021-10-26 20:16:21 +080024 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;
Arthur Heymansfff20212021-03-15 14:56:16 +010029 __fallthrough;
xuxinxiongcb3745c2021-10-26 20:16:21 +080030 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}