Lines Matching +full:sata +full:- +full:port
4 * Written-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
6 * SPDX-License-Identifier: GPL-2.0+
20 /* SATA port registers */
43 * - to compile at all, we need CONFIG_SYS_ATA_BASE_ADDR.
44 * - for ide_preinit to make sense, we need at least one of
46 * - for ide_preinit to be called, we need CONFIG_IDE_PREINIT.
86 * If/when standard negative codes are implemented in U-Boot, then these
92 #define MVSATA_STATUS_TIMEOUT -1
95 * Registers for SATA MBUS memory windows
102 * Initialize SATA memory windows for Armada XP
119 for (i = 0; i < dram->num_cs; i++) { in mvsata_ide_conf_mbus_windows()
120 const struct mbus_dram_window *cs = dram->cs + i; in mvsata_ide_conf_mbus_windows()
121 writel(((cs->size - 1) & 0xffff0000) | (cs->mbus_attr << 8) | in mvsata_ide_conf_mbus_windows()
122 (dram->mbus_dram_target_id << 4) | 1, in mvsata_ide_conf_mbus_windows()
124 writel(cs->base & 0xffff0000, MVSATA_WIN_BASE(i)); in mvsata_ide_conf_mbus_windows()
130 * Initialize one MVSATAHC port: set SControl's IPM to "always active"
136 static int mvsata_ide_initialize_port(struct mvsata_port_registers *port) in mvsata_ide_initialize_port() argument
140 u32 timeleft = 10000; /* wait at most 10 ms for SATA reset to complete */ in mvsata_ide_initialize_port()
143 writel(MVSATA_EDMA_CMD_ATA_RST, &port->edma_cmd); in mvsata_ide_initialize_port()
144 udelay(25); /* taken from original marvell port */ in mvsata_ide_initialize_port()
145 writel(0, &port->edma_cmd); in mvsata_ide_initialize_port()
148 control = readl(&port->scontrol); in mvsata_ide_initialize_port()
150 writel(control, &port->scontrol); in mvsata_ide_initialize_port()
153 writel(control, &port->scontrol); in mvsata_ide_initialize_port()
155 while (--timeleft) { in mvsata_ide_initialize_port()
156 status = readl(&port->sstatus) & MVSATA_SSTATUS_DET_MASK; in mvsata_ide_initialize_port()
161 /* return success or time-out error depending on time left */ in mvsata_ide_initialize_port()
181 /* Enable ATA port 0 (could be SATA port 0 or 1) if declared */ in ide_preinit()
189 /* Enable ATA port 1 (could be SATA port 0 or 1) if declared */ in ide_preinit()
197 /* Return success if at least one port initialization succeeded */ in ide_preinit()