Unverified Commit 0fbd7409 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'ixp4xx-del-boardfiles-v5.15' of...

Merge tag 'ixp4xx-del-boardfiles-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/soc

This deletes the following IXP4xx boardfiles:

- NSLU2
- NAS100D
- D-Link DSM-G600
- Omicron
- Gateway WG302v2
- Arcom Vulcan
- Avila
- Intel reference designs
- Coyote and IXDPG425
- GTW5715
- Freecom FSG-3

In each case except Omicron, the board has been replaced by
a corresponding device tree and tested where someone
volunteered: Marc Zyngier has tested Arcom Vulcan and Freecom
FSG-3 and I have tested NSLU2 and Avila for example. All
that were tested boot to prompt, some devices may need some
more massage before working perfectly.

We can just as well delete these board files because we are
confident that we will fix them to a working state if people
are able to test patches.

I am holding back the following boards for now:

- Gateway 7001 - because Zoltan is working on this board and
  needs more time. He might need to test things with the board
  file so let's allow him time for that.

- Goramo MLR - the consensus is to replace this with a dry
  coded device tree, but the bindings for that tree need some
  more time to make so we keep the boardfile around until
  we can merge a complete device tree for it.

After these two (target v5.16) we can delete the remaining
board files and the old mach structure along with the old PCI
driver.

* tag 'ixp4xx-del-boardfiles-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
  ARM: ixp4xx: Delete the Freecom FSG-3 boardfiles
  ARM: ixp4xx: Delete GTWX5715 board files
  ARM: ixp4xx: Delete Coyote and IXDPG425 boardfiles
  ARM: ixp4xx: Delete Intel reference design boardfiles
  ARM: ixp4xx: Delete Avila boardfiles
  ARM: ixp4xx: Delete the Arcom Vulcan boardfiles
  ARM: ixp4xx: Delete Gateway WG302v2 boardfiles
  ARM: ixp4xx: Delete Omicron boardfiles
  ARM: ixp4xx: Delete the D-Link DSM-G600 boardfiles
  ARM: ixp4xx: Delete NAS100D boardfiles
  ARM: ixp4xx: Delete NSLU2 boardfiles

Link: https://lore.kernel.org/r/CACRpkdY=sPDkzmbmm+0UQnJi7BXZKH14GLmyVwKC+4cLCJpmdA@mail.gmail.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents e6949527 b71377b3
Loading
Loading
Loading
Loading
+0 −158
Original line number Diff line number Diff line
@@ -17,39 +17,6 @@ config MACH_IXP4XX_OF
	help
	  Say 'Y' here to support Device Tree-based IXP4xx platforms.

config MACH_NSLU2
	bool
	prompt "Linksys NSLU2"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Linksys's
	  NSLU2 NAS device. For more information on this platform,
	  see http://www.nslu2-linux.org

config MACH_AVILA
	bool "Avila"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support the Gateworks
	  Avila Network Platform. For more information on this platform,
	  see <file:Documentation/arm/ixp4xx.rst>.

config MACH_LOFT
    bool "Loft"
    depends on MACH_AVILA
    help
	  Say 'Y' here if you want your kernel to support the Giant
	  Shoulder Inc Loft board (a minor variation on the standard
	  Gateworks Avila Network Platform).

config ARCH_ADI_COYOTE
	bool "Coyote"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support the ADI 
	  Engineering Coyote Gateway Reference Platform. For more
	  information on this platform, see <file:Documentation/arm/ixp4xx.rst>.

config MACH_GATEWAY7001
	bool "Gateway 7001"
	depends on IXP4XX_PCI_LEGACY
@@ -58,60 +25,12 @@ config MACH_GATEWAY7001
	  7001 Access Point. For more information on this platform,
	  see http://openwrt.org

config MACH_WG302V2
	bool "Netgear WG302 v2 / WAG302 v2"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Netgear's
	  WG302 v2 or WAG302 v2 Access Points. For more information
	  on this platform, see http://openwrt.org

config ARCH_IXDP425
	bool "IXDP425"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Intel's 
	  IXDP425 Development Platform (Also known as Richfield).  
	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.

config MACH_IXDPG425
	bool "IXDPG425"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Intel's
	  IXDPG425 Development Platform (Also known as Montajade).
	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.

