From f10b00be2b0a5efbb8024e8c90b4c0db31a95b7a Mon Sep 17 00:00:00 2001 From: Oliver Schinagl Date: Fri, 18 Mar 2011 21:54:51 +0000 Subject: This commit goes with the gpio commit earlier (-r 10:12) --- uClinux-2.4.20-uc1/include/gpio/gpio_i2c.h | 47 ++++++++++++++++++++++++ uClinux-2.4.20-uc1/include/gpio/gpio_interface.h | 40 ++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 uClinux-2.4.20-uc1/include/gpio/gpio_i2c.h create mode 100644 uClinux-2.4.20-uc1/include/gpio/gpio_interface.h diff --git a/uClinux-2.4.20-uc1/include/gpio/gpio_i2c.h b/uClinux-2.4.20-uc1/include/gpio/gpio_i2c.h new file mode 100644 index 0000000..af8e031 --- /dev/null +++ b/uClinux-2.4.20-uc1/include/gpio/gpio_i2c.h @@ -0,0 +1,47 @@ +#ifndef __GPIO_I2C_H_ +#define __GPIO_I2C_H_ + +//I2C define +#define GPIO_I2C_SDA 0 +#define GPIO_I2C_SCLK 1 + +/*schen add 2004-7-22 15:55 for smartcard module*/ +#define GPIO_SC_IO1 2 +#define GPIO_SC_IO2 3 +#define GPIO_SC_CLK 4 + +#define GPIO_I2C_RD 0x01 +#define GPIO_I2C_WR 0x02 + +/*schen add 2004-7-22 16:17 for smartcard module*/ +#define GPIO_I2C_LOW 0 +#define GPIO_I2C_HIGH 1 + +/*schen add 2004-7-22 15:55 for smartcard module*/ +#define I2C_ACK 0 +#define I2C_NAK 1 + +#define GPIO_I2C_DELAY 200 //400khz (fast-mode) / 800 //100khz +#define GPIO_I2C_MAX_BYTES 8192 //max bytes to be transfer one time + +void GPIO_Enable_I2C_Channel(void); /* choose gpio0 and gpio1 */ + + +int GPIO_I2C_Start(void); /* start I2C communication */ +void GPIO_I2C_Stop(void); /* stop I2C communication */ +int GPIO_I2C_Send_Byte(unsigned char c); /* write a byte to slave * device */ +int GPIO_I2C_Read_Ack(void); /* read acknowledge from * slave device */ +int GPIO_I2C_Read_Byte(void); /* read a byte from slave * device */ +int GPIO_I2C_Read_Last_Byte(void); /* read last byte from * slave device */ +int GPIO_I2C_Send_Ack(void); /* master send acknowledge * when reading */ +int GPIO_I2C_Send_NoAck(void); /* master send no * acknowledge before stop */ +int output_data(unsigned char dat); +unsigned char input_data(unsigned char ack); + +#if 1 +#define I2C_DEBUG(x) +#else +#define I2C_DEBUG(x) x +#endif + +#endif diff --git a/uClinux-2.4.20-uc1/include/gpio/gpio_interface.h b/uClinux-2.4.20-uc1/include/gpio/gpio_interface.h new file mode 100644 index 0000000..e371810 --- /dev/null +++ b/uClinux-2.4.20-uc1/include/gpio/gpio_interface.h @@ -0,0 +1,40 @@ +#define GPIO_OUT 1 +#define GPIO_IN 0 + +#define GPIO_TIMEOUT (-2) +#define GPIO_ERROR (-1) +#define GPIO_OK (0) + +#define GPIO_LOW 0 +#define GPIO_HIGH 1 + +#define GPIO_CHANNEL_0_3 0xFFFFFFFC +#define GPIO_CHANNEL_9_4 0xFFFFFFF3 +#define GPIO_CHANNEL_11_10 0xFFFFFFCF +#define GPIO_CHANNEL_12 0xFFFFFF3F +#define GPIO_CHANNEL_13 0xFFFFFCFF +#define GPIO_CHANNEL_14 0xFFFFF3FF +#define GPIO_CHANNEL_16_15 0xFFFFCFFF +#define GPIO_CHANNEL_17 0xFFFFCFFF +#define GPIO_CHANNEL_18 0xFFFCFFFF +#define GPIO_CHANNEL_19 0xFFF3FFFF +#define GPIO_CHANNEL_20 0xFFCFFFFF + + +extern void GPIO_Enable_Channel(int channel);//normal I/O mode + +extern int Set_Dir(int channel, int dir); +extern void GPIO_SET(int channel_num, int sig_status); +extern int GPIO_GET(int channel_num);//0-20 + +extern int GPIO_EnableChannel0_3(int mode); +extern int GPIO_EnableChannel4_9(int mode); +extern int GPIO_EnableChannel10_11(int mode); +extern int GPIO_EnableChannel12(int mode); +extern int GPIO_EnableChannel13(int mode); +extern int GPIO_EnableChannel14(int mode); +extern int GPIO_EnableChannel15_16(int mode); +extern int GPIO_EnableChannel17(int mode); +extern int GPIO_EnableChannel18(int mode); +extern int GPIO_EnableChannel19(int mode); +extern int GPIO_EnableChannel20(int mode); -- cgit v0.12