2005-04-17 02:20:36 +04:00
/*
2007-07-31 11:38:19 +04:00
* ARM default IDE host driver
2005-04-17 02:20:36 +04:00
*
* Copyright ( C ) 2004 Bartlomiej Zolnierkiewicz
* Based on code by : Russell King , Ian Molton and Alexander Schulz .
*
* May be copied or modified under the terms of the GNU General Public License .
*/
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/ide.h>
# include <asm/irq.h>
2008-04-27 00:25:18 +04:00
# define DRV_NAME "ide_arm"
2008-10-28 12:43:54 +03:00
# define IDE_ARM_IO 0x1f0
# define IDE_ARM_IRQ IRQ_HARDDISK
2005-04-17 02:20:36 +04:00
2008-01-26 22:13:07 +03:00
static int __init ide_arm_init ( void )
2005-04-17 02:20:36 +04:00
{
2008-04-27 00:25:18 +04:00
unsigned long base = IDE_ARM_IO , ctl = IDE_ARM_IO + 0x206 ;
2008-07-23 21:55:50 +04:00
hw_regs_t hw , * hws [ ] = { & hw , NULL , NULL , NULL } ;
2005-04-17 02:20:36 +04:00
2008-04-27 00:25:18 +04:00
if ( ! request_region ( base , 8 , DRV_NAME ) ) {
printk ( KERN_ERR " %s: I/O resource 0x%lX-0x%lX not free. \n " ,
DRV_NAME , base , base + 7 ) ;
return - EBUSY ;
}
if ( ! request_region ( ctl , 1 , DRV_NAME ) ) {
printk ( KERN_ERR " %s: I/O resource 0x%lX not free. \n " ,
DRV_NAME , ctl ) ;
release_region ( base , 8 ) ;
return - EBUSY ;
}
2007-07-31 11:38:19 +04:00
memset ( & hw , 0 , sizeof ( hw ) ) ;
2008-04-27 00:25:18 +04:00
ide_std_init_ports ( & hw , base , ctl ) ;
2007-07-31 11:38:19 +04:00
hw . irq = IDE_ARM_IRQ ;
2008-06-10 22:56:37 +04:00
hw . chipset = ide_generic ;
2008-01-26 22:13:06 +03:00
ide: add ide_host_add() helper
Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
host drivers to use it.
While at it:
* Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.
* -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
and pmac.c
* -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c
* -1 -> -ENOMEM in ide-pnp.c
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2008-07-23 21:55:57 +04:00
return ide_host_add ( NULL , hws , NULL ) ;
2005-04-17 02:20:36 +04:00
}
2008-01-26 22:13:07 +03:00
module_init ( ide_arm_init ) ;
2008-04-02 23:22:03 +04:00
MODULE_LICENSE ( " GPL " ) ;