19bc5f4f6SSven Peter /* SPDX-License-Identifier: GPL-2.0 */
29bc5f4f6SSven Peter #include <linux/atomic.h>
39bc5f4f6SSven Peter #include <linux/clk.h>
49bc5f4f6SSven Peter #include <linux/delay.h>
59bc5f4f6SSven Peter #include <linux/device.h>
69bc5f4f6SSven Peter #include <linux/i2c.h>
79bc5f4f6SSven Peter #include <linux/i2c-smbus.h>
89bc5f4f6SSven Peter #include <linux/io.h>
99bc5f4f6SSven Peter #include <linux/kernel.h>
10*e826192cSArminder Singh #include <linux/completion.h>
119bc5f4f6SSven Peter 
123abdc89bSSven Peter #define PASEMI_HW_REV_PCI -1
133abdc89bSSven Peter 
149bc5f4f6SSven Peter struct pasemi_smbus {
159bc5f4f6SSven Peter 	struct device		*dev;
169bc5f4f6SSven Peter 	struct i2c_adapter	 adapter;
179bc5f4f6SSven Peter 	void __iomem		*ioaddr;
18fd664ab2SSven Peter 	unsigned int		 clk_div;
193abdc89bSSven Peter 	int			 hw_rev;
20*e826192cSArminder Singh 	int			 use_irq;
21*e826192cSArminder Singh 	struct completion	 irq_completion;
229bc5f4f6SSven Peter };
239bc5f4f6SSven Peter 
249bc5f4f6SSven Peter int pasemi_i2c_common_probe(struct pasemi_smbus *smbus);
25*e826192cSArminder Singh 
26*e826192cSArminder Singh irqreturn_t pasemi_irq_handler(int irq, void *dev_id);
27