1config PANEL 2 tristate "Parallel port LCD/Keypad Panel support" 3 depends on PARPORT 4 ---help--- 5 Say Y here if you have an HD44780 or KS-0074 LCD connected to your 6 parallel port. This driver also features 4 and 6-key keypads. The LCD 7 is accessible through the /dev/lcd char device (10, 156), and the 8 keypad through /dev/keypad (10, 185). Both require misc device to be 9 enabled. This code can either be compiled as a module, or linked into 10 the kernel and started at boot. If you don't understand what all this 11 is about, say N. 12 13config PANEL_PARPORT 14 int "Default parallel port number (0=LPT1)" 15 depends on PANEL 16 range 0 255 17 default "0" 18 ---help--- 19 This is the index of the parallel port the panel is connected to. One 20 driver instance only supports one parallel port, so if your keypad 21 and LCD are connected to two separate ports, you have to start two 22 modules with different arguments. Numbering starts with '0' for LPT1, 23 and so on. 24 25config PANEL_PROFILE 26 int "Default panel profile (0-5, 0=custom)" 27 depends on PANEL 28 range 0 5 29 default "5" 30 ---help--- 31 To ease configuration, the driver supports different configuration 32 profiles for past and recent wirings. These profiles can also be 33 used to define an approximative configuration, completed by a few 34 other options. Here are the profiles : 35 36 0 = custom (see further) 37 1 = 2x16 parallel LCD, old keypad 38 2 = 2x16 serial LCD (KS-0074), new keypad 39 3 = 2x16 parallel LCD (Hantronix), no keypad 40 4 = 2x16 parallel LCD (Nexcom NSA1045) with Nexcom's keypad 41 5 = 2x40 parallel LCD (old one), with old keypad 42 43 Custom configurations allow you to define how your display is 44 wired to the parallel port, and how it works. This is only intended 45 for experts. 46 47config PANEL_KEYPAD 48 depends on PANEL && PANEL_PROFILE="0" 49 int "Keypad type (0=none, 1=old 6 keys, 2=new 6 keys, 3=Nexcom 4 keys)" 50 range 0 3 51 default 0 52 ---help--- 53 This enables and configures a keypad connected to the parallel port. 54 The keys will be read from character device 10,185. Valid values are : 55 56 0 : do not enable this driver 57 1 : old 6 keys keypad 58 2 : new 6 keys keypad, as used on the server at www.ant-computing.com 59 3 : Nexcom NSA1045's 4 keys keypad 60 61 New profiles can be described in the driver source. The driver also 62 supports simultaneous keys pressed when the keypad supports them. 63 64config PANEL_LCD 65 depends on PANEL && PANEL_PROFILE="0" 66 int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)" 67 range 0 5 68 default 0 69 ---help--- 70 This enables and configures an LCD connected to the parallel port. 71 The driver includes an interpreter for escape codes starting with 72 '\e[L' which are specific to the LCD, and a few ANSI codes. The 73 driver will be registered as character device 10,156, usually 74 under the name '/dev/lcd'. There are a total of 6 supported types : 75 76 0 : do not enable the driver 77 1 : custom configuration and wiring (see further) 78 2 : 2x16 & 2x40 parallel LCD (old wiring) 79 3 : 2x16 serial LCD (KS-0074 based) 80 4 : 2x16 parallel LCD (Hantronix wiring) 81 5 : 2x16 parallel LCD (Nexcom wiring) 82 83 When type '1' is specified, other options will appear to configure 84 more precise aspects (wiring, dimensions, protocol, ...). Please note 85 that those values changed from the 2.4 driver for better consistency. 86 87config PANEL_LCD_HEIGHT 88 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 89 int "Number of lines on the LCD (1-2)" 90 range 1 2 91 default 2 92 ---help--- 93 This is the number of visible character lines on the LCD in custom profile. 94 It can either be 1 or 2. 95 96config PANEL_LCD_WIDTH 97 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 98 int "Number of characters per line on the LCD (1-40)" 99 range 1 40 100 default 40 101 ---help--- 102 This is the number of characters per line on the LCD in custom profile. 103 Common values are 16,20,24,40. 104 105config PANEL_LCD_BWIDTH 106 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 107 int "Internal LCD line width (1-40, 40 by default)" 108 range 1 40 109 default 40 110 ---help--- 111 Most LCDs use a standard controller which supports hardware lines of 40 112 characters, although sometimes only 16, 20 or 24 of them are really wired 113 to the terminal. This results in some non-visible but addressable characters, 114 and is the case for most parallel LCDs. Other LCDs, and some serial ones, 115 however, use the same line width internally as what is visible. The KS0074 116 for example, uses 16 characters per line for 16 visible characters per line. 117 118 This option lets you configure the value used by your LCD in 'custom' profile. 119 If you don't know, put '40' here. 120 121config PANEL_LCD_HWIDTH 122 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 123 int "Hardware LCD line width (1-64, 64 by default)" 124 range 1 64 125 default 64 126 ---help--- 127 Most LCDs use a single address bit to differentiate line 0 and line 1. Since 128 some of them need to be able to address 40 chars with the lower bits, they 129 often use the immediately superior power of 2, which is 64, to address the 130 next line. 131 132 If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and 133 64 here for a 2x40. 134 135config PANEL_LCD_CHARSET 136 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 137 int "LCD character set (0=normal, 1=KS0074)" 138 range 0 1 139 default 0 140 ---help--- 141 Some controllers such as the KS0074 use a somewhat strange character set 142 where many symbols are at unusual places. The driver knows how to map 143 'standard' ASCII characters to the character sets used by these controllers. 144 Valid values are : 145 146 0 : normal (untranslated) character set 147 1 : KS0074 character set 148 149 If you don't know, use the normal one (0). 150 151config PANEL_LCD_PROTO 152 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 153 int "LCD communication mode (0=parallel 8 bits, 1=serial)" 154 range 0 1 155 default 0 156 ---help--- 157 This driver now supports any serial or parallel LCD wired to a parallel 158 port. But before assigning signals, the driver needs to know if it will 159 be driving a serial LCD or a parallel one. Serial LCDs only use 2 wires 160 (SDA/SCL), while parallel ones use 2 or 3 wires for the control signals 161 (E, RS, sometimes RW), and 4 or 8 for the data. Use 0 here for a 8 bits 162 parallel LCD, and 1 for a serial LCD. 163 164config PANEL_LCD_PIN_E 165 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0" 166 int "Parallel port pin number & polarity connected to the LCD E signal (-17...17) " 167 range -17 17 168 default 14 169 ---help--- 170 This describes the number of the parallel port pin to which the LCD 'E' 171 signal has been connected. It can be : 172 173 0 : no connection (eg: connected to ground) 174 1..17 : directly connected to any of these pins on the DB25 plug 175 -1..-17 : connected to the same pin through an inverter (eg: transistor). 176 177 Default for the 'E' pin in custom profile is '14' (AUTOFEED). 178 179config PANEL_LCD_PIN_RS 180 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0" 181 int "Parallel port pin number & polarity connected to the LCD RS signal (-17...17) " 182 range -17 17 183 default 17 184 ---help--- 185 This describes the number of the parallel port pin to which the LCD 'RS' 186 signal has been connected. It can be : 187 188 0 : no connection (eg: connected to ground) 189 1..17 : directly connected to any of these pins on the DB25 plug 190 -1..-17 : connected to the same pin through an inverter (eg: transistor). 191 192 Default for the 'RS' pin in custom profile is '17' (SELECT IN). 193 194config PANEL_LCD_PIN_RW 195 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO="0" 196 int "Parallel port pin number & polarity connected to the LCD RW signal (-17...17) " 197 range -17 17 198 default 16 199 ---help--- 200 This describes the number of the parallel port pin to which the LCD 'RW' 201 signal has been connected. It can be : 202 203 0 : no connection (eg: connected to ground) 204 1..17 : directly connected to any of these pins on the DB25 plug 205 -1..-17 : connected to the same pin through an inverter (eg: transistor). 206 207 Default for the 'RW' pin in custom profile is '16' (INIT). 208 209config PANEL_LCD_PIN_SCL 210 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0" 211 int "Parallel port pin number & polarity connected to the LCD SCL signal (-17...17) " 212 range -17 17 213 default 1 214 ---help--- 215 This describes the number of the parallel port pin to which the serial 216 LCD 'SCL' signal has been connected. It can be : 217 218 0 : no connection (eg: connected to ground) 219 1..17 : directly connected to any of these pins on the DB25 plug 220 -1..-17 : connected to the same pin through an inverter (eg: transistor). 221 222 Default for the 'SCL' pin in custom profile is '1' (STROBE). 223 224config PANEL_LCD_PIN_SDA 225 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" && PANEL_LCD_PROTO!="0" 226 int "Parallel port pin number & polarity connected to the LCD SDA signal (-17...17) " 227 range -17 17 228 default 2 229 ---help--- 230 This describes the number of the parallel port pin to which the serial 231 LCD 'SDA' signal has been connected. It can be : 232 233 0 : no connection (eg: connected to ground) 234 1..17 : directly connected to any of these pins on the DB25 plug 235 -1..-17 : connected to the same pin through an inverter (eg: transistor). 236 237 Default for the 'SDA' pin in custom profile is '2' (D0). 238 239config PANEL_LCD_PIN_BL 240 depends on PANEL && PANEL_PROFILE="0" && PANEL_LCD="1" 241 int "Parallel port pin number & polarity connected to the LCD backlight signal (-17...17) " 242 range -17 17 243 default 0 244 ---help--- 245 This describes the number of the parallel port pin to which the LCD 'BL' signal 246 has been connected. It can be : 247 248 0 : no connection (eg: connected to ground) 249 1..17 : directly connected to any of these pins on the DB25 plug 250 -1..-17 : connected to the same pin through an inverter (eg: transistor). 251 252 Default for the 'BL' pin in custom profile is '0' (uncontrolled). 253 254config PANEL_CHANGE_MESSAGE 255 depends on PANEL 256 bool "Change LCD initialization message ?" 257 default "n" 258 ---help--- 259 This allows you to replace the boot message indicating the kernel version 260 and the driver version with a custom message. This is useful on appliances 261 where a simple 'Starting system' message can be enough to stop a customer 262 from worrying. 263 264 If you say 'Y' here, you'll be able to choose a message yourself. Otherwise, 265 say 'N' and keep the default message with the version. 266 267config PANEL_BOOT_MESSAGE 268 depends on PANEL && PANEL_CHANGE_MESSAGE="y" 269 string "New initialization message" 270 default "" 271 ---help--- 272 This allows you to replace the boot message indicating the kernel version 273 and the driver version with a custom message. This is useful on appliances 274 where a simple 'Starting system' message can be enough to stop a customer 275 from worrying. 276 277 An empty message will only clear the display at driver init time. Any other 278 printf()-formatted message is valid with newline and escape codes. 279