162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci *	linux/include/video/pmagb-b-fb.h
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci *	TURBOchannel PMAGB-B Smart Frame Buffer (SFB) card support,
562306a36Sopenharmony_ci *	Copyright (C) 1999, 2000, 2001 by
662306a36Sopenharmony_ci *	Michael Engel <engel@unix-ag.org> and
762306a36Sopenharmony_ci *	Karsten Merker <merker@linuxtag.org>
862306a36Sopenharmony_ci *	Copyright (c) 2005  Maciej W. Rozycki
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci *	This file is subject to the terms and conditions of the GNU General
1162306a36Sopenharmony_ci *	Public License.  See the file COPYING in the main directory of this
1262306a36Sopenharmony_ci *	archive for more details.
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci/* IOmem resource offsets.  */
1662306a36Sopenharmony_ci#define PMAGB_B_ROM		0x000000	/* REX option ROM */
1762306a36Sopenharmony_ci#define PMAGB_B_SFB		0x100000	/* SFB ASIC */
1862306a36Sopenharmony_ci#define PMAGB_B_GP0		0x140000	/* general purpose output 0 */
1962306a36Sopenharmony_ci#define PMAGB_B_GP1		0x180000	/* general purpose output 1 */
2062306a36Sopenharmony_ci#define PMAGB_B_BT459		0x1c0000	/* Bt459 RAMDAC */
2162306a36Sopenharmony_ci#define PMAGB_B_FBMEM		0x200000	/* frame buffer */
2262306a36Sopenharmony_ci#define PMAGB_B_SIZE		0x400000	/* address space size */
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci/* IOmem register offsets.  */
2562306a36Sopenharmony_ci#define SFB_REG_VID_HOR		0x64		/* video horizontal setup */
2662306a36Sopenharmony_ci#define SFB_REG_VID_VER		0x68		/* video vertical setup */
2762306a36Sopenharmony_ci#define SFB_REG_VID_BASE	0x6c		/* video base address */
2862306a36Sopenharmony_ci#define SFB_REG_TCCLK_COUNT	0x78		/* TURBOchannel clock count */
2962306a36Sopenharmony_ci#define SFB_REG_VIDCLK_COUNT	0x7c		/* video clock count */
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci/* Video horizontal setup register constants.  All bits are r/w.  */
3262306a36Sopenharmony_ci#define SFB_VID_HOR_BP_SHIFT	0x15		/* back porch */
3362306a36Sopenharmony_ci#define SFB_VID_HOR_BP_MASK	0x7f
3462306a36Sopenharmony_ci#define SFB_VID_HOR_SYN_SHIFT	0x0e		/* sync pulse */
3562306a36Sopenharmony_ci#define SFB_VID_HOR_SYN_MASK	0x7f
3662306a36Sopenharmony_ci#define SFB_VID_HOR_FP_SHIFT	0x09		/* front porch */
3762306a36Sopenharmony_ci#define SFB_VID_HOR_FP_MASK	0x1f
3862306a36Sopenharmony_ci#define SFB_VID_HOR_PIX_SHIFT	0x00		/* active video */
3962306a36Sopenharmony_ci#define SFB_VID_HOR_PIX_MASK	0x1ff
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci/* Video vertical setup register constants.  All bits are r/w.  */
4262306a36Sopenharmony_ci#define SFB_VID_VER_BP_SHIFT	0x16		/* back porch */
4362306a36Sopenharmony_ci#define SFB_VID_VER_BP_MASK	0x3f
4462306a36Sopenharmony_ci#define SFB_VID_VER_SYN_SHIFT	0x10		/* sync pulse */
4562306a36Sopenharmony_ci#define SFB_VID_VER_SYN_MASK	0x3f
4662306a36Sopenharmony_ci#define SFB_VID_VER_FP_SHIFT	0x0b		/* front porch */
4762306a36Sopenharmony_ci#define SFB_VID_VER_FP_MASK	0x1f
4862306a36Sopenharmony_ci#define SFB_VID_VER_SL_SHIFT	0x00		/* active scan lines */
4962306a36Sopenharmony_ci#define SFB_VID_VER_SL_MASK	0x7ff
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci/* Video base address register constants.  All bits are r/w.  */
5262306a36Sopenharmony_ci#define SFB_VID_BASE_MASK	0x1ff		/* video base row address */
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci/* Bt459 register offsets, byte-wide registers.  */
5562306a36Sopenharmony_ci#define BT459_ADDR_LO		0x0		/* address low */
5662306a36Sopenharmony_ci#define BT459_ADDR_HI		0x4		/* address high */
5762306a36Sopenharmony_ci#define BT459_DATA		0x8		/* data window register */
5862306a36Sopenharmony_ci#define BT459_CMAP		0xc		/* color map window register */
59