bcm63xx: Add a fixup for rt2x00 devices.

This patch adds support for defining rt2x00 eeprom data.
This eeprom data can be extracted from flash or loaded directly from a firmware file.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 34322
v19.07.3_mercusys_ac12_duma
Jonas Gorski 12 years ago
parent 746b4cec06
commit 60e0e0d6e6

@ -0,0 +1,39 @@
#!/bin/sh
# Based on gabors ralink wisoc implementation.
rt2x00_eeprom_die() {
echo "rt2x00 eeprom: " "$*"
exit 1
}
rt2x00_eeprom_extract() {
local part=$1
local offset=$2
local count=$3
local mtd
. /etc/functions.sh
mtd=$(find_mtd_part $part)
[ -n "$mtd" ] || \
rt2x00_eeprom_die "no mtd device found for partition $part"
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \
rt2x00_eeprom_die "failed to extract from $mtd"
}
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/brcm63xx.sh
board=$board_name
case "$FIRMWARE" in
"RT3062.eeprom" )
case $board in
*)
rt2x00_eeprom_die "board $board is not supported yet"
;;
esac
;;
esac

@ -0,0 +1,188 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -34,6 +34,7 @@
#include <board_bcm963xx.h>
#include <linux/bcm963xx_tag.h>
#include <pci_ath9k_fixup.h>
+#include <pci_rt2x00_fixup.h>
#define PFX "board_bcm963xx: "
@@ -937,9 +938,19 @@ int __init board_register_devices(void)
}
/* register any fixups */
- for (i = 0; i < board.has_caldata; i++)
- pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
- board.caldata[i].endian_check, board.caldata[i].led_pin);
+ for (i = 0; i < board.has_caldata; i++) {
+ switch (board.caldata[i].vendor) {
+ case PCI_VENDOR_ID_ATHEROS:
+ pci_enable_ath9k_fixup(board.caldata[i].slot,
+ board.caldata[i].caldata_offset, board.caldata[i].endian_check,
+ board.caldata[i].led_pin);
+ break;
+ case PCI_VENDOR_ID_RALINK:
+ pci_enable_rt2x00_fixup(board.caldata[i].slot,
+ board.caldata[i].eeprom);
+ break;
+ }
+ }
return 0;
}
--- a/arch/mips/bcm63xx/dev-flash.c
+++ b/arch/mips/bcm63xx/dev-flash.c
@@ -146,7 +146,7 @@ static int __init bcm63xx_detect_flash_t
return 0;
}
-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata)
+int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata)
{
u32 val;
unsigned int i;
--- a/arch/mips/bcm63xx/Makefile
+++ b/arch/mips/bcm63xx/Makefile
@@ -1,7 +1,8 @@
obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o setup.o \
timer.o dev-dsp.o dev-enet.o dev-flash.o dev-hsspi.o \
dev-pcmcia.o dev-rng.o dev-spi.o dev-uart.o dev-usb-ehci.o \
- dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o
+ dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o \
+ pci-rt2x00-fixup.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-y += boards/
--- /dev/null
+++ b/arch/mips/bcm63xx/pci-rt2x00-fixup.c
@@ -0,0 +1,71 @@
+/*
+ * Broadcom BCM63XX RT2x00 EEPROM fixup helper.
+ *
+ * Copyright (C) 2012 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * Based on
+ *
+ * Broadcom BCM63XX Ath9k EEPROM fixup helper.
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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 <linux/pci.h>
+#include <linux/platform_device.h>
+#include <linux/rt2x00_platform.h>
+
+#include <bcm63xx_nvram.h>
+#include <pci_rt2x00_fixup.h>
+
+struct rt2x00_fixup {
+ unsigned slot;
+ u8 mac[ETH_ALEN];
+ struct rt2x00_platform_data pdata;
+};
+
+static int rt2x00_num_fixups;
+static struct rt2x00_fixup rt2x00_fixups[2] = {
+ {
+ .slot = 255,
+ },
+ {
+ .slot = 255,
+ },
+};
+
+static void rt2x00_pci_fixup(struct pci_dev *dev)
+{
+ unsigned i;
+ struct rt2x00_platform_data *pdata = NULL;
+
+ for (i = 0; i < rt2x00_num_fixups; i++) {
+ if (rt2x00_fixups[i].slot != PCI_SLOT(dev->devfn))
+ continue;
+
+ pdata = &rt2x00_fixups[i].pdata;
+ break;
+ }
+
+ dev->dev.platform_data = pdata;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_RALINK, PCI_ANY_ID, rt2x00_pci_fixup);
+
+void __init pci_enable_rt2x00_fixup(unsigned slot, char* eeprom)
+{
+ if (rt2x00_num_fixups >= ARRAY_SIZE(rt2x00_fixups))
+ return;
+
+ rt2x00_fixups[rt2x00_num_fixups].slot = slot;
+ rt2x00_fixups[rt2x00_num_fixups].pdata.eeprom_file_name = kstrdup(eeprom, GFP_KERNEL);
+
+ if (bcm63xx_nvram_get_mac_address(rt2x00_fixups[rt2x00_num_fixups].mac))
+ return;
+
+ rt2x00_fixups[rt2x00_num_fixups].pdata.mac_address = rt2x00_fixups[rt2x00_num_fixups].mac;
+ rt2x00_num_fixups++;
+}
+
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
@@ -11,6 +11,6 @@ enum {
extern int bcm63xx_attached_flash;
-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata);
+int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata);
#endif /* __BCM63XX_FLASH_H */
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
@@ -8,6 +8,7 @@
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_dsp.h>
#include <pci_ath9k_fixup.h>
+#include <pci_rt2x00_fixup.h>
/*
* flash mapping
@@ -15,11 +16,15 @@
#define BCM963XX_CFE_VERSION_OFFSET 0x570
#define BCM963XX_NVRAM_OFFSET 0x580
-struct ath9k_caldata {
+struct bcm63xx_caldata {
+ unsigned int vendor;
unsigned int slot;
u32 caldata_offset;
+ /* Atheros */
unsigned int endian_check:1;
int led_pin;
+ /* Ralink */
+ char* eeprom;
};
/*
@@ -43,7 +48,7 @@ struct board_info {
unsigned int has_caldata:2;
/* wifi calibration data config */
- struct ath9k_caldata caldata[2];
+ struct bcm63xx_caldata caldata[2];
/* ethernet config */
struct bcm63xx_enet_platform_data enet0;
--- /dev/null
+++ b/arch/mips/include/asm/mach-bcm63xx/pci_rt2x00_fixup.h
@@ -0,0 +1,9 @@
+#ifndef _PCI_RT2X00_FIXUP
+#define _PCI_RT2X00_FIXUP
+
+#define PCI_VENDOR_ID_RALINK 0x1814
+
+void pci_enable_rt2x00_fixup(unsigned slot, char* eeprom) __init;
+
+#endif /* _PCI_RT2X00_FIXUP */
+

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -469,6 +469,54 @@ static struct board_info __initdata boar
@@ -470,6 +470,54 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -55,7 +55,7 @@
#endif
/*
@@ -640,6 +688,7 @@ static const struct board_info __initdat
@@ -641,6 +689,7 @@ static const struct board_info __initdat
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,

@ -9,7 +9,7 @@
#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
@@ -43,6 +45,12 @@
@@ -44,6 +46,12 @@
#define CFE_OFFSET_64K 0x10000
#define CFE_OFFSET_128K 0x20000
@ -22,7 +22,7 @@
static struct board_info board;
/*
@@ -666,6 +674,586 @@ static struct board_info __initdata boar
@@ -667,6 +675,586 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -609,7 +609,7 @@
#endif
/*
@@ -696,6 +1284,11 @@ static const struct board_info __initdat
@@ -697,6 +1285,11 @@ static const struct board_info __initdat
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
@ -621,7 +621,7 @@
#endif
};
@@ -750,6 +1343,16 @@ static void __init boardid_fixup(u8 *boo
@@ -751,6 +1344,16 @@ static void __init boardid_fixup(u8 *boo
struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K);
char *board_name = (char *)bcm63xx_nvram_get_name();

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -140,6 +140,38 @@ static struct board_info __initdata boar
@@ -141,6 +141,38 @@ static struct board_info __initdata boar
},
},
};
@ -39,7 +39,7 @@
#endif
/*
@@ -1263,6 +1295,7 @@ static const struct board_info __initdat
@@ -1264,6 +1296,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
&board_96338w,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -663,6 +663,96 @@ static struct board_info __initdata boar
@@ -664,6 +664,96 @@ static struct board_info __initdata boar
},
};
@ -97,7 +97,7 @@
static struct board_info __initdata board_AGPFS0 = {
.name = "AGPF-S0",
.expected_cpu_id = 0x6358,
@@ -1316,6 +1406,7 @@ static const struct board_info __initdat
@@ -1317,6 +1407,7 @@ static const struct board_info __initdat
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -797,6 +797,59 @@ static struct board_info __initdata boar
@@ -798,6 +798,59 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -60,7 +60,7 @@
struct spi_gpio_platform_data nb4_spi_gpio_data = {
.sck = NB4_SPI_GPIO_CLK,
.mosi = NB4_SPI_GPIO_MOSI,
@@ -1408,6 +1461,7 @@ static const struct board_info __initdat
@@ -1409,6 +1462,7 @@ static const struct board_info __initdat
&board_AGPFS0,
&board_CPVA642,
&board_DWVS0,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -557,6 +557,67 @@ static struct board_info __initdata boar
@@ -558,6 +558,67 @@ static struct board_info __initdata boar
},
},
};
@ -68,7 +68,7 @@
#endif
/*
@@ -1453,6 +1514,7 @@ static const struct board_info __initdat
@@ -1454,6 +1515,7 @@ static const struct board_info __initdat
&board_96348gw_a,
&board_rta1025w_16,
&board_96348_D4PW,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -426,6 +426,112 @@ static struct board_info __initdata boar
@@ -427,6 +427,112 @@ static struct board_info __initdata boar
},
};
@ -113,7 +113,7 @@
static struct board_info __initdata board_FAST2404 = {
.name = "F@ST2404",
.expected_cpu_id = 0x6348,
@@ -1507,6 +1613,8 @@ static const struct board_info __initdat
@@ -1508,6 +1614,8 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6348
&board_96348r,
&board_96348gw,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -724,6 +724,76 @@ static struct board_info __initdata boar
@@ -725,6 +725,76 @@ static struct board_info __initdata boar
},
},
};
@ -77,7 +77,7 @@
#endif
/*
@@ -1623,6 +1693,7 @@ static const struct board_info __initdat
@@ -1624,6 +1694,7 @@ static const struct board_info __initdat
&board_rta1025w_16,
&board_96348_D4PW,
&board_spw500v,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1666,6 +1666,80 @@ static struct board_info __initdata boar
@@ -1667,6 +1667,80 @@ static struct board_info __initdata boar
.spis = nb4_spi_devices,
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
@ -81,7 +81,7 @@
#endif
/*
@@ -1708,6 +1782,7 @@ static const struct board_info __initdat
@@ -1709,6 +1783,7 @@ static const struct board_info __initdat
&board_nb4_ser_r2,
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -172,6 +172,43 @@ static struct board_info __initdata boar
@@ -173,6 +173,43 @@ static struct board_info __initdata boar
},
},
};
@ -44,7 +44,7 @@
#endif
/*
@@ -1750,6 +1787,7 @@ static const struct board_info __initdat
@@ -1751,6 +1788,7 @@ static const struct board_info __initdat
&board_96338gw,
&board_96338w,
&board_96338w2_e7t,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1777,6 +1777,72 @@ static struct board_info __initdata boar
@@ -1778,6 +1778,72 @@ static struct board_info __initdata boar
},
},
};
@ -73,7 +73,7 @@
#endif
/*
@@ -1821,6 +1887,7 @@ static const struct board_info __initdat
@@ -1822,6 +1888,7 @@ static const struct board_info __initdat
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,
&board_HW553,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -831,6 +831,63 @@ static struct board_info __initdata boar
@@ -832,6 +832,63 @@ static struct board_info __initdata boar
},
},
};
@ -64,7 +64,7 @@
#endif
/*
@@ -1872,6 +1929,7 @@ static const struct board_info __initdat
@@ -1873,6 +1930,7 @@ static const struct board_info __initdat
&board_96348_D4PW,
&board_spw500v,
&board_96348sv,
@ -72,7 +72,7 @@
#endif
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -1992,6 +2050,23 @@ void __init board_prom_init(void)
@@ -1993,6 +2051,23 @@ void __init board_prom_init(void)
val &= MPI_CSBASE_BASE_MASK;
}
boot_addr = (u8 *)KSEG1ADDR(val);

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -395,6 +395,62 @@ static struct board_info __initdata boar
@@ -396,6 +396,62 @@ static struct board_info __initdata boar
},
};
@ -63,7 +63,7 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -1930,6 +1986,7 @@ static const struct board_info __initdat
@@ -1931,6 +1987,7 @@ static const struct board_info __initdat
&board_spw500v,
&board_96348sv,
&board_V2500V_BB,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -451,6 +451,49 @@ static struct board_info __initdata boar
@@ -452,6 +452,49 @@ static struct board_info __initdata boar
};
@ -50,7 +50,7 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -1987,6 +2030,7 @@ static const struct board_info __initdat
@@ -1988,6 +2031,7 @@ static const struct board_info __initdat
&board_96348sv,
&board_V2500V_BB,
&board_V2110,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1210,6 +1210,8 @@ static struct board_info __initdata boar
@@ -1211,6 +1211,8 @@ static struct board_info __initdata boar
.name = "DWV-S0",
.expected_cpu_id = 0x6358,
@ -9,7 +9,7 @@
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@@ -1225,6 +1227,7 @@ static struct board_info __initdata boar
@@ -1226,6 +1228,7 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -494,6 +494,67 @@ static struct board_info __initdata boar
@@ -495,6 +495,67 @@ static struct board_info __initdata boar
},
};
@ -68,7 +68,7 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -2034,6 +2095,7 @@ static const struct board_info __initdat
@@ -2035,6 +2096,7 @@ static const struct board_info __initdat
&board_V2500V_BB,
&board_V2110,
&board_ct536_ct5621,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -757,6 +757,7 @@ static struct board_info __initdata boar
@@ -758,6 +758,7 @@ static struct board_info __initdata boar
.name = "RTA1025W_16",
.expected_cpu_id = 0x6348,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1049,6 +1049,44 @@ static struct board_info __initdata boar
@@ -1050,6 +1050,44 @@ static struct board_info __initdata boar
},
},
};
@ -45,7 +45,7 @@
#endif
/*
@@ -2097,6 +2135,7 @@ static const struct board_info __initdat
@@ -2098,6 +2136,7 @@ static const struct board_info __initdat
&board_V2110,
&board_ct536_ct5621,
&board_96348A_122,

@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2105,6 +2105,78 @@ static struct board_info __initdata boar
@@ -2106,6 +2106,78 @@ static struct board_info __initdata boar
#endif
/*
@ -89,7 +89,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
* all boards
*/
static const struct board_info __initdata *bcm963xx_boards[] = {
@@ -2153,6 +2225,10 @@ static const struct board_info __initdat
@@ -2154,6 +2226,10 @@ static const struct board_info __initdat
&board_HW553,
&board_spw303v,
#endif
@ -100,7 +100,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
};
/*
@@ -2324,12 +2400,25 @@ void __init board_prom_init(void)
@@ -2325,12 +2401,25 @@ void __init board_prom_init(void)
bcm63xx_pci_enabled = 1;
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G2_PCI;

@ -9,7 +9,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2174,6 +2174,72 @@ static struct board_info __initdata boar
@@ -2175,6 +2175,72 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
@ -82,7 +82,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
#endif
/*
@@ -2228,6 +2294,7 @@ static const struct board_info __initdat
@@ -2229,6 +2295,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,

@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -54,6 +54,80 @@
@@ -55,6 +55,80 @@
static struct board_info board;
/*
@ -90,7 +90,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
* known 6338 boards
*/
#ifdef CONFIG_BCM63XX_CPU_6338
@@ -2246,6 +2320,9 @@ static struct board_info __initdata boar
@@ -2247,6 +2321,9 @@ static struct board_info __initdata boar
* all boards
*/
static const struct board_info __initdata *bcm963xx_boards[] = {

@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -125,6 +125,76 @@ static struct board_info __initdata boar
@@ -126,6 +126,76 @@ static struct board_info __initdata boar
},
},
};
@ -86,7 +86,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
#endif
/*
@@ -2322,6 +2392,7 @@ static struct board_info __initdata boar
@@ -2323,6 +2393,7 @@ static struct board_info __initdata boar
static const struct board_info __initdata *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,

@ -10,7 +10,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -195,6 +195,110 @@ static struct board_info __initdata boar
@@ -196,6 +196,111 @@ static struct board_info __initdata boar
},
};
@ -25,6 +25,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
+ .has_caldata = 1,
+ .caldata = {
+ {
+ .vendor = PCI_VENDOR_ID_ATHEROS,
+ .caldata_offset = 0x7d1000,
+ .slot = 0,
+ .led_pin = -1,
@ -121,7 +122,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
#endif
/*
@@ -2393,6 +2497,7 @@ static const struct board_info __initdat
@@ -2394,6 +2499,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1335,6 +1335,57 @@ static struct board_info __initdata boar
@@ -1337,6 +1337,57 @@ static struct board_info __initdata boar
},
};
@ -58,7 +58,7 @@
#endif
/*
@@ -2527,6 +2578,7 @@ static const struct board_info __initdat
@@ -2529,6 +2580,7 @@ static const struct board_info __initdat
&board_ct536_ct5621,
&board_96348A_122,
&board_CPVA502plus,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -51,6 +51,13 @@
@@ -52,6 +52,13 @@
#define NB4_SPI_GPIO_CLK 6
#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X))
@ -14,7 +14,7 @@
static struct board_info board;
/*
@@ -2262,6 +2269,111 @@ static struct board_info __initdata boar
@@ -2264,6 +2271,111 @@ static struct board_info __initdata boar
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
@ -126,7 +126,7 @@
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
@@ -2593,6 +2705,7 @@ static const struct board_info __initdat
@@ -2595,6 +2707,7 @@ static const struct board_info __initdat
&board_nb4_ser_r2,
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2513,6 +2513,71 @@ static struct board_info __initdata boar
@@ -2515,6 +2515,71 @@ static struct board_info __initdata boar
},
}
};
@ -72,7 +72,7 @@
#endif
/*
@@ -2708,6 +2773,7 @@ static const struct board_info __initdat
@@ -2710,6 +2775,7 @@ static const struct board_info __initdat
&board_ct6373_1,
&board_HW553,
&board_spw303v,

@ -8,7 +8,7 @@
#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
@@ -50,6 +51,8 @@
@@ -51,6 +52,8 @@
#define NB4_SPI_GPIO_MOSI 7
#define NB4_SPI_GPIO_CLK 6
#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X))
@ -17,7 +17,7 @@
#define CT6373_PID_OFFSET 0xff80
#define CT6373_74X164_GPIO_BASE 64
@@ -2580,6 +2583,103 @@ static struct board_info __initdata boar
@@ -2582,6 +2585,103 @@ static struct board_info __initdata boar
};
#endif
@ -121,7 +121,7 @@
/*
* known 6368 boards
*/
@@ -2776,6 +2876,10 @@ static const struct board_info __initdat
@@ -2778,6 +2878,10 @@ static const struct board_info __initdat
&board_DVAG3810BN,
#endif
@ -132,7 +132,7 @@
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
@@ -2843,6 +2947,11 @@ static void __init boardid_fixup(u8 *boo
@@ -2845,6 +2949,11 @@ static void __init boardid_fixup(u8 *boo
}
}

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1011,6 +1011,55 @@ static struct board_info __initdata boar
@@ -1013,6 +1013,55 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
@ -56,7 +56,7 @@
static struct board_info __initdata board_rta1025w_16 = {
.name = "RTA1025W_16",
.expected_cpu_id = 0x6348,
@@ -2844,6 +2893,7 @@ static const struct board_info __initdat
@@ -2846,6 +2895,7 @@ static const struct board_info __initdat
&board_96348gw_10,
&board_96348gw_11,
&board_FAST2404,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -206,6 +206,125 @@ static struct board_info __initdata boar
@@ -207,6 +207,125 @@ static struct board_info __initdata boar
},
};
@ -126,7 +126,7 @@
static struct board_info __initdata board_dsl_274xb_f1 = {
.name = "AW4339U",
.expected_cpu_id = 0x6328,
@@ -2874,6 +2993,7 @@ static const struct board_info __initdat
@@ -2876,6 +2995,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -136,6 +136,78 @@ static struct board_info __initdata boar
@@ -137,6 +137,78 @@ static struct board_info __initdata boar
},
};
@ -79,7 +79,7 @@
static struct board_info __initdata board_963281TAN = {
.name = "963281TAN",
.expected_cpu_id = 0x6328,
@@ -2992,6 +3064,7 @@ static struct board_info __initdata boar
@@ -2994,6 +3066,7 @@ static struct board_info __initdata boar
static const struct board_info __initdata *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -136,6 +136,72 @@ static struct board_info __initdata boar
@@ -137,6 +137,72 @@ static struct board_info __initdata boar
},
};
@ -73,7 +73,7 @@
static struct board_info __initdata board_96328A_1441N1 = {
.name = "96328A-1441N1",
.expected_cpu_id = 0x6328,
@@ -3064,6 +3130,7 @@ static struct board_info __initdata boar
@@ -3066,6 +3132,7 @@ static struct board_info __initdata boar
static const struct board_info __initdata *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1919,6 +1919,99 @@ static struct board_info __initdata boar
@@ -1921,6 +1921,99 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1376,6 +1376,19 @@ static struct board_info __initdata boar
@@ -1378,6 +1378,19 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -844,6 +844,17 @@ static struct board_info __initdata boar
@@ -846,6 +846,17 @@ static struct board_info __initdata boar
.active_low = 1,
},
},

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -736,6 +736,53 @@ static struct board_info __initdata boar
@@ -738,6 +738,53 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
@ -54,7 +54,7 @@
#endif
/*
@@ -3261,6 +3308,7 @@ static const struct board_info __initdat
@@ -3263,6 +3310,7 @@ static const struct board_info __initdat
#endif
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,

@ -8,7 +8,7 @@
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
#include <linux/spi/74x164.h>
@@ -3366,7 +3367,7 @@ static const struct board_info __initdat
@@ -3368,7 +3369,7 @@ static const struct board_info __initdat
* bcm4318 WLAN work
*/
#ifdef CONFIG_SSB_PCIHOST
@ -17,7 +17,7 @@
.revision = 0x02,
.board_rev = 0x17,
.country_code = 0x0,
@@ -3386,6 +3387,7 @@ static struct ssb_sprom bcm63xx_sprom =
@@ -3388,6 +3389,7 @@ static struct ssb_sprom bcm63xx_sprom =
.boardflags_lo = 0x2848,
.boardflags_hi = 0x0000,
};

