-vis On S3c2410x Delta Driver - -
static irqreturn_t delta_irq_handler(int irq, void *dev_id) // Decimation logic here (see section 3.3) return IRQ_HANDLED;
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; -vis On S3c2410x Delta Driver -
For modern engineers maintaining legacy S3C2410X products, the provided analysis and code skeleton serve as a roadmap to either revive the original -vis functionality or safely migrate it to a newer kernel using the IIO framework. Always consult the S3C2410X user manual (revision 1.2) and the specific Delta peripheral's datasheet—timing mismatches between the two are the primary source of "ghost touches" or video corruption. DELTA_VREF : 0); bit_count++; A custom ioctl call
// Delta-Sigma accumulator (simple 1st order) accum = accum + (data_bit ? DELTA_VREF : 0); bit_count++; DELTA_VREF : 0)
A custom ioctl call is implemented:
static int delta_irq = IRQ_EINT11; static int delta_data_pin = S3C2410_GPG(10);