1*26cf6855Sjdolecek /* $NetBSD: efavar.h,v 1.3 2017/10/07 16:05:31 jdolecek Exp $ */ 225abb178Srkujawa 325abb178Srkujawa /*- 425abb178Srkujawa * Copyright (c) 2011 The NetBSD Foundation, Inc. 525abb178Srkujawa * All rights reserved. 625abb178Srkujawa * 725abb178Srkujawa * This code is derived from software contributed to The NetBSD Foundation 825abb178Srkujawa * by Radoslaw Kujawa. 925abb178Srkujawa * 1025abb178Srkujawa * Redistribution and use in source and binary forms, with or without 1125abb178Srkujawa * modification, are permitted provided that the following conditions 1225abb178Srkujawa * are met: 1325abb178Srkujawa * 1. Redistributions of source code must retain the above copyright 1425abb178Srkujawa * notice, this list of conditions and the following disclaimer. 1525abb178Srkujawa * 2. Redistributions in binary form must reproduce the above copyright 1625abb178Srkujawa * notice, this list of conditions and the following disclaimer in the 1725abb178Srkujawa * documentation and/or other materials provided with the distribution. 1825abb178Srkujawa * 1925abb178Srkujawa * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2025abb178Srkujawa * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2125abb178Srkujawa * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2225abb178Srkujawa * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2325abb178Srkujawa * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2425abb178Srkujawa * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2525abb178Srkujawa * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2625abb178Srkujawa * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2725abb178Srkujawa * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2825abb178Srkujawa * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2925abb178Srkujawa * POSSIBILITY OF SUCH DAMAGE. 3025abb178Srkujawa */ 3125abb178Srkujawa 3225abb178Srkujawa #include <dev/ata/atavar.h> 3325abb178Srkujawa #include <dev/ic/wdcvar.h> 3425abb178Srkujawa 3525abb178Srkujawa #define FATA1_CHANNELS 2 3625abb178Srkujawa #define PIO_COUNT 6 3725abb178Srkujawa 3825abb178Srkujawa struct efa_port { 3925abb178Srkujawa struct ata_channel chan; 4025abb178Srkujawa 4125abb178Srkujawa uint8_t mode; /* currently set mode */ 4225abb178Srkujawa 4325abb178Srkujawa struct wdc_regs wdr[6]; /* PIO0-5 */ 4425abb178Srkujawa bus_space_handle_t intst[6]; /* interrupt status register */ 4525abb178Srkujawa bool mode_ok[6]; /* is this PIO mode usable? */ 4625abb178Srkujawa }; 4725abb178Srkujawa 4825abb178Srkujawa struct efa_softc { 4925abb178Srkujawa struct wdc_softc sc_wdcdev; 5025abb178Srkujawa struct ata_channel *sc_chanlist[FATA1_CHANNELS]; 5125abb178Srkujawa 5225abb178Srkujawa struct efa_port sc_ports[FATA1_CHANNELS]; 5325abb178Srkujawa 5425abb178Srkujawa /* Force 32-bit data port, otherwise always use 16-bit */ 5525abb178Srkujawa bool sc_32bit_io; 5625abb178Srkujawa /* Disable hw interrupt support (for FastATA 1200 older than Mk-III) */ 5725abb178Srkujawa bool sc_no_intr; 5825abb178Srkujawa 5925abb178Srkujawa struct isr sc_isr; 6025abb178Srkujawa volatile u_char *sc_intreg; 6125abb178Srkujawa 6225abb178Srkujawa void *sc_fata_softintr; 6325abb178Srkujawa 6425abb178Srkujawa struct wdc_regs sc_gayle_wdc_regs; 6525abb178Srkujawa }; 6625abb178Srkujawa 67