summaryrefslogtreecommitdiff
path: root/src/ec/google/chromeec/Kconfig
blob: 2eb3b95c7d9c74a067ff0ccb197e996ae3f0b8f2 (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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
config EC_GOOGLE_CHROMEEC
	bool
	help
	  Google's Chrome EC

config EC_GOOGLE_CHROMEEC_ACPI_MEMMAP
	depends on EC_GOOGLE_CHROMEEC_LPC
	def_bool n
	help
	  When defined, ACPI accesses EC memmap data on ports 66h/62h. When
	  not defined, the memmap data is instead accessed on 900h-9ffh via
	  the LPC bus.

config EC_GOOGLE_CHROMEEC_ACPI_USB_PORT_POWER
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Expose methods for enabling and disabling port power on individual USB
	  ports through the EC.

config EC_GOOGLE_CHROMEEC_BOARDID
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Provides common routine for reading boardid from Chrome EC.

config EC_GOOGLE_CHROMEEC_I2C
	depends on EC_GOOGLE_CHROMEEC
	bool
	default n
	help
	  Google's Chrome EC via I2C bus.

config EC_GOOGLE_CHROMEEC_I2C_BUS
	depends on EC_GOOGLE_CHROMEEC_I2C
	hex "I2C bus for Google's Chrome EC"

config EC_GOOGLE_CHROMEEC_I2C_CHIP
	depends on EC_GOOGLE_CHROMEEC_I2C
	hex
	default 0x1e

config EC_GOOGLE_CHROMEEC_I2C_PROTO3
	depends on EC_GOOGLE_CHROMEEC_I2C
	bool
	default n
	help
	  Use only proto3 for i2c EC communication.

config EC_GOOGLE_CHROMEEC_ESPI
	depends on EC_GOOGLE_CHROMEEC && ARCH_X86  # Needs Plug-and-play.
	def_bool n
	select EC_GOOGLE_CHROMEEC_LPC
	help
	  Google Chrome EC via eSPI bus.

	  The EC communication code is the same between eSPI and LPC, so
	  this option simply enables the LPC EC code.  The eSPI device
	  still needs to correctly configure the bus transactions.

config EC_GOOGLE_CHROMEEC_LPC
	depends on EC_GOOGLE_CHROMEEC && ARCH_X86  # Needs Plug-and-play.
	def_bool n
	help
	  Google Chrome EC via LPC bus.

config EC_GOOGLE_CHROMEEC_MEC
	depends on EC_GOOGLE_CHROMEEC_LPC
	def_bool n
	select EC_GOOGLE_COMMON_MEC
	help
	  Microchip EC variant for LPC register access.

config EC_GOOGLE_CHROMEEC_PD
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Indicates that Google's Chrome USB PD chip is present.

config EC_GOOGLE_CHROMEEC_SPI
	depends on EC_GOOGLE_CHROMEEC
	def_bool n
	help
	  Google's Chrome EC via SPI bus.

config EC_GOOGLE_CHROMEEC_SPI_BUS
	depends on EC_GOOGLE_CHROMEEC_SPI
	hex

config EC_GOOGLE_CHROMEEC_SPI_WAKEUP_DELAY_US
	depends on EC_GOOGLE_CHROMEEC_SPI
	int
	default 0
	help
	  Force delay after asserting /CS to allow EC to wakeup.

config EC_GOOGLE_CHROMEEC_SPI_CHIP
	depends on EC_GOOGLE_CHROMEEC_SPI
	hex
	default 0x0

config EC_GOOGLE_CHROMEEC_BOARDNAME
	depends on EC_GOOGLE_CHROMEEC
	string "Chrome EC board name for EC"
	default ""
	help
	  The board name used in the Chrome EC code base to build
	  the EC firmware.  If set, the coreboot build with also
	  build the EC firmware and add it to the image.

config EC_GOOGLE_CHROMEEC_PD_BOARDNAME
	depends on EC_GOOGLE_CHROMEEC_PD
	string "Chrome EC board name for PD"
	default ""
	help
	  The board name used in the Chrome EC code base to build
	  the PD firmware.  If set, the coreboot build with also
	  build the EC firmware and add it to the image.

config EC_GOOGLE_CHROMEEC_RTC
	depends on EC_GOOGLE_CHROMEEC
	bool "Enable Chrome OS EC RTC"
	help
	  Enable support for the real-time clock on the Chrome OS EC. This
	  uses the EC_CMD_RTC_GET_VALUE command to read the current time.

choice
	prompt "Chrome EC firmware source"
	depends on EC_GOOGLE_CHROMEEC
	default EC_GOOGLE_CHROMEEC_FIRMWARE_BUILTIN if EC_GOOGLE_CHROMEEC_BOARDNAME != ""
	default EC_GOOGLE_CHROMEEC_FIRMWARE_NONE

	config EC_GOOGLE_CHROMEEC_FIRMWARE_NONE
	bool "No EC firmware is included"
	help
	  Disable building and including any EC firmware in the image.

	config EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL
	bool "External EC firmware is included"
	help
	  Include EC firmware binary in the image from an external source.
	  It is expected to be built externally.

	config EC_GOOGLE_CHROMEEC_FIRMWARE_BUILTIN
	bool "Builtin EC firmware is included"
	help
	  Build and include EC firmware binary in the image.

endchoice

config EC_GOOGLE_CHROMEEC_FIRMWARE_FILE
	string "Chrome EC firmware path and filename"
	depends on EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL
	help
	  The path and filename of the EC firmware file to use.

choice
	prompt "Chrome EC firmware source for PD"
	depends on EC_GOOGLE_CHROMEEC_PD
	default EC_GOOGLE_CHROMEEC_PD_FIRMWARE_BUILTIN if EC_GOOGLE_CHROMEEC_PD_BOARDNAME != ""
	default EC_GOOGLE_CHROMEEC_PD_FIRMWARE_NONE

	config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_NONE
	bool "No PD firmware is included"
	help
	  Disable building and including any PD firmware in the image.

	config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_EXTERNAL
	bool "External PD firmware is included"
	help
	  Include PD firmware binary in the image from an external source.
	  It is expected to be built externally.

	config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_BUILTIN
	bool "Builtin PD firmware is included"
	help
	  Build and include PD firmware binary in the image.

endchoice

config EC_GOOGLE_CHROMEEC_PD_FIRMWARE_FILE
	string "Chrome EC firmware path and filename for PD"
	depends on EC_GOOGLE_CHROMEEC_PD_FIRMWARE_EXTERNAL
	help
	  The path and filename of the PD firmware file to use.

config EC_GOOGLE_CHROMEEC_SWITCHES
	depends on EC_GOOGLE_CHROMEEC && VBOOT
	bool
	help
	  Enable support for Chrome OS mode switches provided by the Chrome OS
	  EC.