Path: blob/master/arch/arm/mach-kirkwood/guruplug-setup.c
10817 views
/*1* arch/arm/mach-kirkwood/guruplug-setup.c2*3* Marvell GuruPlug Reference Board 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/mtd/partitions.h>14#include <linux/ata_platform.h>15#include <linux/mv643xx_eth.h>16#include <linux/gpio.h>17#include <linux/leds.h>18#include <asm/mach-types.h>19#include <asm/mach/arch.h>20#include <mach/kirkwood.h>21#include <plat/mvsdio.h>22#include "common.h"23#include "mpp.h"2425static struct mtd_partition guruplug_nand_parts[] = {26{27.name = "u-boot",28.offset = 0,29.size = SZ_1M30}, {31.name = "uImage",32.offset = MTDPART_OFS_NXTBLK,33.size = SZ_4M34}, {35.name = "root",36.offset = MTDPART_OFS_NXTBLK,37.size = MTDPART_SIZ_FULL38},39};4041static struct mv643xx_eth_platform_data guruplug_ge00_data = {42.phy_addr = MV643XX_ETH_PHY_ADDR(0),43};4445static struct mv643xx_eth_platform_data guruplug_ge01_data = {46.phy_addr = MV643XX_ETH_PHY_ADDR(1),47};4849static struct mv_sata_platform_data guruplug_sata_data = {50.n_ports = 1,51};5253static struct mvsdio_platform_data guruplug_mvsdio_data = {54/* unfortunately the CD signal has not been connected */55};5657static struct gpio_led guruplug_led_pins[] = {58{59.name = "guruplug:red:health",60.gpio = 46,61.active_low = 1,62},63{64.name = "guruplug:green:health",65.gpio = 47,66.active_low = 1,67},68{69.name = "guruplug:red:wmode",70.gpio = 48,71.active_low = 1,72},73{74.name = "guruplug:green:wmode",75.gpio = 49,76.active_low = 1,77},78};7980static struct gpio_led_platform_data guruplug_led_data = {81.leds = guruplug_led_pins,82.num_leds = ARRAY_SIZE(guruplug_led_pins),83};8485static struct platform_device guruplug_leds = {86.name = "leds-gpio",87.id = -1,88.dev = {89.platform_data = &guruplug_led_data,90}91};9293static unsigned int guruplug_mpp_config[] __initdata = {94MPP46_GPIO, /* M_RLED */95MPP47_GPIO, /* M_GLED */96MPP48_GPIO, /* B_RLED */97MPP49_GPIO, /* B_GLED */98099};100101static void __init guruplug_init(void)102{103/*104* Basic setup. Needs to be called early.105*/106kirkwood_init();107kirkwood_mpp_conf(guruplug_mpp_config);108109kirkwood_uart0_init();110kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25);111112kirkwood_ehci_init();113kirkwood_ge00_init(&guruplug_ge00_data);114kirkwood_ge01_init(&guruplug_ge01_data);115kirkwood_sata_init(&guruplug_sata_data);116kirkwood_sdio_init(&guruplug_mvsdio_data);117118platform_device_register(&guruplug_leds);119}120121MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board")122/* Maintainer: Siddarth Gore <[email protected]> */123.boot_params = 0x00000100,124.init_machine = guruplug_init,125.map_io = kirkwood_map_io,126.init_early = kirkwood_init_early,127.init_irq = kirkwood_init_irq,128.timer = &kirkwood_timer,129MACHINE_END130131132