]> rtime.felk.cvut.cz Git - mx1ts.git/commitdiff
uprvene komentare, printk
authorRadek Pupák <pupakr1@fel.cvut.cz>
Mon, 16 Jun 2008 01:23:32 +0000 (03:23 +0200)
committerRadek Pupák <pupakr1@fel.cvut.cz>
Mon, 16 Jun 2008 01:23:32 +0000 (03:23 +0200)
mx1_ts-driver.c

index 50da8974f470d3f7098988dc9674de9974ab15cf..4b3798456680db8988804e2aaa760033a7f78613 100644 (file)
@@ -198,7 +198,7 @@ static inline void mx1ts_reg_clear_mask(struct mx1ts *mts , unsigned int reg, u3
 static inline void mx1ts_reg_write(struct mx1ts *mts, unsigned int reg, unsigned int val)
 {      
        __raw_writel(val, mts->mx1ts_mem+reg);
-       printk("mx1_touchscreen: zapisuji do : %p  hodnotu %x\n",mts->mx1ts_mem+reg, val);
+       printk(KERN_ERR "mx1_touchscreen: zapisuji do : %p  hodnotu %x\n",mts->mx1ts_mem+reg, val);
        
 }
 
@@ -207,7 +207,7 @@ static inline unsigned int mx1ts_reg_read(struct mx1ts *mts, unsigned int reg)
        unsigned int out;
 
        out =  __raw_readl( mts->mx1ts_mem + reg );     
-       /*printk("mx1_touchscreen: ctu z %p : %d \n",mts->mx1ts_mem + reg, out);*/
+       /*printk(KERN_ERR "mx1_touchscreen: ctu z %p : %d \n",mts->mx1ts_mem + reg, out);*/
                
        return out;
 }
@@ -282,7 +282,7 @@ static void mx1ts_enable_pen_touch_interrupt(struct mx1ts *mts)
        value = mx1ts_reg_read(mts, ASP_ICNTLR);
        value |= /*ASP_POL detekuje zvednuti |*/ ASP_EDGE | ASP_PIRQE;
        mx1ts_reg_write(mts, ASP_ICNTLR, value);
-       printk("mx1_touchscreen: aktivuji pen down interrupt \n");
+       printk(KERN_ERR "mx1_touchscreen: aktivuji pen down interrupt \n");
 }
 
 static void mx1ts_disable_pen_touch_interrupt(struct mx1ts *mts)
@@ -293,18 +293,17 @@ static void mx1ts_disable_pen_touch_interrupt(struct mx1ts *mts)
        value = mx1ts_reg_read(mts, ASP_ICNTLR);
        value &= ~ASP_PIRQE;
        mx1ts_reg_write(mts, ASP_ICNTLR, value);
-       printk("mx1_touchscreen: deaktivuji pen down interrupt \n");
+       printk(KERN_ERR "mx1_touchscreen: deaktivuji pen down interrupt \n");
 }
 
 static void mx1ts_enable_pen_up_interrupt(struct mx1ts *mts)
 {
        unsigned int value;
 
-       /* Enable pen up interrupt. XXX: This feature is undocumented. */
        value = mx1ts_reg_read(mts, ASP_ICNTLR);
        value |= ASP_PUIE; 
        mx1ts_reg_write(mts, ASP_ICNTLR, value);
-       printk("mx1_touchscreen: aktivuji penup interrupt \n");
+       printk(KERN_ERR "mx1_touchscreen: aktivuji pen up interrupt \n");
 }
 
 static void mx1ts_disable_pen_up_interrupt(struct mx1ts *mts)
@@ -315,7 +314,7 @@ static void mx1ts_disable_pen_up_interrupt(struct mx1ts *mts)
        value = mx1ts_reg_read(mts, ASP_ICNTLR);
        value &= ~ASP_PUIE;
        mx1ts_reg_write(mts, ASP_ICNTLR, value);
-       printk("mx1_touchscreen: deaktivuji penup interrupt \n");
+       printk(KERN_ERR "mx1_touchscreen: deaktivuji penup interrupt \n");
 }
 
 
@@ -413,18 +412,18 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id)
        mx1_cal_range_x = 1;
        mx1_cal_range_y = 1;
        
-/*     printk("<1> mx1_touchscreen: mx1_pendata_irq interrupt recived from struct %p\n", mts);*/
+/*     printk(KERN_ERR "mx1_touchscreen: mx1_pendata_irq interrupt recived from struct %p\n", mts);*/
                
