Home | History | Annotate | Line # | Download | only in pci
      1 /*	$NetBSD: pciide_piccolo.h_reg.h,v 1.0 2008/04/28 00:00:00 djb  	*/
      2 
      3 /*
      4  * Copyright (c) 2009 The NetBSD Foundation, Inc.
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  * 1. Redistributions of source code must retain the above copyright
     11  *    notice, this list of conditions and the following disclaimer.
     12  * 2. Redistributions in binary form must reproduce the above copyright
     13  *    notice, this list of conditions and the following disclaimer in the
     14  *    documentation and/or other materials provided with the distribution.
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     17  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     18  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     19  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     26  * POSSIBILITY OF SUCH DAMAGE.
     27  */
     28 
     29 /*
     30  * Register definitions for the Toshiba PICCOLO, by SWAG!
     31  */
     32 
     33 #define PICCOLO_PIO_TIMING 0x50
     34 #define PICCOLO_DMA_TIMING 0x5c
     35 
     36 #define PICCOLO_PIO_MASK 0xffffe088
     37 #define PICCOLO_DMA_MASK 0xffffe088
     38 #define PICCOLO_UDMA_MASK 0x78ffe088
     39 
     40 /* TIMING SWAG!!! */
     41 
     42 /*
     43  * first digit is command active, next two are front porch and back porch
     44  * command active >= minimum for mode
     45  * front porch + back porch + command active >= cycle time for mode
     46  * values below may need adjustment
     47  */
     48 static const u_int32_t piccolo_pio_times[]
     49     __unused = {
     50 /*        programmed               actual       */
     51 	0x0566,
     52 	0x0433,
     53 	0x0311,
     54 	0x0201,
     55 	0x0200,		/* PIO 4, 150ns cycle (120ns is spec), 90ns command active (70ns is spec), 30ns setup and hold */
     56 	0x0100
     57 
     58 };
     59 
     60 static const u_int32_t piccolo_sw_dma_times[]
     61     __unused = {
     62 /*        programmed               actual       */
     63 	0x0f77
     64 };
     65 
     66 static const u_int32_t piccolo_mw_dma_times[]
     67      __unused = {
     68 /*        programmed               actual       */
     69 	0x0655,
     70 	0x0200,
     71 	0x0200,
     72 	0x0100
     73 };
     74 
     75 /* XXX Is MSB UDMA enable? Can't set it. Seems to work without being set. */
     76 static const u_int32_t piccolo_udma_times[]
     77     __unused = {
     78 /*        programmed               actual       */
     79 	0x84000222,
     80 	0x83000111,
     81 	0x82000000	/* UDMA 2, 120ns cycle (117ns is spec), 60ns command active (55ns is spec), 30ns setup and hold */
     82 };
     83