@@ -415,6 +415,25 @@ static struct platform_device rstc_device = {
.num_resources = ARRAY_SIZE(rstc_resources),
};
+static struct resource ramc_resources[] = {
+ [0] = {
+ .start = AT91SAM9G45_BASE_DDRSDRC1,
+ .end = AT91SAM9G45_BASE_DDRSDRC1 + SZ_512 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = AT91SAM9G45_BASE_DDRSDRC0,
+ .end = AT91SAM9G45_BASE_DDRSDRC0 + SZ_512 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+};
+
+static struct platform_device rstc_device = {
+ .name = "at91-sam9g45-ramc",
+ .resource = ramc_resources,
+ .num_resources = ARRAY_SIZE(ramc_resources),
+};
+
static struct resource shdwc_resources[] = {
[0] = {
.start = AT91SAM9G45_BASE_SHDWC,
@@ -431,6 +450,7 @@ static struct platform_device shdwc_device = {
static void __init at91sam9g45_register_devices(void)
{
+ platform_device_register(&ramc_device);
platform_device_register(&rstc_device);
platform_device_register(&shdwc_device);
}
@@ -348,6 +348,20 @@ static struct platform_device rstc_device = {
.num_resources = ARRAY_SIZE(rstc_resources),
};
+static struct resource ramc_resources[] = {
+ [0] = {
+ .start = AT91SAM9RL_BASE_SDRAMC,
+ .end = AT91SAM9RL_BASE_SDRAMC + SZ_512 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+};
+
+static struct platform_device ramc_device = {
+ .name = "at91-sam9260-ramc",
+ .resource = ramc_resources,
+ .num_resources = ARRAY_SIZE(ramc_resources),
+};
+
static struct resource shdwc_resources[] = {
[0] = {
.start = AT91SAM9RL_BASE_SHDWC,
@@ -364,6 +378,7 @@ static struct platform_device shdwc_device = {
static void __init at91sam9rl_register_devices(void)
{
+ platform_device_register(&ramc_device);
platform_device_register(&rstc_device);
platform_device_register(&shdwc_device);
}
Probe the atmel-sdramc driver from the board files, using platform_data. Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> --- arch/arm/mach-at91/at91sam9g45.c | 20 ++++++++++++++++++++ arch/arm/mach-at91/at91sam9rl.c | 15 +++++++++++++++ 2 files changed, 35 insertions(+)