|
@@ -118,7 +118,8 @@ static int pl172_setup_static(struct amba_device *adev,
|
|
|
if (of_property_read_bool(np, "mpmc,extended-wait"))
|
|
|
cfg |= MPMC_STATIC_CFG_EW;
|
|
|
|
|
|
- if (of_property_read_bool(np, "mpmc,buffer-enable"))
|
|
|
+ if (amba_part(adev) == 0x172 &&
|
|
|
+ of_property_read_bool(np, "mpmc,buffer-enable"))
|
|
|
cfg |= MPMC_STATIC_CFG_B;
|
|
|
|
|
|
if (of_property_read_bool(np, "mpmc,write-protect"))
|
|
@@ -190,6 +191,7 @@ static int pl172_parse_cs_config(struct amba_device *adev,
|
|
|
}
|
|
|
|
|
|
static const char * const pl172_revisions[] = {"r1", "r2", "r2p3", "r2p4"};
|
|
|
+static const char * const pl175_revisions[] = {"r1"};
|
|
|
|
|
|
static int pl172_probe(struct amba_device *adev, const struct amba_id *id)
|
|
|
{
|
|
@@ -202,6 +204,9 @@ static int pl172_probe(struct amba_device *adev, const struct amba_id *id)
|
|
|
if (amba_part(adev) == 0x172) {
|
|
|
if (amba_rev(adev) < ARRAY_SIZE(pl172_revisions))
|
|
|
rev = pl172_revisions[amba_rev(adev)];
|
|
|
+ } else if (amba_part(adev) == 0x175) {
|
|
|
+ if (amba_rev(adev) < ARRAY_SIZE(pl175_revisions))
|
|
|
+ rev = pl175_revisions[amba_rev(adev)];
|
|
|
}
|
|
|
|
|
|
dev_info(dev, "ARM PL%x revision %s\n", amba_part(adev), rev);
|
|
@@ -283,6 +288,11 @@ static const struct amba_id pl172_ids[] = {
|
|
|
.id = 0x07041172,
|
|
|
.mask = 0x3f0fffff,
|
|
|
},
|
|
|
+ /* PrimeCell MPMC PL175, EMC found on NXP LPC32xx */
|
|
|
+ {
|
|
|
+ .id = 0x07041175,
|
|
|
+ .mask = 0x3f0fffff,
|
|
|
+ },
|
|
|
{ 0, 0 },
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(amba, pl172_ids);
|