xref: /aosp_15_r20/external/coreboot/src/ec/kontron/kempld/chip.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef EC_KONTRON_KEMPLD_CHIP_H
4 #define EC_KONTRON_KEMPLD_CHIP_H
5 
6 #define KEMPLD_NUM_UARTS	2
7 #define KEMPLD_NUM_GPIOS	16
8 
9 enum kempld_gpio_mode {
10 	KEMPLD_GPIO_DEFAULT = 0,
11 	KEMPLD_GPIO_INPUT,
12 	KEMPLD_GPIO_OUTPUT_LOW,
13 	KEMPLD_GPIO_OUTPUT_HIGH,
14 };
15 
16 enum kempld_uart_io {
17 	KEMPLD_UART_3F8 = 0,
18 	KEMPLD_UART_2F8 = 1,
19 	KEMPLD_UART_3E8 = 2,
20 	KEMPLD_UART_2E8 = 3,
21 };
22 
23 enum kempld_i2c_frequency {
24 	KEMPLD_I2C_FREQ_STANDARD_MODE_100KHZ	= 100,
25 	KEMPLD_I2C_FREQ_FAST_MODE_400KHZ	= 400,
26 	KEMPLD_I2C_FREQ_FAST_PLUS_MODE_1MHZ	= 1000,
27 	KEMPLD_I2C_FREQ_MAX			= 2700,
28 };
29 
30 struct kempld_uart {
31 	enum kempld_uart_io io;
32 	unsigned int irq;
33 };
34 
35 struct ec_kontron_kempld_config {
36 	struct kempld_uart uart[KEMPLD_NUM_UARTS];
37 	enum kempld_gpio_mode gpio[KEMPLD_NUM_GPIOS];
38 	unsigned short i2c_frequency;
39 };
40 
41 #endif /* EC_KONTRON_KEMPLD_CHIP_H */
42