diff options
| -rw-r--r-- | arch/arm/mach-kirkwood/common.c | 13 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/include/mach/kirkwood.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-kirkwood/mpp.c | 3 |
3 files changed, 14 insertions, 4 deletions
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index c780c4a30434..4ccfdf97aa25 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
| @@ -402,7 +402,7 @@ void __init kirkwood_sdio_init(struct mvsdio_platform_data *mvsdio_data) | |||
| 402 | u32 dev, rev; | 402 | u32 dev, rev; |
| 403 | 403 | ||
| 404 | kirkwood_pcie_id(&dev, &rev); | 404 | kirkwood_pcie_id(&dev, &rev); |
| 405 | if (rev == 0) /* catch all Kirkwood Z0's */ | 405 | if (rev == 0 && dev != MV88F6282_DEV_ID) /* catch all Kirkwood Z0's */ |
| 406 | mvsdio_data->clock = 100000000; | 406 | mvsdio_data->clock = 100000000; |
| 407 | else | 407 | else |
| 408 | mvsdio_data->clock = 200000000; | 408 | mvsdio_data->clock = 200000000; |
| @@ -847,8 +847,10 @@ int __init kirkwood_find_tclk(void) | |||
| 847 | u32 dev, rev; | 847 | u32 dev, rev; |
| 848 | 848 | ||
| 849 | kirkwood_pcie_id(&dev, &rev); | 849 | kirkwood_pcie_id(&dev, &rev); |
| 850 | if (dev == MV88F6281_DEV_ID && (rev == MV88F6281_REV_A0 || | 850 | |
| 851 | rev == MV88F6281_REV_A1)) | 851 | if ((dev == MV88F6281_DEV_ID && (rev == MV88F6281_REV_A0 || |
| 852 | rev == MV88F6281_REV_A1)) || | ||
| 853 | (dev == MV88F6282_DEV_ID)) | ||
| 852 | return 200000000; | 854 | return 200000000; |
| 853 | 855 | ||
| 854 | return 166666667; | 856 | return 166666667; |
| @@ -902,6 +904,11 @@ static char * __init kirkwood_id(void) | |||
| 902 | return "MV88F6180-Rev-A1"; | 904 | return "MV88F6180-Rev-A1"; |
| 903 | else | 905 | else |
| 904 | return "MV88F6180-Rev-Unsupported"; | 906 | return "MV88F6180-Rev-Unsupported"; |
| 907 | } else if (dev == MV88F6282_DEV_ID) { | ||
| 908 | if (rev == MV88F6282_REV_A0) | ||
| 909 | return "MV88F6282-Rev-A0"; | ||
| 910 | else | ||
| 911 | return "MV88F6282-Rev-Unsupported"; | ||
| 905 | } else { | 912 | } else { |
| 906 | return "Device-Unknown"; | 913 | return "Device-Unknown"; |
| 907 | } | 914 | } |
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h index d61b9aabfd18..dd7eddbd5902 100644 --- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h +++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h | |||
| @@ -113,4 +113,6 @@ | |||
| 113 | #define MV88F6180_REV_A0 2 | 113 | #define MV88F6180_REV_A0 2 |
| 114 | #define MV88F6180_REV_A1 3 | 114 | #define MV88F6180_REV_A1 3 |
| 115 | 115 | ||
| 116 | #define MV88F6282_DEV_ID 0x6282 | ||
| 117 | #define MV88F6282_REV_A0 0 | ||
| 116 | #endif | 118 | #endif |
diff --git a/arch/arm/mach-kirkwood/mpp.c b/arch/arm/mach-kirkwood/mpp.c index a5900f64e38c..065187d177c6 100644 --- a/arch/arm/mach-kirkwood/mpp.c +++ b/arch/arm/mach-kirkwood/mpp.c | |||
| @@ -23,7 +23,8 @@ static unsigned int __init kirkwood_variant(void) | |||
| 23 | 23 | ||
| 24 | kirkwood_pcie_id(&dev, &rev); | 24 | kirkwood_pcie_id(&dev, &rev); |
| 25 | 25 | ||
| 26 | if (dev == MV88F6281_DEV_ID && rev >= MV88F6281_REV_A0) | 26 | if ((dev == MV88F6281_DEV_ID && rev >= MV88F6281_REV_A0) || |
| 27 | (dev == MV88F6282_DEV_ID)) | ||
| 27 | return MPP_F6281_MASK; | 28 | return MPP_F6281_MASK; |
| 28 | if (dev == MV88F6192_DEV_ID && rev >= MV88F6192_REV_A0) | 29 | if (dev == MV88F6192_DEV_ID && rev >= MV88F6192_REV_A0) |
| 29 | return MPP_F6192_MASK; | 30 | return MPP_F6192_MASK; |
