^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef __LINUX_FBIO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __LINUX_FBIO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <uapi/asm/fbio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define FBIOPUTCMAP_SPARC _IOW('F', 3, struct fbcmap)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define FBIOGETCMAP_SPARC _IOW('F', 4, struct fbcmap)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) /* Addresses on the fd of a cgsix that are mappable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define CG6_FBC 0x70000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define CG6_TEC 0x70001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define CG6_BTREGS 0x70002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define CG6_FHC 0x70004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define CG6_THC 0x70005000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define CG6_ROM 0x70006000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define CG6_RAM 0x70016000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define CG6_DHC 0x80000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define CG3_MMAP_OFFSET 0x4000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /* Addresses on the fd of a tcx that are mappable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define TCX_RAM8BIT 0x00000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define TCX_RAM24BIT 0x01000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define TCX_UNK3 0x10000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define TCX_UNK4 0x20000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define TCX_CONTROLPLANE 0x28000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define TCX_UNK6 0x30000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #define TCX_UNK7 0x38000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define TCX_TEC 0x70000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define TCX_BTREGS 0x70002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define TCX_THC 0x70004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define TCX_DHC 0x70008000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define TCX_ALT 0x7000a000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define TCX_SYNC 0x7000e000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define TCX_UNK2 0x70010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) /* CG14 definitions */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) /* Offsets into the OBIO space: */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define CG14_REGS 0 /* registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define CG14_CURSORREGS 0x1000 /* cursor registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define CG14_DACREGS 0x2000 /* DAC registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define CG14_XLUT 0x3000 /* X Look Up Table -- ??? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define CG14_CLUT1 0x4000 /* Color Look Up Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define CG14_CLUT2 0x5000 /* Color Look Up Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define CG14_CLUT3 0x6000 /* Color Look Up Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define CG14_AUTO 0xf000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) struct fbcmap32 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) int index; /* first element (0 origin) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) int count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) u32 red;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) u32 green;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) u32 blue;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define FBIOPUTCMAP32 _IOW('F', 3, struct fbcmap32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #define FBIOGETCMAP32 _IOW('F', 4, struct fbcmap32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) struct fbcursor32 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) short set; /* what to set, choose from the list above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) short enable; /* cursor on/off */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) struct fbcurpos pos; /* cursor position */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) struct fbcurpos hot; /* cursor hot spot */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) struct fbcmap32 cmap; /* color map info */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) struct fbcurpos size; /* cursor bit map size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) u32 image; /* cursor image bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) u32 mask; /* cursor mask bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) #define FBIOSCURSOR32 _IOW('F', 24, struct fbcursor32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #define FBIOGCURSOR32 _IOW('F', 25, struct fbcursor32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #endif /* __LINUX_FBIO_H */