2009-01-20 14:15:18 +08:00
# ifndef __ASM_MACH_PXA168_H
# define __ASM_MACH_PXA168_H
2009-04-13 15:34:54 +08:00
# include <linux/i2c.h>
2009-01-20 14:15:18 +08:00
# include <mach/devices.h>
2009-04-13 15:34:54 +08:00
# include <plat/i2c.h>
2009-10-13 15:24:55 +08:00
# include <plat/pxa3xx_nand.h>
2009-01-20 14:15:18 +08:00
extern struct pxa_device_desc pxa168_device_uart1 ;
extern struct pxa_device_desc pxa168_device_uart2 ;
2009-04-13 15:34:54 +08:00
extern struct pxa_device_desc pxa168_device_twsi0 ;
extern struct pxa_device_desc pxa168_device_twsi1 ;
2009-04-13 18:29:52 +08:00
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 ;
2009-10-13 15:24:55 +08:00
extern struct pxa_device_desc pxa168_device_nand ;
2009-01-20 14:15:18 +08:00
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 ;
}
if ( d = = NULL )
return - EINVAL ;
return pxa_register_device ( d , NULL , 0 ) ;
}
2009-04-13 15:34:54 +08:00
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 ) ) ;
}
2009-04-13 18:29:52 +08:00
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 ) ;
}
2009-10-13 15:24:55 +08:00
static inline int pxa168_add_nand ( struct pxa3xx_nand_platform_data * info )
{
return pxa_register_device ( & pxa168_device_nand , info , sizeof ( * info ) ) ;
}
2009-01-20 14:15:18 +08:00
# endif /* __ASM_MACH_PXA168_H */