2 * (C) Copyright 2003, Li-Pro.Net <www.li-pro.net>
3 * Stephan Linz <linz@li-pro.net>
5 * SPDX-License-Identifier: GPL-2.0+
9 * NIOS PIO based seven segment led support functions
12 #ifndef __DK1S10_SEVENSEG_H__
13 #define __DK1S10_SEVENSEG_H__
15 #ifdef CONFIG_SEVENSEG
19 * |-----------------------|--------|
20 * | controll value | value |
21 * ----------------------------------
23 #define SEVENSEG_RAW (int)(0) /* write out byte value (hex) */
24 #define SEVENSEG_OFF (int)( 1 << 8) /* display switch off */
25 #define SEVENSEG_SET_DPL (int)( 2 << 8) /* set dp low nibble */
26 #define SEVENSEG_SET_DPH (int)( 3 << 8) /* set dp high nibble */
27 #define SEVENSEG_RES_DPL (int)( 4 << 8) /* reset dp low nibble */
28 #define SEVENSEG_RES_DPH (int)( 5 << 8) /* reset dp high nibble */
29 #define SEVENSEG_TOG_DPL (int)( 6 << 8) /* toggle dp low nibble */
30 #define SEVENSEG_TOG_DPH (int)( 7 << 8) /* toggle dp high nibble */
31 #define SEVENSEG_LO (int)( 8 << 8) /* write out low nibble only */
32 #define SEVENSEG_HI (int)( 9 << 8) /* write out high nibble only */
33 #define SEVENSEG_STR (int)(10 << 8) /* write out a string */
35 #define SEVENSEG_MASK_VAL (0xff) /* only used by SEVENSEG_RAW */
36 #define SEVENSEG_MASK_CTRL (~SEVENSEG_MASK_VAL)
38 #ifdef SEVENSEG_DIGIT_HI_LO_EQUAL
40 #define SEVENSEG_DIGITS_0 ( SEVENSEG_DIGIT_A \
46 #define SEVENSEG_DIGITS_1 ( SEVENSEG_DIGIT_B \
48 #define SEVENSEG_DIGITS_2 ( SEVENSEG_DIGIT_A \
53 #define SEVENSEG_DIGITS_3 ( SEVENSEG_DIGIT_A \
58 #define SEVENSEG_DIGITS_4 ( SEVENSEG_DIGIT_B \
62 #define SEVENSEG_DIGITS_5 ( SEVENSEG_DIGIT_A \
67 #define SEVENSEG_DIGITS_6 ( SEVENSEG_DIGIT_A \
73 #define SEVENSEG_DIGITS_7 ( SEVENSEG_DIGIT_A \
76 #define SEVENSEG_DIGITS_8 ( SEVENSEG_DIGIT_A \
83 #define SEVENSEG_DIGITS_9 ( SEVENSEG_DIGIT_A \
89 #define SEVENSEG_DIGITS_A ( SEVENSEG_DIGIT_A \
95 #define SEVENSEG_DIGITS_B ( SEVENSEG_DIGIT_C \
100 #define SEVENSEG_DIGITS_C ( SEVENSEG_DIGIT_D \
103 #define SEVENSEG_DIGITS_D ( SEVENSEG_DIGIT_B \
108 #define SEVENSEG_DIGITS_E ( SEVENSEG_DIGIT_A \
113 #define SEVENSEG_DIGITS_F ( SEVENSEG_DIGIT_A \
118 #else /* !SEVENSEG_DIGIT_HI_LO_EQUAL */
119 #error SEVENSEG: different pin asssignments not supported
122 void sevenseg_set(int value);
124 #endif /* CONFIG_SEVENSEG */
126 #endif /* __DK1S10_SEVENSEG_H__ */