2 * linux/include/asm/sharp_char.h
4 * sharp drivers definitions (SHARP)
6 * Copyright (C) 2001 SHARP
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
19 * 12-Dec-2002 Sharp Corporation for Poodle and Corgi
22 #ifndef __ASM_SHARP_CHAR_H_INCLUDED
23 #define __ASM_SHARP_CHAR_H_INCLUDED
26 * If SHARPCHAR_USE_MISCDEV defined , misc driver architecture used instead of sharp_char
29 #define SHARPCHAR_USE_MISCDEV
35 #ifndef SHARP_DEV_MAJOR
36 #define SHARP_DEV_MAJOR 11
39 #ifndef SHARP_DEV_MINOR_START
40 #define SHARP_DEV_MINOR_START 210
43 #define SHARP_DEV_MINOR_MAX 4 /* defines last minor number of SHARP device */
45 #define SHARP_LED_MINOR (SHARP_DEV_MINOR_START+0)
46 #define SHARP_BUZZER_MINOR (SHARP_DEV_MINOR_START+1)
47 #define SHARP_GSM_MINOR (SHARP_DEV_MINOR_START+2)
48 #define SHARP_AUDIOCTL_MINOR (SHARP_DEV_MINOR_START+3)
49 #define SHARP_KBDCTL_MINOR (SHARP_DEV_MINOR_START+4)
55 #define SHARP_DEV_IOCTL_COMMAND_START 0x5680
57 /* --- for SHARP_LED device --- */
58 #define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
59 #define SHARP_LED_GETSTATUS (SHARP_LED_IOCTL_START)
60 #define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1)
61 #define SHARP_LED_ISUPPORTED (SHARP_LED_IOCTL_START+2)
63 typedef struct sharp_led_status {
64 int which; /* select which LED status is wanted. */
65 int status; /* set new led status if you call SHARP_LED_SETSTATUS */
68 #define SHARP_LED_WHICH_MAX 15 /* last number of LED */
70 /* parameters for 'which' member */
71 #define SHARP_LED_PDA 0 /* PDA status */
72 #define SHARP_LED_DALARM 1 /* daily alarm */
73 #define SHARP_LED_SALARM 2 /* schedule alarm */
74 #define SHARP_LED_BATTERY 3 /* main battery status */
75 #define SHARP_LED_ACSTATUS 4 /* AC line status */
76 #define SHARP_LED_CHARGER 5 /* charger status */
77 #define SHARP_LED_PHONE_RSSI 6 /* phone status (RSSI...) */
78 #define SHARP_LED_PHONE_DIAL 7 /* phone status (dialing...) */
79 #define SHARP_LED_PHONE_IN 8 /* phone status (incoming..) */
80 #define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */
81 #define SHARP_LED_MAIL_SEND 10 /* mail status (sending...) */
82 #define SHARP_LED_MAIL_QUEUE 11 /* mail to send is in queue */
83 #define SHARP_LED_COLLIE_0 12 /* 1st pri. battery LED control */
84 #define SHARP_LED_COLLIE_1 13 /* 1st pri. mail LED control */
85 #define SHARP_LED_COMM 14 /* communication status */
86 #define SHARP_LED_BROWSER 15 /* WWW browser status */
88 /* parameters for 'status' member */
89 #define LED_PDA_RUNNING 0 /* for SHARP_LED_RUN */
90 #define LED_PDA_SUSPENDED 1 /* for SHARP_LED_RUN */
91 #define LED_PDA_OFF 2 /* for SHARP_LED_RUN */
92 #define LED_PDA_ERROR 3 /* for SHARP_LED_RUN */
94 #define LED_DALARM_OFF 0 /* for SHARP_LED_DALARM */
95 #define LED_DALARM_ON 1 /* for SHARP_LED_DALARM */
97 #define LED_SALARM_OFF 0 /* for SHARP_LED_SALARM */
98 #define LED_SALARM_ON 1 /* for SHARP_LED_SALARM */
100 #define LED_BATTERY_GOOD 0 /* for SHARP_LED_BATTERY */
101 #define LED_BATTERY_LOW 1 /* for SHARP_LED_BATTERY */
102 #define LED_BATTERY_VERY_LOW 2 /* for SHARP_LED_BATTERY */
103 #define LED_BATTERY_CRITICAL 3 /* for SHARP_LED_BATTERY */
105 #define LED_CHARGER_OFF 0 /* for SHARP_LED_CHARGER */
106 #define LED_CHARGER_CHARGING 1 /* for SHARP_LED_CHARGER */
107 #define LED_CHARGER_ERROR 2 /* for SHARP_LED_CHARGER */
108 #define LED_CHARGER_FLASH 3
110 #define LED_AC_NOT_CONNECTED 0 /* for SHARP_LED_ACSTATUS */
111 #define LED_AC_CONNECTED 1 /* for SHARP_LED_ACSTATUS */
113 #define LED_RSSI_OUT 0 /* for SHARP_LED_PHONE_RSSI */
114 #define LED_RSSI_IN 1 /* for SHARP_LED_PHONE_RSSI */
116 #define LED_DIAL_OFF 0 /* for SHARP_LED_PHONE_DIAL */
117 #define LED_DIAL_DIALING 1 /* for SHARP_LED_PHONE_DIAL */
118 #define LED_DIAL_HOLDING 2 /* for SHARP_LED_PHONE_DIAL */
120 #define LED_PHONE_WAITING 0 /* for SHARP_LED_PHONE_IN */
121 #define LED_PHONE_INCOMING 1 /* for SHARP_LED_PHONE_IN */
123 #define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */
124 #define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */
125 #define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */
127 #define LED_SENDMAIL_OFF 0 /* for SHARP_LED_MAIL_SEND */
128 #define LED_SENDMAIL_SENDING 1 /* for SHARP_LED_MAIL_SEND */
129 #define LED_SENDMAIL_ERROR 2 /* for SHARP_LED_MAIL_SEND */
131 #define LED_MAILQUEUE_NOUNREAD 0 /* for SHARP_LED_MAIL_QUEUE */
132 #define LED_MAILQUEUE_NEWMAIL 1 /* for SHARP_LED_MAIL_QUEUE */
133 #define LED_MAILQUEUE_UNREAD 2 /* for SHARP_LED_MAIL_QUEUE */
135 #define LED_COLLIE_0_DEFAULT 0 /* for SHARP_LED_COLLIE_0 */
136 #define LED_COLLIE_0_OFF 1 /* for SHARP_LED_COLLIE_0 */
137 #define LED_COLLIE_0_ON 2 /* for SHARP_LED_COLLIE_0 */
138 #define LED_COLLIE_0_FASTBLINK 3 /* for SHARP_LED_COLLIE_0 */
139 #define LED_COLLIE_0_SLOWBLINK 4 /* for SHARP_LED_COLLIE_0 */
141 #define LED_COLLIE_1_DEFAULT 0 /* for SHARP_LED_COLLIE_1 */
142 #define LED_COLLIE_1_OFF 1 /* for SHARP_LED_COLLIE_1 */
143 #define LED_COLLIE_1_ON 2 /* for SHARP_LED_COLLIE_1 */
144 #define LED_COLLIE_1_FLASHON 3 /* for SHARP_LED_COLLIE_1 */
145 #define LED_COLLIE_1_FLASHOFF 4 /* for SHARP_LED_COLLIE_1 */
146 #define LED_COLLIE_1_VFSTBLINK 5 /* for SHARP_LED_COLLIE_1 */
147 #define LED_COLLIE_1_FASTBLINK 6 /* for SHARP_LED_COLLIE_1 */
148 #define LED_COLLIE_1_NORMBLINK 7 /* for SHARP_LED_COLLIE_1 */
149 #define LED_COLLIE_1_SLOWBLINK 8 /* for SHARP_LED_COLLIE_1 */
150 #define LED_COLLIE_1_SOFTBLINK 9 /* for SHARP_LED_COLLIE_1 */
151 #define LED_COLLIE_1_SOFTFLASH 10 /* for SHARP_LED_COLLIE_1 */
153 #define LED_COMM_OFFLINE 0 /* for SHARP_LED_COMM */
154 #define LED_COMM_ONLINE 1 /* for SHARP_LED_COMM */
155 #define LED_COMM_ERROR 2 /* for SHARP_LED_COMM */
157 #define LED_BROWSER_OFFLINE 0 /* for SHARP_LED_BROWSER */
158 #define LED_BROWSER_ONLINE 1 /* for SHARP_LED_BROWSER */
159 #define LED_BROWSER_ERROR 2 /* for SHARP_LED_BROWSER */
162 /* --- for SHARP_BUZZER device --- */
163 #define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
164 #define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
165 #define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
166 #define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
167 #define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
168 #define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
169 #define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
170 #define SHARP_BUZZER_SET_BUFFER (SHARP_BUZZER_IOCTL_START+6)
172 typedef struct sharp_buzzer_status { /* this struct is used for setvolume/getvolume */
173 int which; /* select which LED status is wanted. */
174 int volume; /* set new buzzer volume if you call SHARP_BUZZER_SETVOLUME */
175 int mute; /* set 1 to MUTE if you call SHARP_BUZZER_SETMUTE */
176 } sharp_buzzer_status;
178 #define SHARP_BUZ_WHICH_MAX 14 /* last number of buzzer */
180 #define SHARP_BUZ_ALL_SOUNDS -1 /* for setting volumes of ALL sounds at a time */
182 #define SHARP_BUZ_WRITESOUND 0 /* for sound datas through 'write' calls */
183 #define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
184 #define SHARP_BUZ_KEYSOUND 2 /* key sound */
185 #define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */
186 #define SHARP_PDA_WARNSOUND 4 /* warning occurred */
187 #define SHARP_PDA_ERRORSOUND 5 /* error occurred */
188 #define SHARP_PDA_CRITICALSOUND 6 /* critical error occurred */
189 #define SHARP_PDA_SYSSTARTSOUND 7 /* system start */
190 #define SHARP_PDA_SYSTEMENDSOUND 8 /* system shutdown */
191 #define SHARP_PDA_APPSTART 9 /* application start */
192 #define SHARP_PDA_APPQUIT 10 /* application ends */
193 #define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
194 #define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */
195 #define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */
196 #define SHARP_BUZ_GOT_MAIL 14 /* mail sound */
198 #define SHARP_BUZ_VOLUME_OFF 0
199 #define SHARP_BUZ_VOLUME_LOW 33
200 #define SHARP_BUZ_VOLUME_MEDIUM 67
201 #define SHARP_BUZ_VOLUME_HIGH 100 /* currentry , this is the maximum ... */
202 #define SHARP_BUZ_VOLUME_MAX (SHARP_BUZ_VOLUME_HIGH)
204 /* --- for SHARP_GSM device --- */
205 #define SHARP_GSM_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
206 #define SHARP_GSM_GETEXTSTATUS (SHARP_GSM_IOCTL_START+16)
207 #define SHARP_GSM_INFO_TELL_MODE (SHARP_GSM_IOCTL_START+17)
208 #define SHARP_IRIS_GETSYNCSTATUS (SHARP_GSM_IOCTL_START+18)
209 #define SHARP_IRIS_RECHECKDEVICE (SHARP_GSM_IOCTL_START+19)
212 #define GSM_PHONE_NO_POWER 0 /* for SHARP_GSM_INFO_TELL_MODE */
213 #define GSM_PHONE_NO_CONNECTION 1 /* for SHARP_GSM_INFO_TELL_MODE */
214 #define GSM_PHONE_IN_ANALOG_MODE 2 /* for SHARP_GSM_INFO_TELL_MODE */
215 #define GSM_PHONE_IN_DATA_MODE 3 /* for SHARP_GSM_INFO_TELL_MODE */
217 #define IRIS_AUDIO_EXT_IS_NONE 0
218 #define IRIS_AUDIO_EXT_IS_HEADPHONEMIC 1
219 #define IRIS_AUDIO_EXT_IS_EXTSPEAKER 2
221 typedef struct sharp_gsmext_status {
222 int carkit; /* be set as 1 , if car-kit is connected */
223 int headphone_mic; /* be set as 1 , if head-phone-microphone is inserted */
224 int external_sp; /* be set as 1 , if external-speaker is inserted */
225 } sharp_gsmext_status;
227 typedef struct sharp_irisext_status { /* for SHARP_IRIS_GETSYNCSTATUS */
231 } sharp_irisext_status;
233 /* --- for SHARP_AUDIOCTL device --- */
234 #define SHARP_AUDIOCTL_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
235 #define SHARP_AUDIOCTL_ARCH_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START+0x10)
236 #define SHARP_IRIS_AUFIL_GETVAL (SHARP_AUDIOCTL_ARCH_IOCTL_START+0)
237 #define SHARP_IRIS_AUFIL_SETVAL (SHARP_AUDIOCTL_ARCH_IOCTL_START+1)
238 #define SHARP_IRIS_AMP_EXT_ON (SHARP_AUDIOCTL_ARCH_IOCTL_START+2)
239 #define SHARP_IRIS_AMP_EXT_OFF (SHARP_AUDIOCTL_ARCH_IOCTL_START+3)
242 #define SHARP_IRIS_AUFIL_FILTERON 0x01 /* Iris AudioCtl Specific. Enable Audio Filter */
244 /* --- for SHARP_AUDIOCTL device --- */
245 #define SHARP_KBDCTL_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
246 #define SHARP_KBDCTL_GETMODIFSTAT (SHARP_KBDCTL_IOCTL_START+0)
247 #define SHARP_KBDCTL_TOGGLEMODIFSTAT (SHARP_KBDCTL_IOCTL_START+1)
248 #define SHARP_KBDCTL_SETHOLDTH (SHARP_KBDCTL_IOCTL_START+2)
249 #define SHARP_KBDCTL_SETHOLDTH_GR (SHARP_KBDCTL_IOCTL_START+3)
250 #define SHARP_KBDCTL_HOLDINFO_SETHD (SHARP_KBDCTL_IOCTL_START+4)
251 #define SHARP_KBDCTL_HOLDINFO_SETSL (SHARP_KBDCTL_IOCTL_START+5)
252 #define SHARP_KBDCTL_HOLDINFO_DELHD (SHARP_KBDCTL_IOCTL_START+6)
253 #define SHARP_KBDCTL_HOLDINFO_DELSL (SHARP_KBDCTL_IOCTL_START+7)
254 #define SHARP_KBDCTL_HOLDINFO_RESTHD (SHARP_KBDCTL_IOCTL_START+8)
255 #define SHARP_KBDCTL_HOLDINFO_RESTSL (SHARP_KBDCTL_IOCTL_START+9)
256 #define SHARP_KBDCTL_HOLDINFO_RESTFULL (SHARP_KBDCTL_IOCTL_START+10)
257 #define IRIS_KBDCTL_ENABLEKEYBOARD (SHARP_KBDCTL_IOCTL_START+16)
258 #define IRIS_KBDCTL_DISABLEKEYBOARD (SHARP_KBDCTL_IOCTL_START+17)
259 #define SHARP_KBDCTL_SENDKEY (SHARP_KBDCTL_IOCTL_START+18)
261 typedef struct sharp_kbdctl_modifstat {
264 } sharp_kbdctl_modifstat;
266 typedef struct sharp_kbdctl_holdstat {
269 } sharp_kbdctl_holdstat;
271 typedef struct sharp_kbdctl_holdcustom {
275 } sharp_kbdctl_holdcustom;
277 #define SHARP_EXTMODIF_2ND 0x01
278 #define SHARP_EXTMODIF_CAPS 0x02
279 #define SHARP_EXTMODIF_NUMLOCK 0x03
281 #define HOLDKEY_GROUP_NORMAL 0
282 #define HOLDKEY_GROUP_POWER 1
285 /* --- for AUDIO & REMOCON device --- */
286 #define HPJACK_STATE_UNDETECT (-1)
287 #define HPJACK_STATE_NONE (0)
288 #define HPJACK_STATE_HEADPHONE (1)
289 #define HPJACK_STATE_REMOCON (2)
292 #endif /* __ASM_SHARP_CHAR_H_INCLUDED */
295 //#define EXTERNAL_IO_BASE01 0xF8000000
296 //#define EXTEND_GPIO_RED_LED (1<<4)
297 //#define EXTEND_GPIO_GREEN_LED (1<<5)
298 //unsigned short * pwEGPIO1 ;
299 //unsigned short gwExtendGpio1;
300 // pwEGPIO1 = (unsigned short *) EXTERNAL_IO_BASE01;