diff options
Diffstat (limited to 'arch/arm/boards/pm9g45/init.c')
-rw-r--r-- | arch/arm/boards/pm9g45/init.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/arch/arm/boards/pm9g45/init.c b/arch/arm/boards/pm9g45/init.c index 17b38d4b59..675ebe8515 100644 --- a/arch/arm/boards/pm9g45/init.c +++ b/arch/arm/boards/pm9g45/init.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Jean-Christophe PLAGNIOL-VILLARD <plagnio@jcrosoft.com> + * Copyright (C) 2009-2012 Jean-Christophe PLAGNIOL-VILLARD <plagnio@jcrosoft.com> * * Copyright (C) 2007 Sascha Hauer, Pengutronix * @@ -35,6 +35,13 @@ #include <mach/io.h> #include <mach/at91sam9_smc.h> #include <mach/sam9_smc.h> +#include <linux/w1-gpio.h> +#include <w1_mac_address.h> + +struct w1_gpio_platform_data w1_pdata = { + .pin = AT91_PIN_PA31, + .is_open_drain = 0, +}; static struct atmel_nand_data nand_pdata = { .ale = 21, @@ -43,6 +50,7 @@ static struct atmel_nand_data nand_pdata = { .rdy_pin = AT91_PIN_PD3, .enable_pin = AT91_PIN_PC14, .bus_width_16 = 0, + .on_flash_bbt = 1, }; static struct sam9_smc_config pm_nand_smc_config = { @@ -121,6 +129,13 @@ static void pm9g45_phy_init(void) at91_set_gpio_value(AT91_PIN_PD2, 1); } +static void pm9g45_add_device_eth(void) +{ + w1_local_mac_address_register(0, "ron", "w1-1-0"); + pm9g45_phy_init(); + at91_add_device_eth(0, &macb_pdata); +} + static int pm9g45_mem_init(void) { at91_add_device_sdram(128 * 1024 * 1024); @@ -131,15 +146,19 @@ mem_initcall(pm9g45_mem_init); static int pm9g45_devices_init(void) { + at91_set_gpio_input(w1_pdata.pin, 0); + add_generic_device_res("w1-gpio", DEVICE_ID_SINGLE, NULL, 0, &w1_pdata); + pm_add_device_nand(); pm9g45_add_device_mci(); - pm9g45_phy_init(); - at91_add_device_eth(0, &macb_pdata); + pm9g45_add_device_eth(); pm9g45_add_device_usbh(); - devfs_add_partition("nand0", 0x00000, 0x80000, DEVFS_PARTITION_FIXED, "self_raw"); + devfs_add_partition("nand0", 0x00000, SZ_128K, DEVFS_PARTITION_FIXED, "at91bootstrap_raw"); + dev_add_bb_dev("at91bootstrap_raw", "at91bootstrap"); + devfs_add_partition("nand0", SZ_128K, SZ_256K, DEVFS_PARTITION_FIXED, "self_raw"); dev_add_bb_dev("self_raw", "self0"); - devfs_add_partition("nand0", 0x40000, 0x40000, DEVFS_PARTITION_FIXED, "env_raw"); + devfs_add_partition("nand0", SZ_256K + SZ_128K, SZ_128K, DEVFS_PARTITION_FIXED, "env_raw"); dev_add_bb_dev("env_raw", "env0"); armlinux_set_bootparams((void *)(AT91_CHIPSELECT_6 + 0x100)); |