Lines Matching defs:lchip

139 	struct locomo *lchip = irq_desc_get_handler_data(desc);
146 req = locomo_readl(lchip->base + LOCOMO_ICR) & 0x0f00;
152 irq = lchip->irq_base;
168 struct locomo *lchip = irq_data_get_irq_chip_data(d);
170 r = locomo_readl(lchip->base + LOCOMO_ICR);
171 r &= ~(0x0010 << (d->irq - lchip->irq_base));
172 locomo_writel(r, lchip->base + LOCOMO_ICR);
177 struct locomo *lchip = irq_data_get_irq_chip_data(d);
179 r = locomo_readl(lchip->base + LOCOMO_ICR);
180 r |= (0x0010 << (d->irq - lchip->irq_base));
181 locomo_writel(r, lchip->base + LOCOMO_ICR);
191 static void locomo_setup_irq(struct locomo *lchip)
193 int irq = lchip->irq_base;
198 irq_set_irq_type(lchip->irq, IRQ_TYPE_EDGE_FALLING);
199 irq_set_chained_handler_and_data(lchip->irq, locomo_handler, lchip);
202 for ( ; irq <= lchip->irq_base + 3; irq++) {
204 irq_set_chip_data(irq, lchip);
218 locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)
233 if (lchip->dev->dma_mask) {
234 dev->dma_mask = *lchip->dev->dma_mask;
240 dev->dev.parent = lchip->dev;
243 dev->dev.coherent_dma_mask = lchip->dev->coherent_dma_mask;
246 dev->mapbase = lchip->base + info->offset;
251 dev->irq[0] = (lchip->irq_base == NO_IRQ) ?
252 NO_IRQ : lchip->irq_base + info->irq[0];
274 struct locomo *lchip = platform_get_drvdata(dev);
282 lchip->saved_state = save;
284 spin_lock_irqsave(&lchip->lock, flags);
286 save->LCM_GPO = locomo_readl(lchip->base + LOCOMO_GPO); /* GPIO */
287 locomo_writel(0x00, lchip->base + LOCOMO_GPO);
288 save->LCM_SPICT = locomo_readl(lchip->base + LOCOMO_SPI + LOCOMO_SPICT); /* SPI */
289 locomo_writel(0x40, lchip->base + LOCOMO_SPI + LOCOMO_SPICT);
290 save->LCM_GPE = locomo_readl(lchip->base + LOCOMO_GPE); /* GPIO */
291 locomo_writel(0x00, lchip->base + LOCOMO_GPE);
292 save->LCM_ASD = locomo_readl(lchip->base + LOCOMO_ASD); /* ADSTART */
293 locomo_writel(0x00, lchip->base + LOCOMO_ASD);
294 save->LCM_SPIMD = locomo_readl(lchip->base + LOCOMO_SPI + LOCOMO_SPIMD); /* SPI */
295 locomo_writel(0x3C14, lchip->base + LOCOMO_SPI + LOCOMO_SPIMD);
297 locomo_writel(0x00, lchip->base + LOCOMO_PAIF);
298 locomo_writel(0x00, lchip->base + LOCOMO_DAC);
299 locomo_writel(0x00, lchip->base + LOCOMO_BACKLIGHT + LOCOMO_TC);
301 if ((locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT0) & 0x88) && (locomo_readl(lchip->base + LOCOMO_LED + LOCOMO_LPT1) & 0x88))
302 locomo_writel(0x00, lchip->base + LOCOMO_C32K); /* CLK32 off */
305 locomo_writel(0xc1, lchip->base + LOCOMO_C32K); /* CLK32 on */
307 locomo_writel(0x00, lchip->base + LOCOMO_TADC); /* 18MHz clock off*/
308 locomo_writel(0x00, lchip->base + LOCOMO_AUDIO + LOCOMO_ACC); /* 22MHz/24MHz clock off */
309 locomo_writel(0x00, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS); /* FL */
311 spin_unlock_irqrestore(&lchip->lock, flags);
318 struct locomo *lchip = platform_get_drvdata(dev);
323 save = lchip->saved_state;
327 spin_lock_irqsave(&lchip->lock, flags);
329 locomo_writel(save->LCM_GPO, lchip->base + LOCOMO_GPO);
330 locomo_writel(save->LCM_SPICT, lchip->base + LOCOMO_SPI + LOCOMO_SPICT);
331 locomo_writel(save->LCM_GPE, lchip->base + LOCOMO_GPE);
332 locomo_writel(save->LCM_ASD, lchip->base + LOCOMO_ASD);
333 locomo_writel(save->LCM_SPIMD, lchip->base + LOCOMO_SPI + LOCOMO_SPIMD);
335 locomo_writel(0x00, lchip->base + LOCOMO_C32K);
336 locomo_writel(0x90, lchip->base + LOCOMO_TADC);
338 locomo_writel(0, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KSC);
339 r = locomo_readl(lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC);
341 locomo_writel(r, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC);
342 locomo_writel(0x1, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KCMD);
344 spin_unlock_irqrestore(&lchip->lock, flags);
346 lchip->saved_state = NULL;
357 struct locomo *lchip;
361 lchip = kzalloc(sizeof(struct locomo), GFP_KERNEL);
362 if (!lchip)
365 spin_lock_init(&lchip->lock);
367 lchip->dev = me;
368 dev_set_drvdata(lchip->dev, lchip);
370 lchip->phys = mem->start;
371 lchip->irq = irq;
372 lchip->irq_base = (pdata) ? pdata->irq_base : NO_IRQ;
378 lchip->base = ioremap(mem->start, PAGE_SIZE);
379 if (!lchip->base) {
385 locomo_writel(0, lchip->base + LOCOMO_ICR);
387 locomo_writel(0, lchip->base + LOCOMO_KEYBOARD + LOCOMO_KIC);
390 locomo_writel(0, lchip->base + LOCOMO_GPO);
392 , lchip->base + LOCOMO_GPE);
394 , lchip->base + LOCOMO_GPD);
395 locomo_writel(0, lchip->base + LOCOMO_GIE);
398 locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
399 locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD);
402 locomo_writel(0, lchip->base + LOCOMO_LTINT);
404 locomo_writel(0, lchip->base + LOCOMO_SPI + LOCOMO_SPIIE);
406 locomo_writel(6 + 8 + 320 + 30 - 10, lchip->base + LOCOMO_ASD);
407 r = locomo_readl(lchip->base + LOCOMO_ASD);
409 locomo_writel(r, lchip->base + LOCOMO_ASD);
411 locomo_writel(6 + 8 + 320 + 30 - 10 - 128 + 4, lchip->base + LOCOMO_HSD);
412 r = locomo_readl(lchip->base + LOCOMO_HSD);
414 locomo_writel(r, lchip->base + LOCOMO_HSD);
416 locomo_writel(128 / 8, lchip->base + LOCOMO_HSC);
419 locomo_writel(0x80, lchip->base + LOCOMO_TADC);
422 r = locomo_readl(lchip->base + LOCOMO_TADC);
424 locomo_writel(r, lchip->base + LOCOMO_TADC);
428 r = locomo_readl(lchip->base + LOCOMO_DAC);
430 locomo_writel(r, lchip->base + LOCOMO_DAC);
432 r = locomo_readl(lchip->base + LOCOMO_VER);
439 if (lchip->irq != NO_IRQ && lchip->irq_base != NO_IRQ)
440 locomo_setup_irq(lchip);
443 locomo_init_one_child(lchip, &locomo_devices[i]);
447 kfree(lchip);
457 static void __locomo_remove(struct locomo *lchip)
459 device_for_each_child(lchip->dev, NULL, locomo_remove_child);
461 if (lchip->irq != NO_IRQ) {
462 irq_set_chained_handler_and_data(lchip->irq, NULL, NULL);
465 iounmap(lchip->base);
466 kfree(lchip);
501 struct locomo *lchip = platform_get_drvdata(dev);
503 if (lchip) {
504 __locomo_remove(lchip);
538 struct locomo *lchip = dev_get_drvdata(dev);
542 if (!lchip)
545 spin_lock_irqsave(&lchip->lock, flags);
547 r = locomo_readl(lchip->base + LOCOMO_GPD);
552 locomo_writel(r, lchip->base + LOCOMO_GPD);
554 r = locomo_readl(lchip->base + LOCOMO_GPE);
559 locomo_writel(r, lchip->base + LOCOMO_GPE);
561 spin_unlock_irqrestore(&lchip->lock, flags);
567 struct locomo *lchip = dev_get_drvdata(dev);
571 if (!lchip)
574 spin_lock_irqsave(&lchip->lock, flags);
575 ret = locomo_readl(lchip->base + LOCOMO_GPL);
576 spin_unlock_irqrestore(&lchip->lock, flags);
585 struct locomo *lchip = dev_get_drvdata(dev);
589 if (!lchip)
592 spin_lock_irqsave(&lchip->lock, flags);
593 ret = locomo_readl(lchip->base + LOCOMO_GPO);
594 spin_unlock_irqrestore(&lchip->lock, flags);
603 struct locomo *lchip = dev_get_drvdata(dev);
607 if (!lchip)
610 spin_lock_irqsave(&lchip->lock, flags);
612 r = locomo_readl(lchip->base + LOCOMO_GPO);
617 locomo_writel(r, lchip->base + LOCOMO_GPO);
619 spin_unlock_irqrestore(&lchip->lock, flags);
660 struct locomo *lchip = locomo_chip_driver(ldev);
664 void *mapbase = lchip->base;
667 spin_lock_irqsave(&lchip->lock, flags);
784 spin_unlock_irqrestore(&lchip->lock, flags);
795 struct locomo *lchip = locomo_chip_driver(dev);
802 spin_lock_irqsave(&lchip->lock, flags);
803 locomo_writel(bpwf, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
805 locomo_writel(duty, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD);
806 locomo_writel(bpwf | LOCOMO_ALC_EN, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
807 spin_unlock_irqrestore(&lchip->lock, flags);