-       if (mx1ts_reg_read(mts, ASP_ISTATR) & ASP_PUIS) {
-               mx1ts_reg_set_mask(mts, ASP_ISTATR, ASP_PUIS);
+       if (mx1ts_reg_read(mts, ASP_ISTATR) & ASP_PUIS) {               /*pen up interupt pending*/
+               mx1ts_reg_set_mask(mts, ASP_ISTATR, ASP_PUIS);          /*clearing pen up interupt*/
 
-               mx1ts_disable_auto_sample(mts);
+               mx1ts_disable_auto_sample(mts);                         
                mx1ts_disable_pen_up_interrupt(mts);
                mx1ts_enable_pen_touch_interrupt(mts);
 
-               if(mts->is_open)
+               if(mts->is_open)                                        /*report last known touch*/
                        mx1ts_evt_add(mts->ts_idev, 0, 0, 0);
-               printk(KERN_ERR "Zaplnena fifo.\n");
+               printk(KERN_ERR "Pen up interrupt.\n");                 
                mx1ts_flush_fifo(mts);
 
                return IRQ_HANDLED;
@@ -445,7 +444,7 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id)
                    (mts->cal_auto_zero >= mts->cal_range_y)) {
                        // Invalid data. 
                        printk(KERN_ERR "Invalid data.\n");
-                       mx1ts_flush_fifo(mts);
+                       mx1ts_flush_fifo(mts);                  /*if there are some older data*/
                        mx1ts_start_auto_calibration(mts);
                        return IRQ_NONE; /* return IRQ_HANDLED; */
                }
@@ -456,8 +455,8 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id)
                
                
                
-               value = mx1ts_reg_read(mts, ASP_ACNTLCR);
-               value &= ~0x04000000; // Undocumented. 
+               value = mx1ts_reg_read(mts, ASP_ACNTLCR); /*switching S0..S7 by internal logic*/
+               value &= ~0x04000000; 
                mx1ts_reg_write(mts, ASP_ACNTLCR, value);
 
                mts->auto_calibration = 0;
@@ -492,24 +491,6 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-/* static void mx1ts_pokus_zapnout(struct mx1ts *mts) {
-       mx1ts_reg_write(mts, ASP_CLKDIV, 0x1F); //clok divide register
-       mx1ts_reg_write(mts, ASP_ICNTLR , ASP_PUIE | ASP_PDRE | ASP_PFFE | ASP_EDGE | ASP_PIRQE);       //interupt control register //0X00000833
-       mx1ts_reg_write(mts, ASP_PSMPLRG, 0x0000487F);  //pen a/d sample rate control register 
-       mx1ts_reg_write(mts,ASP_ACNTLCR, ASP_CLKEN | ASP_AZE | ASP_AUTO | (10<<12) | 3);        //control register
-
-} */
-
-static void mx1ts_enable_pen_up_irq(struct mx1ts *mts)
-{
-       unsigned int value;
-       printk(KERN_ERR "enabling pen up irq.\n");      
-
-       value = mx1ts_reg_read(mts, ASP_ICNTLR);
-       value |= ASP_PUIE;
-       mx1ts_reg_write(mts, ASP_ICNTLR, value);
-}
-
 /*
  * Handle the touch interrupt, generated when the pen is pressed/
  * released.
@@ -568,22 +549,22 @@ static int mx1ts_on(struct mx1ts *mts)
                return -1;      
        }
 
-       printk("<1>mx1ts: request_mem_region \tOK\n");  
+       printk(KERN_ERR "mx1ts: request_mem_region \tOK\n");    
 
        mts->mx1ts_mem = ioremap ( ASP_BASE_ADDR, 0x38);
        
-       printk("<1>mx1ts: memory remaped on %p \n", mts->mx1ts_mem);
+       printk(KERN_ERR "mx1ts: memory remaped on %p \n", mts->mx1ts_mem);
        
 
 
-       printk("<1>mx1ts: enabling irqs\n");
+       printk(KERN_ERR "mx1ts: enabling irqs\n");
        if ((ret = mx1ts_enable_irqs(mts)))
                return ret;
-       printk("<1>mx1ts: irqs enabled \tOK\n");        
+       printk(KERN_ERR "mx1ts: irqs enabled \tOK\n");  
 
        
        mx1ts_reset_asp(mts);
-       printk("<1>mx1ts: reset\tOK\n");
+       printk(KERN_ERR "mx1ts: reset\tOK\n");
        
        return 0;
 }
@@ -593,7 +574,7 @@ static void mx1ts_close(struct input_dev *idev)
        struct mx1ts *mts = dev_get_drvdata(idev->dev.parent);
        mts->is_open = 0;
        mx1ts_reset_asp(mts);
-       printk("<1>mx1ts: reset\tOK\n");
+       printk(KERN_ERR "mx1ts: reset\tOK\n");
        mx1ts_disable_pen_touch_interrupt(mts);
        mx1ts_disable_pen_up_interrupt(mts);
 
@@ -605,7 +586,7 @@ static int mx1ts_open(struct input_dev *idev)
        mts->is_open = 1;
 
        mx1ts_enable_pen_touch_interrupt(mts);
-       printk("<1>mx1ts: zapnuti touch interrupt\n");  
+       printk(KERN_ERR "mx1ts: zapnuti touch interrupt\n");    
        return 0;
 }
 
@@ -613,21 +594,20 @@ static int mx1ts_probe(struct platform_device *dev)
 {
        struct mx1ts *mts;
        struct input_dev *idev;
-       int error, id, x_res, y_res;
+       int error, x_res, y_res;
 
-//     mx1ts_disable_pen_touch_interrupt();
-//     mx1ts_start_auto_calibration();
-//     mx1ts_enable_pen_up_interrupt();
+       /* TODO jak poznat ze zarizeni je pritomne ? */
 
