Lines Matching defs:lchip
140 struct locomo *lchip = irq_desc_get_handler_data(desc);
147 req = locomo_readl(lchip->base + LOCOMO_ICR) & 0x0f00;
153 irq = lchip->irq_base;
169 struct locomo *lchip = irq_data_get_irq_chip_data(d);
171 r = locomo_readl(lchip->base + LOCOMO_ICR);
172 r &= ~(0x0010 << (d->irq - lchip->irq_base));
173 locomo_writel(r, lchip->base + LOCOMO_ICR);
178 struct locomo *lchip = irq_data_get_irq_chip_data(d);
180 r = locomo_readl(lchip->base + LOCOMO_ICR);
181 r |= (0x0010 << (d->irq - lchip->irq_base));
182 locomo_writel(r, lchip->base + LOCOMO_ICR);
192 static void locomo_setup_irq(struct locomo *lchip)
194 int irq = lchip->irq_base;
199 irq_set_irq_type(lchip->irq, IRQ_TYPE_EDGE_FALLING);
200 irq_set_chained_handler_and_data(lchip->irq, locomo_handler, lchip);
203 for ( ; irq <= lchip->irq_base + 3; irq++) {
205 irq_set_chip_data(irq, lchip);
219 locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)
234 if (lchip->dev->dma_mask) {
235 dev->dma_mask = *lchip->dev->dma_mask;
241 dev->dev.parent = lchip->dev;
244 dev->dev.coherent_dma_mask = lchip->dev->coherent_dma_mask;
247 dev->mapbase = lchip->base + info->offset;
252 dev->irq[0] = (lchip->irq_base == NO_IRQ) ?
253 NO_IRQ : lchip->irq_base + info->irq[0];
275 struct locomo *lchip = platform_get_drvdata(dev);
283 lchip->saved_state = save;
285 spin_lock_irqsave(&lchip->lock, flags);
287 save->LCM_GPO = locomo_readl(lchip->base + LOCOMO_GPO); /* GPIO */
288 locomo_writel(0x00, lchip->base + LOCOMO_GPO);
289 save->LCM_SPICT = locomo_readl(lchip->base + LOCOMO_SPI + LOCOMO_SPICT); /* SPI */
290 locomo_writel(0x40, lchip->base + LOCOMO_SPI + LOCOMO_SPICT);
291 save->LCM_GPE = locomo_readl(lchip->base + LOCOMO_GPE); /* GPIO */
292 locomo_writel(0x00, lchip->base + LOCOMO_GPE);
293 save->LCM_ASD = locomo_readl(lchip->base + LOCOMO_ASD); /* ADSTART */
294 locomo_writel(0x00, lchip->base + LOCOMO_ASD);
295 save->LCM_SPIMD = locomo_readl(lchip->base + LOCOMO_SPI + LOCOMO_SPIMD); /* SPI */
296 locomo_writel(0x3C14, lchip->base + LOCOMO_SPI + LOCOMO_SPIMD);
298 locomo_writel(0x00, lchip->base + LOCOMO_PAIF);
299 locomo_writel(0x00, lchip->base + LOCOMO_DAC);
300 locomo_writel(0x00, lchip->base + LOCOMO_BACKLIGHT + LOCOMO_TC);
302 if ((locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT0) & 0x88) && (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT1) & 0x88))
303 locomo_writel(0x00, lchip->base + LOCOMO_C32K); /* CLK32 off */
306 locomo_writel(0xc1, lchip->base + LOCOMO_C32K); /* CLK32 on */
308 locomo_writel(0x00, lchip->base + LOCOMO_TADC); /* 18MHz clock off*/
309 locomo_writel(0x00, lchip->base + LOCOMO_AUDIO + LOCOMO_ACC); /* 22MHz/24MHz clock off */
310 locomo_writel(0x00, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); /* FL */
312 spin_unlock_irqrestore(&lchip->lock, flags);
319 struct locomo *lchip = platform_get_drvdata(dev);
324 save = lchip->saved_state;
328 spin_lock_irqsave(&lchip->lock, flags);
330 locomo_writel(save->LCM_GPO, lchip->base + LOCOMO_GPO);
331 locomo_writel(save->LCM_SPICT, lchip->base + LOCOMO_SPI + LOCOMO_SPICT);
332 locomo_writel(save->LCM_GPE, lchip->base + LOCOMO_GPE);
333 locomo_writel(save->LCM_ASD, lchip->base + LOCOMO_ASD);
334 locomo_writel(save->LCM_SPIMD, lchip->base + LOCOMO_SPI + LOCOMO_SPIMD);
336 locomo_writel(0x00, lchip->base + LOCOMO_C32K);
337 locomo_writel(0x90, lchip->base + LOCOMO_TADC);
339 locomo_writel(0, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KSC);
340 r = locomo_readl(lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC);
342 locomo_writel(r, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC);
343 locomo_writel(0x1, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KCMD);
345 spin_unlock_irqrestore(&lchip->lock, flags);
347 lchip->saved_state = NULL;
371 struct locomo *lchip;
375 lchip = kzalloc(sizeof(struct locomo), GFP_KERNEL);
376 if (!lchip)
379 spin_lock_init(&lchip->lock);
381 lchip->dev = me;
382 dev_set_drvdata(lchip->dev, lchip);
384 lchip->phys = mem->start;
385 lchip->irq = irq;
386 lchip->irq_base = (pdata) ? pdata->irq_base : NO_IRQ;
392 lchip->base = ioremap(mem->start, PAGE_SIZE);
393 if (!lchip->base) {
399 locomo_writel(0, lchip->base + LOCOMO_ICR);
401 locomo_writel(0, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC);
404 locomo_writel(0, lchip->base + LOCOMO_GPO);
406 , lchip->base + LOCOMO_GPE);
408 , lchip->base + LOCOMO_GPD);
409 locomo_writel(0, lchip->base + LOCOMO_GIE);
412 locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
413 locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD);
416 locomo_writel(0, lchip->base + LOCOMO_LTINT);
418 locomo_writel(0, lchip->base + LOCOMO_SPI + LOCOMO_SPIIE);
420 locomo_writel(6 + 8 + 320 + 30 - 10, lchip->base + LOCOMO_ASD);
421 r = locomo_readl(lchip->base + LOCOMO_ASD);
423 locomo_writel(r, lchip->base + LOCOMO_ASD);
425 locomo_writel(6 + 8 + 320 + 30 - 10 - 128 + 4, lchip->base + LOCOMO_HSD);
426 r = locomo_readl(lchip->base + LOCOMO_HSD);
428 locomo_writel(r, lchip->base + LOCOMO_HSD);
430 locomo_writel(128 / 8, lchip->base + LOCOMO_HSC);
433 locomo_writel(0x80, lchip->base + LOCOMO_TADC);
436 r = locomo_readl(lchip->base + LOCOMO_TADC);
438 locomo_writel(r, lchip->base + LOCOMO_TADC);
442 r = locomo_readl(lchip->base + LOCOMO_DAC);
444 locomo_writel(r, lchip->base + LOCOMO_DAC);
446 r = locomo_readl(lchip->base + LOCOMO_VER);
453 if (lchip->irq != NO_IRQ && lchip->irq_base != NO_IRQ)
454 locomo_setup_irq(lchip);
457 locomo_init_one_child(lchip, &locomo_devices[i]);
461 kfree(lchip);
471 static void __locomo_remove(struct locomo *lchip)
473 device_for_each_child(lchip->dev, NULL, locomo_remove_child);
475 if (lchip->irq != NO_IRQ) {
476 irq_set_chained_handler_and_data(lchip->irq, NULL, NULL);
479 iounmap(lchip->base);
480 kfree(lchip);
500 struct locomo *lchip = platform_get_drvdata(dev);
502 if (lchip) {
503 __locomo_remove(lchip);
539 struct locomo *lchip = dev_get_drvdata(dev);
543 if (!lchip)
546 spin_lock_irqsave(&lchip->lock, flags);
548 r = locomo_readl(lchip->base + LOCOMO_GPD);
553 locomo_writel(r, lchip->base + LOCOMO_GPD);
555 r = locomo_readl(lchip->base + LOCOMO_GPE);
560 locomo_writel(r, lchip->base + LOCOMO_GPE);
562 spin_unlock_irqrestore(&lchip->lock, flags);
568 struct locomo *lchip = dev_get_drvdata(dev);
572 if (!lchip)
575 spin_lock_irqsave(&lchip->lock, flags);
576 ret = locomo_readl(lchip->base + LOCOMO_GPL);
577 spin_unlock_irqrestore(&lchip->lock, flags);
586 struct locomo *lchip = dev_get_drvdata(dev);
590 if (!lchip)
593 spin_lock_irqsave(&lchip->lock, flags);
594 ret = locomo_readl(lchip->base + LOCOMO_GPO);
595 spin_unlock_irqrestore(&lchip->lock, flags);
604 struct locomo *lchip = dev_get_drvdata(dev);
608 if (!lchip)
611 spin_lock_irqsave(&lchip->lock, flags);
613 r = locomo_readl(lchip->base + LOCOMO_GPO);
618 locomo_writel(r, lchip->base + LOCOMO_GPO);
620 spin_unlock_irqrestore(&lchip->lock, flags);
661 struct locomo *lchip = locomo_chip_driver(ldev);
665 void *mapbase = lchip->base;
668 spin_lock_irqsave(&lchip->lock, flags);
785 spin_unlock_irqrestore(&lchip->lock, flags);
796 struct locomo *lchip = locomo_chip_driver(dev);
803 spin_lock_irqsave(&lchip->lock, flags);
804 locomo_writel(bpwf, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
806 locomo_writel(duty, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD);
807 locomo_writel(bpwf | LOCOMO_ALC_EN, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
808 spin_unlock_irqrestore(&lchip->lock, flags);