1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* SC16IS7xx SPI/I2C tty serial driver */ 3 4 #ifndef _SC16IS7XX_H_ 5 #define _SC16IS7XX_H_ 6 7 #include <linux/mod_devicetable.h> 8 #include <linux/regmap.h> 9 #include <linux/types.h> 10 11 #define SC16IS7XX_MAX_PORTS 2 /* Maximum number of UART ports per IC. */ 12 13 struct device; 14 15 struct sc16is7xx_devtype { 16 char name[10]; 17 int nr_gpio; 18 int nr_uart; 19 }; 20 21 extern const struct regmap_config sc16is7xx_regcfg; 22 23 extern const struct of_device_id sc16is7xx_dt_ids[]; 24 25 extern const struct sc16is7xx_devtype sc16is74x_devtype; 26 extern const struct sc16is7xx_devtype sc16is750_devtype; 27 extern const struct sc16is7xx_devtype sc16is752_devtype; 28 extern const struct sc16is7xx_devtype sc16is760_devtype; 29 extern const struct sc16is7xx_devtype sc16is762_devtype; 30 31 const char *sc16is7xx_regmap_name(u8 port_id); 32 33 unsigned int sc16is7xx_regmap_port_mask(unsigned int port_id); 34 35 int sc16is7xx_probe(struct device *dev, const struct sc16is7xx_devtype *devtype, 36 struct regmap *regmaps[], int irq); 37 38 void sc16is7xx_remove(struct device *dev); 39 40 #endif /* _SC16IS7XX_H_ */ 41