diff options
-rw-r--r-- | arch/arm/plat-orion/pcie.c | 6 | ||||
-rw-r--r-- | include/asm-arm/plat-orion/pcie.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c index abfda53f1800..ca32c60e14d7 100644 --- a/arch/arm/plat-orion/pcie.c +++ b/arch/arm/plat-orion/pcie.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #define PCIE_CONF_DATA_OFF 0x18fc | 39 | #define PCIE_CONF_DATA_OFF 0x18fc |
40 | #define PCIE_MASK_OFF 0x1910 | 40 | #define PCIE_MASK_OFF 0x1910 |
41 | #define PCIE_CTRL_OFF 0x1a00 | 41 | #define PCIE_CTRL_OFF 0x1a00 |
42 | #define PCIE_CTRL_X1_MODE 0x0001 | ||
42 | #define PCIE_STAT_OFF 0x1a04 | 43 | #define PCIE_STAT_OFF 0x1a04 |
43 | #define PCIE_STAT_DEV_OFFS 20 | 44 | #define PCIE_STAT_DEV_OFFS 20 |
44 | #define PCIE_STAT_DEV_MASK 0x1f | 45 | #define PCIE_STAT_DEV_MASK 0x1f |
@@ -62,6 +63,11 @@ int orion_pcie_link_up(void __iomem *base) | |||
62 | return !(readl(base + PCIE_STAT_OFF) & PCIE_STAT_LINK_DOWN); | 63 | return !(readl(base + PCIE_STAT_OFF) & PCIE_STAT_LINK_DOWN); |
63 | } | 64 | } |
64 | 65 | ||
66 | int __init orion_pcie_x4_mode(void __iomem *base) | ||
67 | { | ||
68 | return !(readl(base + PCIE_CTRL_OFF) & PCIE_CTRL_X1_MODE); | ||
69 | } | ||
70 | |||
65 | int orion_pcie_get_local_bus_nr(void __iomem *base) | 71 | int orion_pcie_get_local_bus_nr(void __iomem *base) |
66 | { | 72 | { |
67 | u32 stat = readl(base + PCIE_STAT_OFF); | 73 | u32 stat = readl(base + PCIE_STAT_OFF); |
diff --git a/include/asm-arm/plat-orion/pcie.h b/include/asm-arm/plat-orion/pcie.h index 6434ac685d21..e61b7bd97af5 100644 --- a/include/asm-arm/plat-orion/pcie.h +++ b/include/asm-arm/plat-orion/pcie.h | |||
@@ -14,6 +14,7 @@ | |||
14 | u32 orion_pcie_dev_id(void __iomem *base); | 14 | u32 orion_pcie_dev_id(void __iomem *base); |
15 | u32 orion_pcie_rev(void __iomem *base); | 15 | u32 orion_pcie_rev(void __iomem *base); |
16 | int orion_pcie_link_up(void __iomem *base); | 16 | int orion_pcie_link_up(void __iomem *base); |
17 | int orion_pcie_x4_mode(void __iomem *base); | ||
17 | int orion_pcie_get_local_bus_nr(void __iomem *base); | 18 | int orion_pcie_get_local_bus_nr(void __iomem *base); |
18 | void orion_pcie_set_local_bus_nr(void __iomem *base, int nr); | 19 | void orion_pcie_set_local_bus_nr(void __iomem *base, int nr); |
19 | void orion_pcie_setup(void __iomem *base, | 20 | void orion_pcie_setup(void __iomem *base, |