diff options
Diffstat (limited to 'uClinux-2.4.20-uc1/include')
-rw-r--r-- | uClinux-2.4.20-uc1/include/gpio/gpio_i2c.h | 47 | ||||
-rw-r--r-- | uClinux-2.4.20-uc1/include/gpio/gpio_interface.h | 40 |
2 files changed, 87 insertions, 0 deletions
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);
|