@ -0,0 +1,188 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -34,6 +34,7 @@
#include <board_bcm963xx.h>
#include <linux/bcm963xx_tag.h>
#include <pci_ath9k_fixup.h>
+#include <pci_rt2x00_fixup.h>
#define PFX "board_bcm963xx: "
@@ -982,9 +983,19 @@ int __init board_register_devices(void)
}
/* register any fixups */
- for (i = 0; i < board.has_caldata; i++)
- pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
- board.caldata[i].endian_check, board.caldata[i].led_pin);
+ for (i = 0; i < board.has_caldata; i++) {
+ switch (board.caldata[i].vendor) {
+ case PCI_VENDOR_ID_ATHEROS:
+ pci_enable_ath9k_fixup(board.caldata[i].slot,
+ board.caldata[i].caldata_offset, board.caldata[i].endian_check,
+ board.caldata[i].led_pin);
+ break;
+ case PCI_VENDOR_ID_RALINK:
+ pci_enable_rt2x00_fixup(board.caldata[i].slot,
+ board.caldata[i].eeprom);
+ break;
+ }
+ }
return 0;
}
--- a/arch/mips/bcm63xx/dev-flash.c
+++ b/arch/mips/bcm63xx/dev-flash.c
@@ -146,7 +146,7 @@ static int __init bcm63xx_detect_flash_t
return 0;
}
-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata)
+int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata)
{
u32 val;
unsigned int i;
--- a/arch/mips/bcm63xx/Makefile
+++ b/arch/mips/bcm63xx/Makefile
@@ -1,7 +1,8 @@
obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o setup.o \
timer.o dev-dsp.o dev-enet.o dev-flash.o dev-hsspi.o \
dev-pcmcia.o dev-rng.o dev-spi.o dev-uart.o dev-usb-ehci.o \
- dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o
+ dev-usb-ohci.o dev-wdt.o pci-ath9k-fixup.o \
+ pci-rt2x00-fixup.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-y += boards/
--- /dev/null
+++ b/arch/mips/bcm63xx/pci-rt2x00-fixup.c
@@ -0,0 +1,71 @@
+/*
+ * Broadcom BCM63XX RT2x00 EEPROM fixup helper.
+ *
+ * Copyright (C) 2012 Álvaro Fernández Rojas <noltari@gmail.com>
+ *
+ * Based on
+ *
+ * Broadcom BCM63XX Ath9k EEPROM fixup helper.
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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 <linux/pci.h>
+#include <linux/platform_device.h>
+#include <linux/rt2x00_platform.h>
+
+#include <bcm63xx_nvram.h>
+#include <pci_rt2x00_fixup.h>
+
+struct rt2x00_fixup {
+ unsigned slot;
+ u8 mac[ETH_ALEN];
+ struct rt2x00_platform_data pdata;
+};
+
+static int rt2x00_num_fixups;
+static struct rt2x00_fixup rt2x00_fixups[2] = {
+ {
+ .slot = 255,
+ },
+ {
+ .slot = 255,
+ },
+};
+
+static void rt2x00_pci_fixup(struct pci_dev *dev)
+{
+ unsigned i;
+ struct rt2x00_platform_data *pdata = NULL;
+
+ for (i = 0; i < rt2x00_num_fixups; i++) {
+ if (rt2x00_fixups[i].slot != PCI_SLOT(dev->devfn))
+ continue;
+
+ pdata = &rt2x00_fixups[i].pdata;
+ break;
+ }
+
+ dev->dev.platform_data = pdata;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_RALINK, PCI_ANY_ID, rt2x00_pci_fixup);
+
+void __init pci_enable_rt2x00_fixup(unsigned slot, char* eeprom)
+{
+ if (rt2x00_num_fixups >= ARRAY_SIZE(rt2x00_fixups))
+ return;
+
+ rt2x00_fixups[rt2x00_num_fixups].slot = slot;
+ rt2x00_fixups[rt2x00_num_fixups].pdata.eeprom_file_name = kstrdup(eeprom, GFP_KERNEL);
+
+ if (bcm63xx_nvram_get_mac_address(rt2x00_fixups[rt2x00_num_fixups].mac))
+ return;
+
+ rt2x00_fixups[rt2x00_num_fixups].pdata.mac_address = rt2x00_fixups[rt2x00_num_fixups].mac;
+ rt2x00_num_fixups++;
+}
+
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
@@ -11,6 +11,6 @@ enum {
extern int bcm63xx_attached_flash;
-int __init bcm63xx_flash_register(int num_caldata, struct ath9k_caldata *caldata);
+int __init bcm63xx_flash_register(int num_caldata, struct bcm63xx_caldata *caldata);
#endif /* __BCM63XX_FLASH_H */
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
@@ -8,6 +8,7 @@
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_dsp.h>
#include <pci_ath9k_fixup.h>
+#include <pci_rt2x00_fixup.h>
/*
* flash mapping
@@ -15,11 +16,15 @@
#define BCM963XX_CFE_VERSION_OFFSET 0x570
#define BCM963XX_NVRAM_OFFSET 0x580
-struct ath9k_caldata {
+struct bcm63xx_caldata {
+ unsigned int vendor;
unsigned int slot;
u32 caldata_offset;
+ /* Atheros */
unsigned int endian_check:1;
int led_pin;
+ /* Ralink */
+ char* eeprom;
};
/*
@@ -43,7 +48,7 @@ struct board_info {
unsigned int has_caldata:2;
/* wifi calibration data config */
- struct ath9k_caldata caldata[2];
+ struct bcm63xx_caldata caldata[2];
/* ethernet config */
struct bcm63xx_enet_platform_data enet0;
--- /dev/null
+++ b/arch/mips/include/asm/mach-bcm63xx/pci_rt2x00_fixup.h
@@ -0,0 +1,9 @@
+#ifndef _PCI_RT2X00_FIXUP
+#define _PCI_RT2X00_FIXUP
+
+#define PCI_VENDOR_ID_RALINK 0x1814
+
+void pci_enable_rt2x00_fixup(unsigned slot, char* eeprom) __init;
+
+#endif /* _PCI_RT2X00_FIXUP */
+

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -511,6 +511,54 @@ static struct board_info __initdata boar
@@ -512,6 +512,54 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -55,7 +55,7 @@
#endif
/*
@@ -685,6 +733,7 @@ static const struct board_info __initdat
@@ -686,6 +734,7 @@ static const struct board_info __initdat
&board_DV201AMR,
&board_96348gw_a,
&board_rta1025w_16,

@ -9,7 +9,7 @@
#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
@@ -43,6 +45,12 @@
@@ -44,6 +46,12 @@
#define CFE_OFFSET_64K 0x10000
#define CFE_OFFSET_128K 0x20000
@ -22,7 +22,7 @@
static struct board_info board;
/*
@@ -708,6 +716,586 @@ static struct board_info __initdata boar
@@ -709,6 +717,586 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -609,7 +609,7 @@
#endif
/*
@@ -741,6 +1329,11 @@ static const struct board_info __initdat
@@ -742,6 +1330,11 @@ static const struct board_info __initdat
&board_96358vw2,
&board_AGPFS0,
&board_DWVS0,
@ -621,7 +621,7 @@
#endif
};
@@ -795,6 +1388,16 @@ static void __init boardid_fixup(u8 *boo
@@ -796,6 +1389,16 @@ static void __init boardid_fixup(u8 *boo
struct bcm_tag *tag = (struct bcm_tag *)(boot_addr + CFE_OFFSET_64K);
char *board_name = (char *)bcm63xx_nvram_get_name();

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -182,6 +182,38 @@ static struct board_info __initdata boar
@@ -183,6 +183,38 @@ static struct board_info __initdata boar
},
},
};
@ -39,7 +39,7 @@
#endif
/*
@@ -1308,6 +1340,7 @@ static const struct board_info __initdat
@@ -1309,6 +1341,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6338
&board_96338gw,
&board_96338w,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -705,6 +705,96 @@ static struct board_info __initdata boar
@@ -706,6 +706,96 @@ static struct board_info __initdata boar
},
};
@ -97,7 +97,7 @@
static struct board_info __initdata board_AGPFS0 = {
.name = "AGPF-S0",
.expected_cpu_id = 0x6358,
@@ -1361,6 +1451,7 @@ static const struct board_info __initdat
@@ -1362,6 +1452,7 @@ static const struct board_info __initdat
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -839,6 +839,59 @@ static struct board_info __initdata boar
@@ -840,6 +840,59 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
};
@ -60,7 +60,7 @@
struct spi_gpio_platform_data nb4_spi_gpio_data = {
.sck = NB4_SPI_GPIO_CLK,
.mosi = NB4_SPI_GPIO_MOSI,
@@ -1453,6 +1506,7 @@ static const struct board_info __initdat
@@ -1454,6 +1507,7 @@ static const struct board_info __initdat
&board_AGPFS0,
&board_CPVA642,
&board_DWVS0,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -599,6 +599,67 @@ static struct board_info __initdata boar
@@ -600,6 +600,67 @@ static struct board_info __initdata boar
},
},
};
@ -68,7 +68,7 @@
#endif
/*
@@ -1498,6 +1559,7 @@ static const struct board_info __initdat
@@ -1499,6 +1560,7 @@ static const struct board_info __initdat
&board_96348gw_a,
&board_rta1025w_16,
&board_96348_D4PW,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -468,6 +468,112 @@ static struct board_info __initdata boar
@@ -469,6 +469,112 @@ static struct board_info __initdata boar
},
};
@ -113,7 +113,7 @@
static struct board_info __initdata board_FAST2404 = {
.name = "F@ST2404",
.expected_cpu_id = 0x6348,
@@ -1552,6 +1658,8 @@ static const struct board_info __initdat
@@ -1553,6 +1659,8 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6348
&board_96348r,
&board_96348gw,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -766,6 +766,76 @@ static struct board_info __initdata boar
@@ -767,6 +767,76 @@ static struct board_info __initdata boar
},
},
};
@ -77,7 +77,7 @@
#endif
/*
@@ -1668,6 +1738,7 @@ static const struct board_info __initdat
@@ -1669,6 +1739,7 @@ static const struct board_info __initdat
&board_rta1025w_16,
&board_96348_D4PW,
&board_spw500v,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1708,6 +1708,80 @@ static struct board_info __initdata boar
@@ -1709,6 +1709,80 @@ static struct board_info __initdata boar
.spis = nb4_spi_devices,
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
@ -81,7 +81,7 @@
#endif
/*
@@ -1753,6 +1827,7 @@ static const struct board_info __initdat
@@ -1754,6 +1828,7 @@ static const struct board_info __initdat
&board_nb4_ser_r2,
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -214,6 +214,43 @@ static struct board_info __initdata boar
@@ -215,6 +215,43 @@ static struct board_info __initdata boar
},
},
};
@ -44,7 +44,7 @@
#endif
/*
@@ -1795,6 +1832,7 @@ static const struct board_info __initdat
@@ -1796,6 +1833,7 @@ static const struct board_info __initdat
&board_96338gw,
&board_96338w,
&board_96338w2_e7t,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1819,6 +1819,72 @@ static struct board_info __initdata boar
@@ -1820,6 +1820,72 @@ static struct board_info __initdata boar
},
},
};
@ -73,7 +73,7 @@
#endif
/*
@@ -1866,6 +1932,7 @@ static const struct board_info __initdat
@@ -1867,6 +1933,7 @@ static const struct board_info __initdat
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,
&board_HW553,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -873,6 +873,63 @@ static struct board_info __initdata boar
@@ -874,6 +874,63 @@ static struct board_info __initdata boar
},
},
};
@ -64,7 +64,7 @@
#endif
/*
@@ -1917,6 +1974,7 @@ static const struct board_info __initdat
@@ -1918,6 +1975,7 @@ static const struct board_info __initdat
&board_96348_D4PW,
&board_spw500v,
&board_96348sv,
@ -72,7 +72,7 @@
#endif
#ifdef CONFIG_BCM63XX_CPU_6358
@@ -2037,6 +2095,23 @@ void __init board_prom_init(void)
@@ -2038,6 +2096,23 @@ void __init board_prom_init(void)
val &= MPI_CSBASE_BASE_MASK;
}
boot_addr = (u8 *)KSEG1ADDR(val);

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -437,6 +437,62 @@ static struct board_info __initdata boar
@@ -438,6 +438,62 @@ static struct board_info __initdata boar
},
};
@ -63,7 +63,7 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -1975,6 +2031,7 @@ static const struct board_info __initdat
@@ -1976,6 +2032,7 @@ static const struct board_info __initdat
&board_spw500v,
&board_96348sv,
&board_V2500V_BB,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -493,6 +493,49 @@ static struct board_info __initdata boar
@@ -494,6 +494,49 @@ static struct board_info __initdata boar
};
@ -50,7 +50,7 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -2032,6 +2075,7 @@ static const struct board_info __initdat
@@ -2033,6 +2076,7 @@ static const struct board_info __initdat
&board_96348sv,
&board_V2500V_BB,
&board_V2110,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1252,6 +1252,8 @@ static struct board_info __initdata boar
@@ -1253,6 +1253,8 @@ static struct board_info __initdata boar
.name = "DWV-S0",
.expected_cpu_id = 0x6358,
@ -9,7 +9,7 @@
.has_enet0 = 1,
.has_enet1 = 1,
.has_pci = 1,
@@ -1267,6 +1269,7 @@ static struct board_info __initdata boar
@@ -1268,6 +1270,7 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -536,6 +536,67 @@ static struct board_info __initdata boar
@@ -537,6 +537,67 @@ static struct board_info __initdata boar
},
};
@ -68,7 +68,7 @@
static struct board_info __initdata board_96348gw = {
.name = "96348GW",
.expected_cpu_id = 0x6348,
@@ -2079,6 +2140,7 @@ static const struct board_info __initdat
@@ -2080,6 +2141,7 @@ static const struct board_info __initdat
&board_V2500V_BB,
&board_V2110,
&board_ct536_ct5621,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -799,6 +799,7 @@ static struct board_info __initdata boar
@@ -800,6 +800,7 @@ static struct board_info __initdata boar
.name = "RTA1025W_16",
.expected_cpu_id = 0x6348,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1091,6 +1091,44 @@ static struct board_info __initdata boar
@@ -1092,6 +1092,44 @@ static struct board_info __initdata boar
},
},
};
@ -45,7 +45,7 @@
#endif
/*
@@ -2142,6 +2180,7 @@ static const struct board_info __initdat
@@ -2143,6 +2181,7 @@ static const struct board_info __initdat
&board_V2110,
&board_ct536_ct5621,
&board_96348A_122,

@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2147,6 +2147,78 @@ static struct board_info __initdata boar
@@ -2148,6 +2148,78 @@ static struct board_info __initdata boar
#endif
/*
@ -89,7 +89,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
* all boards
*/
static const struct board_info __initdata *bcm963xx_boards[] = {
@@ -2198,6 +2270,10 @@ static const struct board_info __initdat
@@ -2199,6 +2271,10 @@ static const struct board_info __initdat
&board_HW553,
&board_spw303v,
#endif
@ -100,7 +100,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
};
/*
@@ -2369,12 +2445,25 @@ void __init board_prom_init(void)
@@ -2370,12 +2446,25 @@ void __init board_prom_init(void)
bcm63xx_pci_enabled = 1;
if (BCMCPU_IS_6348())
val |= GPIO_MODE_6348_G2_PCI;

@ -9,7 +9,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2216,6 +2216,72 @@ static struct board_info __initdata boar
@@ -2217,6 +2217,72 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,
};
@ -82,7 +82,7 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
#endif
/*
@@ -2273,6 +2339,7 @@ static const struct board_info __initdat
@@ -2274,6 +2340,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,

@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -64,13 +64,45 @@ static struct board_info __initdata boar
@@ -65,13 +65,45 @@ static struct board_info __initdata boar
.has_uart0 = 1,
.has_pci = 1,
@ -56,7 +56,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
.name = "96328avng::power",
.gpio = 4,
.active_low = 1,
@@ -87,7 +119,7 @@ static struct board_info __initdata boar
@@ -88,7 +120,7 @@ static struct board_info __initdata boar
.active_low = 1,
},
{

@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -125,6 +125,76 @@ static struct board_info __initdata boar
@@ -126,6 +126,76 @@ static struct board_info __initdata boar
},
},
};
@ -86,7 +86,7 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
#endif
/*
@@ -2322,6 +2392,7 @@ static struct board_info __initdata boar
@@ -2323,6 +2393,7 @@ static struct board_info __initdata boar
static const struct board_info __initdata *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,

@ -10,7 +10,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -195,6 +195,110 @@ static struct board_info __initdata boar
@@ -196,6 +196,111 @@ static struct board_info __initdata boar
},
};
@ -25,6 +25,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
+ .has_caldata = 1,
+ .caldata = {
+ {
+ .vendor = PCI_VENDOR_ID_ATHEROS,
+ .caldata_offset = 0x7d1000,
+ .slot = 0,
+ .led_pin = -1,
@ -121,7 +122,7 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
#endif
/*
@@ -2393,6 +2497,7 @@ static const struct board_info __initdat
@@ -2394,6 +2499,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1335,6 +1335,57 @@ static struct board_info __initdata boar
@@ -1337,6 +1337,57 @@ static struct board_info __initdata boar
},
};
@ -58,7 +58,7 @@
#endif
/*
@@ -2527,6 +2578,7 @@ static const struct board_info __initdat
@@ -2529,6 +2580,7 @@ static const struct board_info __initdat
&board_ct536_ct5621,
&board_96348A_122,
&board_CPVA502plus,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -51,6 +51,13 @@
@@ -52,6 +52,13 @@
#define NB4_SPI_GPIO_CLK 6
#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X))
@ -14,7 +14,7 @@
static struct board_info board;
/*
@@ -2262,6 +2269,111 @@ static struct board_info __initdata boar
@@ -2264,6 +2271,111 @@ static struct board_info __initdata boar
.num_spis = ARRAY_SIZE(nb4_spi_devices),
};
@ -126,7 +126,7 @@
static struct board_info __initdata board_HW553 = {
.name = "HW553",
.expected_cpu_id = 0x6358,
@@ -2593,6 +2705,7 @@ static const struct board_info __initdat
@@ -2595,6 +2707,7 @@ static const struct board_info __initdat
&board_nb4_ser_r2,
&board_nb4_fxc_r1,
&board_nb4_fxc_r2,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2513,6 +2513,71 @@ static struct board_info __initdata boar
@@ -2515,6 +2515,71 @@ static struct board_info __initdata boar
},
}
};
@ -72,7 +72,7 @@
#endif
/*
@@ -2708,6 +2773,7 @@ static const struct board_info __initdat
@@ -2710,6 +2775,7 @@ static const struct board_info __initdat
&board_ct6373_1,
&board_HW553,
&board_spw303v,

@ -8,7 +8,7 @@
#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
@@ -50,6 +51,8 @@
@@ -51,6 +52,8 @@
#define NB4_SPI_GPIO_MOSI 7
#define NB4_SPI_GPIO_CLK 6
#define NB4_74HC64_GPIO(X) (NB4_74X164_GPIO_BASE + (X))
@ -17,7 +17,7 @@
#define CT6373_PID_OFFSET 0xff80
#define CT6373_74X164_GPIO_BASE 64
@@ -2580,6 +2583,103 @@ static struct board_info __initdata boar
@@ -2582,6 +2585,103 @@ static struct board_info __initdata boar
};
#endif
@ -121,7 +121,7 @@
/*
* known 6368 boards
*/
@@ -2776,6 +2876,10 @@ static const struct board_info __initdat
@@ -2778,6 +2878,10 @@ static const struct board_info __initdat
&board_DVAG3810BN,
#endif
@ -132,7 +132,7 @@
#ifdef CONFIG_BCM63XX_CPU_6368
&board_96368mvwg,
&board_96368mvngr,
@@ -2843,6 +2947,11 @@ static void __init boardid_fixup(u8 *boo
@@ -2845,6 +2949,11 @@ static void __init boardid_fixup(u8 *boo
}
}

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1011,6 +1011,55 @@ static struct board_info __initdata boar
@@ -1013,6 +1013,55 @@ static struct board_info __initdata boar
.has_ehci0 = 1,
};
@ -56,7 +56,7 @@
static struct board_info __initdata board_rta1025w_16 = {
.name = "RTA1025W_16",
.expected_cpu_id = 0x6348,
@@ -2844,6 +2893,7 @@ static const struct board_info __initdat
@@ -2846,6 +2895,7 @@ static const struct board_info __initdat
&board_96348gw_10,
&board_96348gw_11,
&board_FAST2404,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -206,6 +206,125 @@ static struct board_info __initdata boar
@@ -207,6 +207,125 @@ static struct board_info __initdata boar
},
};
@ -126,7 +126,7 @@
static struct board_info __initdata board_dsl_274xb_f1 = {
.name = "AW4339U",
.expected_cpu_id = 0x6328,
@@ -2874,6 +2993,7 @@ static const struct board_info __initdat
@@ -2876,6 +2995,7 @@ static const struct board_info __initdat
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,
&board_963281TAN,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -136,6 +136,78 @@ static struct board_info __initdata boar
@@ -137,6 +137,78 @@ static struct board_info __initdata boar
},
};
@ -79,7 +79,7 @@
static struct board_info __initdata board_963281TAN = {
.name = "963281TAN",
.expected_cpu_id = 0x6328,
@@ -2992,6 +3064,7 @@ static struct board_info __initdata boar
@@ -2994,6 +3066,7 @@ static struct board_info __initdata boar
static const struct board_info __initdata *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -136,6 +136,72 @@ static struct board_info __initdata boar
@@ -137,6 +137,72 @@ static struct board_info __initdata boar
},
};
@ -73,7 +73,7 @@
static struct board_info __initdata board_96328A_1441N1 = {
.name = "96328A-1441N1",
.expected_cpu_id = 0x6328,
@@ -3064,6 +3130,7 @@ static struct board_info __initdata boar
@@ -3066,6 +3132,7 @@ static struct board_info __initdata boar
static const struct board_info __initdata *bcm963xx_boards[] = {
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1919,6 +1919,99 @@ static struct board_info __initdata boar
@@ -1921,6 +1921,99 @@ static struct board_info __initdata boar
.has_ohci0 = 1,
.has_ehci0 = 1,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1376,6 +1376,19 @@ static struct board_info __initdata boar
@@ -1378,6 +1378,19 @@ static struct board_info __initdata boar
},
.has_ohci0 = 1,

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -844,6 +844,17 @@ static struct board_info __initdata boar
@@ -846,6 +846,17 @@ static struct board_info __initdata boar
.active_low = 1,
},
},

@ -1,6 +1,6 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -736,6 +736,53 @@ static struct board_info __initdata boar
@@ -738,6 +738,53 @@ static struct board_info __initdata boar
.has_uart0 = 1,
};
@ -54,7 +54,7 @@
#endif
/*
@@ -3261,6 +3308,7 @@ static const struct board_info __initdat
@@ -3263,6 +3310,7 @@ static const struct board_info __initdat
#endif
#ifdef CONFIG_BCM63XX_CPU_6345
&board_96345gw2,

@ -8,7 +8,7 @@
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
#include <linux/spi/74x164.h>
@@ -3366,7 +3367,7 @@ static const struct board_info __initdat
@@ -3368,7 +3369,7 @@ static const struct board_info __initdat
* bcm4318 WLAN work
*/
#ifdef CONFIG_SSB_PCIHOST
@ -17,7 +17,7 @@
.revision = 0x02,
.board_rev = 0x17,
.country_code = 0x0,
@@ -3386,6 +3387,7 @@ static struct ssb_sprom bcm63xx_sprom =
@@ -3388,6 +3389,7 @@ static struct ssb_sprom bcm63xx_sprom =
.boardflags_lo = 0x2848,
.boardflags_hi = 0x0000,
};

Loading…
Cancel
Save