Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 112329
b: refs/heads/master
c: 457cd4f
h: refs/heads/master
i:
  112327: 1266353
v: v3
  • Loading branch information
Dick Hollenbeck authored and Russell King committed Oct 1, 2008
1 parent 7047e07 commit 351f82c
Show file tree
Hide file tree
Showing 18 changed files with 247 additions and 144 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: 446b097a426f0fa7d37bd2576bdf6d72d6483ac1
refs/heads/master: 457cd4f5e3011da47f2f76e2bdc545ffcc1189db
14 changes: 0 additions & 14 deletions trunk/arch/arm/mach-ep93xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,6 @@ config MACH_TS72XX
Say 'Y' here if you want your kernel to support the
Technologic Systems TS-72xx board.

choice
prompt "Select a UART for early kernel messages"

config EP93XX_EARLY_UART1
bool "UART1"

config EP93XX_EARLY_UART2
bool "UART2"

config EP93XX_EARLY_UART3
bool "UART3"

endchoice

endmenu

endif
26 changes: 25 additions & 1 deletion trunk/arch/arm/mach-ep93xx/adssphere.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,36 @@ static struct ep93xx_eth_data adssphere_eth_data = {
.phy_id = 1,
};

static struct resource adssphere_eth_resource[] = {
{
.start = EP93XX_ETHERNET_PHYS_BASE,
.end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.start = IRQ_EP93XX_ETHERNET,
.end = IRQ_EP93XX_ETHERNET,
.flags = IORESOURCE_IRQ,
}
};

static struct platform_device adssphere_eth_device = {
.name = "ep93xx-eth",
.id = -1,
.dev = {
.platform_data = &adssphere_eth_data,
},
.num_resources = 2,
.resource = adssphere_eth_resource,
};

static void __init adssphere_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&adssphere_flash);

ep93xx_register_eth(&adssphere_eth_data, 1);
memcpy(adssphere_eth_data.dev_addr,
(void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
platform_device_register(&adssphere_eth_device);
}

MACHINE_START(ADSSPHERE, "ADS Sphere board")
Expand Down
37 changes: 1 addition & 36 deletions trunk/arch/arm/mach-ep93xx/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ static unsigned char gpio_int_type2[3];
static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c };
static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 };
static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 };
static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x58 };
static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x5c };

void ep93xx_gpio_update_int_params(unsigned port)
{
Expand Down Expand Up @@ -461,41 +461,6 @@ static struct platform_device ep93xx_ohci_device = {
.resource = ep93xx_ohci_resources,
};

static struct ep93xx_eth_data ep93xx_eth_data;

static struct resource ep93xx_eth_resource[] = {
{
.start = EP93XX_ETHERNET_PHYS_BASE,
.end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.start = IRQ_EP93XX_ETHERNET,
.end = IRQ_EP93XX_ETHERNET,
.flags = IORESOURCE_IRQ,
}
};

static struct platform_device ep93xx_eth_device = {
.name = "ep93xx-eth",
.id = -1,
.dev = {
.platform_data = &ep93xx_eth_data,
},
.num_resources = ARRAY_SIZE(ep93xx_eth_resource),
.resource = ep93xx_eth_resource,
};

void __init ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr)
{
if (copy_addr) {
memcpy(data->dev_addr,
(void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
}

ep93xx_eth_data = *data;
platform_device_register(&ep93xx_eth_device);
}

extern void ep93xx_gpio_init(void);

void __init ep93xx_init_devices(void)
Expand Down
6 changes: 0 additions & 6 deletions trunk/arch/arm/mach-ep93xx/edb9302.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,10 @@ static struct platform_device edb9302_flash = {
.resource = &edb9302_flash_resource,
};

static struct ep93xx_eth_data edb9302_eth_data = {
.phy_id = 1,
};

static void __init edb9302_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9302_flash);

ep93xx_register_eth(&edb9302_eth_data, 1);
}

MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
Expand Down
26 changes: 25 additions & 1 deletion trunk/arch/arm/mach-ep93xx/edb9302a.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,36 @@ static struct ep93xx_eth_data edb9302a_eth_data = {
.phy_id = 1,
};

