delete some invalid code in spi_i2c.c
authorluowei <lw@rock-chips.com>
Fri, 15 Oct 2010 02:43:49 +0000 (10:43 +0800)
committerluowei <lw@rock-chips.com>
Fri, 15 Oct 2010 02:44:37 +0000 (10:44 +0800)
arch/arm/mach-rk2818/include/mach/spi_fpga.h
drivers/fpga/spi_fpga_fw.c
drivers/fpga/spi_i2c.c

index 652c6a98e039c7b96a7bee49862ad751323d2e64..1c9a4f9faba200e024fb0782d7d90642cfaf18c7 100755 (executable)
@@ -13,7 +13,6 @@ defines of FPGA chip ICE65L08's register
 #define SPI_FPGA_STANDBY_PIN RK2818_PIN_PH7\r
 #define SPI_FPGA_RST_PIN RK2818_PIN_PF4\r
 \r
-#define SPI_FPGA_I2C_EVENT     1\r
 #define SPI_FPGA_POLL_WAIT     0\r
 #define SPI_FPGA_TRANS_WORK    1\r
 #define SPI_FPGA_TEST_DEBUG    0\r
@@ -95,9 +94,7 @@ struct spi_i2c
        unsigned char interrupt;\r
        unsigned char i2c_data_width[2];\r
        unsigned int  speed[2];\r
-       #if SPI_FPGA_I2C_EVENT\r
        wait_queue_head_t wait_w,wait_r;\r
-       #endif\r
 };\r
 \r
 struct spi_dpram\r
index c40de96b633cfc48f08635611c003909fce0653f..0e571e52444c044022c4bbde8fe5437813c57dbf 100755 (executable)
@@ -235,17 +235,17 @@ int __init fpga_dl_fw(void)
 {\r
     printk("%s:start to load FPGA HEX.........\n",__FUNCTION__);\r
 \r
-       rk2818_mux_api_set(GPIOE0_VIPDATA0_SEL_NAME,0);\r
-       gpio_request(RK2818_PIN_PE0, NULL);\r
-       gpio_direction_output(RK2818_PIN_PE0,1);\r
-       udelay(2);\r
-       gpio_direction_output(RK2818_PIN_PE0,0);\r
+       //rk2818_mux_api_set(GPIOE0_VIPDATA0_SEL_NAME,0);\r
+       //gpio_request(RK2818_PIN_PE0, NULL);\r
+       //gpio_direction_output(RK2818_PIN_PE0,1);\r
+       //udelay(2);\r
+       //gpio_direction_output(RK2818_PIN_PE0,0);\r
 \r
     spi_fpga_dlfw(spibyte, CONFIGURATION_SIZE);\r
 \r
-       gpio_direction_output(RK2818_PIN_PE0,1);\r
-       udelay(2);\r
-       gpio_direction_output(RK2818_PIN_PE0,0);\r
+       //gpio_direction_output(RK2818_PIN_PE0,1);\r
+       //udelay(2);\r
+       //gpio_direction_output(RK2818_PIN_PE0,0);\r
 \r
        return 0;\r
 }\r
index 75c80f55abf3f7458708631e2d72de666c9268d9..dca43e1233d95b946cd979103c663bb792b9b536 100755 (executable)
@@ -58,35 +58,28 @@ int spi_i2c_handle_irq(struct spi_fpga_port *port,unsigned char channel)
        DBG("Enter::%s,LINE=%d ret = [%d]\n",__FUNCTION__,__LINE__,ret);\r
        if(INT_I2C_READ_ACK == (ret & 0x07))\r
        {\r
-\r
                port->i2c.interrupt = INT_I2C_READ_ACK; \r
-       #if SPI_FPGA_I2C_EVENT\r
                wake_up(&port->i2c.wait_r);\r
-       #endif\r
        }\r
        else if(INT_I2C_READ_NACK ==(ret & 0x07))\r
        {\r
-               #if SPI_FPGA_I2C_EVENT\r
+               port->i2c.interrupt = INT_I2C_READ_NACK;\r
                wake_up(&port->i2c.wait_r);\r
-               #endif\r
-               printk("Error::read no ack!!check the I2C slave device ret=%d \n",ret);\r
+               printk("err:read no ack!ch=%d\n",channel);\r
        }\r
        else if(INT_I2C_WRITE_ACK == (ret & 0x07))\r
        {\r
                port->i2c.interrupt = INT_I2C_WRITE_ACK;\r
-               #if SPI_FPGA_I2C_EVENT\r
                wake_up(&port->i2c.wait_w);\r
-               #endif\r
        }\r
        else if(INT_I2C_WRITE_NACK == (ret & 0x07))\r
        {\r
-               #if SPI_FPGA_I2C_EVENT\r
+               port->i2c.interrupt = INT_I2C_WRITE_NACK;\r
                wake_up(&port->i2c.wait_w);\r
-               #endif\r
-               printk("Error::write no ack!!check the I2C slave device ret=%d \n",ret);\r
+               printk("err:write no ack!ch=%d\n",channel);\r
        }\r
        else\r
-               printk("Error:ack value error!!check the I2C slave device ret=%d \n",ret);\r
+               printk("err:fpga's ack value error!\n");\r
        return port->i2c.interrupt;\r
 }\r
 \r
