Home | History | Annotate | Line # | Download | only in ic
      1  1.1  bouyer /* $NetBSD: gcscpcibreg.h,v 1.1 2011/08/27 12:47:49 bouyer Exp $ */
      2  1.1  bouyer /* $OpenBSD: glxpcib.c,v 1.6 2007/11/17 17:02:47 mbalmer Exp $	*/
      3  1.1  bouyer 
      4  1.1  bouyer /*
      5  1.1  bouyer  * Copyright (c) 2007 Marc Balmer <mbalmer (at) openbsd.org>
      6  1.1  bouyer  * Copyright (c) 2007 Michael Shalayeff
      7  1.1  bouyer  * All rights reserved.
      8  1.1  bouyer  *
      9  1.1  bouyer  * Permission to use, copy, modify, and distribute this software for any
     10  1.1  bouyer  * purpose with or without fee is hereby granted, provided that the above
     11  1.1  bouyer  * copyright notice and this permission notice appear in all copies.
     12  1.1  bouyer  *
     13  1.1  bouyer  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     14  1.1  bouyer  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     15  1.1  bouyer  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     16  1.1  bouyer  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     17  1.1  bouyer  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
     18  1.1  bouyer  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
     19  1.1  bouyer  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     20  1.1  bouyer  */
     21  1.1  bouyer 
     22  1.1  bouyer /*
     23  1.1  bouyer  * Register definitions for the AMD CS5535/CS5536 Companion Device.
     24  1.1  bouyer  */
     25  1.1  bouyer 
     26  1.1  bouyer #ifndef _IC_GCSCPCIBREG_H_
     27  1.1  bouyer #define _IC_GCSCPCIBREG_H_
     28  1.1  bouyer 
     29  1.1  bouyer #define	AMD553X_REV		0x51400017
     30  1.1  bouyer #define	AMD553X_REV_MASK	0xff
     31  1.1  bouyer #define	AMD553X_TMC		0x51400050
     32  1.1  bouyer 
     33  1.1  bouyer /* Multi-Functional General Purpose Timer */
     34  1.1  bouyer #define	MSR_LBAR_MFGPT		0x5140000d
     35  1.1  bouyer #define AMD553X_MFGPT_MAX	6	/* 6 timers for wdog */
     36  1.1  bouyer #define AMD553X_MFGPT_REGOFFSET	0x8
     37  1.1  bouyer #define	AMD553X_MFGPTX_CMP1(x)	(0x00000000 + (AMD553X_MFGPT_REGOFFSET * (x)))
     38  1.1  bouyer #define	AMD553X_MFGPTX_CMP2(x)	(0x00000002 + (AMD553X_MFGPT_REGOFFSET * (x)))
     39  1.1  bouyer #define	AMD553X_MFGPTX_CNT(x)	(0x00000004 + (AMD553X_MFGPT_REGOFFSET * (x)))
     40  1.1  bouyer #define	AMD553X_MFGPTX_SETUP(x)	(0x00000006 + (AMD553X_MFGPT_REGOFFSET * (x)))
     41  1.1  bouyer #define	AMD553X_MFGPT_DIV_MASK	0x000f	/* div = 1 << mask */
     42  1.1  bouyer #define	  AMD553X_MFGPT_DIV_1	0x0000
     43  1.1  bouyer #define	  AMD553X_MFGPT_DIV_2	0x0001
     44  1.1  bouyer #define	  AMD553X_MFGPT_DIV_4	0x0002
     45  1.1  bouyer #define	  AMD553X_MFGPT_DIV_8	0x0003
     46  1.1  bouyer #define	  AMD553X_MFGPT_DIV_16	0x0004
     47  1.1  bouyer #define	  AMD553X_MFGPT_DIV_32	0x0005
     48  1.1  bouyer #define	  AMD553X_MFGPT_DIV_64	0x0006
     49  1.1  bouyer #define	  AMD553X_MFGPT_DIV_128	0x0007
     50  1.1  bouyer #define	  AMD553X_MFGPT_DIV_256	0x0008
     51  1.1  bouyer #define	  AMD553X_MFGPT_DIV_512	0x0009
     52  1.1  bouyer #define	  AMD553X_MFGPT_DIV_1K	0x000a
     53  1.1  bouyer #define	  AMD553X_MFGPT_DIV_2K	0x000b
     54  1.1  bouyer #define	  AMD553X_MFGPT_DIV_4K	0x000c
     55  1.1  bouyer #define	  AMD553X_MFGPT_DIV_8K	0x000d
     56  1.1  bouyer #define	  AMD553X_MFGPT_DIV_16K	0x000e
     57  1.1  bouyer #define	  AMD553X_MFGPT_DIV_32K	0x000f
     58  1.1  bouyer #define	AMD553X_MFGPT_CLKSEL	0x0010
     59  1.1  bouyer #define	AMD553X_MFGPT_REV_EN	0x0020
     60  1.1  bouyer #define	AMD553X_MFGPT_CMP1DIS	0x0000
     61  1.1  bouyer #define	AMD553X_MFGPT_CMP1EQ	0x0040
     62  1.1  bouyer #define	AMD553X_MFGPT_CMP1GE	0x0080
     63  1.1  bouyer #define	AMD553X_MFGPT_CMP1EV	0x00c0
     64  1.1  bouyer #define	AMD553X_MFGPT_CMP2DIS	0x0000
     65  1.1  bouyer #define	AMD553X_MFGPT_CMP2EQ	0x0100
     66  1.1  bouyer #define	AMD553X_MFGPT_CMP2GE	0x0200
     67  1.1  bouyer #define	AMD553X_MFGPT_CMP2EV	0x0300
     68  1.1  bouyer #define	AMD553X_MFGPT_STOP_EN	0x0800
     69  1.1  bouyer #define	AMD553X_MFGPT_SET	0x1000
     70  1.1  bouyer #define	AMD553X_MFGPT_CMP1	0x2000
     71  1.1  bouyer #define	AMD553X_MFGPT_CMP2	0x4000
     72  1.1  bouyer #define	AMD553X_MFGPT_CNT_EN	0x8000
     73  1.1  bouyer #define	AMD553X_MFGPT_IRQ	0x51400028
     74  1.1  bouyer #define	AMD553X_MFGPT0_C1_IRQM	0x00000001
     75  1.1  bouyer #define	AMD553X_MFGPT1_C1_IRQM	0x00000002
     76  1.1  bouyer #define	AMD553X_MFGPT2_C1_IRQM	0x00000004
     77  1.1  bouyer #define	AMD553X_MFGPT3_C1_IRQM	0x00000008
     78  1.1  bouyer #define	AMD553X_MFGPT4_C1_IRQM	0x00000010
     79  1.1  bouyer #define	AMD553X_MFGPT5_C1_IRQM	0x00000020
     80  1.1  bouyer #define	AMD553X_MFGPT6_C1_IRQM	0x00000040
     81  1.1  bouyer #define	AMD553X_MFGPT7_C1_IRQM	0x00000080
     82  1.1  bouyer #define	AMD553X_MFGPT0_C2_IRQM	0x00000100
     83  1.1  bouyer #define	AMD553X_MFGPT1_C2_IRQM	0x00000200
     84  1.1  bouyer #define	AMD553X_MFGPT2_C2_IRQM	0x00000400
     85  1.1  bouyer #define	AMD553X_MFGPT3_C2_IRQM	0x00000800
     86  1.1  bouyer #define	AMD553X_MFGPT4_C2_IRQM	0x00001000
     87  1.1  bouyer #define	AMD553X_MFGPT5_C2_IRQM	0x00002000
     88  1.1  bouyer #define	AMD553X_MFGPT6_C2_IRQM	0x00004000
     89  1.1  bouyer #define	AMD553X_MFGPT7_C2_IRQM	0x00008000
     90  1.1  bouyer #define	AMD553X_MFGPT_NR	0x51400029 /* NMI and Reset mask */
     91  1.1  bouyer #define	AMD553X_MFGPT0_C1_NMIM	0x00000001
     92  1.1  bouyer #define	AMD553X_MFGPT1_C1_NMIM	0x00000002
     93  1.1  bouyer #define	AMD553X_MFGPT2_C1_NMIM	0x00000004
     94  1.1  bouyer #define	AMD553X_MFGPT3_C1_NMIM	0x00000008
     95  1.1  bouyer #define	AMD553X_MFGPT4_C1_NMIM	0x00000010
     96  1.1  bouyer #define	AMD553X_MFGPT5_C1_NMIM	0x00000020
     97  1.1  bouyer #define	AMD553X_MFGPT6_C1_NMIM	0x00000040
     98  1.1  bouyer #define	AMD553X_MFGPT7_C1_NMIM	0x00000080
     99  1.1  bouyer #define	AMD553X_MFGPT0_C2_NMIM	0x00000100
    100  1.1  bouyer #define	AMD553X_MFGPT1_C2_NMIM	0x00000200
    101  1.1  bouyer #define	AMD553X_MFGPT2_C2_NMIM	0x00000400
    102  1.1  bouyer #define	AMD553X_MFGPT3_C2_NMIM	0x00000800
    103  1.1  bouyer #define	AMD553X_MFGPT4_C2_NMIM	0x00001000
    104  1.1  bouyer #define	AMD553X_MFGPT5_C2_NMIM	0x00002000
    105  1.1  bouyer #define	AMD553X_MFGPT6_C2_NMIM	0x00004000
    106  1.1  bouyer #define	AMD553X_MFGPT7_C2_NMIM	0x00008000
    107  1.1  bouyer #define	AMD553X_NMI_LEG		0x00010000
    108  1.1  bouyer #define	AMD553X_MFGPT0_C2_RSTEN	0x01000000
    109  1.1  bouyer #define	AMD553X_MFGPT1_C2_RSTEN	0x02000000
    110  1.1  bouyer #define	AMD553X_MFGPT2_C2_RSTEN	0x04000000
    111  1.1  bouyer #define	AMD553X_MFGPT3_C2_RSTEN	0x08000000
    112  1.1  bouyer #define	AMD553X_MFGPT4_C2_RSTEN	0x10000000
    113  1.1  bouyer #define	AMD553X_MFGPT5_C2_RSTEN	0x20000000
    114  1.1  bouyer #define	AMD553X_MFGPT_SETUP	0x5140002b
    115  1.1  bouyer 
    116  1.1  bouyer /* SMB / IIC */
    117  1.1  bouyer #define	MSR_LBAR_SMB		0x5140000b
    118  1.1  bouyer 
    119  1.1  bouyer /* GPIO */
    120  1.1  bouyer #define	MSR_LBAR_GPIO		0x5140000c
    121  1.1  bouyer #define	AMD553X_GPIO_NPINS	32
    122  1.1  bouyer #define	AMD553X_GPIOH_OFFSET	0x80	/* high bank register offset */
    123  1.1  bouyer #define	AMD553X_GPIO_OUT_VAL	0x00	/* output value */
    124  1.1  bouyer #define	AMD553X_GPIO_OUT_EN	0x04	/* output enable */
    125  1.1  bouyer #define	AMD553X_GPIO_OD_EN	0x08	/* open-drain enable */
    126  1.1  bouyer #define AMD553X_GPIO_OUT_INVRT_EN 0x0c	/* invert output enable*/
    127  1.1  bouyer #define	AMD553X_GPIO_PU_EN	0x18	/* pull-up enable */
    128  1.1  bouyer #define	AMD553X_GPIO_PD_EN	0x1c	/* pull-down enable */
    129  1.1  bouyer #define	AMD553X_GPIO_IN_EN	0x20	/* input enable */
    130  1.1  bouyer #define AMD553X_GPIO_IN_INVRT_EN 0x24	/* invert input */
    131  1.1  bouyer #define	AMD553X_GPIO_IN_FLTR_EN	0x28	/* filter enable */
    132  1.1  bouyer #define	AMD553X_GPIO_IN_EVNTCNT_EN	0x2c	/* event counter enable */
    133  1.1  bouyer #define	AMD553X_GPIO_READ_BACK	0x30	/* read back value */
    134  1.1  bouyer #define	AMD553X_GPIO_EVNT_EN	0x38	/* event enable */
    135  1.1  bouyer #define	AMD553X_GPIO_LOCK_EN	0x3c	/* lock enable */
    136  1.1  bouyer #define	AMD553X_GPIO_IN_PE_EN	0x40	/* input positive edge enable */
    137  1.1  bouyer #define	AMD553X_GPIO_IN_NE_EN	0x44	/* input negative edge enable */
    138  1.1  bouyer #define	AMD553X_GPIO_IN_NE_STS	0x48	/* input negative edge status */
    139  1.1  bouyer #define	AMD553X_GPIO_IN_PE_STS	0x4c	/* input positive edge status */
    140  1.1  bouyer 
    141  1.1  bouyer #endif /* _IC_GCSCPCIBREG_H_ */
    142