• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/avr32/mach-at32ap/

Lines Matching defs:pio

22 #include "pio.h"
39 struct pio_device *pio;
45 pio = &pio_dev[index];
46 if (!pio->regs)
49 return pio;
58 struct pio_device *pio;
60 /* assign and verify pio */
61 pio = gpio_to_pio(port);
62 if (unlikely(!pio)) {
63 printk(KERN_WARNING "pio: invalid port %u\n", port);
69 if (unlikely(pio->pinmux_mask & pin_mask)) {
71 pio->name, pin_mask, pio->pinmux_mask & pin_mask);
76 pio->pinmux_mask |= pin_mask;
79 pio_writel(pio, PUER, pin_mask);
83 pio_writel(pio, BSR, pin_mask);
85 pio_writel(pio, ASR, pin_mask);
88 pio_writel(pio, PDR, pin_mask);
92 pio_writel(pio, PUDR, pin_mask);
104 struct pio_device *pio;
108 pio = gpio_to_pio(pin);
109 if (unlikely(!pio)) {
110 printk("pio: invalid pin %u\n", pin);
114 if (unlikely(test_and_set_bit(pin_index, &pio->pinmux_mask))) {
115 printk("%s: pin %u is busy\n", pio->name, pin_index);
121 pio_writel(pio, SODR, mask);
123 pio_writel(pio, CODR, mask);
125 pio_writel(pio, MDER, mask);
127 pio_writel(pio, MDDR, mask);
128 pio_writel(pio, PUDR, mask);
129 pio_writel(pio, OER, mask);
132 pio_writel(pio, PUER, mask);
134 pio_writel(pio, PUDR, mask);
136 pio_writel(pio, IFER, mask);
138 pio_writel(pio, IFDR, mask);
139 pio_writel(pio, ODR, mask);
142 pio_writel(pio, PER, mask);
156 struct pio_device *pio;
159 pio = gpio_to_pio(pin);
160 if (unlikely(!pio)) {
161 printk("pio: invalid pin %u\n", pin);
166 clear_bit(pin_index, &pio->pinmux_mask);
172 struct pio_device *pio;
174 /* assign and verify pio */
175 pio = gpio_to_pio(port);
176 if (unlikely(!pio)) {
177 printk(KERN_WARNING "pio: invalid port %u\n", port);
183 if (unlikely(pio->pinmux_mask & pin_mask)) {
185 pio->name, pin_mask, pio->pinmux_mask & pin_mask);
191 pio->pinmux_mask |= pin_mask;
205 struct pio_device *pio = container_of(chip, struct pio_device, chip);
208 if (!(pio_readl(pio, PSR) & mask))
211 pio_writel(pio, ODR, mask);
217 struct pio_device *pio = container_of(chip, struct pio_device, chip);
219 return (pio_readl(pio, PDSR) >> offset) & 1;
226 struct pio_device *pio = container_of(chip, struct pio_device, chip);
229 if (!(pio_readl(pio, PSR) & mask))
233 pio_writel(pio, OER, mask);
239 struct pio_device *pio = container_of(chip, struct pio_device, chip);
243 pio_writel(pio, SODR, mask);
245 pio_writel(pio, CODR, mask);
255 struct pio_device *pio = &pio_dev[gpio >> 5];
257 pio_writel(pio, IDR, 1 << (gpio & 0x1f));
263 struct pio_device *pio = &pio_dev[gpio >> 5];
265 pio_writel(pio, IER, 1 << (gpio & 0x1f));
285 struct pio_device *pio = get_irq_chip_data(irq);
294 isr = pio_readl(pio, ISR) & pio_readl(pio, IMR);
312 gpio_irq_setup(struct pio_device *pio, int irq, int gpio_irq)
316 set_irq_chip_data(irq, pio);
320 set_irq_chip_data(gpio_irq, pio);
340 struct pio_device *pio = container_of(chip, struct pio_device, chip);
346 psr = pio_readl(pio, PSR);
347 osr = pio_readl(pio, OSR);
348 imr = pio_readl(pio, IMR);
349 pdsr = pio_readl(pio, PDSR);
350 pusr = pio_readl(pio, PUSR);
351 ifsr = pio_readl(pio, IFSR);
352 mdsr = pio_readl(pio, MDSR);
354 bank = 'A' + pio->pdev->id;
391 struct pio_device *pio = NULL;
396 pio = &pio_dev[pdev->id];
397 BUG_ON(!pio->regs);
399 pio->chip.label = pio->name;
400 pio->chip.base = pdev->id * 32;
401 pio->chip.ngpio = 32;
402 pio->chip.dev = &pdev->dev;
403 pio->chip.owner = THIS_MODULE;
405 pio->chip.direction_input = direction_input;
406 pio->chip.get = gpio_get;
407 pio->chip.direction_output = direction_output;
408 pio->chip.set = gpio_set;
409 pio->chip.dbg_show = pio_bank_show;
411 gpiochip_add(&pio->chip);
413 gpio_irq_setup(pio, irq, gpio_irq_base);
415 platform_set_drvdata(pdev, pio);
418 pio->name, pio->regs, irq, gpio_irq_base, gpio_irq_base + 31);
425 .name = "pio",
438 struct pio_device *pio;
446 pio = &pio_dev[pdev->id];
447 snprintf(pio->name, sizeof(pio->name), "pio%d", pdev->id);
455 pio->clk = clk_get(&pdev->dev, "mck");
456 if (IS_ERR(pio->clk))
464 clk_enable(pio->clk);
466 pio->pdev = pdev;
467 pio->regs = ioremap(regs->start, regs->end - regs->start + 1);
470 pio_writel(pio, IDR, ~0UL);
471 (void) pio_readl(pio, ISR);