162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#include <linux/atomic.h> 362306a36Sopenharmony_ci#include <linux/clk.h> 462306a36Sopenharmony_ci#include <linux/delay.h> 562306a36Sopenharmony_ci#include <linux/device.h> 662306a36Sopenharmony_ci#include <linux/i2c.h> 762306a36Sopenharmony_ci#include <linux/i2c-smbus.h> 862306a36Sopenharmony_ci#include <linux/io.h> 962306a36Sopenharmony_ci#include <linux/kernel.h> 1062306a36Sopenharmony_ci#include <linux/completion.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#define PASEMI_HW_REV_PCI -1 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct pasemi_smbus { 1562306a36Sopenharmony_ci struct device *dev; 1662306a36Sopenharmony_ci struct i2c_adapter adapter; 1762306a36Sopenharmony_ci void __iomem *ioaddr; 1862306a36Sopenharmony_ci unsigned int clk_div; 1962306a36Sopenharmony_ci int hw_rev; 2062306a36Sopenharmony_ci int use_irq; 2162306a36Sopenharmony_ci struct completion irq_completion; 2262306a36Sopenharmony_ci}; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciint pasemi_i2c_common_probe(struct pasemi_smbus *smbus); 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciirqreturn_t pasemi_irq_handler(int irq, void *dev_id); 27