summaryrefslogtreecommitdiff
path: root/driver/mcdp28x0.h
blob: 4352a3899e955c35abdb34f48d4e969f2bdae74b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* Copyright 2014 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 *
 * Megachips DisplayPort to HDMI protocol converter / level shifter driver.
 */

#ifndef __CROS_EC_MCDP28X0_H
#define __CROS_EC_MCDP28X0_H

#define MCDP_OUTBUF_MAX 16
#define MCDP_INBUF_MAX 16

#define MCDP_CMD_GETINFO       0x40
#define MCDP_CMD_GETDEVID      0x30
#define MCDP_CMD_APPSTEST      0x12
#define MCDP_CMD_APPSTESTPARAM 0x11
#define MCDP_CMD_ACK           0x0c

/* packet header (2 bytes: length + cmd) + data + footer (1byte: checksum) */
#define MCDP_RSP_LEN(len) (len + 3)
#define MCDP_LEN_GETINFO 12

/* List of common error codes that can be returned */
enum mcdp_error_list {
	MCDP_SUCCESS = 0,
	MCDP_ERROR_TX_CNT,
	MCDP_ERROR_TX_BODY,
	MCDP_ERROR_TX_CHKSUM,
	MCDP_ERROR_CHKSUM,
	MCDP_ERROR_RX_BYTES,
	MCDP_ERROR_RX_ACK,
};

/**
 * Enable mcdp driver.
 */
void mcdp_enable(void);

/**
 * Disable mcdp driver.
 */
void mcdp_disable(void);

/**
 * get get information command from mcdp.
 *
 * @info pointer to mcdp_info structure
 * @return zero if success, error code otherwise.
 */
int mcdp_get_info(struct mcdp_info  *info);

#endif