Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d48fd006 authored by Rabin Vincent's avatar Rabin Vincent Committed by Russell King
Browse files

ARM: 6082/1: ux500: put common devices into devices.c



Introduce devices.c, for placing devices common among Ux500 SoCs.  Start
with the PL031 device.

Acked-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
Acked-by: default avatarSrinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: default avatarRabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent d67d1127
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the linux kernel, U8500 machine.
#

obj-y				:= clock.o cpu.o
obj-y				:= clock.o cpu.o devices.o
obj-$(CONFIG_ARCH_U8500)	+= cpu-u8500.o
obj-$(CONFIG_MACH_U8500_MOP)	+= board-mop500.o
obj-$(CONFIG_SMP)		+= platsmp.o headsmp.o localtimer.o
+0 −13
Original line number Diff line number Diff line
@@ -107,18 +107,6 @@ static struct amba_device pl022_device = {
	.periphid = SSP_PER_ID,
};

static struct amba_device pl031_device = {
	.dev = {
		.init_name = "pl031",
	},
	.res = {
		.start = U8500_RTC_BASE,
		.end = U8500_RTC_BASE + SZ_4K - 1,
		.flags = IORESOURCE_MEM,
	},
	.irq = {IRQ_RTC_RTT, NO_IRQ},
};

#define U8500_I2C_RESOURCES(id, size)		\
static struct resource u8500_i2c_resources_##id[] = {	\
	[0] = {					\
@@ -188,7 +176,6 @@ static struct amba_device *amba_devs[] __initdata = {
	&uart1_device,
	&uart2_device,
	&pl022_device,
	&pl031_device,
};

/* add any platform devices here - TODO */
+2 −0
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@ void __init u8500_map_io(void)
 */
void __init u8500_init_devices(void)
{
	ux500_init_devices();

	/* Register the platform devices */
	platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs));

+10 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

#include <mach/hardware.h>
#include <mach/setup.h>
#include <mach/devices.h>

#include "clock.h"

@@ -41,11 +42,20 @@ static struct map_desc ux500_io_desc[] __initdata = {
	__IO_DEV_DESC(UX500_BACKUPRAM0_BASE, SZ_8K),
};

static struct amba_device *ux500_amba_devs[] __initdata = {
	&ux500_pl031_device,
};

void __init ux500_map_io(void)
{
	iotable_init(ux500_io_desc, ARRAY_SIZE(ux500_io_desc));
}

void __init ux500_init_devices(void)
{
	amba_add_devices(ux500_amba_devs, ARRAY_SIZE(ux500_amba_devs));
}

void __init ux500_init_irq(void)
{
	gic_dist_init(0, __io_address(UX500_GIC_DIST_BASE), 29);
+37 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) ST-Ericsson SA 2010
 *
 * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
 * License terms: GNU General Public License (GPL) version 2
 */

#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/amba/bus.h>

#include <mach/hardware.h>
#include <mach/setup.h>

struct amba_device ux500_pl031_device = {
	.dev = {
		.init_name = "pl031",
	},
	.res = {
		.start	= UX500_RTC_BASE,
		.end	= UX500_RTC_BASE + SZ_4K - 1,
		.flags	= IORESOURCE_MEM,
	},
	.irq = {IRQ_RTC_RTT, NO_IRQ},
};

void __init amba_add_devices(struct amba_device *devs[], int num)
{
	int i;

	for (i = 0; i < num; i++) {
		struct amba_device *d = devs[i];
		amba_device_register(d, &iomem_resource);
	}
}
Loading