blob: e44104896f81d7c9631babadf09ad36c3f71066c [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __MTD_FLASHCHIP_H__
13#define __MTD_FLASHCHIP_H__
Ben Cheng4b29af02012-03-07 16:14:53 -080014
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080015#include <linux/sched.h>
Ben Cheng4b29af02012-03-07 16:14:53 -080016
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080017typedef enum {
18 FL_READY,
19 FL_STATUS,
20 FL_CFI_QUERY,
21 FL_JEDEC_QUERY,
22 FL_ERASING,
23 FL_ERASE_SUSPENDING,
24 FL_ERASE_SUSPENDED,
25 FL_WRITING,
26 FL_WRITING_TO_BUFFER,
27 FL_OTP_WRITE,
28 FL_WRITE_SUSPENDING,
29 FL_WRITE_SUSPENDED,
30 FL_PM_SUSPENDED,
31 FL_SYNCING,
32 FL_UNLOADING,
33 FL_LOCKING,
34 FL_UNLOCKING,
35 FL_POINT,
36 FL_XIP_WHILE_ERASING,
37 FL_XIP_WHILE_WRITING,
38 FL_UNKNOWN
39} flstate_t;
Ben Cheng4b29af02012-03-07 16:14:53 -080040
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080041struct flchip {
42 unsigned long start;
Ben Cheng4b29af02012-03-07 16:14:53 -080043
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044 int ref_point_counter;
45 flstate_t state;
46 flstate_t oldstate;
Ben Cheng4b29af02012-03-07 16:14:53 -080047
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080048 unsigned int write_suspended:1;
49 unsigned int erase_suspended:1;
50 unsigned long in_progress_block_addr;
Ben Cheng4b29af02012-03-07 16:14:53 -080051
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080052 spinlock_t *mutex;
53 spinlock_t _spinlock;
54 wait_queue_head_t wq;
55 int word_write_time;
56 int buffer_write_time;
57 int erase_time;
Ben Cheng4b29af02012-03-07 16:14:53 -080058
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059 void *priv;
60};
Ben Cheng4b29af02012-03-07 16:14:53 -080061
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080062struct flchip_shared {
63 spinlock_t lock;
64 struct flchip *writing;
65 struct flchip *erasing;
66};
Ben Cheng4b29af02012-03-07 16:14:53 -080067
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080068#endif