/*
 * Copyright 1988-1989, Sun Microsystems, Inc.
 */

#ifndef _SYS_CG6FBC_H
#define	_SYS_CG6FBC_H

#pragma ident	"@(#)cg6fbc.h	1.5	97/03/04 SMI"

#ifdef	__cplusplus
extern "C" {
#endif

/*
 * CG6 register definitions, common to all environments.
 */

/*
 * FBC MISC register bits
 */
typedef enum {
	L_FBC_MISC_BLIT_IGNORE, L_FBC_MISC_BLIT_NOSRC, L_FBC_MISC_BLIT_SRC,
	L_FBC_MISC_BLIT_ILLEGAL
} l_fbc_misc_blit_t;

typedef enum {
	L_FBC_MISC_DATA_IGNORE, L_FBC_MISC_DATA_COLOR8, L_FBC_MISC_DATA_COLOR1,
	L_FBC_MISC_DATA_HRMONO
} l_fbc_misc_data_t;

typedef enum {
	L_FBC_MISC_DRAW_IGNORE, L_FBC_MISC_DRAW_RENDER, L_FBC_MISC_DRAW_PICK,
	L_FBC_MISC_DRAW_ILLEGAL
} l_fbc_misc_draw_t;

typedef enum {
	L_FBC_MISC_BWRITE0_IGNORE, L_FBC_MISC_BWRITE0_ENABLE,
	L_FBC_MISC_BWRITE0_DISABLE, L_FBC_MISC_BWRITE0_ILLEGAL
} l_fbc_misc_bwrite0_t;

typedef enum {
	L_FBC_MISC_BWRITE1_IGNORE, L_FBC_MISC_BWRITE1_ENABLE,
	L_FBC_MISC_BWRITE1_DISABLE, L_FBC_MISC_BWRITE1_ILLEGAL
} l_fbc_misc_bwrite1_t;

typedef enum {
	L_FBC_MISC_BREAD_IGNORE, L_FBC_MISC_BREAD_0, L_FBC_MISC_BREAD_1,
	L_FBC_MISC_BREAD_ILLEGAL
} l_fbc_misc_bread_t;

typedef enum {
	L_FBC_MISC_BDISP_IGNORE, L_FBC_MISC_BDISP_0, L_FBC_MISC_BDISP_1,
	L_FBC_MISC_BDISP_ILLEGAL
} l_fbc_misc_bdisp_t;

struct l_fbc_misc {
	uint32_t	: 10;			/* not used */
	l_fbc_misc_blit_t	l_fbc_misc_blit : 2;	/* blit src check */
	uint32_t	l_fbc_misc_vblank : 1;	/* 1 == VBLANK has occured */
	l_fbc_misc_data_t	l_fbc_misc_data : 2;	/* Color mode select  */
	l_fbc_misc_draw_t	l_fbc_misc_draw : 2;	/* Render/Pick mode  */
	l_fbc_misc_bwrite0_t	l_fbc_misc_bwrite0 : 2;	/* buffer 0 write */
	l_fbc_misc_bwrite1_t	l_fbc_misc_bwrite1 : 2;	/* buffer 1 write */
	l_fbc_misc_bread_t	l_fbc_misc_bread : 2;	/* read enable	  */
	l_fbc_misc_bdisp_t	l_fbc_misc_bdisp : 2;	/* display enable  */
	uint32_t	l_fbc_misc_index_mod : 1;	/* modify index  */
	uint32_t	l_fbc_misc_index : 2;		/* index	  */
	uint32_t	: 4;				/* not used */
};

/*
 * FBC RASTEROP register bits
 */
typedef enum {
	L_FBC_RASTEROP_PLANE_IGNORE, L_FBC_RASTEROP_PLANE_ZEROES,
	L_FBC_RASTEROP_PLANE_ONES, L_FBC_RASTEROP_PLANE_MASK
} l_fbc_rasterop_plane_t;

typedef enum {
	L_FBC_RASTEROP_PIXEL_IGNORE, L_FBC_RASTEROP_PIXEL_ZEROES,
	L_FBC_RASTEROP_PIXEL_ONES, L_FBC_RASTEROP_PIXEL_MASK
} l_fbc_rasterop_pixel_t;

typedef enum {
	L_FBC_RASTEROP_PATTERN_IGNORE, L_FBC_RASTEROP_PATTERN_ZEROES,
	L_FBC_RASTEROP_PATTERN_ONES, L_FBC_RASTEROP_PATTERN_MASK
} l_fbc_rasterop_patt_t;

typedef enum {
	L_FBC_RASTEROP_POLYG_IGNORE, L_FBC_RASTEROP_POLYG_OVERLAP,
	L_FBC_RASTEROP_POLYG_NONOVERLAP, L_FBC_RASTEROP_POLYG_ILLEGAL
} l_fbc_rasterop_polyg_t;

typedef enum {
	L_FBC_RASTEROP_ATTR_IGNORE, L_FBC_RASTEROP_ATTR_UNSUPP,
	L_FBC_RASTEROP_ATTR_SUPP, L_FBC_RASTEROP_ATTR_ILLEGAL
} l_fbc_rasterop_attr_t;

typedef enum {
	L_FBC_RASTEROP_RAST_BOOL, L_FBC_RASTEROP_RAST_LINEAR
} l_fbc_rasterop_rast_t;

typedef enum {
	L_FBC_RASTEROP_PLOT_PLOT, L_FBC_RASTEROP_PLOT_UNPLOT
} l_fbc_rasterop_plot_t;

struct l_fbc_rasterop {
	l_fbc_rasterop_plane_t	l_fbc_rasterop_plane : 2; /* plane mask */
	l_fbc_rasterop_pixel_t	l_fbc_rasterop_pixel : 2; /* pixel mask */
	l_fbc_rasterop_patt_t	l_fbc_rasterop_patt : 2;  /* pattern mask */
	l_fbc_rasterop_polyg_t	l_fbc_rasterop_polyg : 2; /* polygon draw */
	l_fbc_rasterop_attr_t	l_fbc_rasterop_attr : 2;  /* attribute select */
	uint32_t	: 4;				  /* not used */
	l_fbc_rasterop_rast_t	l_fbc_rasterop_rast : 1;  /* rasterop mode */
	l_fbc_rasterop_plot_t	l_fbc_rasterop_plot : 1;  /* plot/unplot mode */
	uint32_t	l_fbc_rasterop_rop11: 4; /* rasterop for f==1, b==1 */
	uint32_t	l_fbc_rasterop_rop10: 4; /* rasterop for f==1, b==0 */
	uint32_t	l_fbc_rasterop_rop01: 4; /* rasterop for f==0, b==1 */
	uint32_t	l_fbc_rasterop_rop00: 4; /* rasterop for f==0, b==0 */
};

/*
 * FBC PATTALIGN register bits
 */
union l_fbc_pattalign {
	uint32_t word;
	uint16_t l_fbc_pattalign_array[2];
#define	l_fbc_pattalign_alignx	l_fbc_pattalign_array[0]
#define	l_fbc_pattalign_aligny	l_fbc_pattalign_array[1]
};

/*
 * FBC offsets &  structure definition
 */
struct fbc {

/* miscellaneous & clipcheck registers */

	uint8_t			fil0[ 0x4 ];

	struct	l_fbc_misc	l_fbc_misc;
	uint32_t		l_fbc_clipcheck;

#define	L_FBC_MISC		(0x004 / sizeof (uint32_t))
#define	L_FBC_CLIPCHECK		(0x008 / sizeof (uint32_t))

	uint8_t			fill00[ 0x10 - 0x08 - 4 ];

	uint32_t		l_fbc_status;
	uint32_t		l_fbc_drawstatus;
	uint32_t		l_fbc_blitstatus;
	uint32_t		l_fbc_font;

/* status and command registers */
#define	L_FBC_STATUS		(0x010 / sizeof (uint32_t))
#define	L_FBC_DRAWSTATUS	(0x014 / sizeof (uint32_t))
#define	L_FBC_BLITSTATUS	(0x018 / sizeof (uint32_t))
#define	L_FBC_FONT		(0x01C / sizeof (uint32_t))

	uint8_t			fill01[ 0x80 - 0x1C - 4 ];

	uint32_t		l_fbc_x0;
	uint32_t		l_fbc_y0;
	uint32_t		l_fbc_z0;
	uint32_t		l_fbc_color0;
	uint32_t		l_fbc_x1;
	uint32_t		l_fbc_y1;
	uint32_t		l_fbc_z1;
	uint32_t		l_fbc_color1;
	uint32_t		l_fbc_x2;
	uint32_t		l_fbc_y2;
	uint32_t		l_fbc_z2;
	uint32_t		l_fbc_color2;
	uint32_t		l_fbc_x3;
	uint32_t		l_fbc_y3;
	uint32_t		l_fbc_z3;
	uint32_t		l_fbc_color3;

/* address registers */
/* writing a z-register just sets the corresponding z clip status bits */
#define	L_FBC_X0		(0x080 / sizeof (uint32_t))
#define	L_FBC_Y0		(0x084 / sizeof (uint32_t))
#define	L_FBC_Z0		(0x088 / sizeof (uint32_t))
#define	L_FBC_COLOR0		(0x08C / sizeof (uint32_t))
#define	L_FBC_X1		(0x090 / sizeof (uint32_t))
#define	L_FBC_Y1		(0x094 / sizeof (uint32_t))
#define	L_FBC_Z1		(0x098 / sizeof (uint32_t))
#define	L_FBC_COLOR1		(0x09C / sizeof (uint32_t))
#define	L_FBC_X2		(0x0A0 / sizeof (uint32_t))
#define	L_FBC_Y2		(0x0A4 / sizeof (uint32_t))
#define	L_FBC_Z2		(0x0A8 / sizeof (uint32_t))
#define	L_FBC_COLOR2		(0x0AC / sizeof (uint32_t))
#define	L_FBC_X3		(0x0B0 / sizeof (uint32_t))
#define	L_FBC_Y3		(0x0B4 / sizeof (uint32_t))
#define	L_FBC_Z3		(0x0B8 / sizeof (uint32_t))
#define	L_FBC_COLOR3		(0x0BC / sizeof (uint32_t))

/* raster offset registers */

	uint32_t		l_fbc_rasteroffx;
	uint32_t		l_fbc_rasteroffy;

#define	L_FBC_RASTEROFFX	(0x0C0 / sizeof (uint32_t))
#define	L_FBC_RASTEROFFY	(0x0C4 / sizeof (uint32_t))

	uint8_t			fill02[ 0xD0 - 0xC4 - 4 ];

	uint32_t		l_fbc_autoincx;
	uint32_t		l_fbc_autoincy;

/* autoincrement registers */
#define	L_FBC_AUTOINCX		(0x0D0 / sizeof (uint32_t))
#define	L_FBC_AUTOINCY		(0x0D4 / sizeof (uint32_t))


/* window registers */

	uint8_t			fill03[ 0xE0 - 0xD4 - 4 ];

	uint32_t		l_fbc_clipminx;
	uint32_t		l_fbc_clipminy;

#define	L_FBC_CLIPMINX		(0x0E0 / sizeof (uint32_t))
#define	L_FBC_CLIPMINY		(0x0E4 / sizeof (uint32_t))

	uint8_t			fill04[ 0xF0 - 0xE4 - 4 ];

	uint32_t		l_fbc_clipmaxx;
	uint32_t		l_fbc_clipmaxy;

#define	L_FBC_CLIPMAXX		(0x0F0 / sizeof (uint32_t))
#define	L_FBC_CLIPMAXY		(0x0F4 / sizeof (uint32_t))

	uint8_t			fill05[ 0x100 - 0x0F4 - 4 ];

	uint32_t		l_fbc_fcolor;
	uint32_t		l_fbc_bcolor;
	struct l_fbc_rasterop	l_fbc_rasterop;
	uint32_t		l_fbc_planemask;
	uint32_t		l_fbc_pixelmask;

/* attribute registers */
#define	L_FBC_FCOLOR		(0x100 / sizeof (uint32_t))
#define	L_FBC_BCOLOR		(0x104 / sizeof (uint32_t))
#define	L_FBC_RASTEROP		(0x108 / sizeof (uint32_t))
#define	L_FBC_PLANEMASK		(0x10C / sizeof (uint32_t))
#define	L_FBC_PIXELMASK		(0x110 / sizeof (uint32_t))

	uint8_t 		fill06[ 0x11C - 0x110 - 4 ];

	union l_fbc_pattalign	l_fbc_pattalign;

#define	L_FBC_PATTALIGN		(0x11C / sizeof (uint32_t))

	uint32_t		l_fbc_pattern0;
	uint32_t		l_fbc_pattern1;
	uint32_t		l_fbc_pattern2;
	uint32_t		l_fbc_pattern3;
	uint32_t		l_fbc_pattern4;
	uint32_t		l_fbc_pattern5;
	uint32_t		l_fbc_pattern6;
	uint32_t		l_fbc_pattern7;

#define	L_FBC_PATTERN0		(0x120 / sizeof (uint32_t))
#define	L_FBC_PATTERN1		(0x124 / sizeof (uint32_t))
#define	L_FBC_PATTERN2		(0x128 / sizeof (uint32_t))
#define	L_FBC_PATTERN3		(0x12C / sizeof (uint32_t))
#define	L_FBC_PATTERN4		(0x130 / sizeof (uint32_t))
#define	L_FBC_PATTERN5		(0x134 / sizeof (uint32_t))
#define	L_FBC_PATTERN6		(0x138 / sizeof (uint32_t))
#define	L_FBC_PATTERN7		(0x13C / sizeof (uint32_t))

/* indexed address registers */

	uint8_t			fill07[ 0x800 - 0x13C - 4 ];

	uint32_t 		l_fbc_ipointabsx;
	uint32_t 		l_fbc_ipointabsy;
	uint32_t 		l_fbc_ipointabsz;

#define	L_FBC_IPOINTABSX	(0x800 / sizeof (uint32_t))
#define	L_FBC_IPOINTABSY	(0x804 / sizeof (uint32_t))
#define	L_FBC_IPOINTABSZ	(0x808 / sizeof (uint32_t))

	uint8_t 		fill08[ 0x810 - 0x808 - 4 ];

	uint32_t 		l_fbc_ipointrelx;
	uint32_t 		l_fbc_ipointrely;
	uint32_t 		l_fbc_ipointrelz;

#define	L_FBC_IPOINTRELX	(0x810 / sizeof (uint32_t))
#define	L_FBC_IPOINTRELY	(0x814 / sizeof (uint32_t))
#define	L_FBC_IPOINTRELZ	(0x818 / sizeof (uint32_t))

	uint8_t			fill09[ 0x830 - 0x818 - 4 ];

	uint32_t		l_fbc_ipointcolr;
	uint32_t		l_fbc_ipointcolg;
	uint32_t		l_fbc_ipointcolb;
	uint32_t		l_fbc_ipointcola;
	uint32_t		l_fbc_ilineabsx;
	uint32_t		l_fbc_ilineabsy;
	uint32_t		l_fbc_ilineabsz;

#define	L_FBC_IPOINTCOLR	(0x830 / sizeof (uint32_t))
#define	L_FBC_IPOINTCOLG	(0x834 / sizeof (uint32_t))
#define	L_FBC_IPOINTCOLB	(0x838 / sizeof (uint32_t))
#define	L_FBC_IPOINTCOLA	(0x83C / sizeof (uint32_t))
#define	L_FBC_ILINEABSX		(0x840 / sizeof (uint32_t))
#define	L_FBC_ILINEABSY		(0x844 / sizeof (uint32_t))
#define	L_FBC_ILINEABSZ		(0x848 / sizeof (uint32_t))

	uint8_t			fill10[ 0x850 - 0x848 - 4 ];

	uint32_t		l_fbc_ilinerelx;
	uint32_t		l_fbc_ilinerely;
	uint32_t		l_fbc_ilinerelz;

#define	L_FBC_ILINERELX		(0x850 / sizeof (uint32_t))
#define	L_FBC_ILINERELY		(0x854 / sizeof (uint32_t))
#define	L_FBC_ILINERELZ		(0x858 / sizeof (uint32_t))

	uint8_t			fill11[ 0x870 - 0x858 - 4 ];

	uint32_t		l_fbc_ilinecolr;
	uint32_t		l_fbc_ilinecolg;
	uint32_t		l_fbc_ilinecolb;
	uint32_t		l_fbc_ilinecola;

#define	L_FBC_ILINECOLR		(0x870 / sizeof (uint32_t))
#define	L_FBC_ILINECOLG		(0x874 / sizeof (uint32_t))
#define	L_FBC_ILINECOLB		(0x878 / sizeof (uint32_t))
#define	L_FBC_ILINECOLA		(0x87C / sizeof (uint32_t))

	uint32_t		l_fbc_itriabsx;
	uint32_t		l_fbc_itriabsy;
	uint32_t		l_fbc_itriabsz;

#define	L_FBC_ITRIABSX		(0x880 / sizeof (uint32_t))
#define	L_FBC_ITRIABSY		(0x884 / sizeof (uint32_t))
#define	L_FBC_ITRIABSZ		(0x888 / sizeof (uint32_t))

	uint8_t			fill12[ 0x890 - 0x888 - 4 ];

	uint32_t		l_fbc_itrirelx;
	uint32_t		l_fbc_itrirely;
	uint32_t		l_fbc_itrirelz;

#define	L_FBC_ITRIRELX		(0x890 / sizeof (uint32_t))
#define	L_FBC_ITRIRELY		(0x894 / sizeof (uint32_t))
#define	L_FBC_ITRIRELZ		(0x898 / sizeof (uint32_t))

	uint8_t			fill13[ 0x8B0 - 0x898 - 4 ];

	uint32_t		l_fbc_itricolr;
	uint32_t		l_fbc_itricolg;
	uint32_t		l_fbc_itricolb;
	uint32_t		l_fbc_itricola;
	uint32_t		l_fbc_iquadabsx;
	uint32_t		l_fbc_iquadabsy;
	uint32_t		l_fbc_iquadabsz;

#define	L_FBC_ITRICOLR		(0x8B0 / sizeof (uint32_t))
#define	L_FBC_ITRICOLG		(0x8B4 / sizeof (uint32_t))
#define	L_FBC_ITRICOLB		(0x8B8 / sizeof (uint32_t))
#define	L_FBC_ITRICOLA		(0x8BC / sizeof (uint32_t))
#define	L_FBC_IQUADABSX		(0x8C0 / sizeof (uint32_t))
#define	L_FBC_IQUADABSY		(0x8C4 / sizeof (uint32_t))
#define	L_FBC_IQUADABSZ		(0x8C8 / sizeof (uint32_t))

	uint8_t			fill14[ 0x8D0 - 0x8C8 - 4 ];

	uint32_t		l_fbc_iquadrelx;
	uint32_t		l_fbc_iquadrely;
	uint32_t		l_fbc_iquadrelz;

#define	L_FBC_IQUADRELX		(0x8D0 / sizeof (uint32_t))
#define	L_FBC_IQUADRELY		(0x8D4 / sizeof (uint32_t))
#define	L_FBC_IQUADRELZ		(0x8D8 / sizeof (uint32_t))

	uint8_t			fill15[ 0x8F0 - 0x8D8 - 4 ];

	uint32_t		l_fbc_iquadcolr;
	uint32_t		l_fbc_iquadcolg;
	uint32_t		l_fbc_iquadcolb;
	uint32_t		l_fbc_iquadcola;
	uint32_t		l_fbc_irectabsx;
	uint32_t		l_fbc_irectabsy;
	uint32_t		l_fbc_irectabsz;

#define	L_FBC_IQUADCOLR		(0x8F0 / sizeof (uint32_t))
#define	L_FBC_IQUADCOLG		(0x8F4 / sizeof (uint32_t))
#define	L_FBC_IQUADCOLB		(0x8F8 / sizeof (uint32_t))
#define	L_FBC_IQUADCOLA		(0x8FC / sizeof (uint32_t))
#define	L_FBC_IRECTABSX		(0x900 / sizeof (uint32_t))
#define	L_FBC_IRECTABSY		(0x904 / sizeof (uint32_t))
#define	L_FBC_IRECTABSZ		(0x908 / sizeof (uint32_t))

	uint8_t			fill17[ 0x910 - 0x908 - 4 ];

	uint32_t		l_fbc_irectrelx;
	uint32_t		l_fbc_irectrely;
	uint32_t		l_fbc_irectrelz;

#define	L_FBC_IRECTRELX		(0x910 / sizeof (uint32_t))
#define	L_FBC_IRECTRELY		(0x914 / sizeof (uint32_t))
#define	L_FBC_IRECTRELZ		(0x918 / sizeof (uint32_t))

	uint8_t			fill18[ 0x930 - 0x918 - 4 ];

	uint32_t		l_fbc_irectcolr;
	uint32_t		l_fbc_irectcolg;
	uint32_t		l_fbc_irectcolb;
	uint32_t		l_fbc_irectcola;

#define	L_FBC_IRECTCOLR		(0x930 / sizeof (uint32_t))
#define	L_FBC_IRECTCOLG		(0x934 / sizeof (uint32_t))
#define	L_FBC_IRECTCOLB		(0x938 / sizeof (uint32_t))
#define	L_FBC_IRECTCOLA		(0x93C / sizeof (uint32_t))

};

/*
 * FBC CLIPCHECK register bits.
 */
#define	CLIP_MASK	0x3
#define	CLIP_IN		0x0
#define	CLIP_LT		0x1
#define	CLIP_GT		0x2
#define	CLIP_BACK	0x3

#define	CLIP_X(bits, reg_num)	((bits) << (0+(2*(reg_num))))
#define	CLIP_Y(bits, reg_num)	((bits) << (8+(2*(reg_num))))
#define	CLIP_Z(bits, reg_num)	((bits) << (16+(2*(reg_num))))

/*
 * FBC STATUS, DRAWSTATUS, and BLITSTATUS register bits.
 */
#define	L_FBC_ACC_CLEAR		0x80000000	/* when writing STATUS */
#define	L_FBC_DRAW_EXCEPTION	0x80000000	/* when reading DRAWSTATUS */
#define	L_FBC_BLIT_EXCEPTION	0x80000000	/* when reading BLITSTATUS */
#define	L_FBC_TEC_EXCEPTION	0x40000000
#define	L_FBC_FULL		0x20000000
#define	L_FBC_BUSY		0x10000000
#define	L_FBC_UNSUPPORTED_ATTR	0x02000000
#define	L_FBC_HRMONO		0x01000000
#define	L_FBC_ACC_OVERFLOW	0x00200000
#define	L_FBC_ACC_PICK		0x00100000
#define	L_FBC_TEC_HIDDEN	0x00040000
#define	L_FBC_TEC_INTERSECT	0x00020000
#define	L_FBC_TEC_VISIBLE	0x00010000
#define	L_FBC_BLIT_HARDWARE	0x00008000
#define	L_FBC_BLIT_SOFTWARE	0x00004000
#define	L_FBC_BLIT_SRC_HID	0x00002000
#define	L_FBC_BLIT_SRC_INT	0x00001000
#define	L_FBC_BLIT_SRC_VIS	0x00000800
#define	L_FBC_BLIT_DST_HID	0x00000400
#define	L_FBC_BLIT_DST_INT	0x00000200
#define	L_FBC_BLIT_DST_VIS	0x00000100
#define	L_FBC_DRAW_HARDWARE	0x00000010
#define	L_FBC_DRAW_SOFTWARE	0x00000008
#define	L_FBC_DRAW_HIDDEN	0x00000004
#define	L_FBC_DRAW_INTERSECT	0x00000002
#define	L_FBC_DRAW_VISIBLE	0x00000001

/*
 * FBC/FHC CONFIG register
 */
#define	FHC_CONFIG_FBID_SHIFT		24
#define	FHC_CONFIG_FBID_MASK		255
#define	FHC_CONFIG_REV_SHIFT		20
#define	FHC_CONFIG_REV_MASK		15
#define	FHC_CONFIG_FROP_DISABLE		(1 << 19)
#define	FHC_CONFIG_ROW_DISABLE		(1 << 18)
#define	FHC_CONFIG_SRC_DISABLE		(1 << 17)
#define	FHC_CONFIG_DST_DISABLE		(1 << 16)
#define	FHC_CONFIG_RESET		(1 << 15)
#define	FHC_CONFIG_LITTLE_ENDIAN	(1 << 13)
#define	FHC_CONFIG_RES_MASK		(3 << 11)
#define	FHC_CONFIG_1024			(0 << 11)
#define	FHC_CONFIG_1152			(1 << 11)
#define	FHC_CONFIG_1280			(2 << 11)
#define	FHC_CONFIG_1600			(3 << 11)
#define	FHC_CONFIG_CPU_MASK		(3 << 9)
#define	FHC_CONFIG_CPU_SPARC		(0 << 9)
#define	FHC_CONFIG_CPU_68020		(1 << 9)
#define	FHC_CONFIG_CPU_386		(2 << 9)
#define	FHC_CONFIG_TEST			(1 << 8)
#define	FHC_CONFIG_TESTX_SHIFT		4
#define	FHC_CONFIG_TESTX_MASK		(15 << 4)
#define	FHC_CONFIG_TESTY_SHIFT		0
#define	FHC_CONFIG_TESTY_MASK		15

#ifdef	__cplusplus
}
#endif

#endif /* _SYS_CG6FBC_H */
