Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 970e268d authored by Manuel Lauss's avatar Manuel Lauss Committed by Ralf Baechle
Browse files

MIPS: Alchemy: Unify Devboard support.



This patch merges support for all DB1xxx and PB1xxx
boards into a single image, along with a new single defconfig
for them.

Run-tested on DB1300 and DB1500.

Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
Cc: Linux-MIPS <linux-mips@linux-mips.org>
Patchwork: https://patchwork.linux-mips.org/patch/6577/
Patchwork: https://patchwork.linux-mips.org/patch/6659/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 88e9a93c
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ config ALCHEMY_GPIO_INDIRECT
choice
	prompt "Machine type"
	depends on MIPS_ALCHEMY
	default MIPS_DB1000
	default MIPS_DB1XXX

config MIPS_MTX1
	bool "4G Systems MTX-1 board"
@@ -25,20 +25,17 @@ config MIPS_MTX1
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_HAS_EARLY_PRINTK

config MIPS_DB1000
	bool "Alchemy DB1000/DB1500/DB1100 PB1500/1100 boards"
	select ALCHEMY_GPIOINT_AU1000
	select HW_HAS_PCI
	select SYS_SUPPORTS_BIG_ENDIAN
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_HAS_EARLY_PRINTK

config MIPS_DB1235
	bool "Alchemy DB1200/PB1200/DB1300/DB1550/PB1550 boards"
config MIPS_DB1XXX
	bool "Alchemy DB1XXX / PB1XXX boards"
	select ARCH_REQUIRE_GPIOLIB
	select HW_HAS_PCI
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select SYS_HAS_EARLY_PRINTK
	help
	  Select this option if you have one of the following Alchemy
	  development boards:  DB1000 DB1500 DB1100 DB1550 DB1200 DB1300
			       PB1500 PB1100 PB1550 PB1200
	  Board type is autodetected during boot.

config MIPS_XXS1500
	bool "MyCable XXS1500 board"
+5 −11
Original line number Diff line number Diff line
@@ -5,18 +5,12 @@ platform-$(CONFIG_MIPS_ALCHEMY) += alchemy/common/


#
# AMD Alchemy Db1000/Db1500/Pb1500/Db1100/Pb1100 eval boards
# AMD Alchemy Db1000/Db1500/Pb1500/Db1100/Pb1100
#             Db1550/Pb1550/Db1200/Pb1200/Db1300
#
platform-$(CONFIG_MIPS_DB1000)	+= alchemy/devboards/
cflags-$(CONFIG_MIPS_DB1000)	+= -I$(srctree)/arch/mips/include/asm/mach-db1x00
load-$(CONFIG_MIPS_DB1000)	+= 0xffffffff80100000

#
# AMD Alchemy Db1200/Pb1200/Db1550/Pb1550/Db1300 eval boards
#
platform-$(CONFIG_MIPS_DB1235)	+= alchemy/devboards/
cflags-$(CONFIG_MIPS_DB1235)	+= -I$(srctree)/arch/mips/include/asm/mach-db1x00
load-$(CONFIG_MIPS_DB1235)	+= 0xffffffff80100000
platform-$(CONFIG_MIPS_DB1XXX)	+= alchemy/devboards/
cflags-$(CONFIG_MIPS_DB1XXX)	+= -I$(srctree)/arch/mips/include/asm/mach-db1x00
load-$(CONFIG_MIPS_DB1XXX)	+= 0xffffffff80100000

#
# 4G-Systems MTX-1 "MeshCube" wireless router
+1 −3
Original line number Diff line number Diff line
@@ -2,7 +2,5 @@
# Alchemy Develboards
#

obj-y += bcsr.o platform.o
obj-y += bcsr.o platform.o db1000.o db1200.o db1300.o db1550.o db1xxx.o
obj-$(CONFIG_PM)		+= pm.o
obj-$(CONFIG_MIPS_DB1000)	+= db1000.o
obj-$(CONFIG_MIPS_DB1235)	+= db1235.o db1200.o db1300.o db1550.o
+12 −35
Original line number Diff line number Diff line
@@ -41,42 +41,27 @@

#define F_SWAPPED (bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT)

struct pci_dev;
const char *get_system_type(void);

static const char *board_type_str(void)
int __init db1000_board_setup(void)
{
	/* initialize board register space */
	bcsr_init(DB1000_BCSR_PHYS_ADDR,
		  DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);

	switch (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI))) {
	case BCSR_WHOAMI_DB1000:
		return "DB1000";
	case BCSR_WHOAMI_DB1500:
		return "DB1500";
	case BCSR_WHOAMI_DB1100:
		return "DB1100";
	case BCSR_WHOAMI_PB1500:
	case BCSR_WHOAMI_PB1500R2:
		return "PB1500";
	case BCSR_WHOAMI_PB1100:
		return "PB1100";
	default:
		return "(unknown)";
	}
}

const char *get_system_type(void)
{
	return board_type_str();
		pr_info("AMD Alchemy %s Board\n", get_system_type());
		return 0;
	}

void __init board_setup(void)
{
	/* initialize board register space */
	bcsr_init(DB1000_BCSR_PHYS_ADDR,
		  DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);

	printk(KERN_INFO "AMD Alchemy %s Board\n", board_type_str());
	return -ENODEV;
}


static int db1500_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
{
	if ((slot < 12) || (slot > 13) || pin == 0)
@@ -114,17 +99,10 @@ static struct platform_device db1500_pci_host_dev = {
	.resource	= alchemy_pci_host_res,
};

static int __init db1500_pci_init(void)
int __init db1500_pci_setup(void)
{
	int id = BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI));
	if ((id == BCSR_WHOAMI_DB1500) || (id == BCSR_WHOAMI_PB1500) ||
	    (id == BCSR_WHOAMI_PB1500R2))
	return platform_device_register(&db1500_pci_host_dev);
	return 0;
}
/* must be arch_initcall; MIPS PCI scans busses in a subsys_initcall */
arch_initcall(db1500_pci_init);


static struct resource au1100_lcd_resources[] = {
	[0] = {
@@ -513,7 +491,7 @@ static struct platform_device *db1100_devs[] = {
	&db1000_irda_dev,
};

static int __init db1000_dev_init(void)
int __init db1000_dev_setup(void)
{
	int board = BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI));
	int c0, c1, d0, d1, s0, s1, flashsize = 32,  twosocks = 1;
@@ -623,4 +601,3 @@ static int __init db1000_dev_init(void)
	db1x_register_norflash(flashsize << 20, 4 /* 32bit */, F_SWAPPED);
	return 0;
}
device_initcall(db1000_dev_init);
+9 −0
Original line number Diff line number Diff line
@@ -89,6 +89,15 @@ int __init db1200_board_setup(void)
		return -ENODEV;

	whoami = bcsr_read(BCSR_WHOAMI);
	switch (BCSR_WHOAMI_BOARD(whoami)) {
	case BCSR_WHOAMI_PB1200_DDR1:
	case BCSR_WHOAMI_PB1200_DDR2:
	case BCSR_WHOAMI_DB1200:
		break;
	default:
		return -ENODEV;
	}

	printk(KERN_INFO "Alchemy/AMD/RMI %s Board, CPLD Rev %d"
		"  Board-ID %d	Daughtercard ID %d\n", get_system_type(),
		(whoami >> 4) & 0xf, (whoami >> 8) & 0xf, whoami & 0xf);
Loading