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