1*1e1caba6Skettenis /* $OpenBSD: pciide_svwsata_reg.h,v 1.4 2006/02/10 21:45:41 kettenis Exp $ */ 22c3d1047Skettenis 32c3d1047Skettenis /* 42c3d1047Skettenis * Copyright (c) 2005 Mark Kettenis 52c3d1047Skettenis * 62c3d1047Skettenis * Permission to use, copy, modify, and distribute this software for any 72c3d1047Skettenis * purpose with or without fee is hereby granted, provided that the above 82c3d1047Skettenis * copyright notice and this permission notice appear in all copies. 92c3d1047Skettenis * 102c3d1047Skettenis * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 112c3d1047Skettenis * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 122c3d1047Skettenis * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 132c3d1047Skettenis * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 142c3d1047Skettenis * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 152c3d1047Skettenis * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 162c3d1047Skettenis * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 172c3d1047Skettenis */ 182c3d1047Skettenis 195e3ba90fSgrange #ifndef _DEV_PCI_PCIIDE_SVWSATA_REG_H_ 205e3ba90fSgrange #define _DEV_PCI_PCIIDE_SVWSATA_REG_H_ 212c3d1047Skettenis 222c3d1047Skettenis struct pciide_svwsata { 232c3d1047Skettenis bus_space_tag_t ba5_st; 242c3d1047Skettenis bus_space_handle_t ba5_sh; 252c3d1047Skettenis }; 262c3d1047Skettenis 272c3d1047Skettenis #define SVWSATA_TF0 0x00 282c3d1047Skettenis #define SVWSATA_TF8 0x20 292c3d1047Skettenis 302c3d1047Skettenis #define SVWSATA_DMA 0x30 312c3d1047Skettenis 322c3d1047Skettenis #define SVWSATA_SSTATUS 0x40 335e3ba90fSgrange #define SVWSATA_SERROR 0x44 342c3d1047Skettenis #define SVWSATA_SCONTROL 0x48 352c3d1047Skettenis 36b1ee4538Sgrange #define SVWSATA_SICR1 0x80 37b1ee4538Sgrange #define SVWSATA_SICR2 0x84 38b1ee4538Sgrange #define SVWSATA_SIM 0x88 39b1ee4538Sgrange 402c3d1047Skettenis u_int8_t svwsata_read_reg(struct channel_softc *, enum wdc_regs); 412c3d1047Skettenis void svwsata_write_reg(struct channel_softc *, enum wdc_regs, u_int8_t); 42*1e1caba6Skettenis void svwsata_lba48_write_reg(struct channel_softc *, enum wdc_regs, u_int16_t); 432c3d1047Skettenis 442c3d1047Skettenis struct channel_softc_vtbl wdc_svwsata_vtbl = { 452c3d1047Skettenis svwsata_read_reg, 462c3d1047Skettenis svwsata_write_reg, 47*1e1caba6Skettenis svwsata_lba48_write_reg, 482c3d1047Skettenis wdc_default_read_raw_multi_2, 492c3d1047Skettenis wdc_default_write_raw_multi_2, 502c3d1047Skettenis wdc_default_read_raw_multi_4, 512c3d1047Skettenis wdc_default_write_raw_multi_4 522c3d1047Skettenis }; 532c3d1047Skettenis 542c3d1047Skettenis #endif /* !_DEV_PCI_PCIIDE_SVWSATA_REG_H_ */ 55