2 * drivers/i2c/chips/gpio_expander_omap.c
4 * Copyright (C) 2004 Texas Instruments Inc
7 * gpio expander is used to configure IrDA, camera and audio devices on omap 1710 processor.
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
15 #include <linux/types.h>
16 #include <linux/i2c.h>
17 #include <linux/errno.h>
19 int read_gpio_expa(u8 * val, int addr);
20 int write_gpio_expa(u8 val, int addr);
22 #define OMAP_IRDA_DEBUG 0
24 #if (OMAP_IRDA_DEBUG > 0)
25 #define DBG(format, args...) printk(KERN_ERR "%s(): " format, __FUNCTION__, ## args);
26 #define DBG_IRQ(format, args...) printk(KERN_ERR "%s(): " format, __FUNCTION__, ## args);
28 #define DBG(format, args...)
29 #define DBG_IRQ(format, args...)
32 int write_gpio_expa(u8 val, int addr)
34 struct i2c_adapter *adap;
36 struct i2c_msg msg[1];
37 unsigned char data[1];
39 adap = i2c_get_adapter(0);
42 msg->addr = addr; /* I2C address of GPIO EXPA */
47 err = i2c_transfer(adap, msg, 1);
53 /* Read from I/O EXPANDER on the H3 board.
54 * The IO expanders need an independent I2C client driver.
57 int read_gpio_expa(u8 * val, int addr)
59 struct i2c_adapter *adap;
61 struct i2c_msg msg[1];
62 unsigned char data[1];
64 adap = i2c_get_adapter(0);
67 msg->addr = addr; /* I2C address of GPIO EXPA */
68 msg->flags = I2C_M_RD;
71 err = i2c_transfer(adap, msg, 1);
74 DBG("I2C: Read data is %x\n", (u8) * data);
80 EXPORT_SYMBOL(read_gpio_expa);
81 EXPORT_SYMBOL(write_gpio_expa);