static struct resource edb9302a_eth_resource[] = {
{
.start = EP93XX_ETHERNET_PHYS_BASE,
.end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.start = IRQ_EP93XX_ETHERNET,
.end = IRQ_EP93XX_ETHERNET,
.flags = IORESOURCE_IRQ,
}
};

static struct platform_device edb9302a_eth_device = {
.name = "ep93xx-eth",
.id = -1,
.dev = {
.platform_data = &edb9302a_eth_data,
},
.num_resources = 2,
.resource = edb9302a_eth_resource,
};

static void __init edb9302a_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9302a_flash);

ep93xx_register_eth(&edb9302a_eth_data, 1);
memcpy(edb9302a_eth_data.dev_addr,
(void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
platform_device_register(&edb9302a_eth_device);
}

MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
Expand Down
26 changes: 25 additions & 1 deletion trunk/arch/arm/mach-ep93xx/edb9307.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,36 @@ static struct ep93xx_eth_data edb9307_eth_data = {
.phy_id = 1,
};

static struct resource edb9307_eth_resource[] = {
{
.start = EP93XX_ETHERNET_PHYS_BASE,
.end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.start = IRQ_EP93XX_ETHERNET,
.end = IRQ_EP93XX_ETHERNET,
.flags = IORESOURCE_IRQ,
}
};

static struct platform_device edb9307_eth_device = {
.name = "ep93xx-eth",
.id = -1,
.dev = {
.platform_data = &edb9307_eth_data,
},
.num_resources = 2,
.resource = edb9307_eth_resource,
};

static void __init edb9307_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9307_flash);

ep93xx_register_eth(&edb9307_eth_data, 1);
memcpy(edb9307_eth_data.dev_addr,
(void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
platform_device_register(&edb9307_eth_device);
}

MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
Expand Down
6 changes: 0 additions & 6 deletions trunk/arch/arm/mach-ep93xx/edb9312.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,10 @@ static struct platform_device edb9312_flash = {
.resource = &edb9312_flash_resource,
};

static struct ep93xx_eth_data edb9312_eth_data = {
.phy_id = 1,
};

static void __init edb9312_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9312_flash);

ep93xx_register_eth(&edb9312_eth_data, 1);
}

MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
Expand Down
6 changes: 0 additions & 6 deletions trunk/arch/arm/mach-ep93xx/edb9315.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,10 @@ static struct platform_device edb9315_flash = {
.resource = &edb9315_flash_resource,
};

static struct ep93xx_eth_data edb9315_eth_data = {
.phy_id = 1,
};

static void __init edb9315_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9315_flash);

ep93xx_register_eth(&edb9315_eth_data, 1);
}

MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
Expand Down
26 changes: 25 additions & 1 deletion trunk/arch/arm/mach-ep93xx/edb9315a.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,36 @@ static struct ep93xx_eth_data edb9315a_eth_data = {
.phy_id = 1,
};

static struct resource edb9315a_eth_resource[] = {
{
.start = EP93XX_ETHERNET_PHYS_BASE,
.end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.start = IRQ_EP93XX_ETHERNET,
.end = IRQ_EP93XX_ETHERNET,
.flags = IORESOURCE_IRQ,
}
};

static struct platform_device edb9315a_eth_device = {
.name = "ep93xx-eth",
.id = -1,
.dev = {
.platform_data = &edb9315a_eth_data,
},
.num_resources = 2,
.resource = edb9315a_eth_resource,
};

static void __init edb9315a_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&edb9315a_flash);

ep93xx_register_eth(&edb9315a_eth_data, 1);
memcpy(edb9315a_eth_data.dev_addr,
(void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
platform_device_register(&edb9315a_eth_device);
}

MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
Expand Down
27 changes: 24 additions & 3 deletions trunk/arch/arm/mach-ep93xx/gesbc9312.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,36 @@ static struct platform_device gesbc9312_flash = {
};

static struct ep93xx_eth_data gesbc9312_eth_data = {
.phy_id = 1,
.phy_id = 1,
};

static struct resource gesbc9312_eth_resource[] = {
{
.start = EP93XX_ETHERNET_PHYS_BASE,
.end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
.flags = IORESOURCE_MEM,
}, {
.start = IRQ_EP93XX_ETHERNET,
.end = IRQ_EP93XX_ETHERNET,
.flags = IORESOURCE_IRQ,
}
};

static struct platform_device gesbc9312_eth_device = {
.name = "ep93xx-eth",
.id = -1,
.dev = {
.platform_data = &gesbc9312_eth_data,
},
.num_resources = 2,
.resource = gesbc9312_eth_resource,
};

static void __init gesbc9312_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&gesbc9312_flash);