config MACH_IXDP465
	bool "IXDP465"
	help
	  Say 'Y' here if you want your kernel to support Intel's
	  IXDP465 Development Platform (Also known as BMP).
	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.

config MACH_GORAMO_MLR
	bool "GORAMO Multi Link Router"
	help
	  Say 'Y' here if you want your kernel to support GORAMO
	  MultiLink router.

config MACH_KIXRP435
	bool "KIXRP435"
	help
	  Say 'Y' here if you want your kernel to support Intel's
	  KIXRP435 Reference Platform.
	  For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.

#
# IXCDP1100 is the exact same HW as IXDP425, but with a different machine 
# number from the bootloader due to marketing monkeys, so we just enable it 
# by default if IXDP425 is enabled.
#
config ARCH_IXCDP1100
	bool 
	depends on ARCH_IXDP425
	default y

config ARCH_PRPMC1100
	bool "PrPMC1100"
	help
@@ -119,46 +38,6 @@ config ARCH_PRPMC1100
	  PrPCM1100 Processor Mezanine Module. For more information on
	  this platform, see <file:Documentation/arm/ixp4xx.rst>.

config MACH_NAS100D
	bool
	prompt "NAS100D"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Iomega's
	  NAS 100d device. For more information on this platform,
	  see http://www.nslu2-linux.org/wiki/NAS100d/HomePage

config MACH_DSMG600
	bool
	prompt "D-Link DSM-G600 RevA"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support D-Link's
	  DSM-G600 RevA device. For more information on this platform,
	  see http://www.nslu2-linux.org/wiki/DSMG600/HomePage

config	ARCH_IXDP4XX
	bool
	depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435
	default y

config MACH_FSG
	bool
	prompt "Freecom FSG-3"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Freecom's
	  FSG-3 device. For more information on this platform,
	  see http://www.nslu2-linux.org/wiki/FSG3/HomePage

config MACH_ARCOM_VULCAN
	bool
	prompt "Arcom/Eurotech Vulcan"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Arcom's
	  Vulcan board.

#
# Certain registers and IRQs are only enabled if supporting IXP465 CPUs
#
@@ -172,43 +51,6 @@ config CPU_IXP43X
	depends on MACH_KIXRP435
	default y

config MACH_GTWX5715
	bool "Gemtek WX5715 (Linksys WRV54G)"
	depends on ARCH_IXP4XX
	depends on IXP4XX_PCI_LEGACY
	help
		This board is currently inside the Linksys WRV54G Gateways.

		IXP425 - 266mhz
		32mb SDRAM
		8mb Flash
		miniPCI slot 0 does not have a card connector soldered to the board
		miniPCI slot 1 has an ISL3880 802.11g card (Prism54)
		npe0 is connected to a Kendin KS8995M Switch (4 ports)
		npe1 is the "wan" port
		"Console" UART is available on J11 as console
		"High Speed" UART is n/c (as far as I can tell)
		20 Pin ARM/Xscale JTAG interface on J2

config MACH_DEVIXP
	bool "Omicron DEVIXP"
	help
	  Say 'Y' here if you want your kernel to support the DEVIXP
	  board from OMICRON electronics GmbH.

config MACH_MICCPT
	bool "Omicron MICCPT"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support the MICCPT
	  board from OMICRON electronics GmbH.

config MACH_MIC256
	bool "Omicron MIC256"
	help
	  Say 'Y' here if you want your kernel to support the MIC256
	  board from OMICRON electronics GmbH.

comment "IXP4xx Options"

config IXP4XX_PCI_LEGACY
+0 −26
Original line number Diff line number Diff line
@@ -9,37 +9,11 @@ obj-pci-n :=
# Device tree platform
obj-pci-$(CONFIG_MACH_IXP4XX_OF)	+= ixp4xx-of.o

