-vis On S3c2410x Delta Driver - -

// Delta-Sigma accumulator (simple 1st order) accum = accum + (data_bit ? DELTA_VREF : 0); bit_count++;

static irqreturn_t delta_irq_handler(int irq, void *dev_id) // Decimation logic here (see section 3.3) return IRQ_HANDLED; -vis On S3c2410x Delta Driver -

A custom ioctl call is implemented:

static long vis_delta_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) struct vis_delta_device *vis = filp->private_data; switch(cmd) case VIS_SET_BRIGHTNESS: // Map Delta-sigma value to LCD PWM writel(arg, vis->reg_base + S3C2410_LCDCON5); break; case VIS_GET_TOUCH_RAW: copy_to_user((void __user *)arg, vis->delta_sigma_samples, sizeof(vis->delta_sigma_samples)); break; // Delta-Sigma accumulator (simple 1st order) accum =

static int vis_delta_remove(struct platform_device *pdev) free_irq(delta_irq, NULL); gpio_free(delta_data_pin); return 0; static irqreturn_t delta_irq_handler(int irq

printk(KERN_INFO "vis Delta driver loaded on S3C2410X\n"); return 0; err_irq: gpio_free(delta_data_pin); return ret;