Date:2010-06-01 00:34:46 (13 years 9 months ago)
Author:Lars C.
Commit:8d67a585e692dedfefc36d0a28afe4b19958dff2
Message:jz4740: GPIO: Small cleanups

Files: arch/mips/jz4740/gpio.c (5 diffs)

Change Details

arch/mips/jz4740/gpio.c
4545#define JZ4740_IRQ_GPIO_BASE_C (JZ4740_IRQ_GPIO(0) + JZ4740_GPIO_BASE_C)
4646#define JZ4740_IRQ_GPIO_BASE_D (JZ4740_IRQ_GPIO(0) + JZ4740_GPIO_BASE_D)
4747
48#define JZ4740_IRQ_GPIO_A(num) (JZ4740_IRQ_GPIO_BASE_A + num)
49#define JZ4740_IRQ_GPIO_B(num) (JZ4740_IRQ_GPIO_BASE_B + num)
50#define JZ4740_IRQ_GPIO_C(num) (JZ4740_IRQ_GPIO_BASE_C + num)
51#define JZ4740_IRQ_GPIO_D(num) (JZ4740_IRQ_GPIO_BASE_D + num)
52
5348#define JZ_REG_GPIO_PIN 0x00
5449#define JZ_REG_GPIO_DATA 0x10
5550#define JZ_REG_GPIO_DATA_SET 0x14
...... 
275270}
276271EXPORT_SYMBOL(jz_gpio_port_get_value);
277272
273int gpio_to_irq(unsigned gpio)
274{
275    return JZ4740_IRQ_GPIO(0) + gpio;
276}
277EXPORT_SYMBOL_GPL(gpio_to_irq);
278278
279#define IRQ_TO_GPIO(irq) (irq - JZ4740_IRQ_GPIO(0))
280#define IRQ_TO_BIT(irq) BIT(IRQ_TO_GPIO(irq) & 0x1f)
279int irq_to_gpio(unsigned irq)
280{
281    return irq - JZ4740_IRQ_GPIO(0);
282}
283EXPORT_SYMBOL_GPL(irq_to_gpio);
284
285#define IRQ_TO_BIT(irq) BIT(irq_to_gpio(irq) & 0x1f)
281286
282287static void jz_gpio_irq_demux_handler(unsigned int irq, struct irq_desc *desc)
283288{
...... 
310315
311316static inline void jz_gpio_set_irq_bit(unsigned int irq, unsigned int reg)
312317{
313    struct jz_gpio_chip *chip = get_irq_data(desc);
318    struct jz_gpio_chip *chip = get_irq_data(irq);
314319    writel(IRQ_TO_BIT(irq), chip->base + reg);
315320}
316321
317322static void jz_gpio_irq_mask(unsigned int irq)
318323{
319    struct jz_gpio_chip *chip = get_irq_data(desc);
320324    jz_gpio_set_irq_bit(irq, JZ_REG_GPIO_MASK_SET);
321325};
322326
...... 
415419    return 0;
416420}
417421
418int gpio_to_irq(unsigned gpio)
419{
420    return JZ4740_IRQ_GPIO(0) + gpio;
421}
422EXPORT_SYMBOL_GPL(gpio_to_irq);
423
424int irq_to_gpio(unsigned gpio)
425{
426    return IRQ_TO_GPIO(gpio);
427}
428EXPORT_SYMBOL_GPL(irq_to_gpio);
429
430422/*
431423 * This lock class tells lockdep that GPIO irqs are in a different
432424 * category than their parents, so it won't report false recursion.
...... 
536528    if (ret)
537529        return ret;
538530
539    for (i = 0; i < ARRAY_SIZE(jz4740_gpio_chips); ++i) {
531    for (i = 0; i < ARRAY_SIZE(jz4740_gpio_chips); ++i)
540532        jz4740_gpio_chip_init(&jz4740_gpio_chips[i], i);
541    }
542533
543534    printk(KERN_INFO "JZ4740 GPIO initalized\n");
544535

Archive Download the corresponding diff file



interactive