📄 ide.h
字号:
/* * linux/include/asm-arm/arch-s3c2410/ide.h * * by threewater<threewater@up-tech.com> * * derived from: * linux/include/asm-arm/arch-ebsa285/ide.h * Copyright (c) 1998 Russell King */#include <asm/irq.h>#include "S3C2410.h"/* * Set up a hw structure for a specified data port, control port and IRQ. * This should follow whatever the default interface uses. */static __inline__ voidide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq){ ide_ioreg_t reg = (ide_ioreg_t) data_port; int i; memset(hw, 0, sizeof(*hw)); for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { hw->io_ports[i] = reg; reg ++; } hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port; if (irq) *irq = 0;}/* * Set up a hw structure for a specified data port, control port and IRQ. * This should follow whatever the default interface uses. * add by threewater for default ide hardware */static __inline__ voidide_init_default_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq){ ide_ioreg_t reg = (ide_ioreg_t) data_port; int i; memset(hw, 0, sizeof(*hw)); for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { hw->io_ports[i] = reg; reg += 2; } hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port; if (irq) *irq = 0;}/* * This registers the standard ports for this architecture with the IDE * driver. */static __inline__ voidide_init_default_hwifs(void){ hw_regs_t hw; BWSCON = ((BWSCON & ~(BWSCON_ST1 | BWSCON_WS1 | BWSCON_DW1)) | (BWSCON_ST1 | BWSCON_WS1 | BWSCON_DW(1, BWSCON_DW_16))); BANKCON1= BANKCON_Tacs4 | BANKCON_Tcos4 | BANKCON_Tacc14 | BANKCON_Toch4 | BANKCON_Tcah4 | BANKCON_Tacp6 | BANKCON_PMC1; //set_external_irq(IRQ_IDE, EXT_HIGHLEVEL, GPIO_PULLUP_DIS); set_external_irq(IRQ_IDE, EXT_RISING_EDGE, GPIO_PULLUP_DIS); ide_init_default_hwif_ports(&hw, IDE_BASE+0x20, IDE_BASE+0x10, NULL); hw.irq = IRQ_IDE; hw.dma = NO_DMA; ide_register_hw(&hw, NULL);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -