Path: blob/master/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c
10819 views
/*1* arch/arm/mach-orion5x/rd88f6183-ap-ge-setup.c2*3* Marvell Orion-1-90 AP GE Reference Design Setup4*5* This file is licensed under the terms of the GNU General Public6* License version 2. This program is licensed "as is" without any7* warranty of any kind, whether express or implied.8*/910#include <linux/kernel.h>11#include <linux/init.h>12#include <linux/platform_device.h>13#include <linux/pci.h>14#include <linux/irq.h>15#include <linux/mtd/physmap.h>16#include <linux/mv643xx_eth.h>17#include <linux/spi/spi.h>18#include <linux/spi/orion_spi.h>19#include <linux/spi/flash.h>20#include <linux/ethtool.h>21#include <net/dsa.h>22#include <asm/mach-types.h>23#include <asm/gpio.h>24#include <asm/leds.h>25#include <asm/mach/arch.h>26#include <asm/mach/pci.h>27#include <mach/orion5x.h>28#include "common.h"2930static struct mv643xx_eth_platform_data rd88f6183ap_ge_eth_data = {31.phy_addr = -1,32.speed = SPEED_1000,33.duplex = DUPLEX_FULL,34};3536static struct dsa_chip_data rd88f6183ap_ge_switch_chip_data = {37.port_names[0] = "lan1",38.port_names[1] = "lan2",39.port_names[2] = "lan3",40.port_names[3] = "lan4",41.port_names[4] = "wan",42.port_names[5] = "cpu",43};4445static struct dsa_platform_data rd88f6183ap_ge_switch_plat_data = {46.nr_chips = 1,47.chip = &rd88f6183ap_ge_switch_chip_data,48};4950static struct mtd_partition rd88f6183ap_ge_partitions[] = {51{52.name = "kernel",53.offset = 0x00000000,54.size = 0x00200000,55}, {56.name = "rootfs",57.offset = 0x00200000,58.size = 0x00500000,59}, {60.name = "nvram",61.offset = 0x00700000,62.size = 0x00080000,63},64};6566static struct flash_platform_data rd88f6183ap_ge_spi_slave_data = {67.type = "m25p64",68.nr_parts = ARRAY_SIZE(rd88f6183ap_ge_partitions),69.parts = rd88f6183ap_ge_partitions,70};7172static struct spi_board_info __initdata rd88f6183ap_ge_spi_slave_info[] = {73{74.modalias = "m25p80",75.platform_data = &rd88f6183ap_ge_spi_slave_data,76.irq = NO_IRQ,77.max_speed_hz = 20000000,78.bus_num = 0,79.chip_select = 0,80},81};8283static void __init rd88f6183ap_ge_init(void)84{85/*86* Setup basic Orion functions. Need to be called early.87*/88orion5x_init();8990/*91* Configure peripherals.92*/93orion5x_ehci0_init();94orion5x_eth_init(&rd88f6183ap_ge_eth_data);95orion5x_eth_switch_init(&rd88f6183ap_ge_switch_plat_data,96gpio_to_irq(3));97spi_register_board_info(rd88f6183ap_ge_spi_slave_info,98ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info));99orion5x_spi_init();100orion5x_uart0_init();101}102103static struct hw_pci rd88f6183ap_ge_pci __initdata = {104.nr_controllers = 2,105.swizzle = pci_std_swizzle,106.setup = orion5x_pci_sys_setup,107.scan = orion5x_pci_sys_scan_bus,108.map_irq = orion5x_pci_map_irq,109};110111static int __init rd88f6183ap_ge_pci_init(void)112{113if (machine_is_rd88f6183ap_ge()) {114orion5x_pci_disable();115pci_common_init(&rd88f6183ap_ge_pci);116}117118return 0;119}120subsys_initcall(rd88f6183ap_ge_pci_init);121122MACHINE_START(RD88F6183AP_GE, "Marvell Orion-1-90 AP GE Reference Design")123/* Maintainer: Lennert Buytenhek <[email protected]> */124.boot_params = 0x00000100,125.init_machine = rd88f6183ap_ge_init,126.map_io = orion5x_map_io,127.init_early = orion5x_init_early,128.init_irq = orion5x_init_irq,129.timer = &orion5x_timer,130.fixup = tag_fixup_mem32,131MACHINE_END132133134