obj-pci-$(CONFIG_ARCH_IXDP4XX)		+= ixdp425-pci.o
obj-pci-$(CONFIG_MACH_AVILA)		+= avila-pci.o
obj-pci-$(CONFIG_MACH_IXDPG425)		+= ixdpg425-pci.o
obj-pci-$(CONFIG_ARCH_ADI_COYOTE)	+= coyote-pci.o
obj-pci-$(CONFIG_MACH_GTWX5715)		+= gtwx5715-pci.o
obj-pci-$(CONFIG_MACH_MICCPT)		+= miccpt-pci.o
obj-pci-$(CONFIG_MACH_NSLU2)		+= nslu2-pci.o
obj-pci-$(CONFIG_MACH_NAS100D)		+= nas100d-pci.o
obj-pci-$(CONFIG_MACH_DSMG600)		+= dsmg600-pci.o
obj-pci-$(CONFIG_MACH_GATEWAY7001)	+= gateway7001-pci.o
obj-pci-$(CONFIG_MACH_WG302V2)		+= wg302v2-pci.o
obj-pci-$(CONFIG_MACH_FSG)		+= fsg-pci.o
obj-pci-$(CONFIG_MACH_ARCOM_VULCAN)	+= vulcan-pci.o

obj-y	+= common.o

obj-$(CONFIG_ARCH_IXDP4XX)	+= ixdp425-setup.o
obj-$(CONFIG_MACH_AVILA)	+= avila-setup.o
obj-$(CONFIG_MACH_IXDPG425)	+= coyote-setup.o
obj-$(CONFIG_ARCH_ADI_COYOTE)	+= coyote-setup.o
obj-$(CONFIG_MACH_GTWX5715)	+= gtwx5715-setup.o
obj-$(CONFIG_MACH_DEVIXP)	+= omixp-setup.o
obj-$(CONFIG_MACH_MICCPT)	+= omixp-setup.o
obj-$(CONFIG_MACH_MIC256)	+= omixp-setup.o
obj-$(CONFIG_MACH_NSLU2)	+= nslu2-setup.o
obj-$(CONFIG_MACH_NAS100D)	+= nas100d-setup.o
obj-$(CONFIG_MACH_DSMG600)      += dsmg600-setup.o
obj-$(CONFIG_MACH_GATEWAY7001)	+= gateway7001-setup.o
obj-$(CONFIG_MACH_WG302V2)	+= wg302v2-setup.o
obj-$(CONFIG_MACH_FSG)		+= fsg-setup.o
obj-$(CONFIG_MACH_GORAMO_MLR)	+= goramo_mlr.o
obj-$(CONFIG_MACH_ARCOM_VULCAN)	+= vulcan-setup.o

obj-$(CONFIG_PCI)		+= $(obj-pci-$(CONFIG_PCI)) common-pci.o

arch/arm/mach-ixp4xx/avila-pci.c

deleted100644 → 0
+0 −79
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * arch/arm/mach-ixp4xx/avila-pci.c
 *
 * Gateworks Avila board-level PCI initialization
 *
 * Author: Michael-Luke Jones <mlj28@cam.ac.uk>
 *
 * Based on ixdp-pci.c
 * Copyright (C) 2002 Intel Corporation.
 * Copyright (C) 2003-2004 MontaVista Software, Inc.
 *
 * Maintainer: Deepak Saxena <dsaxena@plexity.net>
 */

#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/delay.h>
#include <asm/mach/pci.h>
#include <asm/irq.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>

#include "irqs.h"

#define AVILA_MAX_DEV	4
#define LOFT_MAX_DEV	6
#define IRQ_LINES	4

/* PCI controller GPIO to IRQ pin mappings */
#define INTA		11
#define INTB		10
#define INTC		9
#define INTD		8

void __init avila_pci_preinit(void)
{
	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
	ixp4xx_pci_preinit();
}

static int __init avila_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
	static int pci_irq_table[IRQ_LINES] = {
		IXP4XX_GPIO_IRQ(INTA),
		IXP4XX_GPIO_IRQ(INTB),
		IXP4XX_GPIO_IRQ(INTC),
		IXP4XX_GPIO_IRQ(INTD)
	};

	if (slot >= 1 &&
	    slot <= (machine_is_loft() ? LOFT_MAX_DEV : AVILA_MAX_DEV) &&
	    pin >= 1 && pin <= IRQ_LINES)
		return pci_irq_table[(slot + pin - 2) % 4];

	return -1;
}

struct hw_pci avila_pci __initdata = {
	.nr_controllers = 1,
	.ops		= &ixp4xx_ops,
	.preinit	= avila_pci_preinit,
	.setup		= ixp4xx_setup,
	.map_irq	= avila_map_irq,
};

