summaryrefslogtreecommitdiff
path: root/src/ec/kontron/kempld/chip.h
blob: c44a10318275ace39b5a424962664d2c53ca394b (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
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef EC_KONTRON_KEMPLD_CHIP_H
#define EC_KONTRON_KEMPLD_CHIP_H

#define KEMPLD_NUM_UARTS	2
#define KEMPLD_NUM_GPIOS	16

enum kempld_gpio_mode {
	KEMPLD_GPIO_DEFAULT = 0,
	KEMPLD_GPIO_INPUT,
	KEMPLD_GPIO_OUTPUT_LOW,
	KEMPLD_GPIO_OUTPUT_HIGH,
};

enum kempld_uart_io {
	KEMPLD_UART_3F8 = 0,
	KEMPLD_UART_2F8 = 1,
	KEMPLD_UART_3E8 = 2,
	KEMPLD_UART_2E8 = 3,
};

enum kempld_i2c_frequency {
	KEMPLD_I2C_FREQ_STANDARD_MODE_100KHZ	= 100,
	KEMPLD_I2C_FREQ_FAST_MODE_400KHZ	= 400,
	KEMPLD_I2C_FREQ_FAST_PLUS_MODE_1MHZ	= 1000,
	KEMPLD_I2C_FREQ_MAX			= 2700,
};

struct kempld_uart {
	enum kempld_uart_io io;
	unsigned int irq;
};

struct ec_kontron_kempld_config {
	struct kempld_uart uart[KEMPLD_NUM_UARTS];
	enum kempld_gpio_mode gpio[KEMPLD_NUM_GPIOS];
	unsigned short i2c_frequency;
};

#endif /* EC_KONTRON_KEMPLD_CHIP_H */