1#ifndef __ASM_MACH_PXA168_H 2#define __ASM_MACH_PXA168_H 3 4struct sys_timer; 5 6extern struct sys_timer pxa168_timer; 7extern void __init pxa168_init_irq(void); 8 9#include <linux/i2c.h> 10#include <mach/devices.h> 11#include <plat/i2c.h> 12#include <plat/pxa3xx_nand.h> 13 14extern struct pxa_device_desc pxa168_device_uart1; 15extern struct pxa_device_desc pxa168_device_uart2; 16extern struct pxa_device_desc pxa168_device_twsi0; 17extern struct pxa_device_desc pxa168_device_twsi1; 18extern struct pxa_device_desc pxa168_device_pwm1; 19extern struct pxa_device_desc pxa168_device_pwm2; 20extern struct pxa_device_desc pxa168_device_pwm3; 21extern struct pxa_device_desc pxa168_device_pwm4; 22extern struct pxa_device_desc pxa168_device_ssp1; 23extern struct pxa_device_desc pxa168_device_ssp2; 24extern struct pxa_device_desc pxa168_device_ssp3; 25extern struct pxa_device_desc pxa168_device_ssp4; 26extern struct pxa_device_desc pxa168_device_ssp5; 27extern struct pxa_device_desc pxa168_device_nand; 28 29static inline int pxa168_add_uart(int id) 30{ 31 struct pxa_device_desc *d = NULL; 32 33 switch (id) { 34 case 1: d = &pxa168_device_uart1; break; 35 case 2: d = &pxa168_device_uart2; break; 36 } 37 38 if (d == NULL) 39 return -EINVAL; 40 41 return pxa_register_device(d, NULL, 0); 42} 43 44static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data, 45 struct i2c_board_info *info, unsigned size) 46{ 47 struct pxa_device_desc *d = NULL; 48 int ret; 49 50 switch (id) { 51 case 0: d = &pxa168_device_twsi0; break; 52 case 1: d = &pxa168_device_twsi1; break; 53 default: 54 return -EINVAL; 55 } 56 57 ret = i2c_register_board_info(id, info, size); 58 if (ret) 59 return ret; 60 61 return pxa_register_device(d, data, sizeof(*data)); 62} 63 64static inline int pxa168_add_pwm(int id) 65{ 66 struct pxa_device_desc *d = NULL; 67 68 switch (id) { 69 case 1: d = &pxa168_device_pwm1; break; 70 case 2: d = &pxa168_device_pwm2; break; 71 case 3: d = &pxa168_device_pwm3; break; 72 case 4: d = &pxa168_device_pwm4; break; 73 default: 74 return -EINVAL; 75 } 76 77 return pxa_register_device(d, NULL, 0); 78} 79 80static inline int pxa168_add_ssp(int id) 81{ 82 struct pxa_device_desc *d = NULL; 83 84 switch (id) { 85 case 1: d = &pxa168_device_ssp1; break; 86 case 2: d = &pxa168_device_ssp2; break; 87 case 3: d = &pxa168_device_ssp3; break; 88 case 4: d = &pxa168_device_ssp4; break; 89 case 5: d = &pxa168_device_ssp5; break; 90 default: 91 return -EINVAL; 92 } 93 return pxa_register_device(d, NULL, 0); 94} 95 96static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info) 97{ 98 return pxa_register_device(&pxa168_device_nand, info, sizeof(*info)); 99} 100#endif /* __ASM_MACH_PXA168_H */ 101