162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * display7seg - Driver interface for the 7-segment display
562306a36Sopenharmony_ci * present on Sun Microsystems CP1400 and CP1500
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (c) 2000 Eric Brower <ebrower@usa.net>
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifndef __display7seg_h__
1262306a36Sopenharmony_ci#define __display7seg_h__
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#define D7S_IOC	'p'
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define D7SIOCRD _IOR(D7S_IOC, 0x45, int)	/* Read device state	*/
1762306a36Sopenharmony_ci#define D7SIOCWR _IOW(D7S_IOC, 0x46, int)	/* Write device state	*/
1862306a36Sopenharmony_ci#define D7SIOCTM _IO (D7S_IOC, 0x47)		/* Translate mode (FLIP)*/
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/*
2162306a36Sopenharmony_ci * ioctl flag definitions
2262306a36Sopenharmony_ci *
2362306a36Sopenharmony_ci * POINT	- Toggle decimal point	(0=absent 1=present)
2462306a36Sopenharmony_ci * ALARM	- Toggle alarm LED 		(0=green  1=red)
2562306a36Sopenharmony_ci * FLIP		- Toggle inverted mode 	(0=normal 1=flipped)
2662306a36Sopenharmony_ci * bits 0-4	- Character displayed	(see definitions below)
2762306a36Sopenharmony_ci *
2862306a36Sopenharmony_ci * Display segments are defined as follows,
2962306a36Sopenharmony_ci * subject to D7S_FLIP register state:
3062306a36Sopenharmony_ci *
3162306a36Sopenharmony_ci *    a
3262306a36Sopenharmony_ci *   ---
3362306a36Sopenharmony_ci * f|   |b
3462306a36Sopenharmony_ci *   -g-
3562306a36Sopenharmony_ci * e|   |c
3662306a36Sopenharmony_ci *   ---
3762306a36Sopenharmony_ci *    d
3862306a36Sopenharmony_ci */
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define D7S_POINT	(1 << 7)	/* Decimal point*/
4162306a36Sopenharmony_ci#define D7S_ALARM	(1 << 6)	/* Alarm LED 	*/
4262306a36Sopenharmony_ci#define D7S_FLIP	(1 << 5)	/* Flip display */
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci#define D7S_0		0x00		/* Numerals 0-9 */
4562306a36Sopenharmony_ci#define D7S_1		0x01
4662306a36Sopenharmony_ci#define D7S_2		0x02
4762306a36Sopenharmony_ci#define D7S_3		0x03
4862306a36Sopenharmony_ci#define D7S_4		0x04
4962306a36Sopenharmony_ci#define D7S_5		0x05
5062306a36Sopenharmony_ci#define D7S_6		0x06
5162306a36Sopenharmony_ci#define D7S_7		0x07
5262306a36Sopenharmony_ci#define D7S_8		0x08
5362306a36Sopenharmony_ci#define D7S_9		0x09
5462306a36Sopenharmony_ci#define D7S_A		0x0A		/* Letters A-F, H, L, P */
5562306a36Sopenharmony_ci#define D7S_B		0x0B
5662306a36Sopenharmony_ci#define D7S_C		0x0C
5762306a36Sopenharmony_ci#define D7S_D		0x0D
5862306a36Sopenharmony_ci#define D7S_E		0x0E
5962306a36Sopenharmony_ci#define D7S_F		0x0F
6062306a36Sopenharmony_ci#define D7S_H		0x10
6162306a36Sopenharmony_ci#define D7S_E2		0x11
6262306a36Sopenharmony_ci#define D7S_L		0x12
6362306a36Sopenharmony_ci#define D7S_P		0x13
6462306a36Sopenharmony_ci#define D7S_SEGA	0x14		/* Individual segments */
6562306a36Sopenharmony_ci#define D7S_SEGB	0x15
6662306a36Sopenharmony_ci#define D7S_SEGC	0x16
6762306a36Sopenharmony_ci#define D7S_SEGD	0x17
6862306a36Sopenharmony_ci#define D7S_SEGE	0x18
6962306a36Sopenharmony_ci#define D7S_SEGF	0x19
7062306a36Sopenharmony_ci#define D7S_SEGG	0x1A
7162306a36Sopenharmony_ci#define D7S_SEGABFG 0x1B		/* Segment groupings */
7262306a36Sopenharmony_ci#define D7S_SEGCDEG	0x1C
7362306a36Sopenharmony_ci#define D7S_SEGBCEF 0x1D
7462306a36Sopenharmony_ci#define D7S_SEGADG	0x1E
7562306a36Sopenharmony_ci#define D7S_BLANK	0x1F		/* Clear all segments */
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci#define D7S_MIN_VAL	0x0
7862306a36Sopenharmony_ci#define D7S_MAX_VAL	0x1F
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci#endif /* ifndef __display7seg_h__ */
81