int __init avila_pci_init(void)
{
	if (machine_is_avila() || machine_is_loft())
		pci_common_init(&avila_pci);
	return 0;
}

subsys_initcall(avila_pci_init);
+0 −210
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
 * arch/arm/mach-ixp4xx/avila-setup.c
 *
 * Gateworks Avila board-setup
 *
 * Author: Michael-Luke Jones <mlj28@cam.ac.uk>
 *
 * Based on ixdp-setup.c
 * Copyright (C) 2003-2005 MontaVista Software, Inc.
 *
 * Author: Deepak Saxena <dsaxena@plexity.net>
 */

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/serial.h>
#include <linux/tty.h>
#include <linux/serial_8250.h>
#include <linux/gpio/machine.h>
#include <linux/platform_data/pata_ixp4xx_cf.h>
#include <asm/types.h>
#include <asm/setup.h>
#include <asm/memory.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>

#include "irqs.h"

#define AVILA_SDA_PIN	7
#define AVILA_SCL_PIN	6

static struct flash_platform_data avila_flash_data = {
	.map_name	= "cfi_probe",
	.width		= 2,
};

static struct resource avila_flash_resource = {
	.flags		= IORESOURCE_MEM,
};

static struct platform_device avila_flash = {
	.name		= "IXP4XX-Flash",
	.id		= 0,
	.dev		= {
		.platform_data = &avila_flash_data,
	},
	.num_resources	= 1,
	.resource	= &avila_flash_resource,
};

