summaryrefslogtreecommitdiff
path: root/drivers/block/mvsata_ide.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2011-06-01 22:04:12 +0200
committerWolfgang Denk <wd@denx.de>2011-06-01 22:04:12 +0200
commit033cd2c42bf335d3b96e9612695f6c30b83dce2b (patch)
tree1bc9e1d9163cd3114bfeb016d4f4311fbbbec491 /drivers/block/mvsata_ide.c
parent2130b03309dcf56dab11b6fd0be3b4bedc7f628c (diff)
parentcd3af8b56749b3200cd858b5a9424c6661958e5f (diff)
downloadu-boot-imx-033cd2c42bf335d3b96e9612695f6c30b83dce2b.zip
u-boot-imx-033cd2c42bf335d3b96e9612695f6c30b83dce2b.tar.gz
u-boot-imx-033cd2c42bf335d3b96e9612695f6c30b83dce2b.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-arm
* 'master' of git://git.denx.de/u-boot-arm: SMDKV310: Fix incorrect conditional compilation for MIU linear mapping SMDKV310: CPU fequency and mmc_pre_ratio modified armv7: Add support for ST-Ericsson U8500 href platform I2C: Add driver for ST-Ericsson U8500 i2c armv7: Add ST-Ericsson u8500 arch Kirkwood: boards cleanup for deprecated CONFIG_CMD_AUTOSCRIPT ARMV7: Vexpress: Add missing MMC header arm/km: update mgcoge3un board support mvgbe: enable configurability of PORT_SERIAL_CONTROL_VALUE arm/km: rename mgcoge2un to mgcoge3un arm/km: add second serial interface for kirkwood arm/km: disable ls (through jffs2 support) arm/km: introduce bootcount env variable and clean km_arm arm/km: move CONFIG_EXTRA_ENV_SETTINGS from board to km_arm file arm/km: remove CONFIG_SYS_KWD_CONFIG from keymile-common.h ARMV7: MMC SPL Boot support for SMDKV310 board ARMV7: Add support for Samsung SMDKV310 Board S5PC2XX: clock: support pwm clock for evt1 (cpu revision 1) S5P: add set_mmc_clk for external clock control S5PC2XX: Support the cpu revision S5P:SROM config code moved to s5p-common directory Add _end for the end of u-boot image for SMDK6400 MMC S5P: Fix typo S5P: GPIO Macro Values Corrected. SMDK2410: various cleanup/code style fixes SMDK2410: use the CFI driver (and remove the old one) SMDK2410: remove unneeded config.mk SMDK2410: activate ARM relocation feature BeagleBoard: fixed typo in typecast mvsata: issue hard reset on initialization VCMA9: use ARM relocation feature to fix build error MX31: drop warnings due to missing prototype for mxc_watchdog_reset() MX5: drop config.mk from efikamx board MX31: Make get_reset_cause() static and drop unreachable code MX53: Remove CONFIG_SYS_BOOTMAPSZ from mx53 config files. MX53: Handle silicon revision 2.1 case mx5: board: code clean up for checkboard code MX51: vision2: Fix build for vision2 board. MX51: vision: Let video mode struct be independant of watchdog. MX53: Add initial support for MX53SMD board. MX53: support for freescale MX53LOCO board mx5: Fix CONFIG_OF_LIBFDT redefined warning mx5: Remove unnecessary CONFIG_SYS_BOOTMAPSZ definition mx31pdk: Clean up mx31pdk.h file
Diffstat (limited to 'drivers/block/mvsata_ide.c')
-rw-r--r--drivers/block/mvsata_ide.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/block/mvsata_ide.c b/drivers/block/mvsata_ide.c
index e0e4097..1be395f 100644
--- a/drivers/block/mvsata_ide.c
+++ b/drivers/block/mvsata_ide.c
@@ -33,7 +33,9 @@
/* SATA port registers */
struct mvsata_port_registers {
- u32 reserved1[192];
+ u32 reserved0[10];
+ u32 edma_cmd;
+ u32 reserved1[181];
/* offset 0x300 : ATA Interface registers */
u32 sstatus;
u32 serror;
@@ -76,6 +78,7 @@ struct mvsata_port_registers {
* and for SStatus DETection.
*/
+#define MVSATA_EDMA_CMD_ATA_RST 0x00000004
#define MVSATA_SCONTROL_DET_MASK 0x0000000F
#define MVSATA_SCONTROL_DET_NONE 0x00000000
#define MVSATA_SCONTROL_DET_INIT 0x00000001
@@ -115,6 +118,11 @@ static int mvsata_ide_initialize_port(struct mvsata_port_registers *port)
u32 status;
u32 timeleft = 10000; /* wait at most 10 ms for SATA reset to complete */
+ /* Hard reset */
+ writel(MVSATA_EDMA_CMD_ATA_RST, &port->edma_cmd);
+ udelay(25); /* taken from original marvell port */
+ writel(0, &port->edma_cmd);
+
/* Set control IPM to 3 (no low power) and DET to 1 (initialize) */
control = readl(&port->scontrol);
control = (control & ~MVSATA_SCONTROL_MASK) | MVSATA_PORT_INIT;