GPIO interrupt edge configuration broke on 16xx after
"IRQ type flags" patch because 16xx was wrongly assuming
the IRQT bits would match the hardware bits.
                /* We allow only edge triggering, i.e. two lowest bits */
                if (trigger & ~IRQT_BOTHEDGE)
                        BUG();
-               /* NOTE: knows __IRQT_{FAL,RIS}EDGE match OMAP hardware */
-               trigger &= 0x03;
                l = __raw_readl(reg);
                l &= ~(3 << (gpio << 1));
-               l |= trigger << (gpio << 1);
+               if (trigger == IRQT_RISING)
+                       l |= 2 << gpio;
+               else if (trigger == IRQT_FALLING)
+                       l |= 1 << gpio;
+               else
+                       goto bad;
                break;
        case METHOD_GPIO_730:
                reg += OMAP730_GPIO_INT_CONTROL;