mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 04:01:48 -04:00
Merge branch 'soc-core' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt
* 'soc-core' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: mach-shmobile: Add compilation support for dtbs using 'make dtbs' + sync to 3.6-rc3
This commit is contained in:
commit
1875962377
872 changed files with 10208 additions and 6613 deletions
|
|
@ -266,7 +266,7 @@ static int __devinit em_gio_irq_domain_init(struct em_gio_priv *p)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void __devexit em_gio_irq_domain_cleanup(struct em_gio_priv *p)
|
||||
static void em_gio_irq_domain_cleanup(struct em_gio_priv *p)
|
||||
{
|
||||
struct gpio_em_config *pdata = p->pdev->dev.platform_data;
|
||||
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ static int __devinit lnw_gpio_probe(struct pci_dev *pdev,
|
|||
resource_size_t start, len;
|
||||
struct lnw_gpio *lnw;
|
||||
u32 gpio_base;
|
||||
int retval = 0;
|
||||
int retval;
|
||||
int ngpio = id->driver_data;
|
||||
|
||||
retval = pci_enable_device(pdev);
|
||||
|
|
@ -357,6 +357,7 @@ static int __devinit lnw_gpio_probe(struct pci_dev *pdev,
|
|||
base = ioremap_nocache(start, len);
|
||||
if (!base) {
|
||||
dev_err(&pdev->dev, "error mapping bar1\n");
|
||||
retval = -EFAULT;
|
||||
goto err3;
|
||||
}
|
||||
gpio_base = *((u32 *)base + 1);
|
||||
|
|
@ -381,8 +382,10 @@ static int __devinit lnw_gpio_probe(struct pci_dev *pdev,
|
|||
|
||||
lnw->domain = irq_domain_add_linear(pdev->dev.of_node, ngpio,
|
||||
&lnw_gpio_irq_ops, lnw);
|
||||
if (!lnw->domain)
|
||||
if (!lnw->domain) {
|
||||
retval = -ENOMEM;
|
||||
goto err3;
|
||||
}
|
||||
|
||||
lnw->reg_base = base;
|
||||
lnw->chip.label = dev_name(&pdev->dev);
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ static int msic_gpio_to_oreg(unsigned offset)
|
|||
if (offset < 20)
|
||||
return INTEL_MSIC_GPIO0HV0CTLO - offset + 16;
|
||||
|
||||
return INTEL_MSIC_GPIO1HV0CTLO + offset + 20;
|
||||
return INTEL_MSIC_GPIO1HV0CTLO - offset + 20;
|
||||
}
|
||||
|
||||
static int msic_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
|
||||
|
|
|
|||
|
|
@ -465,9 +465,8 @@ static int __devinit mxc_gpio_probe(struct platform_device *pdev)
|
|||
goto out_iounmap;
|
||||
|
||||
port->bgc.gc.to_irq = mxc_gpio_to_irq;
|
||||
port->bgc.gc.base = pdev->id * 32;
|
||||
port->bgc.dir = port->bgc.read_reg(port->bgc.reg_dir);
|
||||
port->bgc.data = port->bgc.read_reg(port->bgc.reg_set);
|
||||
port->bgc.gc.base = (pdev->id < 0) ? of_alias_get_id(np, "gpio") * 32 :
|
||||
pdev->id * 32;
|
||||
|
||||
err = gpiochip_add(&port->bgc.gc);
|
||||
if (err)
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ static int irq_base;
|
|||
|
||||
#ifdef CONFIG_OF
|
||||
static struct irq_domain *domain;
|
||||
static struct device_node *pxa_gpio_of_node;
|
||||
#endif
|
||||
|
||||
struct pxa_gpio_chip {
|
||||
|
|
@ -231,6 +232,24 @@ static void pxa_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
|
|||
(value ? GPSR_OFFSET : GPCR_OFFSET));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF_GPIO
|
||||
static int pxa_gpio_of_xlate(struct gpio_chip *gc,
|
||||
const struct of_phandle_args *gpiospec,
|
||||
u32 *flags)
|
||||
{
|
||||
if (gpiospec->args[0] > pxa_last_gpio)
|
||||
return -EINVAL;
|
||||
|
||||
if (gc != &pxa_gpio_chips[gpiospec->args[0] / 32].chip)
|
||||
return -EINVAL;
|
||||
|
||||
if (flags)
|
||||
*flags = gpiospec->args[1];
|
||||
|
||||
return gpiospec->args[0] % 32;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int __devinit pxa_init_gpio_chip(int gpio_end,
|
||||
int (*set_wake)(unsigned int, unsigned int))
|
||||
{
|
||||
|
|
@ -258,6 +277,11 @@ static int __devinit pxa_init_gpio_chip(int gpio_end,
|
|||
c->get = pxa_gpio_get;
|
||||
c->set = pxa_gpio_set;
|
||||
c->to_irq = pxa_gpio_to_irq;
|
||||
#ifdef CONFIG_OF_GPIO
|
||||
c->of_node = pxa_gpio_of_node;
|
||||
c->of_xlate = pxa_gpio_of_xlate;
|
||||
c->of_gpio_n_cells = 2;
|
||||
#endif
|
||||
|
||||
/* number of GPIOs on last bank may be less than 32 */
|
||||
c->ngpio = (gpio + 31 > gpio_end) ? (gpio_end - gpio + 1) : 32;
|
||||
|
|
@ -447,6 +471,7 @@ static int pxa_gpio_nums(void)
|
|||
return count;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static struct of_device_id pxa_gpio_dt_ids[] = {
|
||||
{ .compatible = "mrvl,pxa-gpio" },
|
||||
{ .compatible = "mrvl,mmp-gpio", .data = (void *)MMP_GPIO },
|
||||
|
|
@ -464,9 +489,9 @@ static int pxa_irq_domain_map(struct irq_domain *d, unsigned int irq,
|
|||
|
||||
const struct irq_domain_ops pxa_irq_domain_ops = {
|
||||
.map = pxa_irq_domain_map,
|
||||
.xlate = irq_domain_xlate_twocell,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static int __devinit pxa_gpio_probe_dt(struct platform_device *pdev)
|
||||
{
|
||||
int ret, nr_banks, nr_gpios;
|
||||
|
|
@ -504,6 +529,7 @@ static int __devinit pxa_gpio_probe_dt(struct platform_device *pdev)
|
|||
}
|
||||
domain = irq_domain_add_legacy(np, nr_gpios, irq_base, 0,
|
||||
&pxa_irq_domain_ops, NULL);
|
||||
pxa_gpio_of_node = np;
|
||||
return 0;
|
||||
err:
|
||||
iounmap(gpio_reg_base);
|
||||
|
|
@ -622,7 +648,7 @@ static struct platform_driver pxa_gpio_driver = {
|
|||
.probe = pxa_gpio_probe,
|
||||
.driver = {
|
||||
.name = "pxa-gpio",
|
||||
.of_match_table = pxa_gpio_dt_ids,
|
||||
.of_match_table = of_match_ptr(pxa_gpio_dt_ids),
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2452,12 +2452,6 @@ static struct samsung_gpio_chip exynos5_gpios_1[] = {
|
|||
.ngpio = EXYNOS5_GPIO_C3_NR,
|
||||
.label = "GPC3",
|
||||
},
|
||||
}, {
|
||||
.chip = {
|
||||
.base = EXYNOS5_GPC4(0),
|
||||
.ngpio = EXYNOS5_GPIO_C4_NR,
|
||||
.label = "GPC4",
|
||||
},
|
||||
}, {
|
||||
.chip = {
|
||||
.base = EXYNOS5_GPD0(0),
|
||||
|
|
@ -2512,6 +2506,12 @@ static struct samsung_gpio_chip exynos5_gpios_1[] = {
|
|||
.ngpio = EXYNOS5_GPIO_Y6_NR,
|
||||
.label = "GPY6",
|
||||
},
|
||||
}, {
|
||||
.chip = {
|
||||
.base = EXYNOS5_GPC4(0),
|
||||
.ngpio = EXYNOS5_GPIO_C4_NR,
|
||||
.label = "GPC4",
|
||||
},
|
||||
}, {
|
||||
.config = &samsung_gpio_cfgs[9],
|
||||
.irq_base = IRQ_EINT(0),
|
||||
|
|
@ -2836,7 +2836,7 @@ static __init void exynos5_gpiolib_init(void)
|
|||
}
|
||||
|
||||
/* need to set base address for gpc4 */
|
||||
exynos5_gpios_1[11].base = gpio_base1 + 0x2E0;
|
||||
exynos5_gpios_1[20].base = gpio_base1 + 0x2E0;
|
||||
|
||||
/* need to set base address for gpx */
|
||||
chip = &exynos5_gpios_1[21];
|
||||
|
|
|
|||
|
|
@ -241,7 +241,8 @@ static int __devinit sch_gpio_probe(struct platform_device *pdev)
|
|||
break;
|
||||
|
||||
default:
|
||||
return -ENODEV;
|
||||
err = -ENODEV;
|
||||
goto err_sch_gpio_core;
|
||||
}
|
||||
|
||||
sch_gpio_core.dev = &pdev->dev;
|
||||
|
|
|
|||
Loading…
Reference in a new issue