-       mts = kzalloc(sizeof(struct mx1ts), GFP_KERNEL);        //alokuje pamet
+       mts = kzalloc(sizeof(struct mx1ts), GFP_KERNEL);        /* alokuje pamet */
        idev = input_allocate_device();
        if (!mts || !idev) {
                error = -ENOMEM;
+               printk(KERN_ERR "mx1ts: failed allocate memory for struct mx1ts or idev\n");    
                goto err_free_devs;
-               return error;   //XXX
+               return error;   
        }
        
-       mx1ts_on(mts);  
+       mx1ts_on(mts);                  /* remaping registers, reseting device */
 
        mts->ts_idev = idev;
        //ucb->adcsync = adcsync;
@@ -655,21 +635,19 @@ static int mx1ts_probe(struct platform_device *dev)
        }
        printk(KERN_DEBUG "UCB1400: found IRQ %d\n", ucb->irq);*/
 
-       //input_set_drvdata(idev, mts);
+       //input_set_drvdata(idev, mts);         /*moznost ulozit ukazatel na trukturu do input_driver*/
        platform_set_drvdata(dev, mts);
 
        idev->dev.parent        = &dev->dev;
        idev->name              = "MX1 touchscreen interface";
-       idev->id.vendor         = (unsigned int) 345;//mx1ts_reg_read(mx1_ts, AC97_VENDOR_ID1);
-       idev->id.product        = id;
+       idev->id.vendor         = (unsigned int) 345;   /*mx1ts_reg_read(mx1_ts, AC97_VENDOR_ID1);*/
+       idev->id.product        = (unsigned int) 354;   /*id;*/
        idev->open              = mx1ts_open;
        idev->close             = mx1ts_close;
        idev->evbit[0]          = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
        idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
 
-       //idev->bustype         = BUS_HOST;
-
-       printk("<1> mx1ts: setting idev struct \tOK\n");
+       printk(KERN_ERR "mx1ts: setting idev struct \tOK\n");
        
        x_res = 35000;
        y_res = 35000;
@@ -681,17 +659,16 @@ static int mx1ts_probe(struct platform_device *dev)
 
        error = input_register_device(idev);
        if (error)
-               goto err_free_irq;
+               printk(KERN_ERR "mx1ts: error while register input device\n");
+               goto err_free_devs;
 
-       printk("<1> mx1ts: input device registered \tOK\n");
+       printk(KERN_ERR "mx1ts: input device registered \tOK\n");
 
        return 0;
 
- err_free_irq:
-//     free_irq(ucb->irq, ucb);
- err_free_devs:
-       printk("<1> mx1ts: chyba pri nastavovani irq  \n");
-       input_free_device(idev);
+  err_free_devs:
+       printk(KERN_ERR "mx1ts: error in device probe  \n");
+       /*input_free_device(idev);*/
        kfree(mts);
        return error;
 
@@ -715,7 +692,7 @@ static int mx1ts_remove(struct platform_device *dev)
                
        kfree(mts);
 
-       printk("<1> Removing driver \tOK\n");
+       printk(KERN_ERR "Removing driver \tOK\n");
        return 0;
 }