16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 254579826SDavid Howells /* 354579826SDavid Howells * 454579826SDavid Howells * display7seg - Driver interface for the 7-segment display 554579826SDavid Howells * present on Sun Microsystems CP1400 and CP1500 654579826SDavid Howells * 754579826SDavid Howells * Copyright (c) 2000 Eric Brower <ebrower@usa.net> 854579826SDavid Howells * 954579826SDavid Howells */ 1054579826SDavid Howells 1154579826SDavid Howells #ifndef __display7seg_h__ 1254579826SDavid Howells #define __display7seg_h__ 1354579826SDavid Howells 1454579826SDavid Howells #define D7S_IOC 'p' 1554579826SDavid Howells 1654579826SDavid Howells #define D7SIOCRD _IOR(D7S_IOC, 0x45, int) /* Read device state */ 1754579826SDavid Howells #define D7SIOCWR _IOW(D7S_IOC, 0x46, int) /* Write device state */ 1854579826SDavid Howells #define D7SIOCTM _IO (D7S_IOC, 0x47) /* Translate mode (FLIP)*/ 1954579826SDavid Howells 2054579826SDavid Howells /* 2154579826SDavid Howells * ioctl flag definitions 2254579826SDavid Howells * 2354579826SDavid Howells * POINT - Toggle decimal point (0=absent 1=present) 2454579826SDavid Howells * ALARM - Toggle alarm LED (0=green 1=red) 2554579826SDavid Howells * FLIP - Toggle inverted mode (0=normal 1=flipped) 2654579826SDavid Howells * bits 0-4 - Character displayed (see definitions below) 2754579826SDavid Howells * 2854579826SDavid Howells * Display segments are defined as follows, 2954579826SDavid Howells * subject to D7S_FLIP register state: 3054579826SDavid Howells * 3154579826SDavid Howells * a 3254579826SDavid Howells * --- 3354579826SDavid Howells * f| |b 3454579826SDavid Howells * -g- 3554579826SDavid Howells * e| |c 3654579826SDavid Howells * --- 3754579826SDavid Howells * d 3854579826SDavid Howells */ 3954579826SDavid Howells 4054579826SDavid Howells #define D7S_POINT (1 << 7) /* Decimal point*/ 4154579826SDavid Howells #define D7S_ALARM (1 << 6) /* Alarm LED */ 4254579826SDavid Howells #define D7S_FLIP (1 << 5) /* Flip display */ 4354579826SDavid Howells 4454579826SDavid Howells #define D7S_0 0x00 /* Numerals 0-9 */ 4554579826SDavid Howells #define D7S_1 0x01 4654579826SDavid Howells #define D7S_2 0x02 4754579826SDavid Howells #define D7S_3 0x03 4854579826SDavid Howells #define D7S_4 0x04 4954579826SDavid Howells #define D7S_5 0x05 5054579826SDavid Howells #define D7S_6 0x06 5154579826SDavid Howells #define D7S_7 0x07 5254579826SDavid Howells #define D7S_8 0x08 5354579826SDavid Howells #define D7S_9 0x09 5454579826SDavid Howells #define D7S_A 0x0A /* Letters A-F, H, L, P */ 5554579826SDavid Howells #define D7S_B 0x0B 5654579826SDavid Howells #define D7S_C 0x0C 5754579826SDavid Howells #define D7S_D 0x0D 5854579826SDavid Howells #define D7S_E 0x0E 5954579826SDavid Howells #define D7S_F 0x0F 6054579826SDavid Howells #define D7S_H 0x10 6154579826SDavid Howells #define D7S_E2 0x11 6254579826SDavid Howells #define D7S_L 0x12 6354579826SDavid Howells #define D7S_P 0x13 6454579826SDavid Howells #define D7S_SEGA 0x14 /* Individual segments */ 6554579826SDavid Howells #define D7S_SEGB 0x15 6654579826SDavid Howells #define D7S_SEGC 0x16 6754579826SDavid Howells #define D7S_SEGD 0x17 6854579826SDavid Howells #define D7S_SEGE 0x18 6954579826SDavid Howells #define D7S_SEGF 0x19 7054579826SDavid Howells #define D7S_SEGG 0x1A 7154579826SDavid Howells #define D7S_SEGABFG 0x1B /* Segment groupings */ 7254579826SDavid Howells #define D7S_SEGCDEG 0x1C 7354579826SDavid Howells #define D7S_SEGBCEF 0x1D 7454579826SDavid Howells #define D7S_SEGADG 0x1E 7554579826SDavid Howells #define D7S_BLANK 0x1F /* Clear all segments */ 7654579826SDavid Howells 7754579826SDavid Howells #define D7S_MIN_VAL 0x0 7854579826SDavid Howells #define D7S_MAX_VAL 0x1F 7954579826SDavid Howells 8054579826SDavid Howells #endif /* ifndef __display7seg_h__ */ 81