@@ -158,7 +151,6 @@ int spi_i2c_readbuf(struct spi_fpga_port *port ,struct i2c_msg *pmsg,int ch)
        reg = channel |ICE_SEL_I2C_FIFO |ICE_SEL_I2C_STOP;\r
        spi_out(port,reg,len,SEL_I2C);\r
 \r
-#if SPI_FPGA_I2C_EVENT\r
        ret = wait_event_timeout(port->i2c.wait_r, ((port->i2c.interrupt == INT_I2C_READ_ACK) || (port->i2c.interrupt == INT_I2C_READ_NACK)), msecs_to_jiffies(60));    \r
        if(ret == 0)\r
        {\r
@@ -170,38 +162,14 @@ int spi_i2c_readbuf(struct spi_fpga_port *port ,struct i2c_msg *pmsg,int ch)
                result = spi_in(port,channel,SEL_I2C);\r
                pmsg->buf[i] = 0;\r
                pmsg->buf[i] = result & 0xff ;\r
+               DBG("r_buf[%d]=0x%x\n",i,pmsg->buf[i]);\r
        }\r
        spin_lock(&port->i2c.i2c_lock);\r
        port->i2c.interrupt &= INT_I2C_READ_MASK;\r
        spin_unlock(&port->i2c.i2c_lock);\r
        ret = pmsg->len;\r
-#else\r
-       j = I2C_COUNT;\r
-       while(j--)\r
-\r
-       {\r
-               if(port->i2c.interrupt == INT_I2C_READ_ACK)\r
-               {                                               \r
-                       //printk("%s:line=%d\n",__FUNCTION__,__LINE__);\r
-                       for(i = 0;i<len;i++)\r
-                       {\r
-                               result = spi_in(port,channel,SEL_I2C);\r
-                               pmsg->buf[i] = 0;\r
-                               pmsg->buf[i] = result & 0xff ;\r
-                       }\r
-                       spin_lock(&port->i2c.i2c_lock);\r
-                       port->i2c.interrupt &= INT_I2C_READ_MASK;\r
-                       spin_unlock(&port->i2c.i2c_lock);\r
-                       ret = pmsg->len;\r
-                       break;\r
-               }\r
-               else\r
-                       msleep(2);\r
-       }\r
-       \r
-#endif\r
        //for(i = 0;i<len;i++)\r
-               //printk("pmsg->buf[%d] = 0x%x \n",i,pmsg->buf[i]);     \r
+       //printk("pmsg->buf[%d] = 0x%x \n",i,pmsg->buf[i]);     \r
        return ret>0 ? ret:-1;\r
        \r
 }\r
@@ -243,12 +211,13 @@ int spi_i2c_writebuf(struct spi_fpga_port *port ,struct i2c_msg *pmsg,int ch)
        spi_out(port,reg,len,SEL_I2C);\r
        reg = channel  |ICE_SEL_I2C_TRANS;\r
        //data;\r
-       for(i = 0 ;i < len;i++){\r
+       for(i = 0 ;i < len;i++)\r
+       {\r
+               DBG("w_buf[%d]=0x%x\n",i,pmsg->buf[i]);\r
                if(i==len-1 &&  pmsg->read_type == I2C_NORMAL)\r
                {\r
                reg = channel|ICE_SEL_I2C_STOP;\r
                spi_out(port,reg,pmsg->buf[i],SEL_I2C);\r
-       #if SPI_FPGA_I2C_EVENT\r
                ret = wait_event_timeout(port->i2c.wait_w, ((port->i2c.interrupt == INT_I2C_WRITE_ACK) || (port->i2c.interrupt == INT_I2C_WRITE_NACK)), msecs_to_jiffies(60));\r
                if(ret == 0)\r
                {\r
@@ -259,23 +228,6 @@ int spi_i2c_writebuf(struct spi_fpga_port *port ,struct i2c_msg *pmsg,int ch)
                port->i2c.interrupt &= INT_I2C_WRITE_MASK;\r
                spin_unlock(&port->i2c.i2c_lock);\r
                ret =  pmsg->len;\r
-       #else\r
-               j = I2C_COUNT;  \r
-               while(j--)\r
-               {               \r
-                       if(port->i2c.interrupt  == INT_I2C_WRITE_ACK)\r
-                       {               \r
-                               //printk("wait num= %d,port->i2c.interrupt = 0x%x\n",i,port->i2c.interrupt);\r
-                               spin_lock(&port->i2c.i2c_lock);\r
-                               port->i2c.interrupt &= INT_I2C_WRITE_MASK;\r
-                               spin_unlock(&port->i2c.i2c_lock);\r
-                               ret =  pmsg->len;\r
-                               break;\r
-                       }\r
-                       else\r
-                               msleep(2);\r
-               }\r
-       #endif\r
                }\r
                else if(i==len-1 &&  pmsg->read_type == I2C_NO_STOP)\r
                {                                       \r
@@ -558,11 +510,9 @@ int spi_i2c_register(struct spi_fpga_port *port,int num)
        \r
 #endif\r
 \r
-#if SPI_FPGA_I2C_EVENT\r
        init_waitqueue_head(&port->i2c.wait_w);\r
        init_waitqueue_head(&port->i2c.wait_r);\r
-#endif\r
-\r
+       \r
        return 0;       \r
        \r
 }\r