cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pinctrl-mcp23s08.h (1140B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/* MCP23S08 SPI/I2C GPIO driver */
      3
      4#include <linux/gpio/driver.h>
      5#include <linux/irq.h>
      6#include <linux/mutex.h>
      7#include <linux/pinctrl/pinctrl.h>
      8#include <linux/types.h>
      9
     10/*
     11 * MCP types supported by driver
     12 */
     13#define MCP_TYPE_S08	1
     14#define MCP_TYPE_S17	2
     15#define MCP_TYPE_008	3
     16#define MCP_TYPE_017	4
     17#define MCP_TYPE_S18	5
     18#define MCP_TYPE_018	6
     19
     20struct device;
     21struct regmap;
     22
     23struct pinctrl_dev;
     24
     25struct mcp23s08 {
     26	u8			addr;
     27	bool			irq_active_high;
     28	bool			reg_shift;
     29
     30	u16			irq_rise;
     31	u16			irq_fall;
     32	int			irq;
     33	bool			irq_controller;
     34	int			cached_gpio;
     35	/* lock protects regmap access with bypass/cache flags */
     36	struct mutex		lock;
     37
     38	struct gpio_chip	chip;
     39	struct irq_chip		irq_chip;
     40
     41	struct regmap		*regmap;
     42	struct device		*dev;
     43
     44	struct pinctrl_dev	*pctldev;
     45	struct pinctrl_desc	pinctrl_desc;
     46	struct gpio_desc        *reset_gpio;
     47};
     48
     49extern const struct regmap_config mcp23x08_regmap;
     50extern const struct regmap_config mcp23x17_regmap;
     51
     52int mcp23s08_probe_one(struct mcp23s08 *mcp, struct device *dev,
     53		       unsigned int addr, unsigned int type, unsigned int base);