diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2009-10-04 01:20:19 +0200 |
---|---|---|
committer | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2009-10-20 15:02:37 +0200 |
commit | 7ac38053538f45032f8f52e99d5cd3368c06037c (patch) | |
tree | f138e518352520377db458fadc32262cda32b787 /board | |
parent | 81362c2b2a81d63f93e9534aa624c7f265c55947 (diff) | |
download | barebox-7ac38053538f45032f8f52e99d5cd3368c06037c.tar.gz barebox-7ac38053538f45032f8f52e99d5cd3368c06037c.tar.xz |
at91: add cpu devices common api
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'board')
-rw-r--r-- | board/at91sam9260ek/init.c | 47 | ||||
-rw-r--r-- | board/mmccpu/init.c | 36 | ||||
-rw-r--r-- | board/pm9263/init.c | 36 |
3 files changed, 16 insertions, 103 deletions
diff --git a/board/at91sam9260ek/init.c b/board/at91sam9260ek/init.c index b28c90a15f..2077306d60 100644 --- a/board/at91sam9260ek/init.c +++ b/board/at91sam9260ek/init.c @@ -33,8 +33,7 @@ #include <asm/hardware.h> #include <nand.h> #include <linux/mtd/nand.h> -#include <asm/arch/ether.h> -#include <asm/arch/atmel_nand.h> +#include <asm/arch/board.h> #include <gpio.h> #define NAND_READY_GPIO (32 * 2 + 13) /* Port C pin 13 */ @@ -55,48 +54,20 @@ static struct atmel_nand_data nand_pdata = { #endif }; -static struct device_d nand_dev = { - .name = "atmel_nand", - .map_base = 0x40000000, - .size = 0x10, - .platform_data = &nand_pdata, -}; - -static struct memory_platform_data sram_pdata = { - .name = "sram0", - .flags = DEVFS_RDWR, -}; - -static struct device_d sdram_dev = { - .name = "mem", - .map_base = 0x20000000, - .size = 64 * 1024 * 1024, - .platform_data = &sram_pdata, -}; - -static struct at91sam_ether_platform_data macb_pdata = { +static struct at91_ether_platform_data macb_pdata = { .flags = AT91SAM_ETHER_RMII, .phy_addr = 0, }; -static struct device_d macb_dev = { - .name = "macb", - .map_base = AT91C_BASE_EMACB, - .size = 0x1000, - .platform_data = &macb_pdata, -}; - static int at91sam9260ek_devices_init(void) { - register_device(&sdram_dev); - gpio_direction_input(NAND_READY_GPIO); gpio_direction_output(NAND_ENABLE_GPIO, 1); - register_device(&nand_dev); - register_device(&macb_dev); + at91_add_device_nand(&nand_pdata); + at91_add_device_eth(&macb_pdata); - armlinux_add_dram(&sdram_dev); + at91_add_device_sdram(64 * 1024 * 1024); armlinux_set_bootparams((void *)0x20000100); armlinux_set_architecture(MACH_TYPE_AT91SAM9260EK); @@ -110,15 +81,9 @@ static int at91sam9260ek_devices_init(void) device_initcall(at91sam9260ek_devices_init); -static struct device_d at91sam9260ek_serial_device = { - .name = "atmel_serial", - .map_base = AT91C_BASE_DBGU, - .size = 4096, -}; - static int at91sam9260ek_console_init(void) { - register_device(&at91sam9260ek_serial_device); + at91_register_uart(0); return 0; } diff --git a/board/mmccpu/init.c b/board/mmccpu/init.c index 665c7d9acb..5ef5020784 100644 --- a/board/mmccpu/init.c +++ b/board/mmccpu/init.c @@ -33,19 +33,7 @@ #include <asm/hardware.h> #include <nand.h> #include <linux/mtd/nand.h> -#include <asm/arch/ether.h> - -static struct memory_platform_data ram_pdata = { - .name = "ram0", - .flags = DEVFS_RDWR, -}; - -static struct device_d sdram_dev = { - .name = "mem", - .map_base = 0x20000000, - .size = 128 * 1024 * 1024, - .platform_data = &ram_pdata, -}; +#include <asm/arch/board.h> static struct device_d cfi_dev = { .name = "cfi_flash", @@ -53,18 +41,11 @@ static struct device_d cfi_dev = { .size = 0, /* zero means autodetect size */ }; -static struct at91sam_ether_platform_data macb_pdata = { +static struct at91_ether_platform_data macb_pdata = { .flags = AT91SAM_ETHER_MII | AT91SAM_ETHER_FORCE_LINK, .phy_addr = 4, }; -static struct device_d macb_dev = { - .name = "macb", - .map_base = AT91C_BASE_MACB, - .size = 0x1000, - .platform_data = &macb_pdata, -}; - static int mmccpu_devices_init(void) { u32 pe = AT91C_PC25_ERXDV | @@ -101,14 +82,13 @@ static int mmccpu_devices_init(void) writel(1 << AT91C_ID_EMAC, AT91C_PMC_PCER); - register_device(&sdram_dev); - register_device(&macb_dev); + at91_add_device_sdram(128 * 1024 * 1024); + at91_add_device_eth(&macb_pdata); register_device(&cfi_dev); devfs_add_partition("nor0", 0x00000, 256 * 1024, PARTITION_FIXED, "self0"); devfs_add_partition("nor0", 0x40000, 128 * 1024, PARTITION_FIXED, "env0"); - armlinux_add_dram(&sdram_dev); armlinux_set_bootparams((void *)0x20000100); armlinux_set_architecture(MACH_TYPE_MMCCPU); @@ -117,17 +97,11 @@ static int mmccpu_devices_init(void) device_initcall(mmccpu_devices_init); -static struct device_d mmccpu_serial_device = { - .name = "atmel_serial", - .map_base = AT91C_BASE_DBGU, - .size = 4096, -}; - static int mmccpu_console_init(void) { writel(AT91C_PC31_DTXD | AT91C_PC30_DRXD, AT91C_PIOC_PDR); - register_device(&mmccpu_serial_device); + at91_register_uart(0); return 0; } diff --git a/board/pm9263/init.c b/board/pm9263/init.c index fb33298f43..67c5ae7ddf 100644 --- a/board/pm9263/init.c +++ b/board/pm9263/init.c @@ -33,19 +33,7 @@ #include <asm/hardware.h> #include <nand.h> #include <linux/mtd/nand.h> -#include <asm/arch/ether.h> - -static struct memory_platform_data ram_pdata = { - .name = "ram0", - .flags = DEVFS_RDWR, -}; - -static struct device_d sdram_dev = { - .name = "mem", - .map_base = 0x20000000, - .size = 64 * 1024 * 1024, - .platform_data = &ram_pdata, -}; +#include <asm/arch/board.h> static struct device_d cfi_dev = { .name = "cfi_flash", @@ -53,18 +41,11 @@ static struct device_d cfi_dev = { .size = 4 * 1024 * 1024, }; -static struct at91sam_ether_platform_data macb_pdata = { +static struct at91_ether_platform_data macb_pdata = { .flags = AT91SAM_ETHER_RMII, .phy_addr = 0, }; -static struct device_d macb_dev = { - .name = "macb", - .map_base = AT91C_BASE_MACB, - .size = 0x1000, - .platform_data = &macb_pdata, -}; - static int pm9263_devices_init(void) { u32 pe = AT91C_PC25_ERXDV; @@ -92,14 +73,13 @@ static int pm9263_devices_init(void) writel(1 << AT91C_ID_EMAC, AT91C_PMC_PCER); - register_device(&sdram_dev); - register_device(&macb_dev); + at91_add_device_sdram(64 * 1024 * 1024); + at91_add_device_eth(&macb_pdata); register_device(&cfi_dev); devfs_add_partition("nor0", 0x00000, 0x40000, PARTITION_FIXED, "self0"); devfs_add_partition("nor0", 0x40000, 0x10000, PARTITION_FIXED, "env0"); - armlinux_add_dram(&sdram_dev); armlinux_set_bootparams((void *)0x20000100); armlinux_set_architecture(MACH_TYPE_PM9263); @@ -108,17 +88,11 @@ static int pm9263_devices_init(void) device_initcall(pm9263_devices_init); -static struct device_d pm9263_serial_device = { - .name = "atmel_serial", - .map_base = AT91C_BASE_DBGU, - .size = 4096, -}; - static int pm9263_console_init(void) { writel(AT91C_PC31_DTXD | AT91C_PC30_DRXD, AT91C_PIOC_PDR); - register_device(&pm9263_serial_device); + at91_register_uart(0); return 0; } |