2009-01-20 09:15:18 +03:00
# ifndef __ASM_MACH_PXA168_H
# define __ASM_MACH_PXA168_H
2010-07-15 18:22:33 +04:00
struct sys_timer ;
extern struct sys_timer pxa168_timer ;
extern void __init pxa168_init_irq ( void ) ;
2010-09-04 02:28:10 +04:00
extern void pxa168_clear_keypad_wakeup ( void ) ;
2010-07-15 18:22:33 +04:00
2009-04-13 11:34:54 +04:00
# include <linux/i2c.h>
2011-02-23 14:38:16 +03:00
# include <linux/i2c/pxa-i2c.h>
2009-01-20 09:15:18 +03:00
# include <mach/devices.h>
2009-10-13 11:24:55 +04:00
# include <plat/pxa3xx_nand.h>
2010-08-26 07:51:54 +04:00
# include <video/pxa168fb.h>
2010-09-04 02:28:07 +04:00
# include <plat/pxa27x_keypad.h>
2010-09-04 02:28:10 +04:00
# include <mach/cputype.h>
2011-05-02 09:59:59 +04:00
# include <linux/pxa168_eth.h>
2009-01-20 09:15:18 +03:00
extern struct pxa_device_desc pxa168_device_uart1 ;
extern struct pxa_device_desc pxa168_device_uart2 ;
2011-05-02 09:59:58 +04:00
extern struct pxa_device_desc pxa168_device_uart3 ;
2009-04-13 11:34:54 +04:00
extern struct pxa_device_desc pxa168_device_twsi0 ;
extern struct pxa_device_desc pxa168_device_twsi1 ;
2009-04-13 14:29:52 +04: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 ;
2010-03-19 18:53:17 +03:00
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 ;
2009-10-13 11:24:55 +04:00
extern struct pxa_device_desc pxa168_device_nand ;
2010-08-26 07:51:54 +04:00
extern struct pxa_device_desc pxa168_device_fb ;
2010-09-04 02:28:07 +04:00
extern struct pxa_device_desc pxa168_device_keypad ;
2011-05-02 09:59:59 +04:00
extern struct pxa_device_desc pxa168_device_eth ;
2009-01-20 09:15:18 +03: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 ;
2011-05-02 09:59:58 +04:00
case 3 : d = & pxa168_device_uart3 ; break ;
2009-01-20 09:15:18 +03:00
}
if ( d = = NULL )
return - EINVAL ;
return pxa_register_device ( d , NULL , 0 ) ;
}
2009-04-13 11:34:54 +04: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 14:29:52 +04: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 11:24:55 +04:00
2010-03-19 18:53:17 +03:00
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 ) ;
}
2009-10-13 11:24:55 +04:00
static inline int pxa168_add_nand ( struct pxa3xx_nand_platform_data * info )
{
return pxa_register_device ( & pxa168_device_nand , info , sizeof ( * info ) ) ;
}
2010-08-26 07:51:54 +04:00
static inline int pxa168_add_fb ( struct pxa168fb_mach_info * mi )
{
return pxa_register_device ( & pxa168_device_fb , mi , sizeof ( * mi ) ) ;
}
2010-09-04 02:28:07 +04:00
static inline int pxa168_add_keypad ( struct pxa27x_keypad_platform_data * data )
{
2010-09-04 02:28:10 +04:00
if ( cpu_is_pxa168 ( ) )
data - > clear_wakeup_event = pxa168_clear_keypad_wakeup ;
2010-09-04 02:28:07 +04:00
return pxa_register_device ( & pxa168_device_keypad , data , sizeof ( * data ) ) ;
}
2011-05-02 09:59:59 +04:00
static inline int pxa168_add_eth ( struct pxa168_eth_platform_data * data )
{
return pxa_register_device ( & pxa168_device_eth , data , sizeof ( * data ) ) ;
}
2009-01-20 09:15:18 +03:00
# endif /* __ASM_MACH_PXA168_H */