mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
This branch contains changes needed to make omap2+
work properly with sparse IRQ. It also removes dependencies to mach/hardware.h. These help moving things towards ARM single zImage support. This branch is based on a commit in tty-next branch with omap-devel-gpmc-fixed-for-v3.7 and cleanup-omap-tags-for-v3.7 merged in to keep things compiling and sort out some merge conflicts. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJQUUgbAAoJEBvUPslcq6VzsEgQANbHSsPDajdFnaCn3goS16M3 Nwmnvqd3Ay4VqhLpJuiF9SWzPtCno0gu/9caUKhodYDrHDVttdMKQWKLsmkSPFOD uHnKToA3y0J5O/KQJB+bubinZvcHNnBwCgP6YFposFwH561aCRhp4DiCIlqAiqlV g6jyEtTkOrIyHULokgFSmWrLDcTxvx4lWyZbmeltju4KXzzfPojc6m4daVN9Z3cQ VP9+6mLuJcF/aIbdyGnxg7pgsfy6+roHI1+vHfufVEyTt1funm1Mt1Wq+kUFC0XW YRQILq82tr3OgvcB3xmXllE3XcklN4Vv922Up0fQ+8OV36jA2q6N5vTsk8fctuD4 8O+j4kmomCEavj2JEIB5SFfsZ+Cdycx79+1pvOtDSYOM7svFpQs6kdhq+JXGRSql W00xgLQj82tmXpaLV36pXPGoc7ZXQolQbc6SYFQn8oHTTvHDdFiQkG5TKafj7r5u ayaV/VqytSy+Hiq8XWNpEjfxn467fQ5UmHXQoVAIZnpk323SpPbLQ5aDOMk/9+DT u0mDnIP4k6w8ViTnalLPEBOqqpZZo358t+cRD1kD55X4IR2YPSFhrhJTq23Z9Rv3 EW9ZUQYrK6WDuYO8/4SZ1J/HTx5MFb1Na6dKAXwO3v0S7CBzIbN9gqbU7IxfQ8ZA qKT726r923PHKL2x8VZc =GLSh -----END PGP SIGNATURE----- Merge tag 'omap-cleanup-sparseirq-for-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren: This branch contains changes needed to make omap2+ work properly with sparse IRQ. It also removes dependencies to mach/hardware.h. These help moving things towards ARM single zImage support. This branch is based on a commit in tty-next branch with omap-devel-gpmc-fixed-for-v3.7 and cleanup-omap-tags-for-v3.7 merged in to keep things compiling and sort out some merge conflicts. * tag 'omap-cleanup-sparseirq-for-v3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP1: Move SoC specific headers from plat to mach for omap1 ARM: OMAP2+ Move SoC specific headers to be local to mach-omap2 ARM: OMAP: Split plat/hardware.h, use local soc.h for omap2+ ARM: OMAP: Remove unused old gpio-switch.h ARM: OMAP1: Move plat/irqs.h to mach/irqs.h ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ ARM: OMAP2+: Prepare for irqs.h removal W1: OMAP HDQ1W: Remove dependencies to mach/hardware.h Input: omap-keypad: Remove dependencies to mach includes ARM: OMAP: Move gpio.h to include/linux/platform_data ARM: OMAP2+: Remove hardcoded twl4030 gpio_base, irq_base and irq_end ARM: OMAP2+: Remove unused nand_irq for GPMC ARM: OMAP2+: Make INTCPS_NR_IRQS local for mach-omap2/irq.c ARM: OMAP1: Define OMAP1_INT_I2C locally ARM: OMAP1: Move define of OMAP_LCD_DMA to dma.h
This commit is contained in:
commit
8e51036d34
176 changed files with 1013 additions and 1637 deletions
|
|
@ -25,11 +25,9 @@
|
|||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/irq.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#define OFF_MODE 1
|
||||
|
|
@ -385,13 +383,16 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio,
|
|||
static int gpio_irq_type(struct irq_data *d, unsigned type)
|
||||
{
|
||||
struct gpio_bank *bank = irq_data_get_irq_chip_data(d);
|
||||
unsigned gpio;
|
||||
unsigned gpio = 0;
|
||||
int retval;
|
||||
unsigned long flags;
|
||||
|
||||
if (!cpu_class_is_omap2() && d->irq > IH_MPUIO_BASE)
|
||||
#ifdef CONFIG_ARCH_OMAP1
|
||||
if (d->irq > IH_MPUIO_BASE)
|
||||
gpio = OMAP_MPUIO(d->irq - IH_MPUIO_BASE);
|
||||
else
|
||||
#endif
|
||||
|
||||
if (!gpio)
|
||||
gpio = irq_to_gpio(bank, d->irq);
|
||||
|
||||
if (type & ~IRQ_TYPE_SENSE_MASK)
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
|
||||
|
||||
static struct gpio_chip twl_gpiochip;
|
||||
static int twl4030_gpio_base;
|
||||
static int twl4030_gpio_irq_base;
|
||||
|
||||
/* genirq interfaces are not available to modules */
|
||||
|
|
@ -428,8 +429,6 @@ no_irqs:
|
|||
twl_gpiochip.dev = &pdev->dev;
|
||||
|
||||
if (pdata) {
|
||||
twl_gpiochip.base = pdata->gpio_base;
|
||||
|
||||
/*
|
||||
* NOTE: boards may waste power if they don't set pullups
|
||||
* and pulldowns correctly ... default for non-ULPI pins is
|
||||
|
|
@ -461,15 +460,21 @@ no_irqs:
|
|||
dev_err(&pdev->dev, "could not register gpiochip, %d\n", ret);
|
||||
twl_gpiochip.ngpio = 0;
|
||||
gpio_twl4030_remove(pdev);
|
||||
} else if (pdata && pdata->setup) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
twl4030_gpio_base = twl_gpiochip.base;
|
||||
|
||||
if (pdata && pdata->setup) {
|
||||
int status;
|
||||
|
||||
status = pdata->setup(&pdev->dev,
|
||||
pdata->gpio_base, TWL4030_GPIO_MAX);
|
||||
twl4030_gpio_base, TWL4030_GPIO_MAX);
|
||||
if (status)
|
||||
dev_dbg(&pdev->dev, "setup --> %d\n", status);
|
||||
}
|
||||
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -481,7 +486,7 @@ static int gpio_twl4030_remove(struct platform_device *pdev)
|
|||
|
||||
if (pdata && pdata->teardown) {
|
||||
status = pdata->teardown(&pdev->dev,
|
||||
pdata->gpio_base, TWL4030_GPIO_MAX);
|
||||
twl4030_gpio_base, TWL4030_GPIO_MAX);
|
||||
if (status) {
|
||||
dev_dbg(&pdev->dev, "teardown --> %d\n", status);
|
||||
return status;
|
||||
|
|
|
|||
Loading…
Reference in a new issue