diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fsa9480.h | 41 | ||||
-rw-r--r-- | include/linux/gp2a.h | 36 | ||||
-rw-r--r-- | include/linux/i2c/ak8973.h | 72 | ||||
-rwxr-xr-x | include/linux/input/cypress-touchkey.h | 41 | ||||
-rw-r--r-- | include/linux/input/k3g.h | 40 | ||||
-rw-r--r-- | include/linux/input/mxt224.h | 92 | ||||
-rw-r--r-- | include/linux/kr3dm.h | 46 | ||||
-rwxr-xr-x[-rw-r--r--] | include/linux/max17040_battery.h | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | include/linux/mfd/max8998-private.h | 141 | ||||
-rwxr-xr-x[-rw-r--r--] | include/linux/mfd/max8998.h | 34 | ||||
-rwxr-xr-x | include/linux/mfd/wm8994/wm8994_pdata.h | 24 | ||||
-rw-r--r-- | include/linux/mmc/host.h | 1 | ||||
-rw-r--r-- | include/linux/mmc/sdhci.h | 5 | ||||
-rw-r--r-- | include/linux/mtd/onenand.h | 1 | ||||
-rwxr-xr-x | include/linux/nt35580.h | 27 | ||||
-rwxr-xr-x | include/linux/pn544.h | 33 | ||||
-rw-r--r-- | include/linux/regulator/max8893.h | 53 | ||||
-rwxr-xr-x | include/linux/sec_jack.h | 60 | ||||
-rwxr-xr-x | include/linux/tl2796.h | 64 | ||||
-rwxr-xr-x | include/linux/videodev2_samsung.h | 624 | ||||
-rw-r--r-- | include/linux/wimax/samsung/wimax732.h | 78 |
21 files changed, 1516 insertions, 1 deletions
diff --git a/include/linux/fsa9480.h b/include/linux/fsa9480.h new file mode 100644 index 0000000..1097ee6 --- /dev/null +++ b/include/linux/fsa9480.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2010 Samsung Electronics + * Minkyu Kang <mk7.kang@samsung.com> + * Wonguk Jeong <wonguk.jeong@samsung.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef _FSA9480_H_ +#define _FSA9480_H_ + +enum { + FSA9480_DETACHED, + FSA9480_ATTACHED +}; + +struct fsa9480_platform_data { + void (*cfg_gpio) (void); + void (*usb_cb) (bool attached); + void (*uart_cb) (bool attached); + void (*charger_cb) (bool attached); + void (*jig_cb) (bool attached); + void (*deskdock_cb) (bool attached); + void (*cardock_cb) (bool attached); + void (*reset_cb) (void); +}; + +#endif /* _FSA9480_H_ */ diff --git a/include/linux/gp2a.h b/include/linux/gp2a.h new file mode 100644 index 0000000..bf937aa --- /dev/null +++ b/include/linux/gp2a.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010 Samsung Electronics. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ + + +#ifndef __LINUX_GP2A_H +#define __LINUX_GP2A_H + +#include <linux/types.h> + +#ifdef __KERNEL__ +#define GP2A_OPT "gp2a-opt" +struct gp2a_platform_data { + int p_out; /* proximity-sensor-output gpio */ + int (*power)(bool); /* power to the chip */ + int (*light_adc_value)(void); /* get light level from adc */ + int light_adc_max; + int light_adc_fuzz; +}; +#endif /* __KERNEL__ */ + +#endif diff --git a/include/linux/i2c/ak8973.h b/include/linux/i2c/ak8973.h new file mode 100644 index 0000000..3f6a28b --- /dev/null +++ b/include/linux/i2c/ak8973.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2010 Samsung Electronics. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + */ +#ifndef AKM8973_H +#define AKM8973_H + +#include <linux/ioctl.h> + +#define AKM8973_I2C_NAME "ak8973" + +#define AKMIO 0xA1 + +/* IOCTLs for AKM library */ +/* WRITE and READ sizes don't include data. On WRITE, the first value is data + * size plus one and the second value is the register address. On READ + * the first value is the data size and second value is the register + * address and the data is written back into the buffer starting at + * the second byte (the length is unchanged). + */ +#define ECS_IOCTL_WRITE _IOW(AKMIO, 0x01, char[2]) +#define ECS_IOCTL_READ _IOWR(AKMIO, 0x02, char[2]) +#define ECS_IOCTL_RESET _IO(AKMIO, 0x03) +#define ECS_IOCTL_SET_MODE _IOW(AKMIO, 0x04, short) +#define ECS_IOCTL_GETDATA _IOR(AKMIO, 0x05, char[5]) +#define ECS_IOCTL_SET_YPR _IOW(AKMIO, 0x06, short[12]) +#define ECS_IOCTL_GET_OPEN_STATUS _IOR(AKMIO, 0x07, int) +#define ECS_IOCTL_GET_CLOSE_STATUS _IOR(AKMIO, 0x08, int) +#define ECS_IOCTL_GET_DELAY _IOR(AKMIO, 0x30, int64_t) +#define ECS_IOCTL_GET_PROJECT_NAME _IOR(AKMIO, 0x0D, char[64]) +#define ECS_IOCTL_GET_MATRIX _IOR(AKMIO, 0x0E, short[4][3][3]) + +/* IOCTLs for APPs */ +#define ECS_IOCTL_APP_SET_MODE _IOW(AKMIO, 0x10, short) +#define ECS_IOCTL_APP_SET_MFLAG _IOW(AKMIO, 0x11, short) +#define ECS_IOCTL_APP_GET_MFLAG _IOR(AKMIO, 0x12, short) +#define ECS_IOCTL_APP_SET_AFLAG _IOW(AKMIO, 0x13, short) +#define ECS_IOCTL_APP_GET_AFLAG _IOR(AKMIO, 0x14, short) +#define ECS_IOCTL_APP_SET_TFLAG _IOW(AKMIO, 0x15, short) +#define ECS_IOCTL_APP_GET_TFLAG _IOR(AKMIO, 0x16, short) +#define ECS_IOCTL_APP_RESET_PEDOMETER _IO(AKMIO, 0x17) +#define ECS_IOCTL_APP_SET_DELAY _IOW(AKMIO, 0x18, int64_t) +#define ECS_IOCTL_APP_GET_DELAY ECS_IOCTL_GET_DELAY + +/* Set raw magnetic vector flag */ +#define ECS_IOCTL_APP_SET_MVFLAG _IOW(AKMIO, 0x19, short) + +/* Get raw magnetic vector flag */ +#define ECS_IOCTL_APP_GET_MVFLAG _IOR(AKMIO, 0x1A, short) + +#ifdef __KERNEL__ +struct akm8973_platform_data { + int reset_line; + int reset_asserted; + int gpio_data_ready_int; +}; +#endif + +#endif diff --git a/include/linux/input/cypress-touchkey.h b/include/linux/input/cypress-touchkey.h new file mode 100755 index 0000000..ca65472 --- /dev/null +++ b/include/linux/input/cypress-touchkey.h @@ -0,0 +1,41 @@ +/* + * Copyright 2006-2010, Cypress Semiconductor Corporation. + * Copyright (C) 2010, Samsung Electronics Co. Ltd. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#ifndef _CYPRESS_TOUCHKEY_H__ +#define _CYPRESS_TOUCHKEY_H__ + +#define CYPRESS_TOUCHKEY_DEV_NAME "cypress_touchkey" + +struct touchkey_platform_data { + int keycode_cnt; + const int *keycode; + void (*touchkey_onoff) (int); + const char *fw_name; + int scl_pin; + int sda_pin; + int en_pin; +}; + +enum { + TOUCHKEY_OFF, + TOUCHKEY_ON, +}; + +extern int touchkey_flash_firmware(struct touchkey_platform_data *, const u8 *); + +#endif /* _CYPRESS_TOUCHKEY_H__ */ diff --git a/include/linux/input/k3g.h b/include/linux/input/k3g.h new file mode 100644 index 0000000..66eb2c9 --- /dev/null +++ b/include/linux/input/k3g.h @@ -0,0 +1,40 @@ +/* + * STMicroelectronics K3G gyro sensor header file + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * THE PRESENT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, FOR THE SOLE + * PURPOSE TO SUPPORT YOUR APPLICATION DEVELOPMENT. + * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, + * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE + * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING + * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. + * + * THIS SOFTWARE IS SPECIFICALLY DESIGNED FOR EXCLUSIVE USE WITH ST PARTS. + * + */ + +#ifndef __K3G_H__ +#define __K3G_H__ + +#ifdef __KERNEL__ +struct k3g_platform_data { + u8 fs_range; + u8 axis_map_x; + u8 axis_map_y; + u8 axis_map_z; + u8 negate_x; + u8 negate_y; + u8 negate_z; + int (*init)(void); + void (*exit)(void); + int (*power_on)(void); + int (*power_off)(void); +}; + +#endif /* __KERNEL__ */ + +#endif /* __K3G_H__ */ diff --git a/include/linux/input/mxt224.h b/include/linux/input/mxt224.h new file mode 100644 index 0000000..b4d17d3 --- /dev/null +++ b/include/linux/input/mxt224.h @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2010, Samsung Electronics Co. Ltd. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __MXT224_H__ +#define __MXT224_H__ + +#define MXT224_DEV_NAME "Atmel MXT224" + +enum { + RESERVED_T0 = 0, + RESERVED_T1, + DEBUG_DELTAS_T2, + DEBUG_REFERENCES_T3, + DEBUG_SIGNALS_T4, + GEN_MESSAGEPROCESSOR_T5, + GEN_COMMANDPROCESSOR_T6, + GEN_POWERCONFIG_T7, + GEN_ACQUISITIONCONFIG_T8, + TOUCH_MULTITOUCHSCREEN_T9, + TOUCH_SINGLETOUCHSCREEN_T10, + TOUCH_XSLIDER_T11, + TOUCH_YSLIDER_T12, + TOUCH_XWHEEL_T13, + TOUCH_YWHEEL_T14, + TOUCH_KEYARRAY_T15, + PROCG_SIGNALFILTER_T16, + PROCI_LINEARIZATIONTABLE_T17, + SPT_COMCONFIG_T18, + SPT_GPIOPWM_T19, + PROCI_GRIPFACESUPPRESSION_T20, + RESERVED_T21, + PROCG_NOISESUPPRESSION_T22, + TOUCH_PROXIMITY_T23, + PROCI_ONETOUCHGESTUREPROCESSOR_T24, + SPT_SELFTEST_T25, + DEBUG_CTERANGE_T26, + PROCI_TWOTOUCHGESTUREPROCESSOR_T27, + SPT_CTECONFIG_T28, + SPT_GPI_T29, + SPT_GATE_T30, + TOUCH_KEYSET_T31, + TOUCH_XSLIDERSET_T32, + RESERVED_T33, + GEN_MESSAGEBLOCK_T34, + SPT_GENERICDATA_T35, + RESERVED_T36, + DEBUG_DIAGNOSTIC_T37, + SPARE_T38, + SPARE_T39, + SPARE_T40, + SPARE_T41, + SPARE_T42, + SPARE_T43, + SPARE_T44, + SPARE_T45, + SPARE_T46, + SPARE_T47, + SPARE_T48, + SPARE_T49, + SPARE_T50, + RESERVED_T255 = 255, +}; + +struct mxt224_platform_data { + int max_finger_touches; + const u8 **config; + int gpio_read_done; + int min_x; + int max_x; + int min_y; + int max_y; + int min_z; + int max_z; + int min_w; + int max_w; + void (*power_on)(void); + void (*power_off)(void); +}; + +#endif diff --git a/include/linux/kr3dm.h b/include/linux/kr3dm.h new file mode 100644 index 0000000..d404d28 --- /dev/null +++ b/include/linux/kr3dm.h @@ -0,0 +1,46 @@ +/* + * STMicroelectronics kr3dm acceleration sensor driver + * + * Copyright (C) 2010 Samsung Electronics Co.Ltd + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __KR3DM_ACC_HEADER__ +#define __KR3DM__ACC_HEADER__ + +#include <linux/types.h> +#include <linux/ioctl.h> + +struct kr3dm_acceldata { + __s16 x; + __s16 y; + __s16 z; +}; + +/* dev info */ +#define ACC_DEV_NAME "accelerometer" + +/* kr3dm ioctl command label */ +#define KR3DM_IOCTL_BASE 'a' +#define KR3DM_IOCTL_SET_DELAY _IOW(KR3DM_IOCTL_BASE, 0, int64_t) +#define KR3DM_IOCTL_GET_DELAY _IOR(KR3DM_IOCTL_BASE, 1, int64_t) +#define KR3DM_IOCTL_READ_ACCEL_XYZ _IOR(KR3DM_IOCTL_BASE, 8, \ + struct kr3dm_acceldata) + +#ifdef __KERNEL__ +struct kr3dm_platform_data { + int gpio_acc_int; /* gpio for kr3dm int output */ + s8 *rotation; /* rotation matrix, if NULL assume Id */ +}; +#endif /* __KERNEL__ */ + +#endif diff --git a/include/linux/max17040_battery.h b/include/linux/max17040_battery.h index ad97b06..968da52 100644..100755 --- a/include/linux/max17040_battery.h +++ b/include/linux/max17040_battery.h @@ -14,6 +14,10 @@ struct max17040_platform_data { int (*battery_online)(void); int (*charger_online)(void); int (*charger_enable)(void); + int (*power_supply_register)(struct device *parent, + struct power_supply *psy); + void (*power_supply_unregister)(struct power_supply *psy); + u16 rcomp_value; }; #endif diff --git a/include/linux/mfd/max8998-private.h b/include/linux/mfd/max8998-private.h index effa5d3..1877d15 100644..100755 --- a/include/linux/mfd/max8998-private.h +++ b/include/linux/mfd/max8998-private.h @@ -132,6 +132,147 @@ enum { #define MAX8998_ENRAMP (1 << 4) +/* IRQ1 */ +#define MAX8998_SHIFT_PWRONR 7 +#define MAX8998_SHIFT_PWRONF 6 +#define MAX8998_SHIFT_JIGR 5 +#define MAX8998_SHIFT_JIGF 4 +#define MAX8998_SHIFT_DCINR 3 +#define MAX8998_SHIFT_DCINF 2 + +#define MAX8998_MASK_PWRONR (0x1 << MAX8998_SHIFT_PWRONR) +#define MAX8998_MASK_PWRONF (0x1 << MAX8998_SHIFT_PWRONF) +#define MAX8998_MASK_JIGR (0x1 << MAX8998_SHIFT_JIGR) +#define MAX8998_MASK_JIGF (0x1 << MAX8998_SHIFT_JIGF) +#define MAX8998_MASK_DCINR (0x1 << MAX8998_SHIFT_DCINR) +#define MAX8998_MASK_DCINF (0x1 << MAX8998_SHIFT_DCINF) + +/* STATUS1 */ +#define MAX8998_SHIFT_ENDKEY 7 +#define MAX8998_SHIFT_JIGON 6 +#define MAX8998_SHIFT_ALARM0 5 +#define MAX8998_SHIFT_ALARM1 4 +#define MAX8998_SHIFT_SMPL 3 +#define MAX8998_SHIFT_WTSR 2 +#define MAX8998_SHIFT_LOWBAT2 1 +#define MAX8998_SHIFT_LOWBAT1 0 + +#define MAX8998_MASK_ENDKEY (0x1 << MAX8998_SHIFT_ENDKEY) +#define MAX8998_MASK_JIGON (0x1 << MAX8998_SHIFT_JIGON) +#define MAX8998_MASK_ALARM0 (0x1 << MAX8998_SHIFT_ALARM0) +#define MAX8998_MASK_ALARM1 (0x1 << MAX8998_SHIFT_ALARM1) +#define MAX8998_MASK_SMPL (0x1 << MAX8998_SHIFT_SMPL) +#define MAX8998_MASK_WTSR (0x1 << MAX8998_SHIFT_WTSR) +#define MAX8998_MASK_LOWBAT2 (0x1 << MAX8998_SHIFT_LOWBAT2) +#define MAX8998_MASK_LOWBAT1 (0x1 << MAX8998_SHIFT_LOWBAT1) + +/* STATUS2 */ +#define MAX8998_SHIFT_CHGDONE 6 +#define MAX8998_SHIFT_VDCIN 5 +#define MAX8998_SHIFT_DETBAT 4 +#define MAX8998_SHIFT_CHGON 3 +#define MAX8998_SHIFT_FCHG 2 +#define MAX8998_SHIFT_PQL 1 + +#define MAX8998_MASK_CHGDONE (0x1 << MAX8998_SHIFT_CHGDONE) +#define MAX8998_MASK_VDCIN (0x1 << MAX8998_SHIFT_VDCIN) +#define MAX8998_MASK_DETBAT (0x1 << MAX8998_SHIFT_DETBAT) +#define MAX8998_MASK_CHGON (0x1 << MAX8998_SHIFT_CHGON) +#define MAX8998_MASK_FCHG (0x1 << MAX8998_SHIFT_FCHG) +#define MAX8998_MASK_PQL (0x1 << MAX8998_SHIFT_PQL) + +/* CHGR1 */ +#define MAX8998_SHIFT_TOPOFF 5 +#define MAX8998_SHIFT_RSTR 3 +#define MAX8998_SHIFT_ICHG 0 + +#define MAX8998_MASK_TOPOFF (0x7 << MAX8998_SHIFT_TOPOFF) +#define MAX8998_MASK_RSTR (0x3 << MAX8998_SHIFT_RSTR) +#define MAX8998_MASK_ICHG (0x7 << MAX8998_SHIFT_ICHG) + +/* CHGR2 */ +#define MAX8998_SHIFT_ESAFEOUT 6 +#define MAX8998_SHIFT_FT 4 +#define MAX8998_SHIFT_BATTSL 3 +#define MAX8998_SHIFT_TMP 1 +#define MAX8998_SHIFT_CHGEN 0 + +#define MAX8998_MASK_ESAFEOUT (0x3 << MAX8998_SHIFT_ESAFEOUT) +#define MAX8998_MASK_FT (0x3 << MAX8998_SHIFT_FT) +#define MAX8998_MASK_BATTSL (0x1 << MAX8998_SHIFT_BATTSL) +#define MAX8998_MASK_TMP (0x3 << MAX8998_SHIFT_TMP) +#define MAX8998_MASK_CHGEN (0x1 << MAX8998_SHIFT_CHGEN) + +/* ONOFF1 */ +#define MAX8998_SHIFT_EN1 7 +#define MAX8998_SHIFT_EN2 6 +#define MAX8998_SHIFT_EN3 5 +#define MAX8998_SHIFT_EN4 4 +#define MAX8998_SHIFT_ELDO2 3 +#define MAX8998_SHIFT_ELDO3 2 +#define MAX8998_SHIFT_ELDO4 1 +#define MAX8998_SHIFT_ELDO5 0 + +#define MAX8998_MASK_EN1 (0x1 << MAX8998_SHIFT_EN1) +#define MAX8998_MASK_EN2 (0x1 << MAX8998_SHIFT_EN2) +#define MAX8998_MASK_EN3 (0x1 << MAX8998_SHIFT_EN3) +#define MAX8998_MASK_EN4 (0x1 << MAX8998_SHIFT_EN4) +#define MAX8998_MASK_ELDO2 (0x1 << MAX8998_SHIFT_ELDO2) +#define MAX8998_MASK_ELDO3 (0x1 << MAX8998_SHIFT_ELDO3) +#define MAX8998_MASK_ELDO4 (0x1 << MAX8998_SHIFT_ELDO4) +#define MAX8998_MASK_ELDO5 (0x1 << MAX8998_SHIFT_ELDO5) + +/* ONOFF2 */ +#define MAX8998_SHIFT_ELDO6 7 +#define MAX8998_SHIFT_ELDO7 6 +#define MAX8998_SHIFT_ELDO8 5 +#define MAX8998_SHIFT_ELDO9 4 +#define MAX8998_SHIFT_ELDO10 3 +#define MAX8998_SHIFT_ELDO11 2 +#define MAX8998_SHIFT_ELDO12 1 +#define MAX8998_SHIFT_ELDO13 0 + +#define MAX8998_MASK_ELDO6 (0x1 << MAX8998_SHIFT_ELDO6) +#define MAX8998_MASK_ELDO7 (0x1 << MAX8998_SHIFT_ELDO7) +#define MAX8998_MASK_ELDO8 (0x1 << MAX8998_SHIFT_ELDO8) +#define MAX8998_MASK_ELDO9 (0x1 << MAX8998_SHIFT_ELDO9) +#define MAX8998_MASK_ELDO10 (0x1 << MAX8998_SHIFT_ELDO10) +#define MAX8998_MASK_ELDO11 (0x1 << MAX8998_SHIFT_ELDO11) +#define MAX8998_MASK_ELDO12 (0x1 << MAX8998_SHIFT_ELDO12) +#define MAX8998_MASK_ELDO13 (0x1 << MAX8998_SHIFT_ELDO13) + +/* ONOFF3 */ +#define MAX8998_SHIFT_ELDO14 7 +#define MAX8998_SHIFT_ELDO15 6 +#define MAX8998_SHIFT_ELDO16 5 +#define MAX8998_SHIFT_ELDO17 4 +#define MAX8998_SHIFT_EPWRHOLD 3 +#define MAX8998_SHIFT_ENBATTMON 2 +#define MAX8998_SHIFT_ELBCNFG2 1 +#define MAX8998_SHIFT_ELBCNFG1 0 + +#define MAX8998_MASK_ELDO14 (0x1 << MAX8998_SHIFT_ELDO14) +#define MAX8998_MASK_ELDO15 (0x1 << MAX8998_SHIFT_ELDO15) +#define MAX8998_MASK_ELDO16 (0x1 << MAX8998_SHIFT_ELDO16) +#define MAX8998_MASK_ELDO17 (0x1 << MAX8998_SHIFT_ELDO17) +#define MAX8998_MASK_EPWRHOLD (0x1 << MAX8998_SHIFT_EPWRHOLD) +#define MAX8998_MASK_ENBATTMON (0x1 << MAX8998_SHIFT_ENBATTMON) +#define MAX8998_MASK_ELBCNFG2 (0x1 << MAX8998_SHIFT_ELBCNFG2) +#define MAX8998_MASK_ELBCNFG1 (0x1 << MAX8998_SHIFT_ELBCNFG1) + +/* ONOFF4 */ +#define MAX8998_SHIFT_EN32KHZAP 7 +#define MAX8998_SHIFT_EN32KHZCP 6 +#define MAX8998_SHIFT_ENVICHG 5 +#define MAX8998_SHIFT_ENRAMP 4 +#define MAX8998_SHIFT_RAMP 0 + +#define MAX8998_MASK_EN32KHZAP (0x1 << MAX8998_SHIFT_EN32KHZAP) +#define MAX8998_MASK_EN32KHZCP (0x1 << MAX8998_SHIFT_EN32KHZCP) +#define MAX8998_MASK_ENVICHG (0x1 << MAX8998_SHIFT_ENVICHG) +#define MAX8998_MASK_ENRAMP (0x1 << MAX8998_SHIFT_ENRAMP) +#define MAX8998_MASK_RAMP (0xF << MAX8998_SHIFT_RAMP) + /** * struct max8998_dev - max8998 master device for sub-drivers * @dev: master device of the chip (can be used to access platform data) diff --git a/include/linux/mfd/max8998.h b/include/linux/mfd/max8998.h index 61daa16..67db8b6 100644..100755 --- a/include/linux/mfd/max8998.h +++ b/include/linux/mfd/max8998.h @@ -64,6 +64,39 @@ struct max8998_regulator_data { struct regulator_init_data *initdata; }; +enum cable_type_t { + CABLE_TYPE_NONE = 0, + CABLE_TYPE_USB, + CABLE_TYPE_AC, +}; + +/** + * max8998_adc_table_data + * @adc_value : max8998 adc value + * @temperature : temperature(C) * 10 + */ +struct max8998_adc_table_data { + int adc_value; + int temperature; +}; +struct max8998_charger_callbacks { + void (*set_cable)(struct max8998_charger_callbacks *ptr, + enum cable_type_t status); +}; + +/** + * max8998_charger_data - charger data + * @id: charger id + * @initdata: charger init data (contraints, supplies, ...) + * @adc_table: adc_table must be ascending adc value order + */ +struct max8998_charger_data { + struct power_supply *psy_fuelgauge; + void (*register_callbacks)(struct max8998_charger_callbacks *ptr); + struct max8998_adc_table_data *adc_table; + int adc_array_size; +}; + /** * struct max8998_board - packages regulator init data * @regulators: array of defined regulators @@ -107,6 +140,7 @@ struct max8998_platform_data { int buck2_default_idx; bool wakeup; bool rtc_delay; + struct max8998_charger_data *charger; }; #endif /* __LINUX_MFD_MAX8998_H */ diff --git a/include/linux/mfd/wm8994/wm8994_pdata.h b/include/linux/mfd/wm8994/wm8994_pdata.h new file mode 100755 index 0000000..d79a7cc --- /dev/null +++ b/include/linux/mfd/wm8994/wm8994_pdata.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2008 Samsung Electronics, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __S5PC110_WM8994_H +#define __S5PC110_WM8994_H + +struct wm8994_platform_data { + int ldo; + int ear_sel; + void (*set_mic_bias)(bool on); +}; + +#endif diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 2cfa8d0..b4f9a85 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -133,6 +133,7 @@ struct mmc_host_ops { int (*get_cd)(struct mmc_host *host); void (*enable_sdio_irq)(struct mmc_host *host, int enable); + void (*adjust_cfg)(struct mmc_host *host, int rw); /* optional callback for HC quirks */ void (*init_card)(struct mmc_host *host, struct mmc_card *card); diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h index 6a68c4e..b27792a 100644 --- a/include/linux/mmc/sdhci.h +++ b/include/linux/mmc/sdhci.h @@ -21,7 +21,7 @@ struct sdhci_host { /* Data set by hardware interface driver */ const char *hw_name; /* Hardware bus name */ - unsigned int quirks; /* Deviations from spec. */ + u64 quirks; /* Deviations from spec. */ /* Controller doesn't honor resets unless we touch the clock register */ #define SDHCI_QUIRK_CLOCK_BEFORE_RESET (1<<0) @@ -87,6 +87,8 @@ struct sdhci_host { #define SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC (1<<30) /* The read-only detection via SDHCI_PRESENT_STATE register is unstable */ #define SDHCI_QUIRK_UNSTABLE_RO_DETECT (1<<31) +/* Controller must maintain clock when no activity */ +#define SDHCI_QUIRK_MUST_MAINTAIN_CLOCK (1ULL<<32) int irq; /* Device IRQ */ void __iomem *ioaddr; /* Mapped address */ @@ -145,6 +147,7 @@ struct sdhci_host { struct tasklet_struct finish_tasklet; struct timer_list timer; /* Timer for timeouts */ + struct timer_list busy_check_timer; unsigned int caps; /* Alternative capabilities */ diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index 52b6f18..a27b6b3 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h @@ -103,6 +103,7 @@ struct onenand_chip { unsigned int bufferram_index; struct onenand_bufferram bufferram[MAX_BUFFERRAM]; + struct clk *clk; int (*command)(struct mtd_info *mtd, int cmd, loff_t address, size_t len); int (*wait)(struct mtd_info *mtd, int state); diff --git a/include/linux/nt35580.h b/include/linux/nt35580.h new file mode 100755 index 0000000..2c429fa --- /dev/null +++ b/include/linux/nt35580.h @@ -0,0 +1,27 @@ +/*include/linux/nt35580.h + * + * Copyright (c) 2010 Samsung Electronics Co., Ltd. + * http://www.samsung.com/ + * + * Header file for Sony LCD Panel(TFT) driver + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ +#include <linux/types.h> + +#define SLEEPMSEC 0x1000 +#define ENDDEF 0x2000 +#define DEFMASK 0xFF00 + +struct s5p_tft_panel_data { + const u16 *seq_set; + const u16 *sleep_in; + const u16 *display_on; + const u16 *display_off; + u16 *brightness_set; + int pwm_reg_offset; +}; + + diff --git a/include/linux/pn544.h b/include/linux/pn544.h new file mode 100755 index 0000000..9285000 --- /dev/null +++ b/include/linux/pn544.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2010 Trusted Logic S.A. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define PN544_MAGIC 0xE9 + +/* + * PN544 power control via ioctl + * PN544_SET_PWR(0): power off + * PN544_SET_PWR(1): power on + * PN544_SET_PWR(2): reset and power on with firmware download enabled + */ +#define PN544_SET_PWR _IOW(PN544_MAGIC, 0x01, unsigned int) + +struct pn544_i2c_platform_data { + unsigned int irq_gpio; + unsigned int ven_gpio; + unsigned int firm_gpio; +}; diff --git a/include/linux/regulator/max8893.h b/include/linux/regulator/max8893.h new file mode 100644 index 0000000..d8a3f49 --- /dev/null +++ b/include/linux/regulator/max8893.h @@ -0,0 +1,53 @@ +/* + * max8893.h -- Voltage regulation for the Maxim 8893 + * + * based on max8660.h + * + * Copyright (C) 2009 Wolfram Sang, Pengutronix e.K. + * Copyright (C) 2011 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __LINUX_REGULATOR_MAX8893_H +#define __LINUX_REGULATOR_MAX8893_H + +#include <linux/regulator/machine.h> + +enum { + MAX8893_BUCK, + MAX8893_LDO1, + MAX8893_LDO2, + MAX8893_LDO3, + MAX8893_LDO4, + MAX8893_LDO5, + MAX8893_END, +}; + +/** + * max8893_subdev_data - regulator subdev data + * @id: regulator id + * @initdata: regulator init data + */ +struct max8893_subdev_data { + int id; + struct regulator_init_data *initdata; +}; + +/** + * max8893_platform_data - platform data for max8893 + * @num_subdevs: number of regulators used + * @subdevs: pointer to regulators used + */ +struct max8893_platform_data { + int num_subdevs; + struct max8893_subdev_data *subdevs; +}; +#endif diff --git a/include/linux/sec_jack.h b/include/linux/sec_jack.h new file mode 100755 index 0000000..d8182e3 --- /dev/null +++ b/include/linux/sec_jack.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2008 Samsung Electronics, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __ASM_ARCH_SEC_HEADSET_H +#define __ASM_ARCH_SEC_HEADSET_H + +#ifdef __KERNEL__ + +enum { + SEC_JACK_NO_DEVICE = 0x0, + SEC_HEADSET_4POLE = 0x01 << 0, + SEC_HEADSET_3POLE = 0x01 << 1, + SEC_TTY_DEVICE = 0x01 << 2, + SEC_FM_HEADSET = 0x01 << 3, + SEC_FM_SPEAKER = 0x01 << 4, + SEC_TVOUT_DEVICE = 0x01 << 5, + SEC_EXTRA_DOCK_SPEAKER = 0x01 << 6, + SEC_EXTRA_CAR_DOCK_SPEAKER = 0x01 << 7, + SEC_UNKNOWN_DEVICE = 0x01 << 8, +}; + +struct sec_jack_zone { + unsigned int adc_high; + unsigned int delay_ms; + unsigned int check_count; + unsigned int jack_type; +}; + +struct sec_jack_buttons_zone { + unsigned int code; + unsigned int adc_low; + unsigned int adc_high; +}; + +struct sec_jack_platform_data { + void (*set_micbias_state) (bool); + int (*get_adc_value) (void); + struct sec_jack_zone *zones; + struct sec_jack_buttons_zone *buttons_zones; + int num_zones; + int num_buttons_zones; + int det_gpio; + int send_end_gpio; + bool det_active_high; + bool send_end_active_high; +}; +#endif + +#endif diff --git a/include/linux/tl2796.h b/include/linux/tl2796.h new file mode 100755 index 0000000..fe6d47e --- /dev/null +++ b/include/linux/tl2796.h @@ -0,0 +1,64 @@ +/*inclue/linux/tl2796.h + * + * Copyright (c) 2010 Samsung Electronics Co., Ltd. + * http://www.samsung.com/ + * + * Header file for Samsung Display Panel(AMOLED) driver + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ +#include <linux/types.h> + +struct gamma_entry { + u32 brightness; + u32 v[3]; +}; + +struct tl2796_gamma_adj_points { + const u32 v0; + const u32 v1; + const u32 v19; + const u32 v43; + const u32 v87; + const u32 v171; + const u32 v255; +}; + +struct tl2796_color_adj { + u32 mult[3]; + int rshift; +}; + +struct s5p_panel_data { + const u16 *seq_display_set; + const u16 *seq_etc_set; + const u16 *standby_on; + const u16 *standby_off; + + int gpio_dcx; + int gpio_rdx; + int gpio_csx; + int gpio_wrx; + int gpio_rst; + int gpio_db[8]; + int (*configure_mtp_gpios)(struct s5p_panel_data *pdata, bool enable); + u16 factory_v255_regs[3]; + struct tl2796_color_adj color_adj; + + const struct tl2796_gamma_adj_points *gamma_adj_points; + const struct gamma_entry *gamma_table; + int gamma_table_size; +}; + +enum { + BV_0 = 0, + BV_1 = 0x552D, + BV_19 = 0xD8722A, + BV_43 = 0x51955E1, + BV_87 = 0x18083FB0, + BV_171 = 0x6A472534, + BV_255 = 0xFFFFFFFF, +}; + diff --git a/include/linux/videodev2_samsung.h b/include/linux/videodev2_samsung.h new file mode 100755 index 0000000..9a5ff62 --- /dev/null +++ b/include/linux/videodev2_samsung.h @@ -0,0 +1,624 @@ +/* + * Video for Linux Two header file for samsung + * + * Copyright (C) 2009, Samsung Electronics + * + * This header file contains several v4l2 APIs to be proposed to v4l2 + * community and until bein accepted, will be used restrictly in Samsung's + * camera interface driver FIMC. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#ifndef __LINUX_VIDEODEV2_SAMSUNG_H +#define __LINUX_VIDEODEV2_SAMSUNG_H + +/* Values for 'capabilities' field */ +/* Object detection device */ +#define V4L2_CAP_OBJ_RECOGNITION 0x10000000 +/* strobe control */ +#define V4L2_CAP_STROBE 0x20000000 + +#define V4L2_CID_FOCUS_MODE (V4L2_CID_CAMERA_CLASS_BASE + 17) +/* Focus Methods */ +enum v4l2_focus_mode { + V4L2_FOCUS_MODE_AUTO = 0, + V4L2_FOCUS_MODE_MACRO = 1, + V4L2_FOCUS_MODE_MANUAL = 2, + V4L2_FOCUS_MODE_LASTP = 2, +}; + +#define V4L2_CID_ZOOM_MODE (V4L2_CID_CAMERA_CLASS_BASE + 18) +/* Zoom Methods */ +enum v4l2_zoom_mode { + V4L2_ZOOM_MODE_CONTINUOUS = 0, + V4L2_ZOOM_MODE_OPTICAL = 1, + V4L2_ZOOM_MODE_DIGITAL = 2, + V4L2_ZOOM_MODE_LASTP = 2, +}; + +/* Exposure Methods */ +#define V4L2_CID_PHOTOMETRY (V4L2_CID_CAMERA_CLASS_BASE + 19) +enum v4l2_photometry_mode { + V4L2_PHOTOMETRY_MULTISEG = 0, /*Multi Segment */ + V4L2_PHOTOMETRY_CWA = 1, /*Centre Weighted Average */ + V4L2_PHOTOMETRY_SPOT = 2, + V4L2_PHOTOMETRY_AFSPOT = 3, /*Spot metering on focused point */ + V4L2_PHOTOMETRY_LASTP = V4L2_PHOTOMETRY_AFSPOT, +}; + +/* Manual exposure control items menu type: iris, shutter, iso */ +#define V4L2_CID_CAM_APERTURE (V4L2_CID_CAMERA_CLASS_BASE + 20) +#define V4L2_CID_CAM_SHUTTER (V4L2_CID_CAMERA_CLASS_BASE + 21) +#define V4L2_CID_CAM_ISO (V4L2_CID_CAMERA_CLASS_BASE + 22) + +/* Following CIDs are menu type */ +#define V4L2_CID_SCENEMODE (V4L2_CID_CAMERA_CLASS_BASE + 23) +#define V4L2_CID_CAM_STABILIZE (V4L2_CID_CAMERA_CLASS_BASE + 24) +#define V4L2_CID_CAM_MULTISHOT (V4L2_CID_CAMERA_CLASS_BASE + 25) + +/* Control dynamic range */ +#define V4L2_CID_CAM_DR (V4L2_CID_CAMERA_CLASS_BASE + 26) + +/* White balance preset control */ +#define V4L2_CID_WHITE_BALANCE_PRESET (V4L2_CID_CAMERA_CLASS_BASE + 27) + +/* CID extensions */ +#define V4L2_CID_ROTATION (V4L2_CID_PRIVATE_BASE + 0) +#define V4L2_CID_PADDR_Y (V4L2_CID_PRIVATE_BASE + 1) +#define V4L2_CID_PADDR_CB (V4L2_CID_PRIVATE_BASE + 2) +#define V4L2_CID_PADDR_CR (V4L2_CID_PRIVATE_BASE + 3) +#define V4L2_CID_PADDR_CBCR (V4L2_CID_PRIVATE_BASE + 4) +#define V4L2_CID_OVERLAY_AUTO (V4L2_CID_PRIVATE_BASE + 5) +#define V4L2_CID_OVERLAY_VADDR0 (V4L2_CID_PRIVATE_BASE + 6) +#define V4L2_CID_OVERLAY_VADDR1 (V4L2_CID_PRIVATE_BASE + 7) +#define V4L2_CID_OVERLAY_VADDR2 (V4L2_CID_PRIVATE_BASE + 8) +#define V4L2_CID_OVLY_MODE (V4L2_CID_PRIVATE_BASE + 9) +#define V4L2_CID_DST_INFO (V4L2_CID_PRIVATE_BASE + 10) +#define V4L2_CID_IMAGE_EFFECT_FN (V4L2_CID_PRIVATE_BASE + 16) +#define V4L2_CID_IMAGE_EFFECT_APPLY (V4L2_CID_PRIVATE_BASE + 17) +#define V4L2_CID_IMAGE_EFFECT_CB (V4L2_CID_PRIVATE_BASE + 18) +#define V4L2_CID_IMAGE_EFFECT_CR (V4L2_CID_PRIVATE_BASE + 19) +#define V4L2_CID_RESERVED_MEM_BASE_ADDR (V4L2_CID_PRIVATE_BASE + 20) +#define V4L2_CID_FIMC_VERSION (V4L2_CID_PRIVATE_BASE + 21) + +#define V4L2_CID_STREAM_PAUSE (V4L2_CID_PRIVATE_BASE + 53) + +/* CID Extensions for camera sensor operations */ +#define V4L2_CID_CAM_PREVIEW_ONOFF (V4L2_CID_PRIVATE_BASE + 64) +#define V4L2_CID_CAM_CAPTURE (V4L2_CID_PRIVATE_BASE + 65) +#define V4L2_CID_CAM_JPEG_MEMSIZE (V4L2_CID_PRIVATE_BASE + 66) + +#define V4L2_CID_CAM_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 14) +#define V4L2_CID_CAM_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 15) +#define V4L2_CID_CAM_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 22) +#define V4L2_CID_CAM_SENSOR_VER (V4L2_CID_PRIVATE_BASE + 23) +#define V4L2_CID_CAM_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 24) +#define V4L2_CID_CAM_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 25) +#define V4L2_CID_CAM_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 26) +#define V4L2_CID_CAM_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 27) +#define V4L2_CID_CAM_FW_VER (V4L2_CID_PRIVATE_BASE + 28) +#define V4L2_CID_CAM_SET_FW_ADDR (V4L2_CID_PRIVATE_BASE + 29) +#define V4L2_CID_CAM_SET_FW_SIZE (V4L2_CID_PRIVATE_BASE + 30) +#define V4L2_CID_CAM_UPDATE_FW (V4L2_CID_PRIVATE_BASE + 31) +#define V4L2_CID_CAM_JPEG_MAIN_SIZE (V4L2_CID_PRIVATE_BASE + 32) +#define V4L2_CID_CAM_JPEG_MAIN_OFFSET (V4L2_CID_PRIVATE_BASE + 33) +#define V4L2_CID_CAM_JPEG_THUMB_SIZE (V4L2_CID_PRIVATE_BASE + 34) +#define V4L2_CID_CAM_JPEG_THUMB_OFFSET (V4L2_CID_PRIVATE_BASE + 35) +#define V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET (V4L2_CID_PRIVATE_BASE + 36) +#define V4L2_CID_CAM_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 37) +#define V4L2_CID_CAM_SENSOR_MAKER (V4L2_CID_PRIVATE_BASE + 38) +#define V4L2_CID_CAM_SENSOR_OPTICAL (V4L2_CID_PRIVATE_BASE + 39) +#define V4L2_CID_CAM_AF_VER_LOW (V4L2_CID_PRIVATE_BASE + 40) +#define V4L2_CID_CAM_AF_VER_HIGH (V4L2_CID_PRIVATE_BASE + 41) +#define V4L2_CID_CAM_GAMMA_RG_LOW (V4L2_CID_PRIVATE_BASE + 42) +#define V4L2_CID_CAM_GAMMA_RG_HIGH (V4L2_CID_PRIVATE_BASE + 43) +#define V4L2_CID_CAM_GAMMA_BG_LOW (V4L2_CID_PRIVATE_BASE + 44) +#define V4L2_CID_CAM_GAMMA_BG_HIGH (V4L2_CID_PRIVATE_BASE + 45) +#define V4L2_CID_CAM_DUMP_FW (V4L2_CID_PRIVATE_BASE + 46) +#define V4L2_CID_CAM_GET_DUMP_SIZE (V4L2_CID_PRIVATE_BASE + 47) +#define V4L2_CID_CAMERA_VT_MODE (V4L2_CID_PRIVATE_BASE + 48) +#define V4L2_CID_CAMERA_VGA_BLUR (V4L2_CID_PRIVATE_BASE + 49) +#define V4L2_CID_CAMERA_CAPTURE (V4L2_CID_PRIVATE_BASE + 50) + +#define V4L2_CID_MAIN_SW_DATE_INFO_YEAR (V4L2_CID_PRIVATE_BASE + 54) +#define V4L2_CID_MAIN_SW_DATE_INFO_MONTH (V4L2_CID_PRIVATE_BASE + 55) +#define V4L2_CID_MAIN_SW_DATE_INFO_DATE (V4L2_CID_PRIVATE_BASE + 56) +#define V4L2_CID_MAIN_SW_FW_MINOR_VER (V4L2_CID_PRIVATE_BASE + 57) +#define V4L2_CID_MAIN_SW_FW_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 58) +#define V4L2_CID_MAIN_SW_PRM_MINOR_VER (V4L2_CID_PRIVATE_BASE + 59) +#define V4L2_CID_MAIN_SW_PRM_MAJOR_VER (V4L2_CID_PRIVATE_BASE + 60) + +enum v4l2_blur { + BLUR_LEVEL_0 = 0, + BLUR_LEVEL_1, + BLUR_LEVEL_2, + BLUR_LEVEL_3, + BLUR_LEVEL_MAX, +}; + +#define V4L2_CID_CAMERA_SCENE_MODE (V4L2_CID_PRIVATE_BASE + 70) +enum v4l2_scene_mode { + SCENE_MODE_BASE, + SCENE_MODE_NONE, + SCENE_MODE_PORTRAIT, + SCENE_MODE_NIGHTSHOT, + SCENE_MODE_BACK_LIGHT, + SCENE_MODE_LANDSCAPE, + SCENE_MODE_SPORTS, + SCENE_MODE_PARTY_INDOOR, + SCENE_MODE_BEACH_SNOW, + SCENE_MODE_SUNSET, + SCENE_MODE_DUST_DAWN, + SCENE_MODE_FALL_COLOR, + SCENE_MODE_FIREWORKS, + SCENE_MODE_TEXT, + SCENE_MODE_CANDLE_LIGHT, + SCENE_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_FLASH_MODE (V4L2_CID_PRIVATE_BASE + 71) +enum v4l2_flash_mode { + FLASH_MODE_BASE, + FLASH_MODE_OFF, + FLASH_MODE_AUTO, + FLASH_MODE_ON, + FLASH_MODE_TORCH, + FLASH_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_BRIGHTNESS (V4L2_CID_PRIVATE_BASE + 72) +enum v4l2_ev_mode { + EV_MINUS_4 = 0, + EV_MINUS_3, + EV_MINUS_2, + EV_MINUS_1, + EV_DEFAULT, + EV_PLUS_1, + EV_PLUS_2, + EV_PLUS_3, + EV_PLUS_4, + EV_MAX, +}; + +#define V4L2_CID_CAMERA_WHITE_BALANCE (V4L2_CID_PRIVATE_BASE + 73) +enum v4l2_wb_mode { + WHITE_BALANCE_BASE = 0, + WHITE_BALANCE_AUTO, + WHITE_BALANCE_SUNNY, + WHITE_BALANCE_CLOUDY, + WHITE_BALANCE_TUNGSTEN, + WHITE_BALANCE_FLUORESCENT, + WHITE_BALANCE_MAX, +}; + +#define V4L2_CID_CAMERA_EFFECT (V4L2_CID_PRIVATE_BASE + 74) +enum v4l2_effect_mode { + IMAGE_EFFECT_BASE = 0, + IMAGE_EFFECT_NONE, + IMAGE_EFFECT_BNW, + IMAGE_EFFECT_SEPIA, + IMAGE_EFFECT_AQUA, + IMAGE_EFFECT_ANTIQUE, + IMAGE_EFFECT_NEGATIVE, + IMAGE_EFFECT_SHARPEN, + IMAGE_EFFECT_MAX, +}; + +#define V4L2_CID_CAMERA_ISO (V4L2_CID_PRIVATE_BASE + 75) +enum v4l2_iso_mode { + ISO_AUTO = 0, + ISO_50, + ISO_100, + ISO_200, + ISO_400, + ISO_800, + ISO_1600, + ISO_SPORTS, + ISO_NIGHT, + ISO_MOVIE, + ISO_MAX, +}; + +#define V4L2_CID_CAMERA_METERING (V4L2_CID_PRIVATE_BASE + 76) +enum v4l2_metering_mode { + METERING_BASE = 0, + METERING_MATRIX, + METERING_CENTER, + METERING_SPOT, + METERING_MAX, +}; + +#define V4L2_CID_CAMERA_CONTRAST (V4L2_CID_PRIVATE_BASE + 77) +enum v4l2_contrast_mode { + CONTRAST_MINUS_2 = 0, + CONTRAST_MINUS_1, + CONTRAST_DEFAULT, + CONTRAST_PLUS_1, + CONTRAST_PLUS_2, + CONTRAST_MAX, +}; + +#define V4L2_CID_CAMERA_SATURATION (V4L2_CID_PRIVATE_BASE + 78) +enum v4l2_saturation_mode { + SATURATION_MINUS_2 = 0, + SATURATION_MINUS_1, + SATURATION_DEFAULT, + SATURATION_PLUS_1, + SATURATION_PLUS_2, + SATURATION_MAX, +}; + +#define V4L2_CID_CAMERA_SHARPNESS (V4L2_CID_PRIVATE_BASE + 79) +enum v4l2_sharpness_mode { + SHARPNESS_MINUS_2 = 0, + SHARPNESS_MINUS_1, + SHARPNESS_DEFAULT, + SHARPNESS_PLUS_1, + SHARPNESS_PLUS_2, + SHARPNESS_MAX, +}; + +#define V4L2_CID_CAMERA_WDR (V4L2_CID_PRIVATE_BASE + 80) +enum v4l2_wdr_mode { + WDR_OFF, + WDR_ON, + WDR_MAX, +}; + +#define V4L2_CID_CAMERA_ANTI_SHAKE (V4L2_CID_PRIVATE_BASE + 81) +enum v4l2_anti_shake_mode { + ANTI_SHAKE_OFF, + ANTI_SHAKE_STILL_ON, + ANTI_SHAKE_MOVIE_ON, + ANTI_SHAKE_MAX, +}; + +#define V4L2_CID_CAMERA_TOUCH_AF_START_STOP (V4L2_CID_PRIVATE_BASE + 82) +enum v4l2_touch_af { + TOUCH_AF_STOP = 0, + TOUCH_AF_START, + TOUCH_AF_MAX, +}; + +#define V4L2_CID_CAMERA_SMART_AUTO (V4L2_CID_PRIVATE_BASE + 83) +enum v4l2_smart_auto { + SMART_AUTO_OFF = 0, + SMART_AUTO_ON, + SMART_AUTO_MAX, +}; + +#define V4L2_CID_CAMERA_VINTAGE_MODE (V4L2_CID_PRIVATE_BASE + 84) +enum v4l2_vintage_mode { + VINTAGE_MODE_BASE, + VINTAGE_MODE_OFF, + VINTAGE_MODE_NORMAL, + VINTAGE_MODE_WARM, + VINTAGE_MODE_COOL, + VINTAGE_MODE_BNW, + VINTAGE_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_JPEG_QUALITY (V4L2_CID_PRIVATE_BASE + 85) +#define V4L2_CID_CAMERA_GPS_LATITUDE (V4L2_CID_CAMERA_CLASS_BASE + 30) +#define V4L2_CID_CAMERA_GPS_LONGITUDE (V4L2_CID_CAMERA_CLASS_BASE + 31) +#define V4L2_CID_CAMERA_GPS_TIMESTAMP (V4L2_CID_CAMERA_CLASS_BASE + 32) +#define V4L2_CID_CAMERA_GPS_ALTITUDE (V4L2_CID_CAMERA_CLASS_BASE + 33) +#define V4L2_CID_CAMERA_EXIF_TIME_INFO (V4L2_CID_CAMERA_CLASS_BASE + 34) +#define V4L2_CID_CAMERA_ZOOM (V4L2_CID_PRIVATE_BASE + 90) +enum v4l2_zoom_level { + ZOOM_LEVEL_0 = 0, + ZOOM_LEVEL_1, + ZOOM_LEVEL_2, + ZOOM_LEVEL_3, + ZOOM_LEVEL_4, + ZOOM_LEVEL_5, + ZOOM_LEVEL_6, + ZOOM_LEVEL_7, + ZOOM_LEVEL_8, + ZOOM_LEVEL_9, + ZOOM_LEVEL_10, + ZOOM_LEVEL_11, + ZOOM_LEVEL_12, + ZOOM_LEVEL_MAX, +}; + +#define V4L2_CID_CAMERA_FACE_DETECTION (V4L2_CID_PRIVATE_BASE + 91) +enum v4l2_face_detection { + FACE_DETECTION_OFF = 0, + FACE_DETECTION_ON, + FACE_DETECTION_NOLINE, + FACE_DETECTION_ON_BEAUTY, + FACE_DETECTION_MAX, +}; + +#define V4L2_CID_CAMERA_SMART_AUTO_STATUS (V4L2_CID_PRIVATE_BASE + 92) +enum v4l2_smart_auto_status { + SMART_AUTO_STATUS_AUTO = 0, + SMART_AUTO_STATUS_LANDSCAPE, + SMART_AUTO_STATUS_PORTRAIT, + SMART_AUTO_STATUS_MACRO, + SMART_AUTO_STATUS_NIGHT, + SMART_AUTO_STATUS_PORTRAIT_NIGHT, + SMART_AUTO_STATUS_BACKLIT, + SMART_AUTO_STATUS_PORTRAIT_BACKLIT, + SMART_AUTO_STATUS_ANTISHAKE, + SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE, + SMART_AUTO_STATUS_MAX, +}; + +#define V4L2_CID_CAMERA_SET_AUTO_FOCUS (V4L2_CID_PRIVATE_BASE + 93) +enum v4l2_auto_focus { + AUTO_FOCUS_OFF = 0, + AUTO_FOCUS_ON, + AUTO_FOCUS_MAX, +}; + +#define V4L2_CID_CAMERA_BEAUTY_SHOT (V4L2_CID_PRIVATE_BASE + 94) +enum v4l2_beauty_shot { + BEAUTY_SHOT_OFF = 0, + BEAUTY_SHOT_ON, + BEAUTY_SHOT_MAX, +}; + +#define V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK (V4L2_CID_PRIVATE_BASE + 95) +enum v4l2_ae_awb_lockunlock { + AE_UNLOCK_AWB_UNLOCK = 0, + AE_LOCK_AWB_UNLOCK, + AE_UNLOCK_AWB_LOCK, + AE_LOCK_AWB_LOCK, + AE_AWB_MAX +}; + +#define V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK (V4L2_CID_PRIVATE_BASE + 96) +enum v4l2_face_lock { + FACE_LOCK_OFF = 0, + FACE_LOCK_ON, + FIRST_FACE_TRACKING, + FACE_LOCK_MAX, +}; + +#define V4L2_CID_CAMERA_OBJECT_POSITION_X (V4L2_CID_PRIVATE_BASE + 97) +#define V4L2_CID_CAMERA_OBJECT_POSITION_Y (V4L2_CID_PRIVATE_BASE + 98) +#define V4L2_CID_CAMERA_FOCUS_MODE (V4L2_CID_PRIVATE_BASE + 99) +enum v4l2_focusmode { + FOCUS_MODE_AUTO = 0, + FOCUS_MODE_MACRO, + FOCUS_MODE_FACEDETECT, + FOCUS_MODE_AUTO_DEFAULT, + FOCUS_MODE_MACRO_DEFAULT, + FOCUS_MODE_FACEDETECT_DEFAULT, + FOCUS_MODE_INFINITY, + FOCUS_MODE_MAX, +}; + +#define V4L2_CID_CAMERA_OBJ_TRACKING_STATUS (V4L2_CID_PRIVATE_BASE + 100) +enum v4l2_obj_tracking_status { + OBJECT_TRACKING_STATUS_BASE, + OBJECT_TRACKING_STATUS_PROGRESSING, + OBJECT_TRACKING_STATUS_SUCCESS, + OBJECT_TRACKING_STATUS_FAIL, + OBJECT_TRACKING_STATUS_MISSING, + OBJECT_TRACKING_STATUS_MAX, +}; + +#define V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP (V4L2_CID_PRIVATE_BASE + 101) +enum v4l2_ot_start_stop { + OT_STOP = 0, + OT_START, + OT_MAX, +}; + +#define V4L2_CID_CAMERA_CAF_START_STOP (V4L2_CID_PRIVATE_BASE + 102) +enum v4l2_caf_start_stop { + CAF_STOP = 0, + CAF_START, + CAF_MAX, +}; + +#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT_FIRST (V4L2_CID_PRIVATE_BASE + 103) +#define V4L2_CID_CAMERA_AUTO_FOCUS_RESULT_SECOND (V4L2_CID_PRIVATE_BASE + 120) +#define V4L2_CID_CAMERA_FINISH_AUTO_FOCUS (V4L2_CID_PRIVATE_BASE + 121) +#define V4L2_CID_CAMERA_FRAME_RATE (V4L2_CID_PRIVATE_BASE + 104) +enum v4l2_frame_rate { + FRAME_RATE_AUTO = 0, + FRAME_RATE_7 = 7, + FRAME_RATE_15 = 15, + FRAME_RATE_30 = 30, + FRAME_RATE_60 = 60, + FRAME_RATE_120 = 120, + FRAME_RATE_MAX +}; + +#define V4L2_CID_CAMERA_ANTI_BANDING (V4L2_CID_PRIVATE_BASE + 105) +enum v4l2_anti_banding { + ANTI_BANDING_AUTO = 0, + ANTI_BANDING_50HZ = 1, + ANTI_BANDING_60HZ = 2, + ANTI_BANDING_OFF = 3, +}; + +#define V4L2_CID_CAMERA_SET_GAMMA (V4L2_CID_PRIVATE_BASE + 106) +enum v4l2_gamma_mode { + GAMMA_OFF = 0, + GAMMA_ON = 1, + GAMMA_MAX, +}; + +#define V4L2_CID_CAMERA_SET_SLOW_AE (V4L2_CID_PRIVATE_BASE + 107) +enum v4l2_slow_ae_mode { + SLOW_AE_OFF, + SLOW_AE_ON, + SLOW_AE_MAX, +}; + +#define V4L2_CID_CAMERA_BATCH_REFLECTION (V4L2_CID_PRIVATE_BASE + 108) +#define V4L2_CID_CAMERA_EXIF_ORIENTATION (V4L2_CID_PRIVATE_BASE + 109) + +#define V4L2_CID_CAMERA_RESET (V4L2_CID_PRIVATE_BASE + 111) +#define V4L2_CID_CAMERA_CHECK_DATALINE (V4L2_CID_PRIVATE_BASE + 112) +#define V4L2_CID_CAMERA_CHECK_DATALINE_STOP (V4L2_CID_PRIVATE_BASE + 113) +#define V4L2_CID_CAMERA_GET_ISO (V4L2_CID_PRIVATE_BASE + 114) +#define V4L2_CID_CAMERA_GET_SHT_TIME (V4L2_CID_PRIVATE_BASE + 115) +#define V4L2_CID_CAMERA_SENSOR_MODE (V4L2_CID_PRIVATE_BASE + 116) +#define V4L2_CID_ESD_INT (V4L2_CID_PRIVATE_BASE + 117) +#define V4L2_CID_CAMERA_GET_FLASH_ONOFF (V4L2_CID_PRIVATE_BASE + 118) +#define V4L2_CID_CAMERA_RETURN_FOCUS (V4L2_CID_PRIVATE_BASE + 119) + +/* Pixel format FOURCC depth Description */ +/* 12 Y/CbCr 4:2:0 64x32 macroblocks */ +#define V4L2_PIX_FMT_NV12T v4l2_fourcc('T', 'V', '1', '2') + +/* + * * V4L2 extention for digital camera + * */ +/* Strobe flash light */ +enum v4l2_strobe_control { + /* turn off the flash light */ + V4L2_STROBE_CONTROL_OFF = 0, + /* turn on the flash light */ + V4L2_STROBE_CONTROL_ON = 1, + /* act guide light before splash */ + V4L2_STROBE_CONTROL_AFGUIDE = 2, + /* charge the flash light */ + V4L2_STROBE_CONTROL_CHARGE = 3, +}; + +enum v4l2_strobe_conf { + V4L2_STROBE_OFF = 0, /* Always off */ + V4L2_STROBE_ON = 1, /* Always splashes */ + /* Auto control presets */ + V4L2_STROBE_AUTO = 2, + V4L2_STROBE_REDEYE_REDUCTION = 3, + V4L2_STROBE_SLOW_SYNC = 4, + V4L2_STROBE_FRONT_CURTAIN = 5, + V4L2_STROBE_REAR_CURTAIN = 6, + /* Extra manual control presets */ + /* keep turned on until turning off */ + V4L2_STROBE_PERMANENT = 7, + V4L2_STROBE_EXTERNAL = 8, +}; + +enum v4l2_strobe_status { + V4L2_STROBE_STATUS_OFF = 0, + /* while processing configurations */ + V4L2_STROBE_STATUS_BUSY = 1, + V4L2_STROBE_STATUS_ERR = 2, + V4L2_STROBE_STATUS_CHARGING = 3, + V4L2_STROBE_STATUS_CHARGED = 4, +}; + +/* capabilities field */ +/* No strobe supported */ +#define V4L2_STROBE_CAP_NONE 0x0000 +/* Always flash off mode */ +#define V4L2_STROBE_CAP_OFF 0x0001 +/* Always use flash light mode */ +#define V4L2_STROBE_CAP_ON 0x0002 +/* Flashlight works automatic */ +#define V4L2_STROBE_CAP_AUTO 0x0004 +/* Red-eye reduction */ +#define V4L2_STROBE_CAP_REDEYE 0x0008 +/* Slow sync */ +#define V4L2_STROBE_CAP_SLOWSYNC 0x0010 +/* Front curtain */ +#define V4L2_STROBE_CAP_FRONT_CURTAIN 0x0020 +/* Rear curtain */ +#define V4L2_STROBE_CAP_REAR_CURTAIN 0x0040 +/* keep turned on until turning off */ +#define V4L2_STROBE_CAP_PERMANENT 0x0080 +/* use external strobe */ +#define V4L2_STROBE_CAP_EXTERNAL 0x0100 + +/* Set mode and Get status */ +struct v4l2_strobe { + /* off/on/charge:0/1/2 */ + enum v4l2_strobe_control control; + /* supported strobe capabilities */ + __u32 capabilities; + enum v4l2_strobe_conf mode; + enum v4l2_strobe_status status; /* read only */ + /* default is 0 and range of value varies from each models */ + __u32 flash_ev; + __u32 reserved[4]; +}; + +#define VIDIOC_S_STROBE _IOWR('V', 83, struct v4l2_strobe) +#define VIDIOC_G_STROBE _IOR('V', 84, struct v4l2_strobe) + +/* Object recognition and collateral actions */ +enum v4l2_recog_mode { + V4L2_RECOGNITION_MODE_OFF = 0, + V4L2_RECOGNITION_MODE_ON = 1, + V4L2_RECOGNITION_MODE_LOCK = 2, +}; + +enum v4l2_recog_action { + V4L2_RECOGNITION_ACTION_NONE = 0, /* only recognition */ + V4L2_RECOGNITION_ACTION_BLINK = 1, /* Capture on blinking */ + V4L2_RECOGNITION_ACTION_SMILE = 2, /* Capture on smiling */ +}; + +enum v4l2_recog_pattern { + V4L2_RECOG_PATTERN_FACE = 0, /* Face */ + V4L2_RECOG_PATTERN_HUMAN = 1, /* Human */ + V4L2_RECOG_PATTERN_CHAR = 2, /* Character */ +}; + +struct v4l2_recog_rect { + enum v4l2_recog_pattern p; /* detected pattern */ + struct v4l2_rect o; /* detected area */ + __u32 reserved[4]; +}; + +struct v4l2_recog_data { + __u8 detect_cnt; /* detected object counter */ + struct v4l2_rect o; /* detected area */ + __u32 reserved[4]; +}; + +struct v4l2_recognition { + enum v4l2_recog_mode mode; + + /* Which pattern to detect */ + enum v4l2_recog_pattern pattern; + + /* How many object to detect */ + __u8 obj_num; + + /* select detected object */ + __u32 detect_idx; + + /* read only :Get object coordination */ + struct v4l2_recog_data data; + + enum v4l2_recog_action action; + __u32 reserved[4]; +}; + +#define VIDIOC_S_RECOGNITION _IOWR('V', 85, struct v4l2_recognition) +#define VIDIOC_G_RECOGNITION _IOR('V', 86, struct v4l2_recognition) + +/* We use this struct as the v4l2_streamparm raw_data for + * VIDIOC_G_PARM and VIDIOC_S_PARM + */ +struct sec_cam_parm { + struct v4l2_captureparm capture; + int contrast; + int effects; + int brightness; + int flash_mode; + int focus_mode; + int iso; + int metering; + int saturation; + int scene_mode; + int sharpness; + int white_balance; + int fps; +}; + +#endif /* __LINUX_VIDEODEV2_SAMSUNG_H */ diff --git a/include/linux/wimax/samsung/wimax732.h b/include/linux/wimax/samsung/wimax732.h new file mode 100644 index 0000000..94d5620 --- /dev/null +++ b/include/linux/wimax/samsung/wimax732.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2008 Samsung Electronics, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include <linux/miscdevice.h> + +#ifndef __WIMAX_CMC732_H +#define __WIMAX_CMC732_H + +#ifdef __KERNEL__ + +#define WIMAX_POWER_SUCCESS 0 +#define WIMAX_ALREADY_POWER_ON -1 +#define WIMAX_PROBE_FAIL -2 +#define WIMAX_ALREADY_POWER_OFF -3 + +/* wimax mode */ +enum { + SDIO_MODE = 0, + WTM_MODE, + MAC_IMEI_WRITE_MODE, + USIM_RELAY_MODE, + DM_MODE, + USB_MODE, + AUTH_MODE +}; + +/* wimax state */ +enum { + WIMAX_STATE_NOT_READY, + WIMAX_STATE_READY, + WIMAX_STATE_VIRTUAL_IDLE, + WIMAX_STATE_NORMAL, + WIMAX_STATE_IDLE, + WIMAX_STATE_RESET_REQUESTED, + WIMAX_STATE_RESET_ACKED, + WIMAX_STATE_AWAKE_REQUESTED, +}; + +struct wimax_cfg { + int temp_tgid; /* handles unexpected close */ + struct wake_lock wimax_wake_lock; /* resume wake lock */ + struct wake_lock wimax_rxtx_lock;/* sdio wake lock */ + struct wake_lock wimax_tx_lock;/* sdio tx lock */ + struct mutex suspend_mutex; + u8 wimax_status; + u8 wimax_mode;/* wimax mode (SDIO, USB, etc..) */ + u8 sleep_mode;/* suspend mode (0: VI, 1: IDLE) */ + u8 card_removed;/* + * set if host has acknowledged + * card removal + */ +}; + +struct wimax732_platform_data { + int (*power) (int); + void (*set_mode) (void); + void (*signal_ap_active) (int); + int (*get_sleep_mode) (void); + int (*is_modem_awake) (void); + void (*wakeup_assert) (int); + struct wimax_cfg *g_cfg; + struct miscdevice swmxctl_dev; + int wimax_int; +}; + +#endif + +#endif |