ARM: orion: Consolidate SATA platform setup.
Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
This commit is contained in:
parent
4fcd3f374a
commit
9e613f8a79
|
@ -107,35 +107,11 @@ void __init dove_rtc_init(void)
|
|||
/*****************************************************************************
|
||||
* SATA
|
||||
****************************************************************************/
|
||||
static struct resource dove_sata_resources[] = {
|
||||
{
|
||||
.name = "sata base",
|
||||
.start = DOVE_SATA_PHYS_BASE,
|
||||
.end = DOVE_SATA_PHYS_BASE + 0x5000 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "sata irq",
|
||||
.start = IRQ_DOVE_SATA,
|
||||
.end = IRQ_DOVE_SATA,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device dove_sata = {
|
||||
.name = "sata_mv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(dove_sata_resources),
|
||||
.resource = dove_sata_resources,
|
||||
};
|
||||
|
||||
void __init dove_sata_init(struct mv_sata_platform_data *sata_data)
|
||||
{
|
||||
sata_data->dram = &dove_mbus_dram_info;
|
||||
dove_sata.dev.platform_data = sata_data;
|
||||
platform_device_register(&dove_sata);
|
||||
orion_sata_init(sata_data, &dove_mbus_dram_info,
|
||||
DOVE_SATA_PHYS_BASE, IRQ_DOVE_SATA);
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
|
|
@ -172,38 +172,14 @@ static void __init kirkwood_rtc_init(void)
|
|||
/*****************************************************************************
|
||||
* SATA
|
||||
****************************************************************************/
|
||||
static struct resource kirkwood_sata_resources[] = {
|
||||
{
|
||||
.name = "sata base",
|
||||
.start = SATA_PHYS_BASE,
|
||||
.end = SATA_PHYS_BASE + 0x5000 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "sata irq",
|
||||
.start = IRQ_KIRKWOOD_SATA,
|
||||
.end = IRQ_KIRKWOOD_SATA,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device kirkwood_sata = {
|
||||
.name = "sata_mv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(kirkwood_sata_resources),
|
||||
.resource = kirkwood_sata_resources,
|
||||
};
|
||||
|
||||
void __init kirkwood_sata_init(struct mv_sata_platform_data *sata_data)
|
||||
{
|
||||
kirkwood_clk_ctrl |= CGC_SATA0;
|
||||
if (sata_data->n_ports > 1)
|
||||
kirkwood_clk_ctrl |= CGC_SATA1;
|
||||
sata_data->dram = &kirkwood_mbus_dram_info;
|
||||
kirkwood_sata.dev.platform_data = sata_data;
|
||||
platform_device_register(&kirkwood_sata);
|
||||
|
||||
orion_sata_init(sata_data, &kirkwood_mbus_dram_info,
|
||||
SATA_PHYS_BASE, IRQ_KIRKWOOD_SATA);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -275,35 +275,10 @@ void __init mv78xx0_i2c_init(void)
|
|||
/*****************************************************************************
|
||||
* SATA
|
||||
****************************************************************************/
|
||||
static struct resource mv78xx0_sata_resources[] = {
|
||||
{
|
||||
.name = "sata base",
|
||||
.start = SATA_PHYS_BASE,
|
||||
.end = SATA_PHYS_BASE + 0x5000 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "sata irq",
|
||||
.start = IRQ_MV78XX0_SATA,
|
||||
.end = IRQ_MV78XX0_SATA,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device mv78xx0_sata = {
|
||||
.name = "sata_mv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(mv78xx0_sata_resources),
|
||||
.resource = mv78xx0_sata_resources,
|
||||
};
|
||||
|
||||
void __init mv78xx0_sata_init(struct mv_sata_platform_data *sata_data)
|
||||
{
|
||||
sata_data->dram = &mv78xx0_mbus_dram_info;
|
||||
mv78xx0_sata.dev.platform_data = sata_data;
|
||||
platform_device_register(&mv78xx0_sata);
|
||||
orion_sata_init(sata_data, &mv78xx0_mbus_dram_info,
|
||||
SATA_PHYS_BASE, IRQ_MV78XX0_SATA);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -119,35 +119,10 @@ void __init orion5x_i2c_init(void)
|
|||
/*****************************************************************************
|
||||
* SATA
|
||||
****************************************************************************/
|
||||
static struct resource orion5x_sata_resources[] = {
|
||||
{
|
||||
.name = "sata base",
|
||||
.start = ORION5X_SATA_PHYS_BASE,
|
||||
.end = ORION5X_SATA_PHYS_BASE + 0x5000 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}, {
|
||||
.name = "sata irq",
|
||||
.start = IRQ_ORION5X_SATA,
|
||||
.end = IRQ_ORION5X_SATA,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device orion5x_sata = {
|
||||
.name = "sata_mv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(orion5x_sata_resources),
|
||||
.resource = orion5x_sata_resources,
|
||||
};
|
||||
|
||||
void __init orion5x_sata_init(struct mv_sata_platform_data *sata_data)
|
||||
{
|
||||
sata_data->dram = &orion5x_mbus_dram_info;
|
||||
orion5x_sata.dev.platform_data = sata_data;
|
||||
platform_device_register(&orion5x_sata);
|
||||
orion_sata_init(sata_data, &orion5x_mbus_dram_info,
|
||||
ORION5X_SATA_PHYS_BASE, IRQ_ORION5X_SATA);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/dma-mapping.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/mbus.h>
|
||||
#include <linux/ata_platform.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <linux/mv643xx_i2c.h>
|
||||
#include <net/dsa.h>
|
||||
|
@ -889,3 +890,37 @@ void __init orion_ehci_2_init(struct mbus_dram_target_info *mbus_dram_info,
|
|||
|
||||
platform_device_register(&orion_ehci_2);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* SATA
|
||||
****************************************************************************/
|
||||
static struct resource orion_sata_resources[2] = {
|
||||
{
|
||||
.name = "sata base",
|
||||
}, {
|
||||
.name = "sata irq",
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device orion_sata = {
|
||||
.name = "sata_mv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||
},
|
||||
};
|
||||
|
||||
void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
|
||||
struct mbus_dram_target_info *mbus_dram_info,
|
||||
unsigned long mapbase,
|
||||
unsigned long irq)
|
||||
{
|
||||
sata_data->dram = mbus_dram_info;
|
||||
orion_sata.dev.platform_data = sata_data;
|
||||
fill_resources(&orion_sata, orion_sata_resources,
|
||||
mapbase, 0x5000 - 1, irq);
|
||||
|
||||
platform_device_register(&orion_sata);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -104,4 +104,9 @@ void __init orion_ehci_1_init(struct mbus_dram_target_info *mbus_dram_info,
|
|||
void __init orion_ehci_2_init(struct mbus_dram_target_info *mbus_dram_info,
|
||||
unsigned long mapbase,
|
||||
unsigned long irq);
|
||||
|
||||
void __init orion_sata_init(struct mv_sata_platform_data *sata_data,
|
||||
struct mbus_dram_target_info *mbus_dram_info,
|
||||
unsigned long mapbase,
|
||||
unsigned long irq);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue