2009-12-04 17:41:28 +03:00
# ifndef __ASM_MACH_MMP2_H
# define __ASM_MACH_MMP2_H
2011-06-20 18:11:52 +04:00
# include <linux/platform_data/pxa_sdhci.h>
2010-09-30 00:18:51 +04:00
2010-07-15 18:22:33 +04:00
struct sys_timer ;
extern struct sys_timer mmp2_timer ;
extern void __init mmp2_init_icu ( void ) ;
extern void __init mmp2_init_irq ( void ) ;
extern void mmp2_clear_pmic_int ( void ) ;
2009-12-04 17:41:28 +03:00
# include <linux/i2c.h>
2011-02-23 14:38:16 +03:00
# include <linux/i2c/pxa-i2c.h>
2009-12-04 17:41:28 +03:00
# include <mach/devices.h>
2011-08-15 07:09:53 +04:00
# include <mach/sram.h>
2009-12-04 17:41:28 +03:00
extern struct pxa_device_desc mmp2_device_uart1 ;
extern struct pxa_device_desc mmp2_device_uart2 ;
extern struct pxa_device_desc mmp2_device_uart3 ;
extern struct pxa_device_desc mmp2_device_uart4 ;
extern struct pxa_device_desc mmp2_device_twsi1 ;
extern struct pxa_device_desc mmp2_device_twsi2 ;
extern struct pxa_device_desc mmp2_device_twsi3 ;
extern struct pxa_device_desc mmp2_device_twsi4 ;
extern struct pxa_device_desc mmp2_device_twsi5 ;
extern struct pxa_device_desc mmp2_device_twsi6 ;
2010-09-30 00:18:51 +04:00
extern struct pxa_device_desc mmp2_device_sdh0 ;
extern struct pxa_device_desc mmp2_device_sdh1 ;
extern struct pxa_device_desc mmp2_device_sdh2 ;
extern struct pxa_device_desc mmp2_device_sdh3 ;
2011-08-15 07:09:53 +04:00
extern struct pxa_device_desc mmp2_device_asram ;
2011-08-15 07:09:54 +04:00
extern struct pxa_device_desc mmp2_device_isram ;
2009-12-04 17:41:28 +03:00
2011-10-17 16:37:52 +04:00
extern struct platform_device mmp2_device_gpio ;
2009-12-04 17:41:28 +03:00
static inline int mmp2_add_uart ( int id )
{
struct pxa_device_desc * d = NULL ;
switch ( id ) {
case 1 : d = & mmp2_device_uart1 ; break ;
case 2 : d = & mmp2_device_uart2 ; break ;
case 3 : d = & mmp2_device_uart3 ; break ;
case 4 : d = & mmp2_device_uart4 ; break ;
default :
return - EINVAL ;
}
return pxa_register_device ( d , NULL , 0 ) ;
}
static inline int mmp2_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 ) {
2010-04-28 23:34:04 +04:00
case 1 : d = & mmp2_device_twsi1 ; break ;
case 2 : d = & mmp2_device_twsi2 ; break ;
case 3 : d = & mmp2_device_twsi3 ; break ;
case 4 : d = & mmp2_device_twsi4 ; break ;
case 5 : d = & mmp2_device_twsi5 ; break ;
case 6 : d = & mmp2_device_twsi6 ; break ;
2009-12-04 17:41:28 +03:00
default :
return - EINVAL ;
}
2010-04-28 23:34:04 +04:00
ret = i2c_register_board_info ( id - 1 , info , size ) ;
2009-12-04 17:41:28 +03:00
if ( ret )
return ret ;
return pxa_register_device ( d , data , sizeof ( * data ) ) ;
}
2010-09-30 00:18:51 +04:00
static inline int mmp2_add_sdhost ( int id , struct sdhci_pxa_platdata * data )
{
struct pxa_device_desc * d = NULL ;
switch ( id ) {
case 0 : d = & mmp2_device_sdh0 ; break ;
case 1 : d = & mmp2_device_sdh1 ; break ;
case 2 : d = & mmp2_device_sdh2 ; break ;
case 3 : d = & mmp2_device_sdh3 ; break ;
default :
return - EINVAL ;
}
return pxa_register_device ( d , data , sizeof ( * data ) ) ;
}
2011-08-15 07:09:53 +04:00
static inline int mmp2_add_asram ( struct sram_platdata * data )
{
return pxa_register_device ( & mmp2_device_asram , data , sizeof ( * data ) ) ;
}
2011-08-15 07:09:54 +04:00
static inline int mmp2_add_isram ( struct sram_platdata * data )
{
return pxa_register_device ( & mmp2_device_isram , data , sizeof ( * data ) ) ;
}
2009-12-04 17:41:28 +03:00
# endif /* __ASM_MACH_MMP2_H */