ep93xx_register_eth(&gesbc9312_eth_data, 0);
platform_device_register(&gesbc9312_eth_device);
}

MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/arm/mach-ep93xx/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,10 @@ static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
static struct ep93xx_gpio_chip ep93xx_gpio_banks[] = {
EP93XX_GPIO_BANK("A", 0x00, 0x10, 0),
EP93XX_GPIO_BANK("B", 0x04, 0x14, 8),
EP93XX_GPIO_BANK("C", 0x08, 0x18, 40),
EP93XX_GPIO_BANK("C", 0x30, 0x34, 40),
EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24),
EP93XX_GPIO_BANK("E", 0x20, 0x24, 32),
EP93XX_GPIO_BANK("F", 0x30, 0x34, 16),
EP93XX_GPIO_BANK("F", 0x08, 0x18, 16),
EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48),
EP93XX_GPIO_BANK("H", 0x40, 0x44, 56),
};
Expand Down
34 changes: 0 additions & 34 deletions trunk/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,6 @@
#ifndef __ASM_ARCH_EP93XX_REGS_H
#define __ASM_ARCH_EP93XX_REGS_H

/*
* EP93xx Physical Memory Map:
*
* The ASDO pin is sampled at system reset to select a synchronous or
* asynchronous boot configuration. When ASDO is "1" (i.e. pulled-up)
* the synchronous boot mode is selected. When ASDO is "0" (i.e
* pulled-down) the asynchronous boot mode is selected.
*
* In synchronous boot mode nSDCE3 is decoded starting at physical address
* 0x00000000 and nCS0 is decoded starting at 0xf0000000. For asynchronous
* boot mode they are swapped with nCS0 decoded at 0x00000000 ann nSDCE3
* decoded at 0xf0000000.
*
* There is known errata for the EP93xx dealing with External Memory
* Configurations. Please refer to "AN273: EP93xx Silicon Rev E Design
* Guidelines" for more information. This document can be found at:
*
* http://www.cirrus.com/en/pubs/appNote/AN273REV4.pdf
*/

#define EP93XX_CS0_PHYS_BASE_ASYNC 0x00000000 /* ASDO Pin = 0 */
#define EP93XX_SDCE3_PHYS_BASE_SYNC 0x00000000 /* ASDO Pin = 1 */
#define EP93XX_CS1_PHYS_BASE 0x10000000
#define EP93XX_CS2_PHYS_BASE 0x20000000
#define EP93XX_CS3_PHYS_BASE 0x30000000
#define EP93XX_PCMCIA_PHYS_BASE 0x40000000
#define EP93XX_CS6_PHYS_BASE 0x60000000
#define EP93XX_CS7_PHYS_BASE 0x70000000
#define EP93XX_SDCE0_PHYS_BASE 0xc0000000
#define EP93XX_SDCE1_PHYS_BASE 0xd0000000
#define EP93XX_SDCE2_PHYS_BASE 0xe0000000
#define EP93XX_SDCE3_PHYS_BASE_ASYNC 0xf0000000 /* ASDO Pin = 0 */
#define EP93XX_CS0_PHYS_BASE_SYNC 0xf0000000 /* ASDO Pin = 1 */

/*
* EP93xx linux memory map:
*
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/arm/mach-ep93xx/include/mach/platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@

#ifndef __ASSEMBLY__

void ep93xx_map_io(void);
void ep93xx_init_irq(void);
void ep93xx_init_time(unsigned long);
void ep93xx_init_devices(void);
extern struct sys_timer ep93xx_timer;

struct ep93xx_eth_data
{
unsigned char dev_addr[6];
unsigned char phy_id;
};

void ep93xx_map_io(void);
void ep93xx_init_irq(void);
void ep93xx_init_time(unsigned long);
void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr);
void ep93xx_init_devices(void);
extern struct sys_timer ep93xx_timer;

#endif
Loading

0 comments on commit 351f82c

Please sign in to comment.