static struct gpiod_lookup_table avila_i2c_gpiod_table = {
	.dev_id		= "i2c-gpio.0",
	.table		= {
		GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", AVILA_SDA_PIN,
				NULL, 0, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
		GPIO_LOOKUP_IDX("IXP4XX_GPIO_CHIP", AVILA_SCL_PIN,
				NULL, 1, GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
	},
};

static struct platform_device avila_i2c_gpio = {
	.name		= "i2c-gpio",
	.id		= 0,
	.dev	 = {
		.platform_data	= NULL,
	},
};

static struct resource avila_uart_resources[] = {
	{
		.start		= IXP4XX_UART1_BASE_PHYS,
		.end		= IXP4XX_UART1_BASE_PHYS + 0x0fff,
		.flags		= IORESOURCE_MEM
	},
	{
		.start		= IXP4XX_UART2_BASE_PHYS,
		.end		= IXP4XX_UART2_BASE_PHYS + 0x0fff,
		.flags		= IORESOURCE_MEM
	}
};

static struct plat_serial8250_port avila_uart_data[] = {
	{
		.mapbase	= IXP4XX_UART1_BASE_PHYS,
		.membase	= (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET,
		.irq		= IRQ_IXP4XX_UART1,
		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
		.iotype		= UPIO_MEM,
		.regshift	= 2,
		.uartclk	= IXP4XX_UART_XTAL,
	},
	{
		.mapbase	= IXP4XX_UART2_BASE_PHYS,
		.membase	= (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
		.irq		= IRQ_IXP4XX_UART2,
		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
		.iotype		= UPIO_MEM,
		.regshift	= 2,
		.uartclk	= IXP4XX_UART_XTAL,
	},
	{ },
};

static struct platform_device avila_uart = {
	.name			= "serial8250",
	.id			= PLAT8250_DEV_PLATFORM,
	.dev.platform_data	= avila_uart_data,
	.num_resources		= 2,
	.resource		= avila_uart_resources
};

static struct resource avila_pata_resources[] = {
	{
		.flags	= IORESOURCE_MEM
	},
	{
		.flags	= IORESOURCE_MEM,
	},
	{
		.name	= "intrq",
		.start	= IRQ_IXP4XX_GPIO12,
		.end	= IRQ_IXP4XX_GPIO12,
		.flags	= IORESOURCE_IRQ,
	},
};

static struct ixp4xx_pata_data avila_pata_data = {
	.cs0_bits	= 0xbfff0043,
	.cs1_bits	= 0xbfff0043,
};

static struct platform_device avila_pata = {
	.name			= "pata_ixp4xx_cf",
	.id			= 0,
	.dev.platform_data      = &avila_pata_data,
	.num_resources		= ARRAY_SIZE(avila_pata_resources),
	.resource		= avila_pata_resources,
};

static struct platform_device *avila_devices[] __initdata = {
	&avila_i2c_gpio,
	&avila_flash,
	&avila_uart
};

static void __init avila_init(void)
{
	ixp4xx_sys_init();

	avila_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
	avila_flash_resource.end =
		IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1;

	gpiod_add_lookup_table(&avila_i2c_gpiod_table);

	platform_add_devices(avila_devices, ARRAY_SIZE(avila_devices));

	avila_pata_resources[0].start = IXP4XX_EXP_BUS_BASE(1);
	avila_pata_resources[0].end = IXP4XX_EXP_BUS_END(1);

	avila_pata_resources[1].start = IXP4XX_EXP_BUS_BASE(2);
	avila_pata_resources[1].end = IXP4XX_EXP_BUS_END(2);

	avila_pata_data.cs0_cfg = IXP4XX_EXP_CS1;
	avila_pata_data.cs1_cfg = IXP4XX_EXP_CS2;

	platform_device_register(&avila_pata);

}

MACHINE_START(AVILA, "Gateworks Avila Network Platform")
	/* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
	.map_io		= ixp4xx_map_io,
	.init_early	= ixp4xx_init_early,
	.init_irq	= ixp4xx_init_irq,
	.init_time	= ixp4xx_timer_init,
	.atag_offset	= 0x100,
	.init_machine	= avila_init,
#if defined(CONFIG_PCI)
	.dma_zone_size	= SZ_64M,
#endif
	.restart	= ixp4xx_restart,
MACHINE_END

 /*
  * Loft is functionally equivalent to Avila except that it has a
  * different number for the maximum PCI devices.  The MACHINE
  * structure below is identical to Avila except for the comment.
  */
#ifdef CONFIG_MACH_LOFT
MACHINE_START(LOFT, "Giant Shoulder Inc Loft board")
	/* Maintainer: Tom Billman <kernel@giantshoulderinc.com> */
	.map_io		= ixp4xx_map_io,
	.init_early	= ixp4xx_init_early,
	.init_irq	= ixp4xx_init_irq,
	.init_time	= ixp4xx_timer_init,
	.atag_offset	= 0x100,
	.init_machine	= avila_init,
#if defined(CONFIG_PCI)
	.dma_zone_size	= SZ_64M,
#endif
	.restart	= ixp4xx_restart,
MACHINE_END
#endif

arch/arm/mach-ixp4xx/coyote-pci.c

deleted100644 → 0
+0 −62
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * arch/arm/mach-ixp4xx/coyote-pci.c
 *
 * PCI setup routines for ADI Engineering Coyote platform
 *
 * Copyright (C) 2002 Jungo Software Technologies.
 * Copyright (C) 2003 MontaVista Softwrae, Inc.
 *
 * Maintainer: Deepak Saxena <dsaxena@mvista.com>
 */

#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/irq.h>
#include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach/pci.h>

#include "irqs.h"

#define SLOT0_DEVID	14
#define SLOT1_DEVID	15

/* PCI controller GPIO to IRQ pin mappings */
#define SLOT0_INTA	6
#define SLOT1_INTA	11

void __init coyote_pci_preinit(void)
{
	irq_set_irq_type(IXP4XX_GPIO_IRQ(SLOT0_INTA), IRQ_TYPE_LEVEL_LOW);
	irq_set_irq_type(IXP4XX_GPIO_IRQ(SLOT1_INTA), IRQ_TYPE_LEVEL_LOW);
	ixp4xx_pci_preinit();
}

static int __init coyote_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
	if (slot == SLOT0_DEVID)
		return IXP4XX_GPIO_IRQ(SLOT0_INTA);
	else if (slot == SLOT1_DEVID)
		return IXP4XX_GPIO_IRQ(SLOT1_INTA);
	else return -1;
}

struct hw_pci coyote_pci __initdata = {
	.nr_controllers = 1,
	.ops		= &ixp4xx_ops,
	.preinit =        coyote_pci_preinit,
	.setup =          ixp4xx_setup,
	.map_irq =        coyote_map_irq,
};

int __init coyote_pci_init(void)
{
	if (machine_is_adi_coyote())
		pci_common_init(&coyote_pci);
	return 0;
}

subsys_initcall(coyote_pci_init);
Loading