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