Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 191771
b: refs/heads/master
c: d48fd00
h: refs/heads/master
i:
  191769: 0c6b8ab
  191767: 795a394
v: v3
  • Loading branch information
Rabin Vincent authored and Russell King committed May 4, 2010
1 parent a6c0a6b commit c9081d9
Show file tree
Hide file tree
Showing 8 changed files with 71 additions and 16 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d67d1127a625cc5ebc3802180b19cc74f35b5578
refs/heads/master: d48fd006e6d9394e9abd14f4747034f73bb6a386
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-ux500/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
13 changes: 0 additions & 13 deletions trunk/arch/arm/mach-ux500/board-mop500.c
Original file line number Diff line number Diff line change
Expand Up @@ -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] = { \
Expand Down Expand Up @@ -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 */
Expand Down
2 changes: 2 additions & 0 deletions trunk/arch/arm/mach-ux500/cpu-u8500.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));

Expand Down
10 changes: 10 additions & 0 deletions trunk/arch/arm/mach-ux500/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

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

#include "clock.h"

Expand All @@ -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);
Expand Down
37 changes: 37 additions & 0 deletions trunk/arch/arm/mach-ux500/devices.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* 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);
}
}
15 changes: 15 additions & 0 deletions trunk/arch/arm/mach-ux500/include/mach/devices.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
* Copyright (C) ST-Ericsson SA 2010
*
* License terms: GNU General Public License (GPL) version 2
*/

#ifndef __ASM_ARCH_DEVICES_H__
#define __ASM_ARCH_DEVICES_H__

struct platform_device;
struct amba_device;

extern struct amba_device ux500_pl031_device;

#endif
6 changes: 5 additions & 1 deletion trunk/arch/arm/mach-ux500/include/mach/setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@
extern void __init ux500_map_io(void);
extern void __init u8500_map_io(void);

extern void u8500_init_devices(void);
extern void __init ux500_init_devices(void);
extern void __init u8500_init_devices(void);

extern void __init ux500_init_irq(void);
/* We re-use nomadik_timer for this platform */
extern void nmdk_timer_init(void);

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

struct sys_timer;
extern struct sys_timer u8500_timer;

Expand Down

0 comments on commit c9081d9

Please sign in to comment.