diff options
author | Florian Fainelli <florian@openwrt.org> | 2015-01-10 18:10:04 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2015-01-10 18:10:04 +0000 |
commit | 3b21b2ae00c8e354db1789f8be5235a8fcb7a623 (patch) | |
tree | 379f0d688f6caf3cd9a33056dbca9362c1f36b7a /target/linux/adm5120/files-3.14/arch/mips/adm5120/compex/compex.c | |
parent | c119814b2bf25bc89a5cbfb3eb791ad7461d0c38 (diff) | |
download | upstream-3b21b2ae00c8e354db1789f8be5235a8fcb7a623.tar.gz upstream-3b21b2ae00c8e354db1789f8be5235a8fcb7a623.tar.bz2 upstream-3b21b2ae00c8e354db1789f8be5235a8fcb7a623.zip |
adm5120: add experimental 3.14 kernel support
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 43915
Diffstat (limited to 'target/linux/adm5120/files-3.14/arch/mips/adm5120/compex/compex.c')
-rw-r--r-- | target/linux/adm5120/files-3.14/arch/mips/adm5120/compex/compex.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/target/linux/adm5120/files-3.14/arch/mips/adm5120/compex/compex.c b/target/linux/adm5120/files-3.14/arch/mips/adm5120/compex/compex.c new file mode 100644 index 0000000000..814acfb0cf --- /dev/null +++ b/target/linux/adm5120/files-3.14/arch/mips/adm5120/compex/compex.c @@ -0,0 +1,60 @@ +/* + * Compex boards + * + * Copyright (C) 2007-2008 Gabor Juhos <juhosg@openwrt.org> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + * + */ + +#include "compex.h" + +#include <asm/mach-adm5120/prom/myloader.h> + +static void switch_bank_gpio5(unsigned bank) +{ + switch (bank) { + case 0: + gpio_set_value(ADM5120_GPIO_PIN5, 0); + break; + case 1: + gpio_set_value(ADM5120_GPIO_PIN5, 1); + break; + } +} + +void __init compex_mac_setup(void) +{ + if (myloader_present()) { + int i; + + for (i = 0; i < 6; i++) { + if (is_valid_ether_addr(myloader_info.macs[i])) + memcpy(adm5120_eth_macs[i], + myloader_info.macs[i], ETH_ALEN); + else + random_ether_addr(adm5120_eth_macs[i]); + } + } else { + u8 mac[ETH_ALEN]; + + random_ether_addr(mac); + adm5120_setup_eth_macs(mac); + } +} + +void __init compex_generic_setup(void) +{ + gpio_request(ADM5120_GPIO_PIN5, NULL); /* for flash A20 line */ + gpio_direction_output(ADM5120_GPIO_PIN5, 0); + + adm5120_flash0_data.switch_bank = switch_bank_gpio5; + adm5120_add_device_flash(0); + + adm5120_add_device_uart(0); + adm5120_add_device_uart(1); + + compex_mac_setup(); +} |