Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
mmp2.h
Go to the documentation of this file.
1 #ifndef __ASM_MACH_MMP2_H
2 #define __ASM_MACH_MMP2_H
3 
5 
6 struct sys_timer;
7 
8 extern struct sys_timer mmp2_timer;
9 extern void __init mmp2_init_icu(void);
10 extern void __init mmp2_init_irq(void);
11 extern void mmp2_clear_pmic_int(void);
12 
13 #include <linux/i2c.h>
14 #include <linux/i2c/pxa-i2c.h>
15 #include <mach/devices.h>
17 
28 extern struct pxa_device_desc mmp2_device_sdh0;
29 extern struct pxa_device_desc mmp2_device_sdh1;
30 extern struct pxa_device_desc mmp2_device_sdh2;
31 extern struct pxa_device_desc mmp2_device_sdh3;
34 
35 extern struct platform_device mmp2_device_gpio;
36 
37 static inline int mmp2_add_uart(int id)
38 {
39  struct pxa_device_desc *d = NULL;
40 
41  switch (id) {
42  case 1: d = &mmp2_device_uart1; break;
43  case 2: d = &mmp2_device_uart2; break;
44  case 3: d = &mmp2_device_uart3; break;
45  case 4: d = &mmp2_device_uart4; break;
46  default:
47  return -EINVAL;
48  }
49 
50  return pxa_register_device(d, NULL, 0);
51 }
52 
53 static inline int mmp2_add_twsi(int id, struct i2c_pxa_platform_data *data,
54  struct i2c_board_info *info, unsigned size)
55 {
56  struct pxa_device_desc *d = NULL;
57  int ret;
58 
59  switch (id) {
60  case 1: d = &mmp2_device_twsi1; break;
61  case 2: d = &mmp2_device_twsi2; break;
62  case 3: d = &mmp2_device_twsi3; break;
63  case 4: d = &mmp2_device_twsi4; break;
64  case 5: d = &mmp2_device_twsi5; break;
65  case 6: d = &mmp2_device_twsi6; break;
66  default:
67  return -EINVAL;
68  }
69 
70  ret = i2c_register_board_info(id - 1, info, size);
71  if (ret)
72  return ret;
73 
74  return pxa_register_device(d, data, sizeof(*data));
75 }
76 
77 static inline int mmp2_add_sdhost(int id, struct sdhci_pxa_platdata *data)
78 {
79  struct pxa_device_desc *d = NULL;
80 
81  switch (id) {
82  case 0: d = &mmp2_device_sdh0; break;
83  case 1: d = &mmp2_device_sdh1; break;
84  case 2: d = &mmp2_device_sdh2; break;
85  case 3: d = &mmp2_device_sdh3; break;
86  default:
87  return -EINVAL;
88  }
89 
90  return pxa_register_device(d, data, sizeof(*data));
91 }
92 
93 static inline int mmp2_add_asram(struct sram_platdata *data)
94 {
95  return pxa_register_device(&mmp2_device_asram, data, sizeof(*data));
96 }
97 
98 static inline int mmp2_add_isram(struct sram_platdata *data)
99 {
100  return pxa_register_device(&mmp2_device_isram, data, sizeof(*data));
101 }
102 
103 #endif /* __ASM_MACH_MMP2_H */
104