summaryrefslogtreecommitdiff
path: root/baseboard/zork/cbi_ec_fw_config.h
blob: 4888298e3a0d49fd704cb2162345377d2c23f0ba (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/* Copyright 2020 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.
 */

#ifndef _ZORK_CBI_EC_FW_CONFIG__H_
#define _ZORK_CBI_EC_FW_CONFIG__H_

/****************************************************************************
 * CBI Zork EC FW Configuration
 */
#define UNINITIALIZED_FW_CONFIG 0xFFFFFFFF

/*
 * USB Daughter Board (4 bits)
 *
 * get_cbi_ec_cfg_usb_db() will return the DB option number.
 * The option number will be defined in a variant or board level enumeration
 */
#define EC_CFG_USB_DB_L				0
#define EC_CFG_USB_DB_H				3
#define EC_CFG_USB_DB_MASK \
				GENMASK(EC_CFG_USB_DB_H,\
					EC_CFG_USB_DB_L)

/*
 * USB Main Board (4 bits)
 *
 * get_cbi_ec_cfg_usb_mb() will return the MB option number.
 * The option number will be defined in a variant or board level enumeration
 */
#define EC_CFG_USB_MB_L				4
#define EC_CFG_USB_MB_H				7
#define EC_CFG_USB_MB_MASK \
				GENMASK(EC_CFG_USB_MB_H,\
					EC_CFG_USB_MB_L)

/*
 * Lid Accelerometer Sensor (3 bits)
 *
 * ec_config_has_lid_accel_sensor() will return ec_cfg_lid_accel_sensor_type
 */
enum ec_cfg_lid_accel_sensor_type {
	LID_ACCEL_NONE = 0,
	LID_ACCEL_KX022 = 1,
	LID_ACCEL_LIS2DWL = 2,
};
#define EC_CFG_LID_ACCEL_SENSOR_L		8
#define EC_CFG_LID_ACCEL_SENSOR_H		10
#define EC_CFG_LID_ACCEL_SENSOR_MASK	\
				GENMASK(EC_CFG_LID_ACCEL_SENSOR_H,\
					EC_CFG_LID_ACCEL_SENSOR_L)

/*
 * Base Gyro Sensor (3 bits)
 *
 * ec_config_has_base_gyro_sensor() will return ec_cfg_base_gyro_sensor_type
 */
enum ec_cfg_base_gyro_sensor_type {
	BASE_GYRO_NONE = 0,
	BASE_GYRO_BMI160 = 1,
	BASE_GYRO_LSM6DSM = 2,
	BASE_GYRO_ICM426XX = 3,
};
#define EC_CFG_BASE_GYRO_SENSOR_L		11
#define EC_CFG_BASE_GYRO_SENSOR_H		13
#define EC_CFG_BASE_GYRO_SENSOR_MASK	\
				GENMASK(EC_CFG_BASE_GYRO_SENSOR_H,\
					EC_CFG_BASE_GYRO_SENSOR_L)

/*
 * PWM Keyboard Backlight (1 bit)
 *
 * ec_config_has_pwm_keyboard_backlight() will return 1 is present or 0
 */
enum ec_cfg_pwm_keyboard_backlight_type {
	PWM_KEYBOARD_BACKLIGHT_NO = 0,
	PWM_KEYBOARD_BACKLIGHT_YES = 1,
};
#define EC_CFG_PWM_KEYBOARD_BACKLIGHT_L		14
#define EC_CFG_PWM_KEYBOARD_BACKLIGHT_H		14
#define EC_CFG_PWM_KEYBOARD_BACKLIGHT_MASK \
				GENMASK(EC_CFG_PWM_KEYBOARD_BACKLIGHT_H,\
					EC_CFG_PWM_KEYBOARD_BACKLIGHT_L)

/*
 * Lid Angle Tablet Mode (1 bit)
 *
 * ec_config_has_lid_angle_tablet_mode() will return 1 is present or 0
 */
enum ec_cfg_lid_angle_tablet_mode_type {
	LID_ANGLE_TABLET_MODE_NO = 0,
	LID_ANGLE_TABLET_MODE_YES = 1,
};
#define EC_CFG_LID_ANGLE_TABLET_MODE_L		15
#define EC_CFG_LID_ANGLE_TABLET_MODE_H		15
#define EC_CFG_LID_ANGLE_TABLET_MODE_MASK \
				GENMASK(EC_CFG_LID_ANGLE_TABLET_MODE_H,\
					EC_CFG_LID_ANGLE_TABLET_MODE_L)

/*
 * LTE Modem Present (1 bit)
 *
 * ec_config_lte_present() will return 1 if present else 0.
 */
enum ec_cfg_lte_present_type {
	LTE_NONE = 0,
	LTE_PRESENT = 1,
};
#define EC_CFG_LTE_PRESENT_L		29
#define EC_CFG_LTE_PRESENT_H		29
#define EC_CFG_LTE_PRESENT_MASK \
				GENMASK(EC_CFG_LTE_PRESENT_H,\
					EC_CFG_LTE_PRESENT_L)

/*
 * Keyboard Layout (2 bit)
 *
 * ec_config_keyboard_layout() will return keyboard layout type.
 */
enum ec_cfg_keyboard_layout_type {
	KB_LAYOUT_DEFAULT = 0,
	KB_LAYOUT_1 = 1,
};
#define EC_CFG_KEYBOARD_LAYOUT_L		30
#define EC_CFG_KEYBOARD_LAYOUT_H		31
#define EC_CFG_KEYBOARD_LAYOUT_MASK \
				GENMASK(EC_CFG_KEYBOARD_LAYOUT_H,\
					EC_CFG_KEYBOARD_LAYOUT_L)


uint32_t get_cbi_fw_config(void);
enum ec_cfg_usb_db_type ec_config_get_usb_db(void);
enum ec_cfg_usb_mb_type ec_config_get_usb_mb(void);
enum ec_cfg_lid_accel_sensor_type ec_config_has_lid_accel_sensor(void);
enum ec_cfg_base_gyro_sensor_type ec_config_has_base_gyro_sensor(void);
enum ec_cfg_pwm_keyboard_backlight_type ec_config_has_pwm_keyboard_backlight(
									void);
enum ec_cfg_lid_angle_tablet_mode_type ec_config_has_lid_angle_tablet_mode(
									void);
enum ec_cfg_lte_present_type ec_config_lte_present(void);
enum ec_cfg_keyboard_layout_type ec_config_keyboard_layout(void);

#endif /* _ZORK_CBI_EC_FW_CONFIG__H_ */