diff options
-rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index f5d9dd256d63..0ba95d3e74e5 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -85,6 +85,8 @@ | |||
85 | #define GPMC_ECC_CTRL_ECCREG8 0x008 | 85 | #define GPMC_ECC_CTRL_ECCREG8 0x008 |
86 | #define GPMC_ECC_CTRL_ECCREG9 0x009 | 86 | #define GPMC_ECC_CTRL_ECCREG9 0x009 |
87 | 87 | ||
88 | #define GPMC_CONFIG_LIMITEDADDRESS BIT(1) | ||
89 | |||
88 | #define GPMC_CONFIG2_CSEXTRADELAY BIT(7) | 90 | #define GPMC_CONFIG2_CSEXTRADELAY BIT(7) |
89 | #define GPMC_CONFIG3_ADVEXTRADELAY BIT(7) | 91 | #define GPMC_CONFIG3_ADVEXTRADELAY BIT(7) |
90 | #define GPMC_CONFIG4_OEEXTRADELAY BIT(7) | 92 | #define GPMC_CONFIG4_OEEXTRADELAY BIT(7) |
@@ -1501,6 +1503,7 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, | |||
1501 | struct resource res; | 1503 | struct resource res; |
1502 | unsigned long base; | 1504 | unsigned long base; |
1503 | int ret, cs; | 1505 | int ret, cs; |
1506 | u32 val; | ||
1504 | 1507 | ||
1505 | if (of_property_read_u32(child, "reg", &cs) < 0) { | 1508 | if (of_property_read_u32(child, "reg", &cs) < 0) { |
1506 | dev_err(&pdev->dev, "%s has no 'reg' property\n", | 1509 | dev_err(&pdev->dev, "%s has no 'reg' property\n", |
@@ -1569,6 +1572,11 @@ static int gpmc_probe_generic_child(struct platform_device *pdev, | |||
1569 | goto err; | 1572 | goto err; |
1570 | } | 1573 | } |
1571 | 1574 | ||
1575 | /* Clear limited address i.e. enable A26-A11 */ | ||
1576 | val = gpmc_read_reg(GPMC_CONFIG); | ||
1577 | val &= ~GPMC_CONFIG_LIMITEDADDRESS; | ||
1578 | gpmc_write_reg(GPMC_CONFIG, val); | ||
1579 | |||
1572 | no_timings: | 1580 | no_timings: |
1573 | if (of_platform_device_create(child, NULL, &pdev->dev)) | 1581 | if (of_platform_device_create(child, NULL, &pdev->dev)) |
1574 | return 0; | 1582 | return 0; |