• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __ASM_MACH_PXA168_H
2 #define __ASM_MACH_PXA168_H
3 
4 #include <linux/reboot.h>
5 
6 extern void pxa168_timer_init(void);
7 extern void __init icu_init_irq(void);
8 extern void __init pxa168_init_irq(void);
9 extern void pxa168_restart(enum reboot_mode, const char *);
10 extern void pxa168_clear_keypad_wakeup(void);
11 
12 #include <linux/i2c.h>
13 #include <linux/i2c/pxa-i2c.h>
14 #include <linux/platform_data/mtd-nand-pxa3xx.h>
15 #include <video/pxa168fb.h>
16 #include <linux/platform_data/keypad-pxa27x.h>
17 #include <linux/pxa168_eth.h>
18 #include <linux/platform_data/mv_usb.h>
19 
20 #include "devices.h"
21 #include "cputype.h"
22 
23 extern struct pxa_device_desc pxa168_device_uart1;
24 extern struct pxa_device_desc pxa168_device_uart2;
25 extern struct pxa_device_desc pxa168_device_uart3;
26 extern struct pxa_device_desc pxa168_device_twsi0;
27 extern struct pxa_device_desc pxa168_device_twsi1;
28 extern struct pxa_device_desc pxa168_device_pwm1;
29 extern struct pxa_device_desc pxa168_device_pwm2;
30 extern struct pxa_device_desc pxa168_device_pwm3;
31 extern struct pxa_device_desc pxa168_device_pwm4;
32 extern struct pxa_device_desc pxa168_device_ssp1;
33 extern struct pxa_device_desc pxa168_device_ssp2;
34 extern struct pxa_device_desc pxa168_device_ssp3;
35 extern struct pxa_device_desc pxa168_device_ssp4;
36 extern struct pxa_device_desc pxa168_device_ssp5;
37 extern struct pxa_device_desc pxa168_device_nand;
38 extern struct pxa_device_desc pxa168_device_fb;
39 extern struct pxa_device_desc pxa168_device_keypad;
40 extern struct pxa_device_desc pxa168_device_eth;
41 
42 /* pdata can be NULL */
43 extern int __init pxa168_add_usb_host(struct mv_usb_platform_data *pdata);
44 
45 
46 extern struct platform_device pxa168_device_gpio;
47 
pxa168_add_uart(int id)48 static inline int pxa168_add_uart(int id)
49 {
50 	struct pxa_device_desc *d = NULL;
51 
52 	switch (id) {
53 	case 1: d = &pxa168_device_uart1; break;
54 	case 2: d = &pxa168_device_uart2; break;
55 	case 3: d = &pxa168_device_uart3; break;
56 	}
57 
58 	if (d == NULL)
59 		return -EINVAL;
60 
61 	return pxa_register_device(d, NULL, 0);
62 }
63 
pxa168_add_twsi(int id,struct i2c_pxa_platform_data * data,struct i2c_board_info * info,unsigned size)64 static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data,
65 				  struct i2c_board_info *info, unsigned size)
66 {
67 	struct pxa_device_desc *d = NULL;
68 	int ret;
69 
70 	switch (id) {
71 	case 0: d = &pxa168_device_twsi0; break;
72 	case 1: d = &pxa168_device_twsi1; break;
73 	default:
74 		return -EINVAL;
75 	}
76 
77 	ret = i2c_register_board_info(id, info, size);
78 	if (ret)
79 		return ret;
80 
81 	return pxa_register_device(d, data, sizeof(*data));
82 }
83 
pxa168_add_pwm(int id)84 static inline int pxa168_add_pwm(int id)
85 {
86 	struct pxa_device_desc *d = NULL;
87 
88 	switch (id) {
89 	case 1: d = &pxa168_device_pwm1; break;
90 	case 2: d = &pxa168_device_pwm2; break;
91 	case 3: d = &pxa168_device_pwm3; break;
92 	case 4: d = &pxa168_device_pwm4; break;
93 	default:
94 		return -EINVAL;
95 	}
96 
97 	return pxa_register_device(d, NULL, 0);
98 }
99 
pxa168_add_ssp(int id)100 static inline int pxa168_add_ssp(int id)
101 {
102 	struct pxa_device_desc *d = NULL;
103 
104 	switch (id) {
105 	case 1: d = &pxa168_device_ssp1; break;
106 	case 2: d = &pxa168_device_ssp2; break;
107 	case 3: d = &pxa168_device_ssp3; break;
108 	case 4: d = &pxa168_device_ssp4; break;
109 	case 5: d = &pxa168_device_ssp5; break;
110 	default:
111 		return -EINVAL;
112 	}
113 	return pxa_register_device(d, NULL, 0);
114 }
115 
pxa168_add_nand(struct pxa3xx_nand_platform_data * info)116 static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
117 {
118 	return pxa_register_device(&pxa168_device_nand, info, sizeof(*info));
119 }
120 
pxa168_add_fb(struct pxa168fb_mach_info * mi)121 static inline int pxa168_add_fb(struct pxa168fb_mach_info *mi)
122 {
123 	return pxa_register_device(&pxa168_device_fb, mi, sizeof(*mi));
124 }
125 
pxa168_add_keypad(struct pxa27x_keypad_platform_data * data)126 static inline int pxa168_add_keypad(struct pxa27x_keypad_platform_data *data)
127 {
128 	if (cpu_is_pxa168())
129 		data->clear_wakeup_event = pxa168_clear_keypad_wakeup;
130 
131 	return pxa_register_device(&pxa168_device_keypad, data, sizeof(*data));
132 }
133 
pxa168_add_eth(struct pxa168_eth_platform_data * data)134 static inline int pxa168_add_eth(struct pxa168_eth_platform_data *data)
135 {
136 	return pxa_register_device(&pxa168_device_eth, data, sizeof(*data));
137 }
138 #endif /* __ASM_MACH_PXA168_H */
139