--- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig @@ -139,10 +139,13 @@ config MACH_MSS2 Maxtor Shared Storage II platform. config MACH_WNR854T - bool "Netgear WNR854T" + bool "Netgear WNR854T / WN802T" help Say 'Y' here if you want your kernel to support the - Netgear WNR854T platform. + Netgear WNR854T or WN802T platform. + +config MACH_WN802T + def_bool MACH_WNR854T config MACH_RD88F5181L_GE bool "Marvell Orion-VoIP GE Reference Design" --- a/arch/arm/mach-orion5x/wnr854t-setup.c +++ b/arch/arm/mach-orion5x/wnr854t-setup.c @@ -115,6 +115,15 @@ static struct dsa_platform_data wnr854t_ .chip = &wnr854t_switch_chip_data, }; +static struct dsa_chip_data wn802t_switch_chip_data = { + .port_names[2] = "wan", + .port_names[3] = "cpu", +}; + +static struct dsa_platform_data wn802t_switch_plat_data = { + .nr_chips = 1, + .chip = &wn802t_switch_chip_data, +}; static void __init wnr854t_init(void) { /* @@ -128,7 +137,12 @@ static void __init wnr854t_init(void) * Configure peripherals. */ orion5x_eth_init(&wnr854t_eth_data); - orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ); + + if (machine_is_wn802t()) + orion5x_eth_switch_init(&wn802t_switch_plat_data, NO_IRQ); + else + orion5x_eth_switch_init(&wnr854t_switch_plat_data, NO_IRQ); + orion5x_uart0_init(); orion5x_setup_dev_boot_win(WNR854T_NOR_BOOT_BASE, @@ -167,7 +181,7 @@ static struct hw_pci wnr854t_pci __initd static int __init wnr854t_pci_init(void) { - if (machine_is_wnr854t()) + if (machine_is_wnr854t() || machine_is_wn802t()) pci_common_init(&wnr854t_pci); return 0; @@ -178,6 +192,18 @@ MACHINE_START(WNR854T, "Netgear WNR854T" /* Maintainer: Imre Kaloz */ .atag_offset = 0x100, .init_machine = wnr854t_init, + .map_io = orion5x_map_io, + .init_early = orion5x_init_early, + .init_irq = orion5x_init_irq, + .timer = &orion5x_timer, + .fixup = tag_fixup_mem32, + .restart = orion5x_restart, +MACHINE_END + +MACHINE_START(WN802T, "Netgear WN802T") + /* Maintainer: Imre Kaloz */ + .atag_offset = 0x100, + .init_machine = wnr854t_init, .map_io = orion5x_map_io, .init_early = orion5x_init_early, .init_irq = orion5x_init_irq,