From 441ee62931140bd0672dd87e084a3606962db45c Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 8 Dec 2016 21:46:15 +0100 Subject: [PATCH] ar71xx: remove AP83 reference design board support This board is very old and unlikely to still be relevant today. Support for it contains a significant amount of device specific baggage which is worth getting rid of. Signed-off-by: Felix Fietkau --- package/firmware/vsc73x5-ucode/Makefile | 30 +- .../ar71xx/base-files/etc/board.d/02_network | 1 - target/linux/ar71xx/base-files/etc/diag.sh | 1 - target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 - .../lib/preinit/05_set_preinit_iface_ar71xx | 1 - .../ar71xx/base-files/lib/upgrade/platform.sh | 1 - target/linux/ar71xx/config-4.4 | 2 - .../files/arch/mips/ath79/Kconfig.openwrt | 8 - .../ar71xx/files/arch/mips/ath79/Makefile | 1 - .../ar71xx/files/arch/mips/ath79/mach-ap83.c | 275 ----------------- .../ar71xx/files/arch/mips/ath79/machtypes.h | 1 - .../linux/ar71xx/files/drivers/spi/spi-ap83.c | 283 ------------------ target/linux/ar71xx/image/legacy-devices.mk | 7 - target/linux/ar71xx/image/legacy.mk | 2 - target/linux/ar71xx/mikrotik/config-default | 1 - target/linux/ar71xx/nand/config-default | 1 - .../434-spi-ap83_spi_controller.patch | 27 -- .../patches-4.4/435-spi-vsc7385_driver.patch | 4 +- ...IPS-ath79-ap83-remove-mtd-partitions.patch | 44 --- 19 files changed, 3 insertions(+), 690 deletions(-) delete mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-ap83.c delete mode 100644 target/linux/ar71xx/files/drivers/spi/spi-ap83.c delete mode 100644 target/linux/ar71xx/patches-4.4/434-spi-ap83_spi_controller.patch delete mode 100644 target/linux/ar71xx/patches-4.4/615-MIPS-ath79-ap83-remove-mtd-partitions.patch diff --git a/package/firmware/vsc73x5-ucode/Makefile b/package/firmware/vsc73x5-ucode/Makefile index e3379a1f95..d73053bc17 100644 --- a/package/firmware/vsc73x5-ucode/Makefile +++ b/package/firmware/vsc73x5-ucode/Makefile @@ -34,32 +34,6 @@ define Package/vsc73x5/install $(INSTALL_DATA) $(PKG_BUILD_DIR)/$(2) $(1)/lib/firmware/$(3) endef -define Package/vsc7385-ucode-ap83 - $(call Package/vsc73x5-defaults,Vitesse VSC7385 microcode for the Atheros AP83 boards) -endef - -define Package/vsc7385-ucode-ap83/description - This package contains the Atheros AP83 board specific microcode for - the Vitesse VSC7385 ethernet switch. -endef - -define Package/vsc7385-ucode-ap83/install - $(call Package/vsc73x5/install,$(1),g5_Plus1_2_31_unmanaged_Atheros_v3.bin,vsc7385_ucode_ap83.bin) -endef - -define Package/vsc7395-ucode-ap83 - $(call Package/vsc73x5-defaults, Vitesse VSC7395 microcode for the Atheros AP83 boards) -endef - -define Package/vsc7395-ucode-ap83/description - This package contains the Atheros AP83 board specific microcode for - the Vitesse VSC7395 ethernet switch. -endef - -define Package/vsc7395-ucode-ap83/install - $(call Package/vsc73x5/install,$(1),g5_Plus1_2_31_unmanaged_Atheros_v4.bin,vsc7395_ucode_ap83.bin) -endef - define Package/vsc7385-ucode-pb44 $(call Package/vsc73x5-defaults, Vitesse VSC7395 microcode for the Atheros PB44 boards) endef @@ -78,7 +52,7 @@ define Package/vsc7395-ucode-pb44 endef define Package/vsc7395-ucode-pb44/description - This package contains the Atheros AP83 board specific microcode for + This package contains the Atheros PB44 board specific microcode for the Vitesse VSC7395 ethernet switch. endef @@ -90,7 +64,5 @@ define Build/Compile endef -$(eval $(call BuildPackage,vsc7385-ucode-ap83)) -$(eval $(call BuildPackage,vsc7395-ucode-ap83)) $(eval $(call BuildPackage,vsc7385-ucode-pb44)) $(eval $(call BuildPackage,vsc7395-ucode-pb44)) diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index 57d690d60c..f287d4bff2 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -119,7 +119,6 @@ ar71xx_setup_interfaces() ;; alfa-ap96|\ alfa-nx|\ - ap83|\ gl-ar150|\ gl-ar300m|\ gl-domino|\ diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 43ea2b683e..39a25aedde 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -42,7 +42,6 @@ get_status_led() { ap135-020) status_led="ap135:green:status" ;; - ap83|\ mr12|\ mr16|\ nbg6616|\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index c27cd136b0..d465c3f592 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -468,9 +468,6 @@ ar71xx_board_detect() { *AP81) name="ap81" ;; - *AP83) - name="ap83" - ;; *AP90Q) name="ap90q" ;; diff --git a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx b/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx index e2a70b82dd..ae632e0ea4 100644 --- a/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx +++ b/target/linux/ar71xx/base-files/lib/preinit/05_set_preinit_iface_ar71xx @@ -13,7 +13,6 @@ set_preinit_iface() { ap135-020 |\ ap136-020 |\ ap147-010 |\ - ap83 |\ archer-c5 |\ archer-c7 |\ bhr-4grv2 |\ diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 7b59bf3a55..dc68d44842 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -177,7 +177,6 @@ platform_check_image() { airrouter|\ ap132|\ ap81|\ - ap83|\ ap90q|\ bullet-m|\ c-55|\ diff --git a/target/linux/ar71xx/config-4.4 b/target/linux/ar71xx/config-4.4 index 3181797352..40090f749f 100644 --- a/target/linux/ar71xx/config-4.4 +++ b/target/linux/ar71xx/config-4.4 @@ -48,7 +48,6 @@ CONFIG_ATH79_MACH_AP143=y CONFIG_ATH79_MACH_AP147=y CONFIG_ATH79_MACH_AP152=y CONFIG_ATH79_MACH_AP81=y -CONFIG_ATH79_MACH_AP83=y CONFIG_ATH79_MACH_AP90Q=y CONFIG_ATH79_MACH_AP96=y CONFIG_ATH79_MACH_ARCHER_C7=y @@ -422,7 +421,6 @@ CONFIG_SOC_QCA953X=y CONFIG_SOC_QCA955X=y CONFIG_SOC_QCA956X=y CONFIG_SPI=y -CONFIG_SPI_AP83=y CONFIG_SPI_ATH79=y CONFIG_SPI_BITBANG=y CONFIG_SPI_MASTER=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index 9e1b50e262..a0f24e16b5 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -166,14 +166,6 @@ config ATH79_MACH_AP152 QCA AP152 reference boards. -config ATH79_MACH_AP83 - bool "Atheros AP83 board support" - select SOC_AR913X - select ATH79_DEV_GPIO_BUTTONS - select ATH79_DEV_LEDS_GPIO - select ATH79_DEV_USB - select ATH79_DEV_WMAC - config ATH79_MACH_AP90Q bool "YunCore AP90Q support" select SOC_QCA953X diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile index e573b4b5fe..4affa5d6b1 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile @@ -54,7 +54,6 @@ obj-$(CONFIG_ATH79_MACH_AP143) += mach-ap143.o obj-$(CONFIG_ATH79_MACH_AP147) += mach-ap147.o obj-$(CONFIG_ATH79_MACH_AP152) += mach-ap152.o obj-$(CONFIG_ATH79_MACH_AP81) += mach-ap81.o -obj-$(CONFIG_ATH79_MACH_AP83) += mach-ap83.o obj-$(CONFIG_ATH79_MACH_AP90Q) += mach-ap90q.o obj-$(CONFIG_ATH79_MACH_AP96) += mach-ap96.o obj-$(CONFIG_ATH79_MACH_ARCHER_C7) += mach-archer-c7.o diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ap83.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ap83.c deleted file mode 100644 index 8519a9d9a6..0000000000 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ap83.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Atheros AP83 board support - * - * Copyright (C) 2008-2012 Gabor Juhos - * Copyright (C) 2008 Imre Kaloz - * - * 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 -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "dev-eth.h" -#include "dev-gpio-buttons.h" -#include "dev-leds-gpio.h" -#include "dev-usb.h" -#include "dev-wmac.h" -#include "machtypes.h" - -#define AP83_GPIO_LED_WLAN 6 -#define AP83_GPIO_LED_POWER 14 -#define AP83_GPIO_LED_JUMPSTART 15 -#define AP83_GPIO_BTN_JUMPSTART 12 -#define AP83_GPIO_BTN_RESET 21 - -#define AP83_050_GPIO_VSC7385_CS 1 -#define AP83_050_GPIO_VSC7385_MISO 3 -#define AP83_050_GPIO_VSC7385_MOSI 16 -#define AP83_050_GPIO_VSC7385_SCK 17 - -#define AP83_KEYS_POLL_INTERVAL 20 /* msecs */ -#define AP83_KEYS_DEBOUNCE_INTERVAL (3 * AP83_KEYS_POLL_INTERVAL) - -static struct mtd_partition ap83_flash_partitions[] = { - { - .name = "u-boot", - .offset = 0, - .size = 0x040000, - .mask_flags = MTD_WRITEABLE, - }, { - .name = "u-boot-env", - .offset = 0x040000, - .size = 0x020000, - .mask_flags = MTD_WRITEABLE, - }, { - .name = "kernel", - .offset = 0x060000, - .size = 0x140000, - }, { - .name = "rootfs", - .offset = 0x1a0000, - .size = 0x650000, - }, { - .name = "art", - .offset = 0x7f0000, - .size = 0x010000, - .mask_flags = MTD_WRITEABLE, - }, { - .name = "firmware", - .offset = 0x060000, - .size = 0x790000, - } -}; - -static struct physmap_flash_data ap83_flash_data = { - .width = 2, - .parts = ap83_flash_partitions, - .nr_parts = ARRAY_SIZE(ap83_flash_partitions), -}; - -static struct resource ap83_flash_resources[] = { - [0] = { - .start = AR71XX_SPI_BASE, - .end = AR71XX_SPI_BASE + AR71XX_SPI_SIZE - 1, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device ap83_flash_device = { - .name = "ar91xx-flash", - .id = -1, - .resource = ap83_flash_resources, - .num_resources = ARRAY_SIZE(ap83_flash_resources), - .dev = { - .platform_data = &ap83_flash_data, - } -}; - -static struct gpio_led ap83_leds_gpio[] __initdata = { - { - .name = "ap83:green:jumpstart", - .gpio = AP83_GPIO_LED_JUMPSTART, - .active_low = 0, - }, { - .name = "ap83:green:power", - .gpio = AP83_GPIO_LED_POWER, - .active_low = 0, - }, { - .name = "ap83:green:wlan", - .gpio = AP83_GPIO_LED_WLAN, - .active_low = 0, - }, -}; - -static struct gpio_keys_button ap83_gpio_keys[] __initdata = { - { - .desc = "soft_reset", - .type = EV_KEY, - .code = KEY_RESTART, - .debounce_interval = AP83_KEYS_DEBOUNCE_INTERVAL, - .gpio = AP83_GPIO_BTN_RESET, - .active_low = 1, - }, { - .desc = "jumpstart", - .type = EV_KEY, - .code = KEY_WPS_BUTTON, - .debounce_interval = AP83_KEYS_DEBOUNCE_INTERVAL, - .gpio = AP83_GPIO_BTN_JUMPSTART, - .active_low = 1, - } -}; - -static struct resource ap83_040_spi_resources[] = { - [0] = { - .start = AR71XX_SPI_BASE, - .end = AR71XX_SPI_BASE + AR71XX_SPI_SIZE - 1, - .flags = IORESOURCE_MEM, - }, -}; - -static struct platform_device ap83_040_spi_device = { - .name = "ap83-spi", - .id = 0, - .resource = ap83_040_spi_resources, - .num_resources = ARRAY_SIZE(ap83_040_spi_resources), -}; - -static struct spi_gpio_platform_data ap83_050_spi_data = { - .miso = AP83_050_GPIO_VSC7385_MISO, - .mosi = AP83_050_GPIO_VSC7385_MOSI, - .sck = AP83_050_GPIO_VSC7385_SCK, - .num_chipselect = 1, -}; - -static struct platform_device ap83_050_spi_device = { - .name = "spi_gpio", - .id = 0, - .dev = { - .platform_data = &ap83_050_spi_data, - } -}; - -static void ap83_vsc7385_reset(void) -{ - ath79_device_reset_set(AR71XX_RESET_GE1_PHY); - udelay(10); - ath79_device_reset_clear(AR71XX_RESET_GE1_PHY); - mdelay(50); -} - -static struct vsc7385_platform_data ap83_vsc7385_data = { - .reset = ap83_vsc7385_reset, - .ucode_name = "vsc7385_ucode_ap83.bin", - .mac_cfg = { - .tx_ipg = 6, - .bit2 = 0, - .clk_sel = 3, - }, -}; - -static struct spi_board_info ap83_spi_info[] = { - { - .bus_num = 0, - .chip_select = 0, - .max_speed_hz = 25000000, - .modalias = "spi-vsc7385", - .platform_data = &ap83_vsc7385_data, - .controller_data = (void *) AP83_050_GPIO_VSC7385_CS, - } -}; - -static void __init ap83_generic_setup(void) -{ - u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); - - ath79_register_mdio(0, 0xfffffffe); - - ath79_init_mac(ath79_eth0_data.mac_addr, eeprom, 0); - ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; - ath79_eth0_data.phy_mask = 0x1; - - ath79_register_eth(0); - - ath79_init_mac(ath79_eth1_data.mac_addr, eeprom, 1); - ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; - ath79_eth1_data.speed = SPEED_1000; - ath79_eth1_data.duplex = DUPLEX_FULL; - - ath79_eth1_pll_data.pll_1000 = 0x1f000000; - - ath79_register_eth(1); - - ath79_register_leds_gpio(-1, ARRAY_SIZE(ap83_leds_gpio), - ap83_leds_gpio); - - ath79_register_gpio_keys_polled(-1, AP83_KEYS_POLL_INTERVAL, - ARRAY_SIZE(ap83_gpio_keys), - ap83_gpio_keys); - - ath79_register_usb(); - - ath79_register_wmac(eeprom, NULL); - - platform_device_register(&ap83_flash_device); - - spi_register_board_info(ap83_spi_info, ARRAY_SIZE(ap83_spi_info)); -} - -static void ap83_040_flash_lock(struct platform_device *pdev) -{ - ath79_flash_acquire(); -} - -static void ap83_040_flash_unlock(struct platform_device *pdev) -{ - ath79_flash_release(); -} - -static void __init ap83_040_setup(void) -{ - ap83_flash_data.lock = ap83_040_flash_lock; - ap83_flash_data.unlock = ap83_040_flash_unlock; - ap83_generic_setup(); - platform_device_register(&ap83_040_spi_device); -} - -static void __init ap83_050_setup(void) -{ - ap83_generic_setup(); - platform_device_register(&ap83_050_spi_device); -} - -static void __init ap83_setup(void) -{ - u8 *board_id = (u8 *) KSEG1ADDR(0x1fff1244); - unsigned int board_version; - - board_version = (unsigned int)(board_id[0] - '0'); - board_version += ((unsigned int)(board_id[1] - '0')) * 10; - - switch (board_version) { - case 40: - ap83_040_setup(); - break; - case 50: - ap83_050_setup(); - break; - default: - printk(KERN_WARNING "AP83-%03u board is not yet supported\n", - board_version); - } -} - -MIPS_MACHINE(ATH79_MACH_AP83, "AP83", "Atheros AP83", ap83_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 0054067406..8004fdb2f1 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -37,7 +37,6 @@ enum ath79_mach_type { ATH79_MACH_AP147_010, /* Atheros AP147-010 reference board */ ATH79_MACH_AP152, /* Atheros AP152 reference board */ ATH79_MACH_AP81, /* Atheros AP81 reference board */ - ATH79_MACH_AP83, /* Atheros AP83 */ ATH79_MACH_AP90Q, /* YunCore AP90Q */ ATH79_MACH_AP96, /* Atheros AP96 */ ATH79_MACH_ARCHER_C5, /* TP-LINK Archer C5 board */ diff --git a/target/linux/ar71xx/files/drivers/spi/spi-ap83.c b/target/linux/ar71xx/files/drivers/spi/spi-ap83.c deleted file mode 100644 index 33843a6daa..0000000000 --- a/target/linux/ar71xx/files/drivers/spi/spi-ap83.c +++ /dev/null @@ -1,283 +0,0 @@ -/* - * Atheros AP83 board specific SPI Controller driver - * - * Copyright (C) 2009 Gabor Juhos - * - * 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#define DRV_DESC "Atheros AP83 board SPI Controller driver" -#define DRV_VERSION "0.1.0" -#define DRV_NAME "ap83-spi" - -#define AP83_SPI_CLK_HIGH (1 << 23) -#define AP83_SPI_CLK_LOW 0 -#define AP83_SPI_MOSI_HIGH (1 << 22) -#define AP83_SPI_MOSI_LOW 0 - -#define AP83_SPI_GPIO_CS 1 -#define AP83_SPI_GPIO_MISO 3 - -struct ap83_spi { - struct spi_bitbang bitbang; - void __iomem *base; - u32 addr; - - struct platform_device *pdev; -}; - -static inline u32 ap83_spi_rr(struct ap83_spi *sp, u32 reg) -{ - return __raw_readl(sp->base + reg); -} - -static inline struct ap83_spi *spidev_to_sp(struct spi_device *spi) -{ - return spi_master_get_devdata(spi->master); -} - -static inline void setsck(struct spi_device *spi, int val) -{ - struct ap83_spi *sp = spidev_to_sp(spi); - - if (val) - sp->addr |= AP83_SPI_CLK_HIGH; - else - sp->addr &= ~AP83_SPI_CLK_HIGH; - - dev_dbg(&spi->dev, "addr=%08x, SCK set to %s\n", - sp->addr, (val) ? "HIGH" : "LOW"); - - ap83_spi_rr(sp, sp->addr); -} - -static inline void setmosi(struct spi_device *spi, int val) -{ - struct ap83_spi *sp = spidev_to_sp(spi); - - if (val) - sp->addr |= AP83_SPI_MOSI_HIGH; - else - sp->addr &= ~AP83_SPI_MOSI_HIGH; - - dev_dbg(&spi->dev, "addr=%08x, MOSI set to %s\n", - sp->addr, (val) ? "HIGH" : "LOW"); - - ap83_spi_rr(sp, sp->addr); -} - -static inline u32 getmiso(struct spi_device *spi) -{ - u32 ret; - - ret = gpio_get_value(AP83_SPI_GPIO_MISO) ? 1 : 0; - dev_dbg(&spi->dev, "get MISO: %d\n", ret); - - return ret; -} - -static inline void do_spidelay(struct spi_device *spi, unsigned nsecs) -{ - ndelay(nsecs); -} - -static void ap83_spi_chipselect(struct spi_device *spi, int on) -{ - struct ap83_spi *sp = spidev_to_sp(spi); - - dev_dbg(&spi->dev, "set CS to %d\n", (on) ? 0 : 1); - - if (on) { - ath79_flash_acquire(); - - sp->addr = 0; - ap83_spi_rr(sp, sp->addr); - - gpio_set_value(AP83_SPI_GPIO_CS, 0); - } else { - gpio_set_value(AP83_SPI_GPIO_CS, 1); - ath79_flash_release(); - } -} - -#define spidelay(nsecs) \ - do { \ - /* Steal the spi_device pointer from our caller. \ - * The bitbang-API should probably get fixed here... */ \ - do_spidelay(spi, nsecs); \ - } while (0) - -#define EXPAND_BITBANG_TXRX -#include -#include "spi-bitbang-txrx.h" - -static u32 ap83_spi_txrx_mode0(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) -{ - dev_dbg(&spi->dev, "TXRX0 word=%08x, bits=%u\n", word, bits); - return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); -} - -static u32 ap83_spi_txrx_mode1(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) -{ - dev_dbg(&spi->dev, "TXRX1 word=%08x, bits=%u\n", word, bits); - return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits); -} - -static u32 ap83_spi_txrx_mode2(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) -{ - dev_dbg(&spi->dev, "TXRX2 word=%08x, bits=%u\n", word, bits); - return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits); -} - -static u32 ap83_spi_txrx_mode3(struct spi_device *spi, - unsigned nsecs, u32 word, u8 bits) -{ - dev_dbg(&spi->dev, "TXRX3 word=%08x, bits=%u\n", word, bits); - return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits); -} - -static int ap83_spi_probe(struct platform_device *pdev) -{ - struct spi_master *master; - struct ap83_spi *sp; - struct ap83_spi_platform_data *pdata; - struct resource *r; - int ret; - - ret = gpio_request(AP83_SPI_GPIO_MISO, "spi-miso"); - if (ret) { - dev_err(&pdev->dev, "gpio request failed for MISO\n"); - return ret; - } - - ret = gpio_request(AP83_SPI_GPIO_CS, "spi-cs"); - if (ret) { - dev_err(&pdev->dev, "gpio request failed for CS\n"); - goto err_free_miso; - } - - ret = gpio_direction_input(AP83_SPI_GPIO_MISO); - if (ret) { - dev_err(&pdev->dev, "unable to set direction of MISO\n"); - goto err_free_cs; - } - - ret = gpio_direction_output(AP83_SPI_GPIO_CS, 0); - if (ret) { - dev_err(&pdev->dev, "unable to set direction of CS\n"); - goto err_free_cs; - } - - master = spi_alloc_master(&pdev->dev, sizeof(*sp)); - if (master == NULL) { - dev_err(&pdev->dev, "failed to allocate spi master\n"); - return -ENOMEM; - } - - sp = spi_master_get_devdata(master); - platform_set_drvdata(pdev, sp); - - pdata = pdev->dev.platform_data; - - sp->bitbang.master = spi_master_get(master); - sp->bitbang.chipselect = ap83_spi_chipselect; - sp->bitbang.txrx_word[SPI_MODE_0] = ap83_spi_txrx_mode0; - sp->bitbang.txrx_word[SPI_MODE_1] = ap83_spi_txrx_mode1; - sp->bitbang.txrx_word[SPI_MODE_2] = ap83_spi_txrx_mode2; - sp->bitbang.txrx_word[SPI_MODE_3] = ap83_spi_txrx_mode3; - - sp->bitbang.master->bus_num = pdev->id; - sp->bitbang.master->num_chipselect = 1; - - r = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (r == NULL) { - ret = -ENOENT; - goto err_spi_put; - } - - sp->base = ioremap_nocache(r->start, r->end - r->start + 1); - if (!sp->base) { - ret = -ENXIO; - goto err_spi_put; - } - - ret = spi_bitbang_start(&sp->bitbang); - if (!ret) - goto err_unmap; - - dev_info(&pdev->dev, "AP83 SPI adapter at %08x\n", r->start); - - return 0; - -err_unmap: - iounmap(sp->base); -err_spi_put: - platform_set_drvdata(pdev, NULL); - spi_master_put(sp->bitbang.master); - -err_free_cs: - gpio_free(AP83_SPI_GPIO_CS); -err_free_miso: - gpio_free(AP83_SPI_GPIO_MISO); - return ret; -} - -static int ap83_spi_remove(struct platform_device *pdev) -{ - struct ap83_spi *sp = platform_get_drvdata(pdev); - - spi_bitbang_stop(&sp->bitbang); - iounmap(sp->base); - platform_set_drvdata(pdev, NULL); - spi_master_put(sp->bitbang.master); - - return 0; -} - -static struct platform_driver ap83_spi_drv = { - .probe = ap83_spi_probe, - .remove = ap83_spi_remove, - .driver = { - .name = DRV_NAME, - .owner = THIS_MODULE, - }, -}; - -static int __init ap83_spi_init(void) -{ - return platform_driver_register(&ap83_spi_drv); -} -module_init(ap83_spi_init); - -static void __exit ap83_spi_exit(void) -{ - platform_driver_unregister(&ap83_spi_drv); -} -module_exit(ap83_spi_exit); - -MODULE_ALIAS("platform:" DRV_NAME); -MODULE_DESCRIPTION(DRV_DESC); -MODULE_VERSION(DRV_VERSION); -MODULE_AUTHOR("Gabor Juhos "); -MODULE_LICENSE("GPL v2"); diff --git a/target/linux/ar71xx/image/legacy-devices.mk b/target/linux/ar71xx/image/legacy-devices.mk index 5538c49b8d..48f347b4f3 100644 --- a/target/linux/ar71xx/image/legacy-devices.mk +++ b/target/linux/ar71xx/image/legacy-devices.mk @@ -20,13 +20,6 @@ define LegacyDevice/AP81 endef LEGACY_DEVICES += AP81 -define LegacyDevice/AP83 - DEVICE_TITLE := Atheros AP83 reference board - DEVICE_PACKAGES := kmod-usb-core kmod-usb2 \ - vsc7385-ucode-ap83 vsc7395-ucode-ap83 -endef -LEGACY_DEVICES += AP83 - define LegacyDevice/AP96 DEVICE_TITLE := Atheros AP96 reference board DEVICE_PACKAGES := kmod-usb-core kmod-usb2 diff --git a/target/linux/ar71xx/image/legacy.mk b/target/linux/ar71xx/image/legacy.mk index e0e7be1a88..939a51f394 100644 --- a/target/linux/ar71xx/image/legacy.mk +++ b/target/linux/ar71xx/image/legacy.mk @@ -228,7 +228,6 @@ alfa_mtdlayout_16M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,15936k(firmw all0258n_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),6272k(firmware),1536k(failsafe),64k(art)ro all0315n_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env),13568k(firmware),2048k(failsafe),256k(art)ro ap81_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,5120k(rootfs),2688k(kernel),64k(art)ro,7808k@0x50000(firmware) -ap83_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,128k(u-boot-env)ro,4096k(rootfs),3648k(kernel),64k(art)ro,7744k@0x60000(firmware) ap96_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),1728k(kernel),64k(art)ro,7872k@0x40000(firmware) ap121_mtdlayout_8M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),1600k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware) ap121_mtdlayout_16M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,10944k(rootfs),4992k(kernel),64k(nvram),64k(art)ro,15936k@0x50000(firmware) @@ -881,7 +880,6 @@ $(eval $(call SingleProfile,ALFA,64k,HORNETUB,hornet-ub,HORNET-UB,ttyATH0,115200 $(eval $(call SingleProfile,ALFA,64k,TUBE2H8M,tube2h-8M,TUBE2H,ttyATH0,115200,$$(alfa_mtdlayout_8M),1638400,6291456,kernel.image,rootfs.image)) $(eval $(call SingleProfile,AthGzip,64k,AP81,ap81,AP81,ttyS0,115200,$$(ap81_mtdlayout),RKuImage)) -$(eval $(call SingleProfile,AthGzip,64k,AP83,ap83,AP83,ttyS0,115200,$$(ap83_mtdlayout),RKuImage)) $(eval $(call SingleProfile,AthGzip,64k,AP96,ap96,AP96,ttyS0,115200,$$(ap96_mtdlayout),RKuImage)) $(eval $(call SingleProfile,AthGzip,64k,WNDAP360,wndap360,WNDAP360,ttyS0,9600,$$(wndap360_mtdlayout),KRuImage)) diff --git a/target/linux/ar71xx/mikrotik/config-default b/target/linux/ar71xx/mikrotik/config-default index e17b16635e..2791cfaa96 100644 --- a/target/linux/ar71xx/mikrotik/config-default +++ b/target/linux/ar71xx/mikrotik/config-default @@ -10,7 +10,6 @@ # CONFIG_ATH79_MACH_AP136 is not set # CONFIG_ATH79_MACH_AP147 is not set # CONFIG_ATH79_MACH_AP81 is not set -# CONFIG_ATH79_MACH_AP83 is not set # CONFIG_ATH79_MACH_AP96 is not set # CONFIG_ATH79_MACH_ARCHER_C7 is not set # CONFIG_ATH79_MACH_AW_NR580 is not set diff --git a/target/linux/ar71xx/nand/config-default b/target/linux/ar71xx/nand/config-default index 7f94781b8c..4ee5edfb17 100644 --- a/target/linux/ar71xx/nand/config-default +++ b/target/linux/ar71xx/nand/config-default @@ -9,7 +9,6 @@ # CONFIG_ATH79_MACH_AP136 is not set # CONFIG_ATH79_MACH_AP147 is not set # CONFIG_ATH79_MACH_AP81 is not set -# CONFIG_ATH79_MACH_AP83 is not set # CONFIG_ATH79_MACH_AP96 is not set # CONFIG_ATH79_MACH_ARCHER_C7 is not set # CONFIG_ATH79_MACH_AW_NR580 is not set diff --git a/target/linux/ar71xx/patches-4.4/434-spi-ap83_spi_controller.patch b/target/linux/ar71xx/patches-4.4/434-spi-ap83_spi_controller.patch deleted file mode 100644 index a67e8084a2..0000000000 --- a/target/linux/ar71xx/patches-4.4/434-spi-ap83_spi_controller.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/drivers/spi/Makefile -+++ b/drivers/spi/Makefile -@@ -12,6 +12,7 @@ obj-$(CONFIG_SPI_SPIDEV) += spidev.o - # SPI master controller drivers (bus) - obj-$(CONFIG_SPI_ALTERA) += spi-altera.o - obj-$(CONFIG_SPI_ATMEL) += spi-atmel.o -+obj-$(CONFIG_SPI_AP83) += spi-ap83.o - obj-$(CONFIG_SPI_ATH79) += spi-ath79.o - obj-$(CONFIG_SPI_AU1550) += spi-au1550.o - obj-$(CONFIG_SPI_BCM2835) += spi-bcm2835.o ---- a/drivers/spi/Kconfig -+++ b/drivers/spi/Kconfig -@@ -59,6 +59,14 @@ config SPI_ALTERA - help - This is the driver for the Altera SPI Controller. - -+config SPI_AP83 -+ tristate "Atheros AP83 specific SPI Controller" -+ depends on SPI_MASTER && ATH79_MACH_AP83 -+ select SPI_BITBANG -+ help -+ This is a specific SPI controller driver for the Atheros AP83 -+ reference board. -+ - config SPI_ATH79 - tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver" - depends on ATH79 && GPIOLIB diff --git a/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch b/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch index 78318f8e25..880c088c56 100644 --- a/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch +++ b/target/linux/ar71xx/patches-4.4/435-spi-vsc7385_driver.patch @@ -1,6 +1,6 @@ --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig -@@ -728,6 +728,11 @@ config SPI_RB4XX_CPLD +@@ -720,6 +720,11 @@ config SPI_RB4XX_CPLD SPI driver for the Xilinx CPLD chip present on the MikroTik RB4xx boards. @@ -14,7 +14,7 @@ # --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile -@@ -92,6 +92,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi- +@@ -91,6 +91,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi- obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x0.o obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o obj-$(CONFIG_SPI_TXX9) += spi-txx9.o diff --git a/target/linux/ar71xx/patches-4.4/615-MIPS-ath79-ap83-remove-mtd-partitions.patch b/target/linux/ar71xx/patches-4.4/615-MIPS-ath79-ap83-remove-mtd-partitions.patch deleted file mode 100644 index 60872ae0a6..0000000000 --- a/target/linux/ar71xx/patches-4.4/615-MIPS-ath79-ap83-remove-mtd-partitions.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- a/arch/mips/ath79/mach-ap83.c -+++ b/arch/mips/ath79/mach-ap83.c -@@ -42,41 +42,8 @@ - #define AP83_KEYS_POLL_INTERVAL 20 /* msecs */ - #define AP83_KEYS_DEBOUNCE_INTERVAL (3 * AP83_KEYS_POLL_INTERVAL) - --static struct mtd_partition ap83_flash_partitions[] = { -- { -- .name = "u-boot", -- .offset = 0, -- .size = 0x040000, -- .mask_flags = MTD_WRITEABLE, -- }, { -- .name = "u-boot-env", -- .offset = 0x040000, -- .size = 0x020000, -- .mask_flags = MTD_WRITEABLE, -- }, { -- .name = "kernel", -- .offset = 0x060000, -- .size = 0x140000, -- }, { -- .name = "rootfs", -- .offset = 0x1a0000, -- .size = 0x650000, -- }, { -- .name = "art", -- .offset = 0x7f0000, -- .size = 0x010000, -- .mask_flags = MTD_WRITEABLE, -- }, { -- .name = "firmware", -- .offset = 0x060000, -- .size = 0x790000, -- } --}; -- - static struct physmap_flash_data ap83_flash_data = { - .width = 2, -- .parts = ap83_flash_partitions, -- .nr_parts = ARRAY_SIZE(ap83_flash_partitions), - }; - - static struct resource ap83_flash_resources[] = { -- 2.25.1