xref: /linux-6.15/drivers/video/fbdev/macmodes.h (revision f7018c21)
1*f7018c21STomi Valkeinen /*
2*f7018c21STomi Valkeinen  *  linux/drivers/video/macmodes.h -- Standard MacOS video modes
3*f7018c21STomi Valkeinen  *
4*f7018c21STomi Valkeinen  *	Copyright (C) 1998 Geert Uytterhoeven
5*f7018c21STomi Valkeinen  *
6*f7018c21STomi Valkeinen  *  This file is subject to the terms and conditions of the GNU General Public
7*f7018c21STomi Valkeinen  *  License. See the file COPYING in the main directory of this archive for
8*f7018c21STomi Valkeinen  *  more details.
9*f7018c21STomi Valkeinen  */
10*f7018c21STomi Valkeinen 
11*f7018c21STomi Valkeinen #ifndef _VIDEO_MACMODES_H
12*f7018c21STomi Valkeinen #define _VIDEO_MACMODES_H
13*f7018c21STomi Valkeinen 
14*f7018c21STomi Valkeinen     /*
15*f7018c21STomi Valkeinen      *  Video mode values.
16*f7018c21STomi Valkeinen      *  These are supposed to be the same as the values that Apple uses in
17*f7018c21STomi Valkeinen      *  MacOS.
18*f7018c21STomi Valkeinen      */
19*f7018c21STomi Valkeinen 
20*f7018c21STomi Valkeinen #define VMODE_NVRAM		0
21*f7018c21STomi Valkeinen #define VMODE_512_384_60I	1	/* 512x384, 60Hz interlaced (NTSC) */
22*f7018c21STomi Valkeinen #define VMODE_512_384_60	2	/* 512x384, 60Hz */
23*f7018c21STomi Valkeinen #define VMODE_640_480_50I	3	/* 640x480, 50Hz interlaced (PAL) */
24*f7018c21STomi Valkeinen #define VMODE_640_480_60I	4	/* 640x480, 60Hz interlaced (NTSC) */
25*f7018c21STomi Valkeinen #define VMODE_640_480_60	5	/* 640x480, 60Hz (VGA) */
26*f7018c21STomi Valkeinen #define VMODE_640_480_67	6	/* 640x480, 67Hz */
27*f7018c21STomi Valkeinen #define VMODE_640_870_75P	7	/* 640x870, 75Hz (portrait) */
28*f7018c21STomi Valkeinen #define VMODE_768_576_50I	8	/* 768x576, 50Hz (PAL full frame) */
29*f7018c21STomi Valkeinen #define VMODE_800_600_56	9	/* 800x600, 56Hz */
30*f7018c21STomi Valkeinen #define VMODE_800_600_60	10	/* 800x600, 60Hz */
31*f7018c21STomi Valkeinen #define VMODE_800_600_72	11	/* 800x600, 72Hz */
32*f7018c21STomi Valkeinen #define VMODE_800_600_75	12	/* 800x600, 75Hz */
33*f7018c21STomi Valkeinen #define VMODE_832_624_75	13	/* 832x624, 75Hz */
34*f7018c21STomi Valkeinen #define VMODE_1024_768_60	14	/* 1024x768, 60Hz */
35*f7018c21STomi Valkeinen #define VMODE_1024_768_70	15	/* 1024x768, 70Hz (or 72Hz?) */
36*f7018c21STomi Valkeinen #define VMODE_1024_768_75V	16	/* 1024x768, 75Hz (VESA) */
37*f7018c21STomi Valkeinen #define VMODE_1024_768_75	17	/* 1024x768, 75Hz */
38*f7018c21STomi Valkeinen #define VMODE_1152_870_75	18	/* 1152x870, 75Hz */
39*f7018c21STomi Valkeinen #define VMODE_1280_960_75	19	/* 1280x960, 75Hz */
40*f7018c21STomi Valkeinen #define VMODE_1280_1024_75	20	/* 1280x1024, 75Hz */
41*f7018c21STomi Valkeinen #define VMODE_1152_768_60	21	/* 1152x768, 60Hz     Titanium PowerBook */
42*f7018c21STomi Valkeinen #define VMODE_1600_1024_60	22	/* 1600x1024, 60Hz 22" Cinema Display */
43*f7018c21STomi Valkeinen #define VMODE_MAX		22
44*f7018c21STomi Valkeinen #define VMODE_CHOOSE		99
45*f7018c21STomi Valkeinen 
46*f7018c21STomi Valkeinen #define CMODE_NVRAM		-1
47*f7018c21STomi Valkeinen #define CMODE_CHOOSE		-2
48*f7018c21STomi Valkeinen #define CMODE_8			0	/* 8 bits/pixel */
49*f7018c21STomi Valkeinen #define CMODE_16		1	/* 16 (actually 15) bits/pixel */
50*f7018c21STomi Valkeinen #define CMODE_32		2	/* 32 (actually 24) bits/pixel */
51*f7018c21STomi Valkeinen 
52*f7018c21STomi Valkeinen 
53*f7018c21STomi Valkeinen extern int mac_vmode_to_var(int vmode, int cmode,
54*f7018c21STomi Valkeinen 			    struct fb_var_screeninfo *var);
55*f7018c21STomi Valkeinen extern int mac_var_to_vmode(const struct fb_var_screeninfo *var, int *vmode,
56*f7018c21STomi Valkeinen 			    int *cmode);
57*f7018c21STomi Valkeinen extern int mac_map_monitor_sense(int sense);
58*f7018c21STomi Valkeinen extern int mac_find_mode(struct fb_var_screeninfo *var,
59*f7018c21STomi Valkeinen 			 struct fb_info *info,
60*f7018c21STomi Valkeinen 			 const char *mode_option,
61*f7018c21STomi Valkeinen 			 unsigned int default_bpp);
62*f7018c21STomi Valkeinen 
63*f7018c21STomi Valkeinen 
64*f7018c21STomi Valkeinen     /*
65*f7018c21STomi Valkeinen      *  Addresses in NVRAM where video mode and pixel size are stored.
66*f7018c21STomi Valkeinen      */
67*f7018c21STomi Valkeinen 
68*f7018c21STomi Valkeinen #define NV_VMODE		0x140f
69*f7018c21STomi Valkeinen #define NV_CMODE		0x1410
70*f7018c21STomi Valkeinen 
71*f7018c21STomi Valkeinen #endif /* _VIDEO_MACMODES_H */
72