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