Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 372705
b: refs/heads/master
c: f873117
h: refs/heads/master
i:
  372703: 586ef84
v: v3
  • Loading branch information
Haojian Zhuang committed Apr 11, 2013
1 parent 6ece446 commit 362d021
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b8f649f1f531914a30ecb420e7565ee04dccc2ad
refs/heads/master: f87311743eaf8597ddc045a2b5d9fe41f32ae87b
7 changes: 5 additions & 2 deletions trunk/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
* Marvell PXA GPIO controller

Required properties:
- compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio"
- compatible : Should be "intel,pxa25x-gpio", "intel,pxa26x-gpio",
"intel,pxa27x-gpio", "intel,pxa3xx-gpio",
"marvell,pxa93x-gpio", "marvell,mmp-gpio" or
"marvell,mmp2-gpio".
- reg : Address and length of the register set for the device
- interrupts : Should be the port interrupt shared by all gpio pins.
There're three gpio interrupts in arch-pxa, and they're gpio0,
Expand All @@ -18,7 +21,7 @@ Required properties:
Example:

gpio: gpio@d4019000 {
compatible = "mrvl,mmp-gpio";
compatible = "marvell,mmp-gpio";
reg = <0xd4019000 0x1000>;
interrupts = <49>;
interrupt-name = "gpio_mux";
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/boot/dts/mmp2.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
};

gpio@d4019000 {
compatible = "mrvl,mmp-gpio";
compatible = "marvell,mmp2-gpio";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4019000 0x1000>;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/boot/dts/pxa168.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
};

gpio@d4019000 {
compatible = "mrvl,mmp-gpio";
compatible = "marvell,mmp-gpio";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4019000 0x1000>;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/boot/dts/pxa910.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
};

gpio@d4019000 {
compatible = "mrvl,mmp-gpio";
compatible = "marvell,mmp-gpio";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xd4019000 0x1000>;
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/arm/mach-mmp/mmp-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
{}
};
Expand All @@ -39,7 +39,7 @@ static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst = {
OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
{}
};
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-mmp/mmp2-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
{}
};
Expand Down
25 changes: 13 additions & 12 deletions trunk/drivers/gpio/gpio-pxa.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,8 +499,13 @@ static int pxa_gpio_nums(struct platform_device *pdev)

#ifdef CONFIG_OF
static struct of_device_id pxa_gpio_dt_ids[] = {
{ .compatible = "mrvl,pxa-gpio" },
{ .compatible = "mrvl,mmp-gpio", .data = (void *)MMP_GPIO },
{ .compatible = "intel,pxa25x-gpio", .data = &pxa25x_id, },
{ .compatible = "intel,pxa26x-gpio", .data = &pxa26x_id, },
{ .compatible = "intel,pxa27x-gpio", .data = &pxa27x_id, },
{ .compatible = "intel,pxa3xx-gpio", .data = &pxa3xx_id, },
{ .compatible = "marvell,pxa93x-gpio", .data = &pxa93x_id, },
{ .compatible = "marvell,mmp-gpio", .data = &mmp_id, },
{ .compatible = "marvell,mmp2-gpio", .data = &mmp2_id, },
{}
};

Expand All @@ -520,16 +525,18 @@ const struct irq_domain_ops pxa_irq_domain_ops = {

static int pxa_gpio_probe_dt(struct platform_device *pdev)
{
int ret, nr_banks, nr_gpios;
int ret, nr_gpios;
struct device_node *prev, *next, *np = pdev->dev.of_node;
const struct of_device_id *of_id =
of_match_device(pxa_gpio_dt_ids, &pdev->dev);
const struct pxa_gpio_id *gpio_id;

if (!of_id) {
if (!of_id || !of_id->data) {
dev_err(&pdev->dev, "Failed to find gpio controller\n");
return -EFAULT;
}
gpio_type = (int)of_id->data;
gpio_id = of_id->data;
gpio_type = gpio_id->type;

next = of_get_next_child(np, NULL);
prev = next;
Expand All @@ -538,14 +545,8 @@ static int pxa_gpio_probe_dt(struct platform_device *pdev)
ret = -EINVAL;
goto err;
}
for (nr_banks = 1; ; nr_banks++) {
next = of_get_next_child(np, prev);
if (!next)
break;
prev = next;
}
of_node_put(prev);
nr_gpios = nr_banks << 5;
nr_gpios = gpio_id->gpio_nums;
pxa_last_gpio = nr_gpios - 1;

irq_base = irq_alloc_descs(-1, 0, nr_gpios, 0);
Expand Down

0 comments on commit 362d021

Please sign in to comment.